From 74d8536414c0cf11014ca7ba1ae1578ae54811fe Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Sat, 26 Jan 2008 03:11:02 +0100 Subject: [PATCH] winedump: Track unknown lnk flags and dump them. --- tools/winedump/lnk.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/winedump/lnk.c b/tools/winedump/lnk.c index 2754602e58f..1da0176b869 100644 --- a/tools/winedump/lnk.c +++ b/tools/winedump/lnk.c @@ -352,6 +352,7 @@ enum FileSig get_kind_lnk(void) void lnk_dump(void) { const LINK_HEADER* hdr; + DWORD dwFlags; offset = 0; hdr = fetch_block(); @@ -371,7 +372,15 @@ void lnk_dump(void) /* dump out all the flags */ printf("Flags: %04x ( ", hdr->dwFlags); -#define FLAG(x) if(hdr->dwFlags & SLDF_##x) printf("%s ",#x) + dwFlags=hdr->dwFlags; +#define FLAG(x) do \ + { \ + if (dwFlags & SLDF_##x) \ + { \ + printf("%s ", #x); \ + dwFlags&=~SLDF_##x; \ + } \ + } while (0) FLAG(HAS_ID_LIST); FLAG(HAS_LINK_INFO); FLAG(HAS_NAME); @@ -395,6 +404,8 @@ void lnk_dump(void) FLAG(DISABLE_KNOWNFOLDER_RELATIVE_TRACKING); FLAG(RESERVED); #undef FLAG + if (dwFlags) + printf("+%04x", dwFlags); printf(")\n"); printf("Length: %04x\n", hdr->dwFileLength); -- 2.11.4.GIT