Ignore:
Timestamp:
Feb 7, 2002, 5:34:54 PM (24 years ago)
Author:
sandervl
Message:

codepage, getlocaleinfo + thread tib updates

File:
1 edited

Legend:

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

    r7504 r7832  
    1 /* $Id: heapstring.cpp,v 1.48 2001-11-30 17:50:42 phaller Exp $ */
     1/* $Id: heapstring.cpp,v 1.49 2002-02-07 16:34:52 sandervl Exp $ */
    22/*
    33 * Project Odin Software License can be found in LICENSE.TXT
     
    9292
    9393ODINFUNCTIONNODBG1(int, lstrlenW,
    94                    LPCWSTR, arg1)
    95 {
    96   int rc;
    97 
    98   if(arg1 == NULL) {
     94                   LPCWSTR, str)
     95{
     96  if(str == NULL) {
    9997      SetLastError( ERROR_INVALID_PARAMETER );
    10098      return 0;
    10199  }
    102100
    103   rc = UniStrlen( (UniChar*)arg1);
     101  const WCHAR *s = str;
     102  while (*s) s++;
    104103  dprintf2(("KERNEL32: lstrlenW(%08xh) returns %d\n",
    105            arg1,
    106            rc));
    107   return rc;
     104            str, s - str));
     105
     106  return s - str;
    108107}
    109108
     
    149148
    150149ODINFUNCTIONNODBG2(LPWSTR, lstrcatW,
    151                    LPWSTR, arg1,
    152                    LPCWSTR, arg2)
    153 {
    154   dprintf2(("KERNEL32: OS2lstrcatW(%08xh,%08xh)\n",
    155            arg1,
    156            arg2));
    157 
    158   if(arg2 == NULL)
    159     return arg1;
    160 
    161   UniStrcat( (UniChar*) arg1, (UniChar*) arg2 );
    162   return arg1;
     150                   LPWSTR, dst,
     151                   LPCWSTR, src)
     152{
     153    dprintf2(("KERNEL32: OS2lstrcatW(%08xh,%08xh)\n",
     154              dst, src));
     155
     156    if(src == NULL)
     157        return dst;
     158
     159    strcpyW( dst + strlenW(dst), src );
     160    return dst;
    163161}
    164162
     
    375373        return NULL;
    376374
    377     UniStrcpy( (UniChar*)dest,
    378                (UniChar*)src );
     375    WCHAR *p = dest;
     376    while ((*p++ = *src++));
     377
    379378    return dest;
    380379}
     
    432431
    433432ODINFUNCTION3(LPWSTR, lstrcpynW,
    434               LPWSTR, dest,
     433              LPWSTR, dst,
    435434              LPCWSTR, src,
    436               int, arg3)
    437 {
    438   if (arg3 == 0)
    439     return NULL;
    440 
    441   UniStrncpy( (UniChar*)dest,
    442               (UniChar*)src,
    443               arg3-1); //CB: copy arg3-1 characters
    444   dest[arg3-1] = 0; //CB: set end
    445   return dest;
     435              int, n)
     436{
     437    LPWSTR p = dst;
     438
     439    /* In real windows the whole function is protected by an exception handler
     440     * that returns ERROR_INVALID_PARAMETER on faulty parameters
     441     * We currently just check for NULL.
     442     */
     443    if (!dst || !src) {
     444        SetLastError(ERROR_INVALID_PARAMETER);
     445        return 0;
     446    }
     447    while ((n-- > 1) && *src) *p++ = *src++;
     448    if (n >= 0) *p = 0;
     449    return dst;
    446450}
    447451
     
    587591    lstrcpynWtoA(ascii,
    588592               unicode,
    589                UniStrlen((UniChar*)unicode)+1); //end included
     593               lstrlenW((UniChar*)unicode)+1); //end included
    590594
    591595    return ascii;
Note: See TracChangeset for help on using the changeset viewer.