Ignore:
Timestamp:
May 10, 2000, 3:13:32 PM (25 years ago)
Author:
sandervl
Message:

atom fix

File:
1 edited

Legend:

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

    r2802 r3512  
    1 /* $Id: atom.cpp,v 1.7 2000-02-16 14:25:30 sandervl Exp $ */
     1/* $Id: atom.cpp,v 1.8 2000-05-10 13:13:31 sandervl Exp $ */
    22
    33/*
     
    1212#include <os2win.h>
    1313#include "unicode.h"
     14#include <heapstring.h>
    1415
    1516#define DBG_LOCALLOG    DBG_atom
     
    2021ATOM WIN32API FindAtomA( LPCSTR arg1)
    2122{
    22     dprintf(("KERNEL32:  OS2FindAtomA\n"));
     23    dprintf(("KERNEL32:  FindAtomA\n"));
    2324    return O32_FindAtom(arg1);
    2425}
     
    3031 char *astring;
    3132
    32     dprintf(("KERNEL32:  OS2FindAtomW"));
     33    dprintf(("KERNEL32:  FindAtomW"));
    3334    if (arg1 < (LPCWSTR)0x10000)
    3435        rc = O32_FindAtom((char*)arg1);
     
    4546ATOM WIN32API AddAtomA(LPCSTR arg1)
    4647{
    47     dprintf(("KERNEL32:  OS2AddAtomA\n"));
    48     return O32_AddAtom(arg1);
     48 ATOM atom;
     49
     50    atom = O32_AddAtom(arg1);
     51    if(HIWORD(arg1)) {
     52         dprintf(("KERNEL32: AddAtomA %s returned %x", arg1, atom));
     53    }
     54    else dprintf(("KERNEL32: AddAtomA %x returned %x", arg1, atom));
     55    return atom;
    4956}
    5057//******************************************************************************
     
    5562 char *astring;
    5663
    57     dprintf(("KERNEL32:  OS2AddAtomW\n"));
    58     if (arg1 < (LPCWSTR)0x10000)
    59         rc = O32_AddAtom((char*)arg1);
    60     else
    61     {
    62         astring = UnicodeToAsciiString((LPWSTR)arg1);
    63         rc = O32_AddAtom(astring);
     64    if(HIWORD(arg1) == 0) {
     65        rc = AddAtomA((char*)arg1);
     66    }
     67    else
     68    {
     69        astring = UnicodeToAsciiString((LPWSTR)arg1);
     70        rc = AddAtomA(astring);
    6471        FreeAsciiString(astring);
    6572    }
     
    7178UINT WIN32API GetAtomNameA( ATOM arg1, LPSTR arg2, int  arg3)
    7279{
    73     dprintf(("KERNEL32:  OS2GetAtomNameA\n"));
     80    dprintf(("KERNEL32:  GetAtomNameA\n"));
    7481    return O32_GetAtomName(arg1, arg2, arg3);
    7582}
     
    8289 char *astring;
    8390
    84     dprintf(("KERNEL32:  OS2GetAtomNameW\n"));
     91    dprintf(("KERNEL32:  GetAtomNameW\n"));
    8592    astring = UnicodeToAsciiString(arg2); /* FIXME! */
    8693    rc = O32_GetAtomName(arg1, astring, arg3);
     
    9299ATOM WIN32API DeleteAtom( ATOM arg1)
    93100{
    94     dprintf(("KERNEL32:  OS2DeleteAtom\n"));
     101    dprintf(("KERNEL32:  DeleteAtom\n"));
    95102    return O32_DeleteAtom(arg1);
    96103}
     
    99106ATOM WIN32API GlobalDeleteAtom( ATOM arg1)
    100107{
    101     dprintf(("KERNEL32:  OS2GlobalDeleteAtom\n"));
     108    dprintf(("KERNEL32:  GlobalDeleteAtom\n"));
    102109    return O32_GlobalDeleteAtom(arg1);
    103110}
     
    106113BOOL WIN32API InitAtomTable( DWORD arg1)
    107114{
    108     dprintf(("KERNEL32:  OS2InitAtomTable\n"));
     115    dprintf(("KERNEL32:  InitAtomTable\n"));
    109116    return O32_InitAtomTable(arg1);
    110117}
     
    113120ATOM WIN32API GlobalAddAtomA(LPCSTR arg1)
    114121{
    115     dprintf(("KERNEL32:  OS2GlobalAddAtomA %s\n", arg1));
    116     return O32_GlobalAddAtom(arg1);
     122 ATOM atom;
     123
     124    atom = O32_GlobalAddAtom(arg1);
     125    if(HIWORD(arg1)) {
     126         dprintf(("KERNEL32: GlobalAddAtomA %s returned %x", arg1, atom));
     127    }
     128    else dprintf(("KERNEL32: GlobalAddAtomA %x returned %x", arg1, atom));
     129    return atom;
    117130}
    118131//******************************************************************************
     
    123136 ATOM  rc;
    124137
    125     if (arg1 < (LPCWSTR)0x10000)
    126     {
    127         dprintf(("KERNEL32:  OS2GlobalAddAtomW %#4x\n", astring));
    128         rc = O32_GlobalAddAtom((char*)arg1);
    129     }
    130     else
    131     {
    132         astring = UnicodeToAsciiString((LPWSTR)arg1);
    133         dprintf(("KERNEL32:  OS2GlobalAddAtomW %s\n", astring));
    134         rc = O32_GlobalAddAtom(astring);
     138    if(HIWORD(arg1) == 0)
     139    {
     140        rc = GlobalAddAtomA((char*)arg1);
     141    }
     142    else
     143    {
     144        astring = UnicodeToAsciiString((LPWSTR)arg1);
     145        rc = GlobalAddAtomA(astring);
    135146        FreeAsciiString(astring);
    136147    }
     
    154165 ATOM  rc;
    155166
    156     dprintf(("KERNEL32:  OS2GlobalFindAtomW\n"));
    157     if (arg1 < (LPCWSTR)0x10000)
    158         rc = O32_GlobalFindAtom((char*)arg1);
    159     else
    160     {
    161         astring = UnicodeToAsciiString((LPWSTR)arg1);
    162         rc = O32_GlobalFindAtom(astring);
    163         FreeAsciiString(astring);
    164     }
    165     return(rc);
    166 }
    167 //******************************************************************************
    168 //******************************************************************************
    169 UINT WIN32API GlobalGetAtomNameA( ATOM arg1, LPSTR arg2, int  arg3)
    170 {
    171     dprintf(("KERNEL32:  OS2GlobalGetAtomNameA\n"));
    172     return O32_GlobalGetAtomName(arg1, arg2, arg3);
    173 }
    174 //******************************************************************************
    175 //******************************************************************************
    176 UINT WIN32API GlobalGetAtomNameW( ATOM arg1, LPWSTR arg2, int  arg3)
    177 {
    178  char *astring;
    179  ATOM  rc;
    180 
    181     dprintf(("KERNEL32:  OS2GlobalGetAtomNameW\n"));
    182     astring = UnicodeToAsciiString((LPWSTR)arg1); /* FIXME! */
    183     rc = O32_GlobalGetAtomName(arg1, astring, arg3);
    184     FreeAsciiString(astring);
    185     return(rc);
    186 }
     167    if(HIWORD(arg1) == 0)
     168        rc = GlobalFindAtomA((char*)arg1);
     169    else
     170    {
     171        astring = UnicodeToAsciiString((LPWSTR)arg1);
     172        rc = GlobalFindAtomA(astring);
     173        FreeAsciiString(astring);
     174    }
     175    return(rc);
     176}
     177//******************************************************************************
     178//******************************************************************************
     179UINT WIN32API GlobalGetAtomNameA(ATOM atom, LPSTR lpszBuffer, int cchBuffer)
     180{
     181    dprintf(("KERNEL32: GlobalGetAtomNameA %x %x %d", atom, lpszBuffer, cchBuffer));
     182    return O32_GlobalGetAtomName(atom, lpszBuffer, cchBuffer);
     183}
     184//******************************************************************************
     185//******************************************************************************
     186UINT WIN32API GlobalGetAtomNameW(ATOM atom, LPWSTR lpszBuffer, int cchBuffer)
     187{
     188 char *astring;
     189 UINT rc;
     190
     191    dprintf(("KERNEL32: GlobalGetAtomNameW %x %x %d", atom, lpszBuffer, cchBuffer));
     192    astring = (char *)alloca(cchBuffer);
     193    if(astring == NULL) {
     194        dprintf(("GlobalGetAtomNameW: alloca failed!!"));
     195        DebugInt3();
     196        return 0;
     197    }
     198    rc = GlobalGetAtomNameA(atom, astring, cchBuffer);
     199    if(rc) {
     200         lstrcpyAtoW(lpszBuffer, astring);
     201    }
     202    else lpszBuffer[0] = 0; //necessary?
     203    return rc;
     204}
     205//******************************************************************************
     206//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.