示例#1
0
 int Syncler::syncDir(const string& path){
     verbose("syncing directory %s\n",path.c_str());
     map<string,Sync::Item>& fdir=from->getItems(path);
     map<string,Sync::Item>& tdir=to->getItems(path);
     int res=0;
     for (auto it=tdir.begin(); it!=tdir.end(); ++it){
         if (fdir.count(it->first)==0 || it->second.directory!=fdir[it->first].directory){
             it->second.removed=true;
             cout << "D " << it->second.path << it->second.name << endl;
             CHECKRES(to->removeItem(it->second));
         }
     }
     vector<string> morepaths;
     for (auto it=fdir.begin(); it!=fdir.end(); ++it){
         Sync::Item& src=it->second;
         if (it->second.directory){
             morepaths.push_back(src.path+src.name);
         }
         if (tdir.count(it->first)==0 || tdir[it->first].removed){
             cout << "A " << src.path << src.name << endl;
             CHECKRES(to->addItem(from->getTransfer(src)));
             continue;
         }
         if (it->second.directory)
             continue;
         CHECKRES(syncFile(src,tdir[it->first]));
     }
     for (string& x: morepaths){
         CHECKRES(syncDir(x));
     }
     return 0;
 }
int32_t
gs_fifobuffer_wb64(GsFIFOBuffer* fifo, int64_t v)
{
    int res = 0;
    res = gs_fifobuffer_wb32(fifo, v >> 32);
    CHECKRES(res);
    res = gs_fifobuffer_wb32(fifo, v);
    CHECKRES(res);
    return res;
}
int32_t
gs_fifobuffer_wb32(GsFIFOBuffer* fifo, int32_t v)
{
    int res = 0;
    res = gs_fifobuffer_wb16(fifo, v >> 16);
    CHECKRES(res);
    res = gs_fifobuffer_wb16(fifo, v);
    CHECKRES(res);
    return res;
}
int32_t
gs_fifobuffer_wl24(GsFIFOBuffer* fifo, int32_t v)
{
    int res = 0;
    res = gs_fifobuffer_w8(fifo, v);
    CHECKRES(res);
    res = gs_fifobuffer_wl16(fifo, v >> 8);
    CHECKRES(res);
    return res;
}
PLUGININTERFACE int CListInitialise(PLUGINLINK * link)
{
	pluginLink=link;
/*
#ifdef _DEBUG
	_CrtSetBreakAlloc(11166);
#endif
*/
	HMODULE hKernel = GetModuleHandleA( "kernel32.dll" );
	fnTryEnterCriticalSection = ( pfnTryEnterCriticalSection )GetProcAddress( hKernel, "TryEnterCriticalSection" );

	HMODULE hUser = GetModuleHandleA( "user32.dll" );
	fnGetMenuBarInfo = ( pfnGetMenuBarInfo )GetProcAddress( hUser, "GetMenuBarInfo" );
	fnGetScrollBarInfo = ( pfnGetScrollBarInfo )GetProcAddress( hUser, "GetScrollBarInfo" );
	fnMsgWaitForMultipleObjectsEx = ( pfnMsgWaitForMultipleObjectsEx )GetProcAddress( hUser, "MsgWaitForMultipleObjectsEx" );

	if (( fnGetAncestor = ( pfnGetAncestor )GetProcAddress( hUser, "GetAncestor" )) == NULL )
		fnGetAncestor = MyGetAncestor;

	g_dwMainThreadID = GetCurrentThreadId();
	DuplicateHandle(GetCurrentProcess(),GetCurrentThread(),GetCurrentProcess(),&g_hMainThread,0,FALSE,DUPLICATE_SAME_ACCESS);

	mir_getMMI(&mmi);
	mir_getUTFI(&utfi);
	mir_getLI(&li);
	mir_getTMI(&tmi);

	CHECKRES ( PreLoadContactListModule ( )	);
	CHECKRES ( SubclassClistInterface ( )	);
	CHECKRES ( CreateHookableEvents ( )		);
	CHECKRES ( XPThemesLoadModule ( )		);
	CHECKRES ( SkinEngineLoadModule ( )		);
	CHECKRES ( BackgroundsLoadModule ( )	);
	CHECKRES ( CluiLoadModule ( )			);
	CHECKRES ( ClcLoadModule ( )			);
	CHECKRES ( ToolbarButtonLoadModule( )   );
	CHECKRES ( ToolbarLoadModule()			);

	TRACE( "CListInitialise Modern Contact List ... Done\r\n" );
	
	return S_OK;
}
示例#6
0
extern "C" __declspec(dllexport) int CListInitialise()
{
	mir_getLP( &pluginInfo );
	mir_getTMI(&tmi);

	g_dwMainThreadID = GetCurrentThreadId();

	CHECKRES ( PreLoadContactListModule ( )	);
	CHECKRES ( SubclassClistInterface ( )	);
	CHECKRES ( CreateHookableEvents ( )		);
	CHECKRES ( XPThemesLoadModule ( )		);
	CHECKRES ( SkinEngineLoadModule ( )		);
	CHECKRES ( BackgroundsLoadModule ( )	);
	CHECKRES ( CluiLoadModule ( )			);
	CHECKRES ( ClcLoadModule ( )			);
	CHECKRES ( ToolbarButtonLoadModule( )   );
	CHECKRES ( ToolbarLoadModule()			);

	TRACE("CListInitialise Modern Contact List ... Done\r\n");

	return S_OK;
}
示例#7
0
 int Syncler::syncFile(Sync::Item& src,Sync::Item& dst){
     bool upd=true;
     verbose("checking %s%s ",src.path.c_str(),src.name.c_str());
     int res=0;
     do{
         verbose("size ");
         if (src.size!=dst.size){
             verbose("%ld -> %ld",dst.size,src.size);
             break;
         }
         bool compcrc=flags.compareCRC;
         if (flags.compareDate){
             verbose("date ");
             //crooked nail: some mtimes in zip are mtimes-1
             if (abs(src.date-dst.date)>1){
                 if (!flags.modifiedCrc){
                     verbose("%ld -> %ld",dst.date,src.date);
                     break;
                 }
                 compcrc=true;
             }
         }
         if (compcrc){
             verbose("crc ");
             uLong c1=0,c2=0;
             c1=from->getCRC(src);
             c2=to->getCRC(dst);
             if (c1!=c2){
                 verbose("%lu -> %lu",c2,c1);
                 break;
             }
         }
         upd=false;
     }while(0);
     verbose("\n");
     if (upd){
         cout << "U " << src.path << src.name << endl;
         CHECKRES(to->updateItem(dst, from->getTransfer(src)));
     }
     return 0;
 }