summaryrefslogtreecommitdiff
path: root/dmidecode.c
diff options
context:
space:
mode:
authorkhali <khali>2008-10-30 10:07:31 +0000
committerkhali <khali>2008-10-30 10:07:31 +0000
commit67aa095824c812e8fd1fc12980a7bf22a0195fe3 (patch)
tree39ddd0d7022ba5bb92240d6e25850a32fb1bbe2d /dmidecode.c
parent8e9ebbb0f1590ab38b8a321023c8eef56313eeb5 (diff)
downloaddmidecode-67aa095824c812e8fd1fc12980a7bf22a0195fe3.tar.gz
Delay string filtering when option --dump is used.
Diffstat (limited to 'dmidecode.c')
-rw-r--r--dmidecode.c25
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);