Module: wine Branch: master Commit: 037677932b8349a7682c55ac7b3c56f3a04b8925 URL: https://gitlab.winehq.org/wine/wine/-/commit/037677932b8349a7682c55ac7b3c56f...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Aug 1 15:30:17 2023 +0200
winedump: Support REG_BINARY values in regf files.
---
tools/winedump/reg.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/tools/winedump/reg.c b/tools/winedump/reg.c index 46841a9d342..65426f540c0 100644 --- a/tools/winedump/reg.c +++ b/tools/winedump/reg.c @@ -192,8 +192,8 @@ static BOOL dump_subkeys(unsigned int hive_off, unsigned int off)
static BOOL dump_value(unsigned int hive_off, unsigned int off) { + unsigned int i, len, data_size; const void *data = NULL; - unsigned int data_size; const value_key *val; const char *name;
@@ -246,6 +246,25 @@ static BOOL dump_value(unsigned int hive_off, unsigned int off) printf("%s", !data ? """" : get_unicode_str((const WCHAR *)data, data_size / sizeof(WCHAR))); break; + case REG_BINARY: + printf("hex:"); + len = val->name_size + 7; /* strlen("""=hex:") */ + for (i = 0; i < data_size; i++) + { + if (i) + { + printf(","); + len += 1; + } + if (len > 76) + { + printf("\\n "); + len = 2; + } + printf("%02x", ((BYTE *)data)[i]); + len += 2; + } + break; case REG_DWORD: assert(data_size == sizeof(DWORD)); printf("dword:%08x", *(unsigned int *)data);