diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2013-01-06 00:07:17 +0100 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2013-01-05 21:02:14 -0500 |
commit | 3917fa32dce8c887d0a87d0d2f4490f1b89b51d0 (patch) | |
tree | 37069276b1d94e05bf9c032985b7b214f4ae9eb5 | |
parent | fb499c57525377ca579e310d2d29c867535dd2f6 (diff) | |
download | busybox-w32-3917fa32dce8c887d0a87d0d2f4490f1b89b51d0.tar.gz busybox-w32-3917fa32dce8c887d0a87d0d2f4490f1b89b51d0.tar.bz2 busybox-w32-3917fa32dce8c887d0a87d0d2f4490f1b89b51d0.zip |
dmesg: handle multi-char log levels
Since Linux 3.5 (7ff9554bb5: printk: convert byte-buffer to variable-length
record buffer), klog buffer can now contain log lines with multi-char
loglevel indicators (<[0-9]+>) - So we can no longer just skip 3 bytes.
Instead skip past the terminating '>' like util-linux does.
function old new delta
dmesg_main 266 280 +13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0) Total: 13 bytes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | util-linux/dmesg.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c index 6505da54b..81ba1c9d1 100644 --- a/util-linux/dmesg.c +++ b/util-linux/dmesg.c | |||
@@ -59,16 +59,15 @@ int dmesg_main(int argc UNUSED_PARAM, char **argv) | |||
59 | int last = '\n'; | 59 | int last = '\n'; |
60 | int in = 0; | 60 | int in = 0; |
61 | 61 | ||
62 | /* Skip <#> at the start of lines */ | 62 | /* Skip <[0-9]+> at the start of lines */ |
63 | while (1) { | 63 | while (1) { |
64 | if (last == '\n' && buf[in] == '<') { | 64 | if (last == '\n' && buf[in] == '<') { |
65 | in += 3; | 65 | while (buf[in++] != '>' && in < len) |
66 | if (in >= len) | 66 | ; |
67 | break; | 67 | } else { |
68 | last = buf[in++]; | ||
69 | putchar(last); | ||
68 | } | 70 | } |
69 | last = buf[in]; | ||
70 | putchar(last); | ||
71 | in++; | ||
72 | if (in >= len) | 71 | if (in >= len) |
73 | break; | 72 | break; |
74 | } | 73 | } |