summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-03-04 09:04:45 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-03-04 09:04:45 +0000
commit2987b207ede6232d1e5948675e03b3d22ebfdb8f (patch)
treef486611820489a72f76bd4129a2fc04539d9932f /loader
parent8e2bc40df5001ccef88f1b5b756d33fbc2fcab46 (diff)
downloadmpv-2987b207ede6232d1e5948675e03b3d22ebfdb8f.tar.bz2
mpv-2987b207ede6232d1e5948675e03b3d22ebfdb8f.tar.xz
Fix and simplify the WideCharToMultiByte and MultiByteToWideChar pseudo-implementations.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22431 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader')
-rw-r--r--loader/ext.c34
1 files changed, 10 insertions, 24 deletions
diff --git a/loader/ext.c b/loader/ext.c
index b702cc1dd3..5998bc058f 100644
--- a/loader/ext.c
+++ b/loader/ext.c
@@ -559,39 +559,25 @@ INT WINAPI WideCharToMultiByte(UINT codepage, DWORD flags, LPCWSTR src,
INT srclen,LPSTR dest, INT destlen, LPCSTR defch, WIN_BOOL* used_defch)
{
int i;
- if(src==0)
- return 0;
- if ((srclen==-1)&&(dest==0)) return 0;
if(srclen==-1){srclen=0; while(src[srclen++]);}
-// for(i=0; i<srclen; i++)
-// printf("%c", src[i]);
-// printf("\n");
- if(dest==0)
- {
- for(i=0; i<srclen; i++)
- {
- src++;
- if(*src==0)
- return i+1;
- }
- return srclen+1;
- }
+ if(destlen==0)
+ return srclen;
if(used_defch)
*used_defch=0;
for(i=0; i<min(srclen, destlen); i++)
- {
- *dest=(char)*src;
- dest++;
- src++;
- if(*src==0)
- return i+1;
- }
+ *dest++=(char)*src++;
return min(srclen, destlen);
}
INT WINAPI MultiByteToWideChar(UINT codepage,DWORD flags, LPCSTR src, INT srclen,
LPWSTR dest, INT destlen)
{
- return 0;
+ int i;
+ if(srclen==-1){srclen=0; while(src[srclen++]);}
+ if(destlen==0)
+ return srclen;
+ for(i=0; i<min(srclen, destlen); i++)
+ *dest++=(WCHAR)*src++;
+ return min(srclen, destlen);
}
HANDLE WINAPI OpenFileMappingA(DWORD access, WIN_BOOL prot, LPCSTR name)
{