summaryrefslogtreecommitdiffhomepage
path: root/util-linux/dmesg.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2006-07-27 11:18:36 +0000
committerMike Frysinger <vapier@gentoo.org>2006-07-27 11:18:36 +0000
commiteac0c069385430901357de0d511cbf5d9e4d12a6 (patch)
tree072c5adc7d97de9e37eca13fafca1e6c93a16d8c /util-linux/dmesg.c
parent0b7dfb5ae73bcc29f1d5dfdb1b37c5b1d34b5904 (diff)
allow people to display dmesg output without syslog levels
Diffstat (limited to 'util-linux/dmesg.c')
-rw-r--r--util-linux/dmesg.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
index 2b59ee23d..ecfd90668 100644
--- a/util-linux/dmesg.c
+++ b/util-linux/dmesg.c
@@ -1,9 +1,9 @@
/* vi: set sw=4 ts=4: */
/*
- *
* dmesg - display/control kernel ring buffer.
*
- * Copyring 2006 Rob Landley <rob@landley.net>
+ * Copyright 2006 Rob Landley <rob@landley.net>
+ * Copyright 2006 Erik Andersen <andersen@codepoet.org>
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
@@ -28,8 +28,24 @@ int dmesg_main(int argc, char *argv[])
buf = xmalloc(len);
if (0 > (len = klogctl(3 + (flags & 1), buf, len)))
bb_perror_msg_and_die("klogctl");
- write(1,buf,len);
+
+#ifdef CONFIG_FEATURE_DMESG_PRETTY
+ {
+ char newline = '\n';
+ int i;
+ for (i=0; i<len; ++i) {
+ if (newline == '\n' && buf[i] == '<')
+ i += 3; /* skip <#> */
+ putchar(newline=buf[i]);
+ }
+ if (newline != '\n') putchar('\n');
+ }
+#else
+ write(1, buf, len);
if (len && buf[len-1]!='\n') putchar('\n');
+#endif
+
+ if (ENABLE_FEATURE_CLEAN_UP) free(buf);
}
return 0;