Changeset 4380 for trunk/src/kernel32/environ.cpp
- Timestamp:
- Oct 2, 2000, 6:04:51 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/environ.cpp
r4224 r4380 1 /* $Id: environ.cpp,v 1. 6 2000-09-08 18:07:49 sandervlExp $ */1 /* $Id: environ.cpp,v 1.7 2000-10-02 16:04:51 phaller Exp $ */ 2 2 3 3 /* … … 33 33 #include "dbglocal.h" 34 34 35 //****************************************************************************** 36 //****************************************************************************** 37 LPSTR WIN32API GetEnvironmentStringsA(void) 38 { 39 dprintf(("KERNEL32: OS2GetEnvironmentStringsA\n")); 40 return (LPSTR) O32_GetEnvironmentStrings(); 41 } 42 //****************************************************************************** 43 //****************************************************************************** 44 LPWSTR WIN32API GetEnvironmentStringsW(VOID) 45 { 46 char *envstrings = (char *)O32_GetEnvironmentStrings(); 47 char *tmp; 48 LPWSTR wenvstrings; 49 int len, i; 50 51 dprintf(("KERNEL32: GetEnvironmentStringsW\n")); 35 36 ODINDEBUGCHANNEL(KERNEL32-ENVIRONMENT) 37 38 39 //****************************************************************************** 40 //****************************************************************************** 41 ODINFUNCTION0(LPSTR, GetEnvironmentStringsA) 42 { 43 return (LPSTR) O32_GetEnvironmentStrings(); 44 } 45 //****************************************************************************** 46 //****************************************************************************** 47 ODINFUNCTION0(LPWSTR, GetEnvironmentStringsW) 48 { 49 char *envstrings = (char *)O32_GetEnvironmentStrings(); 50 char *tmp; 51 LPWSTR wenvstrings; 52 int len, i; 52 53 53 54 if(envstrings == NULL) … … 73 74 //****************************************************************************** 74 75 //****************************************************************************** 75 BOOL WIN32API FreeEnvironmentStringsA(LPSTR envstrings) 76 { 77 dprintf(("KERNEL32: FreeEnvironmentStringsA\n")); 76 ODINFUNCTION1(BOOL, FreeEnvironmentStringsA, 77 LPSTR, envstrings) 78 { 78 79 return(TRUE); 79 80 } 80 81 //****************************************************************************** 81 82 //****************************************************************************** 82 BOOL WIN32API FreeEnvironmentStringsW(LPWSTR envstrings) 83 { 84 dprintf(("KERNEL32: FreeEnvironmentStringsW\n")); 83 ODINFUNCTION1(BOOL, FreeEnvironmentStringsW, 84 LPWSTR, envstrings) 85 { 85 86 free(envstrings); 86 87 return(TRUE); … … 88 89 //****************************************************************************** 89 90 //****************************************************************************** 90 BOOL WIN32API SetEnvironmentVariableA(LPCSTR arg1, LPCSTR arg2) 91 { 92 dprintf(("KERNEL32: SetEnvironmentVariable %s to %s\n", arg1, arg2)); 93 return O32_SetEnvironmentVariable(arg1, arg2); 94 } 95 //****************************************************************************** 96 //****************************************************************************** 97 BOOL WIN32API SetEnvironmentVariableW(LPCWSTR lpName, LPCWSTR lpValue) 98 { 99 char *asciiname, *asciivalue; 100 BOOL rc; 101 102 dprintf(("KERNEL32: OS2SetEnvironmentVariableW\n")); 103 asciiname = UnicodeToAsciiString((LPWSTR)lpName); 104 asciivalue = UnicodeToAsciiString((LPWSTR)lpValue); 105 rc = O32_SetEnvironmentVariable(asciiname, asciivalue); 106 FreeAsciiString(asciivalue); 107 FreeAsciiString(asciiname); 108 return(rc); 109 } 110 //****************************************************************************** 111 //****************************************************************************** 112 DWORD WIN32API GetEnvironmentVariableA(LPCSTR arg1, LPSTR arg2, DWORD arg3) 113 { 114 dprintf(("KERNEL32: GetEnvironmentVariable %s\n", arg1)); 115 return O32_GetEnvironmentVariable(arg1, arg2, arg3); 116 } 117 //****************************************************************************** 118 //****************************************************************************** 119 DWORD WIN32API GetEnvironmentVariableW(LPCWSTR lpName, LPWSTR lpBuffer, 120 DWORD nSize) 91 ODINFUNCTION2(BOOL, SetEnvironmentVariableA, 92 LPCSTR, lpName, 93 LPCSTR, lpValue) 94 { 95 dprintf(("KERNEL32: SetEnvironmentVariable %s to %s\n", lpName, lpValue)); 96 return O32_SetEnvironmentVariable(lpName, lpValue); 97 } 98 //****************************************************************************** 99 //****************************************************************************** 100 ODINFUNCTION2(BOOL, SetEnvironmentVariableW, 101 LPCWSTR, lpName, 102 LPCWSTR, lpValue) 103 { 104 char *asciiname, *asciivalue; 105 BOOL rc; 106 107 asciiname = UnicodeToAsciiString((LPWSTR)lpName); 108 asciivalue = UnicodeToAsciiString((LPWSTR)lpValue); 109 dprintf(("KERNEL32: SetEnvironmentVariable %s to %s\n", asciiname, asciivalue)); 110 rc = O32_SetEnvironmentVariable(asciiname, asciivalue); 111 FreeAsciiString(asciivalue); 112 FreeAsciiString(asciiname); 113 return(rc); 114 } 115 //****************************************************************************** 116 //****************************************************************************** 117 ODINFUNCTION3(DWORD, GetEnvironmentVariableA, 118 LPCSTR, lpName, 119 LPSTR, lpBuffer, 120 DWORD, nSize) 121 { 122 return O32_GetEnvironmentVariable(lpName, lpBuffer, nSize); 123 } 124 //****************************************************************************** 125 //****************************************************************************** 126 ODINFUNCTION3(DWORD, GetEnvironmentVariableW, 127 LPCWSTR, lpName, 128 LPWSTR, lpBuffer, 129 DWORD, nSize) 121 130 { 122 131 char *astring, *asciibuffer; 123 132 DWORD rc; 124 133 125 dprintf(("KERNEL32: OS2GetEnvironmentVariableW\n")); 126 asciibuffer = (char *)malloc(nSize+1); 127 *asciibuffer = 0; 128 astring = UnicodeToAsciiString((LPWSTR)lpName); 129 130 rc = O32_GetEnvironmentVariable(astring, asciibuffer, nSize); 131 AsciiToUnicode(asciibuffer, lpBuffer); 132 FreeAsciiString(astring); 133 free(asciibuffer); 134 return(rc); 134 asciibuffer = (char *)malloc(nSize+1); 135 *asciibuffer = 0; 136 astring = UnicodeToAsciiString((LPWSTR)lpName); 137 138 rc = O32_GetEnvironmentVariable(astring, asciibuffer, nSize); 139 AsciiToUnicode(asciibuffer, lpBuffer); 140 FreeAsciiString(astring); 141 free(asciibuffer); 142 return(rc); 135 143 } 136 144 /*********************************************************************** … … 169 177 *****************************************************************************/ 170 178 171 DWORD WIN32API ExpandEnvironmentStringsA( LPCSTR src, LPSTR dst, DWORD count ) 172 { 173 DWORD len, total_size = 1; /* 1 for terminating '\0' */ 174 LPCSTR p, var; 175 176 dprintf(("KERNEL32:ExpandEnvironmentStringsA '%s', %08x, %08x", 177 src, dst, count 178 )); 179 ODINFUNCTION3(DWORD; ExpandEnvironmentStringsA, 180 LPCSTR, src, 181 LPSTR, dst, 182 DWORD, count) 183 { 184 DWORD len, total_size = 1; /* 1 for terminating '\0' */ 185 LPCSTR p, var; 186 187 dprintf(("KERNEL32:ExpandEnvironmentStringsA '%s', %08x, %08x", 188 src, dst, count 189 )); 179 190 180 191 if (!count) dst = NULL; … … 230 241 *dst = '\0'; 231 242 } 232 dprintf(("KERNEL32:ExpandEnvironmentStringsA returned %s %d",233 dst, total_size));234 243 return total_size; 235 244 } … … 254 263 *****************************************************************************/ 255 264 256 DWORD WIN32API ExpandEnvironmentStringsW(LPCWSTR lpSrc, LPWSTR lpDst, DWORD nSize) 257 { 258 LPSTR srcA = HEAP_strdupWtoA( GetProcessHeap(), 0, lpSrc ); 259 LPSTR dstA = lpDst ? (LPSTR)HeapAlloc( GetProcessHeap(), 0, nSize ) : NULL; 260 261 dprintf(("KERNEL32:ExpandEnvironmentStringsW(%08x,%08x,%08x)", lpSrc, lpDst, nSize)); 262 263 DWORD ret = ExpandEnvironmentStringsA( srcA, dstA, nSize ); 264 if (dstA) 265 { 266 lstrcpyAtoW( lpDst, dstA ); 267 HeapFree( GetProcessHeap(), 0, dstA ); 268 } 269 HeapFree( GetProcessHeap(), 0, srcA ); 270 return ret; 271 } 272 //****************************************************************************** 273 //****************************************************************************** 265 ODINFUNCTION3(DWORD; ExpandEnvironmentStringsW, 266 LPCWSTR, src, 267 LPWSTR, dst, 268 DWORD, count) 269 { 270 LPSTR srcA = HEAP_strdupWtoA( GetProcessHeap(), 0, lpSrc ); 271 LPSTR dstA = lpDst ? (LPSTR)HeapAlloc( GetProcessHeap(), 0, nSize ) : NULL; 272 273 dprintf(("KERNEL32:ExpandEnvironmentStringsW(%08x,%08x,%08x)", lpSrc, lpDst, nSize)); 274 275 DWORD ret = ExpandEnvironmentStringsA( srcA, dstA, nSize ); 276 if (dstA) 277 { 278 lstrcpyAtoW( lpDst, dstA ); 279 HeapFree( GetProcessHeap(), 0, dstA ); 280 } 281 HeapFree( GetProcessHeap(), 0, srcA ); 282 return ret; 283 } 284 //****************************************************************************** 285 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.