1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-05 17:28:47 +00:00

winedump: Dump manifest resources in a more structured way.

This commit is contained in:
Alexandre Julliard 2023-06-09 11:08:02 +02:00
parent 79f3fa732a
commit f76d8ba6c6

View File

@ -2667,7 +2667,7 @@ static const char *get_resource_type( unsigned int id )
"ANICURSOR",
"ANIICON",
"HTML",
"RT_MANIFEST"
"MANIFEST"
};
if ((size_t)id < ARRAY_SIZE(types)) return types[id];
@ -2944,6 +2944,20 @@ static void dump_version_data( const void *ptr, unsigned int size, const char *p
dump_version_children( info, prefix, 0 );
}
/* dump data for a HTML/MANIFEST resource */
static void dump_xml_data( const void *ptr, unsigned int size, const char *prefix )
{
const char *p = ptr, *end = p + size;
while (p < end)
{
const char *start = p;
while (p < end && *p != '\r' && *p != '\n') p++;
printf( "%s%.*s\n", prefix, (int)(p - start), start );
while (p < end && (*p == '\r' || *p == '\n')) p++;
}
}
static void dump_dir_resource(void)
{
const IMAGE_RESOURCE_DIRECTORY *root = get_dir(IMAGE_FILE_RESOURCE_DIRECTORY);
@ -3009,6 +3023,10 @@ static void dump_dir_resource(void)
case 16: /* RT_VERSION */
dump_version_data( RVA( data->OffsetToData, data->Size ), data->Size, " | " );
break;
case 23: /* RT_HTML */
case 24: /* RT_MANIFEST */
dump_xml_data( RVA( data->OffsetToData, data->Size ), data->Size, " | " );
break;
default:
dump_data( RVA( data->OffsetToData, data->Size ), data->Size, " " );
break;