dmesg: add -r option to print raw format even when FEATURE_DMESG_PRETTY is enabled
authorPeter Korsgaard <peter@korsgaard.com>
Mon, 24 Aug 2015 13:54:49 +0000 (15:54 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 24 Aug 2015 19:08:02 +0000 (21:08 +0200)
Similar to the "big" util-linux version. For !DMESG_PRETTY, the option is accepted
(but ignored) as well, for compatibility reasons.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
util-linux/dmesg.c

index 81ba1c9d14c59870f1e5e65732bd04572be55df4..e543446c11c87e02c6d92c28518eeda796c1130c 100644 (file)
@@ -16,6 +16,7 @@
 //usage:     "\n       -c              Clear ring buffer after printing"
 //usage:     "\n       -n LEVEL        Set console logging level"
 //usage:     "\n       -s SIZE         Buffer size"
+//usage:     "\n       -r              Print raw message buffer"
 
 #include <sys/klog.h>
 #include "libbb.h"
@@ -29,11 +30,12 @@ int dmesg_main(int argc UNUSED_PARAM, char **argv)
        enum {
                OPT_c = 1 << 0,
                OPT_s = 1 << 1,
-               OPT_n = 1 << 2
+               OPT_n = 1 << 2,
+               OPT_r = 1 << 3
        };
 
        opt_complementary = "s+:n+"; /* numeric */
-       opts = getopt32(argv, "cs:n:", &len, &level);
+       opts = getopt32(argv, "cs:n:r", &len, &level);
        if (opts & OPT_n) {
                if (klogctl(8, NULL, (long) level))
                        bb_perror_msg_and_die("klogctl");
@@ -55,7 +57,7 @@ int dmesg_main(int argc UNUSED_PARAM, char **argv)
                return EXIT_SUCCESS;
 
 
-       if (ENABLE_FEATURE_DMESG_PRETTY) {
+       if (ENABLE_FEATURE_DMESG_PRETTY && !(opts & OPT_r)) {
                int last = '\n';
                int in = 0;