Mercurial > mplayer.hg
diff loader/win32.c @ 713:9355b2ae634e
avifile-0.6-CVS merge
author | arpi_esp |
---|---|
date | Sun, 06 May 2001 21:43:45 +0000 |
parents | d751f549f29f |
children | 3156ab0adffe |
line wrap: on
line diff
--- a/loader/win32.c Sun May 06 19:38:57 2001 +0000 +++ b/loader/win32.c Sun May 06 21:43:45 2001 +0000 @@ -1577,6 +1577,26 @@ { char qq[256]; int result; + char* lastbc; + if (!name) + return -1; + // we skip to the last backslash + // this is effectively eliminating weird characters in + // the text output windows + lastbc = strrchr(name, '\\'); + if (lastbc) + { + int i; + lastbc++; + for (i = 0; 1 ;i++) + { + name[i] = *lastbc++; + if (!name[i]) + break; + } + } +// printf("LoadLibrary wants: %s/%s\n", def_path, name); + if(strncmp(name, "c:\\windows\\", 11)==0)name+=11; if(name[0]!='/') { @@ -1848,10 +1868,10 @@ dbgprintf("strlen(0x%x='%s') => %d\n", str, str, result); return result; } -void *expstrcpy(char* str1, const char* str2) +int expstrcpy(char* str1, const char* str2) { - void *result=strcpy(str1, str2); - dbgprintf("strcpy(0x%x, 0x%x='%s') => %p\n", str1, str2, str2, result); + int result= (int) strcpy(str1, str2); + dbgprintf("strcpy(0x%x, 0x%x='%s') => %d\n", str1, str2, str2, result); return result; } int expstrcmp(const char* str1, const char* str2) @@ -1860,17 +1880,23 @@ dbgprintf("strcmp(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result); return result; } -void *expstrcat(char* str1, const char* str2) +int expstrcat(char* str1, const char* str2) { - void *result=strcat(str1, str2); - dbgprintf("strcat(0x%x='%s', 0x%x='%s') => %p\n", str1, str1, str2, str2, result); + int result= (int) strcat(str1, str2); + dbgprintf("strcat(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result); return result; } -void *expmemmove(void* dest, void* src, int n) +int expisalnum(int c) { - void *result=memmove(dest, src, n); - dbgprintf("memmove(0x%x, 0x%x, %d) => %p\n", dest, src, n, result); - return memmove; + int result= (int) isalnum(c); + dbgprintf("isalnum(0x%x='%c' => %d\n", c, c, result); + return result; +} +int expmemmove(void* dest, void* src, int n) +{ + int result= (int) memmove(dest, src, n); + dbgprintf("memmove(0x%x, 0x%x, %d) => %d\n", dest, src, n, result); + return result; } int expmemcmp(void* dest, void* src, int n) { @@ -1916,6 +1942,16 @@ if(string)wch_print(string); return result; } + +int WINAPI expIsBadStringPtrA(const char* string, int nchars) +{ + int result; +// if(string==0)result=1; else result=0; +// dbgprintf("IsBadStringPtrW(0x%x, %d) => %d", string, nchars, result); +// if(string)wch_print(string); + return result; +} + extern long WINAPI InterlockedExchangeAdd( long* dest, long incr ) { long ret; @@ -2354,6 +2390,45 @@ } +#if 0 +INT WINAPI expMulDiv(int nNumber,int nNumerator,int nDenominator) +{ + return ((long long)nNumber * (long long)nNumerator) / nDenominator; +} +#endif + +int WINAPI expMulDiv(int nNumber, int nNumerator, int nDenominator) +{ + static const long long max_int=0x7FFFFFFFLL; + static const long long min_int=-0x80000000LL; + long long tmp=(long long)nNumber*(long long)nNumerator; + if(!nDenominator)return 1; + tmp/=nDenominator; + if(tmp<min_int) return 1; + if(tmp>max_int) return 1; + return (int)tmp; +} + +LONG WINAPI explstrcmpiA(const char* str1, const char* str2) +{ + LONG result=strcasecmp(str1, str2); + dbgprintf("strcmpi(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result); + return result; +} + +LONG WINAPI explstrlenA(const char* str1) +{ + LONG result=strlen(str1); + dbgprintf("strlen(0x%x='%s') => %d\n", str1, str1, result); + return result; +} + +LONG WINAPI explstrcpyA(char* str1, const char* str2) +{ + int result= (int) strcpy(str1, str2); + dbgprintf("strcpy(0x%x, 0x%x='%s') => %d\n", str1, str2, str2, result); + return result; +} LONG WINAPI expInterlockedExchange(long *dest, long l) { @@ -2363,15 +2438,6 @@ return retval; } -INT WINAPI expMulDiv(int nNumber,int nNumerator,int nDenominator) -{ - return ((long long)nNumber * (long long)nNumerator) / nDenominator; -} - - - - - struct exports { char name[64]; @@ -2392,6 +2458,7 @@ FF(IsBadWritePtr, 357) FF(IsBadReadPtr, 354) FF(IsBadStringPtrW, -1) +FF(IsBadStringPtrA, -1) FF(DisableThreadLibraryCalls, -1) FF(CreateThread, -1) FF(CreateEventA, -1) @@ -2497,6 +2564,9 @@ FF(GetProcessAffinityMask, -1) FF(InterlockedExchange, -1) FF(MulDiv, -1) +FF(lstrcmpiA, -1) +FF(lstrlenA, -1) +FF(lstrcpyA, -1) }; struct exports exp_msvcrt[]={ @@ -2512,9 +2582,9 @@ FF(strcpy, -1) FF(strcmp, -1) FF(strcat, -1) +FF(isalnum, -1) FF(memmove, -1) FF(memcmp, -1) -//FF(memcpy, -1) FF(time, -1) }; struct exports exp_winmm[]={