Fix RtlStringFromGUID.

svn path=/trunk/; revision=7860
This commit is contained in:
Filip Navara 2004-01-24 11:59:04 +00:00
parent 85ac449051
commit 52963a354f
2 changed files with 46 additions and 28 deletions

View file

@ -1,4 +1,4 @@
/* $Id: unicode.c,v 1.32 2004/01/23 19:49:07 navaraf Exp $ /* $Id: unicode.c,v 1.33 2004/01/24 11:59:04 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -1848,28 +1848,37 @@ RtlStringFromGUID(
OUT PUNICODE_STRING GuidString OUT PUNICODE_STRING GuidString
) )
{ {
STATIC CONST PWCHAR Hex = L"0123456789ABCDEF";
WCHAR Buffer[40];
PWCHAR BufferPtr;
INT i;
if( Guid == NULL ) if( Guid == NULL )
{ {
return FALSE; return FALSE;
} }
PWCHAR Buffer;
PWCHAR String4; swprintf( Buffer, L"{%08lX-%04X-%04X-%02X%02X-",
PWCHAR String4a;
PWCHAR String4b;
wcsncpy( String4a, String4, 4 );
wcsncpy( String4b, String4+4, wcslen(String4) );
swprintf( Buffer, L"{%X-%X-%X-%X-%X}",
Guid->Data1, Guid->Data1,
Guid->Data2, Guid->Data2,
Guid->Data3, Guid->Data3,
String4a, Guid->Data4[0],
String4b ); Guid->Data4[1]);
BufferPtr = Buffer + 25;
/* 6 hex bytes */
for (i = 2; i < 8; i++)
{
*BufferPtr++ = Hex[Guid->Data4[i] >> 4];
*BufferPtr++ = Hex[Guid->Data4[i] & 0xf];
}
*BufferPtr++ = '}';
*BufferPtr++ = '\0';
RtlInitUnicodeString( GuidString, Buffer ); RtlCreateUnicodeString( GuidString, Buffer );
return(TRUE); return TRUE;
} }
/* EOF */ /* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: unicode.c,v 1.35 2004/01/23 18:00:53 navaraf Exp $ /* $Id: unicode.c,v 1.36 2004/01/24 11:59:04 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -1062,28 +1062,37 @@ RtlStringFromGUID(
OUT PUNICODE_STRING GuidString OUT PUNICODE_STRING GuidString
) )
{ {
STATIC CONST PWCHAR Hex = L"0123456789ABCDEF";
WCHAR Buffer[40];
PWCHAR BufferPtr;
INT i;
if( Guid == NULL ) if( Guid == NULL )
{ {
return FALSE; return FALSE;
} }
PWCHAR Buffer;
PWCHAR String4; swprintf( Buffer, L"{%08lX-%04X-%04X-%02X%02X-",
PWCHAR String4a;
PWCHAR String4b;
wcsncpy( String4a, String4, 4 );
wcsncpy( String4b, String4+4, wcslen(String4) );
swprintf( Buffer, L"{%X-%X-%X-%X-%X}",
Guid->Data1, Guid->Data1,
Guid->Data2, Guid->Data2,
Guid->Data3, Guid->Data3,
String4a, Guid->Data4[0],
String4b ); Guid->Data4[1]);
BufferPtr = Buffer + 25;
/* 6 hex bytes */
for (i = 2; i < 8; i++)
{
*BufferPtr++ = Hex[Guid->Data4[i] >> 4];
*BufferPtr++ = Hex[Guid->Data4[i] & 0xf];
}
*BufferPtr++ = '}';
*BufferPtr++ = '\0';
RtlInitUnicodeString( GuidString, Buffer ); RtlCreateUnicodeString( GuidString, Buffer );
return(TRUE); return TRUE;
} }