[PATCH 04/12] [Winedump]: added helper to convert a guid to a string
Eric Pouech
eric.pouech at wanadoo.fr
Fri Jan 5 14:42:32 CST 2007
A+
---
tools/winedump/dump.c | 9 +++++++++
tools/winedump/lnk.c | 16 +++-------------
tools/winedump/pdb.c | 8 ++++----
tools/winedump/winedump.h | 1 +
4 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/tools/winedump/dump.c b/tools/winedump/dump.c
index 21074d1..bdd9e93 100644
--- a/tools/winedump/dump.c
+++ b/tools/winedump/dump.c
@@ -131,6 +131,15 @@ void dump_unicode_str( const WCHAR *str,
printf( "\"" );
}
+char* guid_to_string(const GUID* guid, char* str, size_t sz)
+{
+ snprintf(str, sz, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+ guid->Data1, guid->Data2, guid->Data3,
+ guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
+ guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
+ return str;
+}
+
const void* PRD(unsigned long prd, unsigned long len)
{
return (prd + len > dump_total_len) ? NULL : (const char*)dump_base + prd;
diff --git a/tools/winedump/lnk.c b/tools/winedump/lnk.c
index 13f3542..91f109c 100644
--- a/tools/winedump/lnk.c
+++ b/tools/winedump/lnk.c
@@ -106,14 +106,6 @@ #include "poppack.h"
static unsigned offset;
-static void guid_to_string(const GUID* guid, char *str)
-{
- sprintf(str, "{%08x-%04x-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}",
- guid->Data1, guid->Data2, guid->Data3,
- guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
- guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
-}
-
static const void* fetch_block(void)
{
const unsigned* u;
@@ -292,7 +284,7 @@ static int dump_advertise_info(const cha
GUID guid;
if (base85_to_guid(avt->bufA, &guid))
- guid_to_string( &guid, prod_str );
+ guid_to_string( &guid, prod_str, sizeof(prod_str) );
else
strcpy( prod_str, "?" );
@@ -311,7 +303,7 @@ static int dump_advertise_info(const cha
}
if (feat && feat[0] == '>' && base85_to_guid( &feat[1], &guid ))
- guid_to_string( &guid, feat_str );
+ guid_to_string( &guid, feat_str, sizeof(feat_str) );
else
feat_str[0] = 0;
@@ -345,12 +337,10 @@ void lnk_dump(void)
offset = 0;
hdr = fetch_block();
- guid_to_string(&hdr->MagicGuid, guid);
-
printf("Header\n");
printf("------\n\n");
printf("Size: %04x\n", hdr->dwSize);
- printf("GUID: %s\n", guid);
+ printf("GUID: %s\n", guid_to_string(&hdr->MagicGuid, guid, sizeof(guid)));
printf("FileAttr: %08x\n", hdr->dwFileAttr);
printf("FileLength: %08x\n", hdr->dwFileLength);
diff --git a/tools/winedump/pdb.c b/tools/winedump/pdb.c
index 9243b18..3074745 100644
--- a/tools/winedump/pdb.c
+++ b/tools/winedump/pdb.c
@@ -625,18 +625,18 @@ static void pdb_ds_dump(void)
if (root)
{
const char* ptr;
+ char guid_str[40];
+
printf("Root:\n"
"\tVersion: %u\n"
"\tTimeDateStamp: %08x\n"
"\tAge: %08x\n"
- "\tguid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n"
+ "\tguid %s\n"
"\tcbNames: %08x\n",
root->Version,
root->TimeDateStamp,
root->Age,
- root->guid.Data1, root->guid.Data2, root->guid.Data3,
- root->guid.Data4[0], root->guid.Data4[1], root->guid.Data4[2], root->guid.Data4[3],
- root->guid.Data4[4], root->guid.Data4[5], root->guid.Data4[6], root->guid.Data4[7],
+ guid_to_string(&root->guid, guid_str, sizeof(guid_str)),
root->cbNames);
for (ptr = &root->names[0]; ptr < &root->names[0] + root->cbNames; ptr += strlen(ptr) + 1)
printf("\tString: %s\n", ptr);
diff --git a/tools/winedump/winedump.h b/tools/winedump/winedump.h
index 540bbd0..8aee2f9 100644
--- a/tools/winedump/winedump.h
+++ b/tools/winedump/winedump.h
@@ -239,6 +239,7 @@ void dump_unicode_str( const
void dump_file_header(const IMAGE_FILE_HEADER *);
void dump_optional_header(const IMAGE_OPTIONAL_HEADER32 *, UINT);
void dump_section(const IMAGE_SECTION_HEADER *);
+char* guid_to_string(const GUID* guid, char *str, size_t sz);
enum FileSig get_kind_exec(void);
void dos_dump( void );
More information about the wine-patches
mailing list