From bd13b3ea81324636588379a973790f9d42e9ca99 Mon Sep 17 00:00:00 2001 From: qiaonuohan Date: Wed, 10 Apr 2013 16:22:25 +0800 Subject: [PATCH] fix bug of struct command --- symbols.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/symbols.c b/symbols.c index eb693db..fa656f0 100755 --- a/symbols.c +++ b/symbols.c @@ -6859,13 +6859,14 @@ parse_for_member(struct datatype_member *dm, ulong flag) char lookfor4[BUFSIZE]; char lookfor5[BUFSIZE]; long curpos, last_open_bracket; - int indent, on, array; + int indent, on, array, embed; char *p1; s = dm->member; indent = 0; array = FALSE; on = 0; + embed = 0; rewind(pc->tmpfile); switch (flag) @@ -6875,6 +6876,15 @@ parse_for_member(struct datatype_member *dm, ulong flag) sprintf(lookfor2, " %s[", s); next_item: while (fgets(buf, BUFSIZE, pc->tmpfile)) { + if (embed && (count_leading_spaces(buf) == embed)) + embed = 0; + + if (!on && !embed && strstr(buf, "= {") && !strstr(buf, lookfor1)) + embed = count_leading_spaces(buf); + + if (embed) + continue; + if (strstr(buf, lookfor1) || strstr(buf, lookfor2)) { on++; if (strstr(buf, "= {")) -- 1.7.1