diff options
author | khali <khali> | 2008-10-30 10:07:31 +0000 |
---|---|---|
committer | khali <khali> | 2008-10-30 10:07:31 +0000 |
commit | 67aa095824c812e8fd1fc12980a7bf22a0195fe3 (patch) | |
tree | 39ddd0d7022ba5bb92240d6e25850a32fb1bbe2d /dmidecode.c | |
parent | 8e9ebbb0f1590ab38b8a321023c8eef56313eeb5 (diff) | |
download | dmidecode-67aa095824c812e8fd1fc12980a7bf22a0195fe3.tar.gz |
Delay string filtering when option --dump is used.
Diffstat (limited to 'dmidecode.c')
-rw-r--r-- | dmidecode.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/dmidecode.c b/dmidecode.c index 55acdbd..c95d9ce 100644 --- a/dmidecode.c +++ b/dmidecode.c @@ -87,11 +87,14 @@ const char *dmi_string(const struct dmi_header *dm, u8 s) if (!*bp) return bad_index; - /* ASCII filtering */ - len = strlen(bp); - for (i = 0; i < len; i++) - if (bp[i] < 32 || bp[i] == 127) - bp[i] = '.'; + if (!(opt.flags & FLAG_DUMP)) + { + /* ASCII filtering */ + len = strlen(bp); + for (i = 0; i < len; i++) + if (bp[i] < 32 || bp[i] == 127) + bp[i] = '.'; + } return bp; } @@ -187,7 +190,17 @@ static void dmi_dump(const struct dmi_header *h, const char *prefix) s[(row << 4) + j]); printf("\n"); } - printf("%s\t\"%s\"\n", prefix, s); + /* String isn't filtered yet so do it now */ + printf("%s\t\"", prefix); + while (*s) + { + if (*s < 32 || *s == 127) + fputc('.', stdout); + else + fputc(*s, stdout); + s++; + } + printf("\"\n"); } else printf("%s\t%s\n", prefix, s); |