Author: pschweitzer Date: Sun Feb 20 19:40:15 2011 New Revision: 50838
URL: http://svn.reactos.org/svn/reactos?rev=50838&view=rev Log: [KERNEL32] - Get rid of old function Basep8BitStringToLiveUnicodeString() that doesn't exist under Windows, and that was even unused - Rename Basep8BitStringToHeapUnicodeString() to Basep8BitStringToDynamicUnicodeString() and fix its implementation (and all the calls) - Define BasepUnicodeStringTo8BitString()
Modified: trunk/reactos/dll/win32/kernel32/file/npipe.c trunk/reactos/dll/win32/kernel32/include/kernel32.h trunk/reactos/dll/win32/kernel32/misc/utils.c trunk/reactos/dll/win32/kernel32/process/procsup.c
Modified: trunk/reactos/dll/win32/kernel32/file/npipe.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/file/npi... ============================================================================== --- trunk/reactos/dll/win32/kernel32/file/npipe.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/file/npipe.c [iso-8859-1] Sun Feb 20 19:40:15 2011 @@ -251,7 +251,7 @@ UNICODE_STRING NameU;
/* Convert the name to Unicode */ - Basep8BitStringToHeapUnicodeString(&NameU, lpNamedPipeName); + Basep8BitStringToDynamicUnicodeString(&NameU, lpNamedPipeName);
/* Call the Unicode API */ r = WaitNamedPipeW(NameU.Buffer, nTimeOut);
Modified: trunk/reactos/dll/win32/kernel32/include/kernel32.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/include/... ============================================================================== --- trunk/reactos/dll/win32/kernel32/include/kernel32.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/include/kernel32.h [iso-8859-1] Sun Feb 20 19:40:15 2011 @@ -192,15 +192,12 @@ WINAPI Basep8BitStringToStaticUnicodeString(IN LPCSTR AnsiString);
-NTSTATUS -WINAPI -Basep8BitStringToLiveUnicodeString(OUT PUNICODE_STRING UnicodeString, - IN LPCSTR String); - -NTSTATUS -WINAPI -Basep8BitStringToHeapUnicodeString(OUT PUNICODE_STRING UnicodeString, - IN LPCSTR String); +BOOLEAN +WINAPI +Basep8BitStringToDynamicUnicodeString(OUT PUNICODE_STRING UnicodeString, + IN LPCSTR String); + +#define BasepUnicodeStringTo8BitString RtlUnicodeStringToAnsiString
typedef NTSTATUS (NTAPI *PRTL_CONVERT_STRING)(IN PUNICODE_STRING UnicodeString, IN PANSI_STRING AnsiString,
Modified: trunk/reactos/dll/win32/kernel32/misc/utils.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/uti... ============================================================================== --- trunk/reactos/dll/win32/kernel32/misc/utils.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/misc/utils.c [iso-8859-1] Sun Feb 20 19:40:15 2011 @@ -4,6 +4,7 @@ * FILE: lib/kernel32/misc/utils.c * PURPOSE: Utility and Support Functions * PROGRAMMER: Alex Ionescu (alex@relsoft.net) + * Pierre Schweitzer (pierre.schweitzer@reactos.org) */
/* INCLUDES ****************************************************************/ @@ -24,33 +25,6 @@
/* FUNCTIONS ****************************************************************/
-/* - * Converts an ANSI or OEM String to the specified Unicode String - */ -NTSTATUS -WINAPI -Basep8BitStringToLiveUnicodeString(OUT PUNICODE_STRING UnicodeString, - IN LPCSTR String) -{ - ANSI_STRING AnsiString; - NTSTATUS Status; - - DPRINT("Basep8BitStringToLiveUnicodeString\n"); - - /* Create the ANSI String */ - RtlInitAnsiString(&AnsiString, String); - - /* Convert from OEM or ANSI */ - Status = Basep8BitStringToUnicodeString(UnicodeString, &AnsiString, FALSE); - - /* Return Status */ - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus(Status); - } - return Status; -} -
/* * Converts an ANSI or OEM String to the TEB StaticUnicodeString @@ -81,29 +55,38 @@ return StaticString; }
-NTSTATUS -WINAPI -Basep8BitStringToHeapUnicodeString(OUT PUNICODE_STRING UnicodeString, - IN LPCSTR String) +/* + * Allocates space from the Heap and converts an Unicode String into it + */ +BOOLEAN +WINAPI +Basep8BitStringToDynamicUnicodeString(OUT PUNICODE_STRING UnicodeString, + IN LPCSTR String) { ANSI_STRING AnsiString; NTSTATUS Status;
- DPRINT("Basep8BitStringToCachedUnicodeString\n"); - + DPRINT("Basep8BitStringToDynamicUnicodeString\n"); + /* Initialize an ANSI String */ - RtlInitAnsiString(&AnsiString, String); - + if (!NT_SUCCESS(RtlInitAnsiStringEx(&AnsiString, String))) + { + SetLastError(ERROR_BUFFER_OVERFLOW); + return FALSE; + } + /* Convert it */ - Status = Basep8BitStringToUnicodeString(UnicodeString, &AnsiString, TRUE); - + Status = Basep8BitStringToUnicodeString(UnicodeString, &AnsiString, TRUE); + /* Handle failure */ if (!NT_SUCCESS(Status)) { SetLastErrorByStatus(Status); - } + return FALSE; + } + /* Return Status */ - return Status; + return TRUE; }
/*
Modified: trunk/reactos/dll/win32/kernel32/process/procsup.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/process/... ============================================================================== --- trunk/reactos/dll/win32/kernel32/process/procsup.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/process/procsup.c [iso-8859-1] Sun Feb 20 19:40:15 2011 @@ -1563,8 +1563,8 @@ else { /* Use a dynamic version */ - Basep8BitStringToHeapUnicodeString(&LiveCommandLine, - lpCommandLine); + Basep8BitStringToDynamicUnicodeString(&LiveCommandLine, + lpCommandLine); } } else @@ -1576,13 +1576,13 @@ /* Convert the Name and Directory */ if (lpApplicationName) { - Basep8BitStringToHeapUnicodeString(&ApplicationName, - lpApplicationName); + Basep8BitStringToDynamicUnicodeString(&ApplicationName, + lpApplicationName); } if (lpCurrentDirectory) { - Basep8BitStringToHeapUnicodeString(&CurrentDirectory, - lpCurrentDirectory); + Basep8BitStringToDynamicUnicodeString(&CurrentDirectory, + lpCurrentDirectory); }
/* Now convert Startup Strings */