]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
dmesg: fix --raw zero timestamp for kmsg
authorKarel Zak <kzak@redhat.com>
Tue, 7 Jan 2014 16:41:42 +0000 (17:41 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 7 Jan 2014 16:41:42 +0000 (17:41 +0100)
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1049438
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/dmesg.c

index 5039fe7dac45c73e26fde88fcbd8086fb1030a74..ec39612fbcada0078ac184c78583a9a12e73120c 100644 (file)
@@ -1220,10 +1220,15 @@ int main(int argc, char *argv[])
        };
 
        static const ul_excl_t excl[] = {       /* rows and cols in in ASCII order */
-               { 'C','D','E','c','n' },        /* clear,off,on,read-clear,level*/
+               { 'C','D','E','c','n','r' },    /* clear,off,on,read-clear,level,raw*/
                { 'H','r' },                    /* human, raw */
                { 'L','r' },                    /* color, raw */
                { 'S','w' },                    /* syslog,follow */
+               { 'T','r' },                    /* ctime, raw */
+               { 'd','r' },                    /* delta, raw */
+               { 'e','r' },                    /* reltime, raw */
+               { 'r','x' },                    /* raw, decode */
+               { 'r','t' },                    /* notime, raw */
                { 0 }
        };
        int excl_st[ARRAY_SIZE(excl)] = UL_EXCL_STATUS_INIT;
@@ -1300,8 +1305,6 @@ int main(int argc, char *argv[])
                        break;
                case 'r':
                        ctl.raw = 1;
-                       ctl.time_fmt = DMESG_TIMEFTM_NONE;
-                       delta = 0;
                        break;
                case 'S':
                        ctl.method = DMESG_METHOD_SYSLOG;
@@ -1371,11 +1374,6 @@ int main(int argc, char *argv[])
                        ctl.time_fmt = DMESG_TIMEFTM_DELTA;
                }
 
-       if (ctl.raw
-           && (ctl.fltr_lev || ctl.fltr_fac || ctl.decode
-                            || !is_timefmt(&ctl, NONE)))
-           errx(EXIT_FAILURE, _("--raw can't be used together with level, "
-                                "facility, decode, delta, ctime or notime options"));
 
        ctl.color = colors_init(colormode) ? 1 : 0;
        if (ctl.follow)
@@ -1389,6 +1387,12 @@ int main(int argc, char *argv[])
        case SYSLOG_ACTION_READ_CLEAR:
                if (ctl.method == DMESG_METHOD_KMSG && init_kmsg(&ctl) != 0)
                        ctl.method = DMESG_METHOD_SYSLOG;
+
+               if (ctl.raw
+                   && ctl.method != DMESG_METHOD_KMSG
+                   && (ctl.fltr_lev || ctl.fltr_fac))
+                           errx(EXIT_FAILURE, _("--raw could be used together with --level or "
+                                "--facility only when read messages from /dev/kmsg"));
                if (ctl.pager)
                        setup_pager();
                n = read_buffer(&ctl, &buf);