Beispiel #1
0
int csync_fnmatch(const char *pattern, const char *name, int flags) {
    BOOL match;

    (void) flags;

    match = PathMatchSpecA(name, pattern);

    if(match)
        return 0;
    else
        return 1;
}
Beispiel #2
0
/* 从输入表查找CRT版本 */
BOOL WINAPI find_msvcrt(char *crt_name,int len)
{
    BOOL			ret = FALSE;
    IMAGE_DOS_HEADER      *pDos;
    IMAGE_OPTIONAL_HEADER *pOptHeader;
    IMAGE_IMPORT_DESCRIPTOR    *pImport ;
    HMODULE hMod=GetModuleHandleW(NULL);
    if (!hMod)
    {
#ifdef _LOGDEBUG
        logmsg("GetModuleHandleW false,hMod = 0\n");
#endif
        return ret;
    }
    pDos = (IMAGE_DOS_HEADER *)hMod;
    pOptHeader = (IMAGE_OPTIONAL_HEADER *)(
                     (BYTE *)hMod
                     + pDos->e_lfanew
                     + SIZE_OF_NT_SIGNATURE
                     + sizeof(IMAGE_FILE_HEADER)
                 );
    pImport = (IMAGE_IMPORT_DESCRIPTOR * )(
                  (BYTE *)hMod
                  + pOptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress
              ) ;
    while( TRUE )
    {
        char*		pszDllName = NULL;
        char		name[CRT_LEN+1] = {0};
        IMAGE_THUNK_DATA *pThunk  = (PIMAGE_THUNK_DATA)(pImport->Characteristics);
        IMAGE_THUNK_DATA *pThunkIAT = (PIMAGE_THUNK_DATA)(pImport->FirstThunk);
        if(pThunk == 0 && pThunkIAT == 0) break;
        pszDllName = (char*)((BYTE*)hMod+pImport->Name);
#ifdef _LOGDEBUG
        logmsg("dllname:  [%s]\n",(const char *)pszDllName);
#endif
        if ( PathMatchSpecA(pszDllName,"msvcr*.dll") )
        {
            strncpy(name,pszDllName,CRT_LEN);
            strncpy(crt_name,CharLowerA(name),len);
            ret = TRUE;
            break;
        }
        pImport++;
    }
    return ret;
}
Beispiel #3
0
/*************************************************************************
 * PathMatchSpec	[SHELL32.46]
 */
BOOL WINAPI PathMatchSpecAW(LPVOID name, LPVOID mask)
{
	if (SHELL_OsIsUnicode())
	  return PathMatchSpecW( name, mask );
	return PathMatchSpecA( name, mask );
}