[2/5] winedump: Track unknown lnk flags and dump them.
Francois Gouget
fgouget at codeweavers.com
Fri Jan 25 20:11:02 CST 2008
---
Not that there should be any well-known 'unknown' flags left after the
previous patch. But there may well be new flags in the future and this
would help spot them.
tools/winedump/lnk.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/tools/winedump/lnk.c b/tools/winedump/lnk.c
index 2754602..1da0176 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);
--
1.5.3.8
More information about the wine-patches
mailing list