Ignore:
Timestamp:
Apr 29, 2000, 8:26:59 PM (25 years ago)
Author:
sandervl
Message:

init changes, export for installation program, create additional directories & registry keys, added lvl2 debug log feature, override for windows dir re-added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/unicode.cpp

    r2803 r3461  
    1 /* $Id: unicode.cpp,v 1.22 2000-02-16 14:25:45 sandervl Exp $ */
     1/* $Id: unicode.cpp,v 1.23 2000-04-29 18:26:59 sandervl Exp $ */
    22
    33/*
     
    7777 */
    7878INT WINAPI MultiByteToWideChar(UINT page, DWORD flags,
    79                      LPCSTR src, INT srclen,
    80                                  LPWSTR dst, INT dstlen)
     79                               LPCSTR src, INT srclen,
     80                               LPWSTR dst, INT dstlen)
    8181{
    8282    int ret;
    8383
     84    dprintf2(("MultiByteToWideChar: %d %x (%s %d) (%x %d)", page, flags, src, srclen, dst, dstlen));
    8485    if (srclen == -1)
    85     srclen = lstrlenA(src)+1;
     86        srclen = lstrlenA(src)+1;
    8687    if (!dstlen || !dst)
    87     return srclen;
     88        return srclen;
    8889
    8990    ret = srclen;
    9091    while (srclen && dstlen) {
    91     *dst = (WCHAR)(unsigned char)*src;
    92     dst++;    src++;
    93     dstlen--; srclen--;
     92        *dst = (WCHAR)(unsigned char)*src;
     93        dst++;    src++;
     94        dstlen--; srclen--;
    9495    }
    9596    if (!dstlen && srclen) {
    96     SetLastError(ERROR_INSUFFICIENT_BUFFER);
    97     return 0;
     97        SetLastError(ERROR_INSUFFICIENT_BUFFER);
     98        return 0;
    9899    }
    99100    return ret;
     
    141142    int dont_copy= (dstlen==0);
    142143
     144    dprintf2(("WideCharToMultiByte: %d %x (%x %d) (%x %d)", page, flags, src, srclen, dst, dstlen));
     145
    143146    if ((!src) || ((!dst) && (!dont_copy)) )
    144     {   SetLastError(ERROR_INVALID_PARAMETER);
    145     return 0;
     147    {   
     148        SetLastError(ERROR_INVALID_PARAMETER);
     149        return 0;
    146150    }
    147151
     
    161165    while(srclen && (dont_copy || dstlen))
    162166    {
    163     if(!dont_copy){
    164         if(*src<256)
    165         *dst = *src;
    166         else
    167         {
    168         /* ??? The WC_DEFAULTCHAR flag only gets used in
    169         * combination with the WC_COMPOSITECHECK flag or at
    170          * least this is what it seems from using the function
    171          * on NT4.0 in combination with reading the documentation.
    172          */
    173         *dst = defchar ? *defchar : '?';
    174         if(used)*used=1;
    175         }
    176         dstlen--;
    177         dst++;
    178     }
    179     count++;
    180     srclen--;
    181     if((!*src) && care_for_eos) {
    182         eos = 1;
    183         break;
    184     }
    185     src++;
     167        if(!dont_copy){
     168                if(*src<256)
     169                        *dst = *src;
     170                else
     171                {
     172                /* ??? The WC_DEFAULTCHAR flag only gets used in
     173                * combination with the WC_COMPOSITECHECK flag or at
     174                 * least this is what it seems from using the function
     175                 * on NT4.0 in combination with reading the documentation.
     176                 */
     177                        *dst = defchar ? *defchar : '?';
     178                        if(used)*used=1;
     179                }
     180                dstlen--;
     181                dst++;
     182        }
     183        count++;
     184        srclen--;
     185        if((!*src) && care_for_eos) {
     186                eos = 1;
     187                break;
     188        }
     189        src++;
    186190    }
    187191    if (dont_copy)
    188     return count;
     192        return count;
    189193
    190194    if (!eos && srclen > 0) {
    191     SetLastError(ERROR_INSUFFICIENT_BUFFER);
    192     return 0;
     195        SetLastError(ERROR_INSUFFICIENT_BUFFER);
     196        return 0;
    193197    }
    194198    return count;
Note: See TracChangeset for help on using the changeset viewer.