diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c index 81ba1c9d1..e543446c1 100644 --- a/util-linux/dmesg.c +++ b/util-linux/dmesg.c @@ -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 #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;