Changeset 557 for trunk/src/NTDLL/ntdll.cpp
- Timestamp:
- Aug 18, 1999, 11:45:14 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/NTDLL/ntdll.cpp
r51 r557 1 /* $Id: ntdll.cpp,v 1. 1 1999-06-07 22:17:40 sandervlExp $ */1 /* $Id: ntdll.cpp,v 1.2 1999-08-18 21:45:13 phaller Exp $ */ 2 2 3 3 /* … … 51 51 52 52 53 /***********************************************************************54 * lstrcpynAtoW (Not a Windows API)55 * Note: this function differs from the UNIX strncpy, it _always_ writes56 * a terminating \057 */58 LPWSTR WIN32API lstrcpynAtoW(LPWSTR dst,59 LPCSTR src,60 INT n)61 {62 LPWSTR p = dst;63 while ((n-- > 1) && *src) *p++ = (WCHAR)(unsigned char)*src++;64 if (n >= 0) *p = 0;65 return dst;66 }67 68 69 /***********************************************************************70 * lstrcpynWtoA (Not a Windows API)71 * Note: this function differs from the UNIX strncpy, it _always_ writes72 * a terminating \073 */74 LPSTR WIN32API lstrcpynWtoA(LPSTR dst,75 LPCWSTR src,76 INT n)77 {78 LPSTR p = dst;79 while ((n-- > 1) && *src) *p++ = (CHAR)*src++;80 if (n >= 0) *p = 0;81 return dst;82 }83 84 85 /***********************************************************************86 * lstrncmp32W (Not a Windows API)87 */88 INT WIN32API lstrncmpW( LPCWSTR str1, LPCWSTR str2, INT n )89 {90 if (!n)91 return 0;92 93 while ((--n > 0) && *str1 && (*str1 == *str2))94 {95 str1++;96 str2++;97 }98 99 return (INT)(*str1 - *str2);100 }101 102 103 104 /***********************************************************************105 * HEAP_strdupA106 */107 LPSTR HEAP_strdupA(HANDLE heap,108 DWORD flags,109 LPCSTR str)110 {111 LPSTR p = (LPSTR)HeapAlloc(heap,112 flags,113 lstrlenA(str) + 1 );114 115 lstrcpyA(p, str);116 return p;117 }118 119 120 /***********************************************************************121 * HEAP_strdupW122 */123 LPWSTR HEAP_strdupW(HANDLE heap,124 DWORD flags,125 LPCWSTR str)126 {127 INT len = lstrlenW(str) + 1;128 LPWSTR p = (LPWSTR)HeapAlloc(heap,129 flags,130 len * sizeof(WCHAR) );131 lstrcpyW(p,132 str);133 return p;134 }135 136 137 /***********************************************************************138 * HEAP_strdupWtoA139 */140 LPSTR HEAP_strdupWtoA(HANDLE heap,141 DWORD flags,142 LPCWSTR str )143 {144 LPSTR ret;145 146 if (!str)147 return NULL;148 149 ret = (LPSTR)HeapAlloc(heap,150 flags,151 lstrlenW(str) + 1 );152 UnicodeToAscii((LPWSTR)str,153 ret);154 /* lstrcpyWtoA(ret,155 str);*/156 return ret;157 }158 159 /***********************************************************************160 * HEAP_strdupAtoW161 */162 LPWSTR HEAP_strdupAtoW(HANDLE heap,163 DWORD flags,164 LPCSTR str)165 {166 LPWSTR ret;167 168 if (!str)169 return NULL;170 171 ret = (LPWSTR)HeapAlloc(heap,172 flags,173 (lstrlenA(str)+1) * sizeof(WCHAR) );174 AsciiToUnicode((char *)str,175 ret);176 /* lstrcpyAtoW(ret,177 str );*/178 179 return ret;180 }181
Note:
See TracChangeset
for help on using the changeset viewer.