diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-03-04 09:04:45 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-03-04 09:04:45 +0000 |
commit | 2987b207ede6232d1e5948675e03b3d22ebfdb8f (patch) | |
tree | f486611820489a72f76bd4129a2fc04539d9932f /loader | |
parent | 8e2bc40df5001ccef88f1b5b756d33fbc2fcab46 (diff) | |
download | mpv-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.c | 34 |
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) { |