summaryrefslogtreecommitdiffstats
path: root/sys-utils/dmesg.c
diff options
context:
space:
mode:
authorMarek Polacek2011-02-28 10:10:32 +0100
committerKarel Zak2011-02-28 10:10:32 +0100
commit15103c4bc601f45f25a429d7be9eadfcfeee7bc2 (patch)
tree4e37b591d7c7e67425e462581d3f92842d55c2ad /sys-utils/dmesg.c
parentdocs: update TODO (diff)
downloadkernel-qcow2-util-linux-15103c4bc601f45f25a429d7be9eadfcfeee7bc2.tar.gz
kernel-qcow2-util-linux-15103c4bc601f45f25a429d7be9eadfcfeee7bc2.tar.xz
kernel-qcow2-util-linux-15103c4bc601f45f25a429d7be9eadfcfeee7bc2.zip
dmesg.c: cleanups -- use err(), xalloc()
Signed-off-by: Marek Polacek <mpolacek@redhat.com> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/dmesg.c')
-rw-r--r--sys-utils/dmesg.c52
1 files changed, 25 insertions, 27 deletions
diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c
index 49fd707ab..c3e5659c1 100644
--- a/sys-utils/dmesg.c
+++ b/sys-utils/dmesg.c
@@ -34,21 +34,25 @@
#include <getopt.h>
#include <stdlib.h>
#include <sys/klog.h>
+#include <ctype.h>
+#include "c.h"
#include "nls.h"
#include "strutils.h"
+#include "xalloc.h"
-static char *progname;
-
-static void
-usage(void) {
+static void __attribute__ ((noreturn)) usage(void)
+{
fprintf(stderr,
- _("Usage: %s [-c] [-n level] [-r] [-s bufsize]\n"), progname);
+ _("Usage: %s [-c] [-n level] [-r] [-s bufsize]\n"),
+ program_invocation_short_name);
+ exit(EXIT_FAILURE);
+
}
-int
-main(int argc, char *argv[]) {
- char *buf;
+int main(int argc, char *argv[])
+{
+ char *buf = NULL;
int sz;
int bufsize = 0;
int i;
@@ -63,7 +67,6 @@ main(int argc, char *argv[]) {
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
- progname = argv[0];
while ((c = getopt(argc, argv, "crn:s:")) != -1) {
switch (c) {
case 'c':
@@ -84,24 +87,20 @@ main(int argc, char *argv[]) {
case '?':
default:
usage();
- exit(EXIT_FAILURE);
}
}
argc -= optind;
argv += optind;
- if (argc > 1) {
+ if (argc > 1)
usage();
- exit(EXIT_FAILURE);
- }
if (cmd == 8) {
n = klogctl(cmd, NULL, level);
- if (n < 0) {
- perror("klogctl");
- exit(EXIT_FAILURE);
- }
- exit(EXIT_SUCCESS);
+ if (n < 0)
+ err(EXIT_FAILURE, _("klogctl failed"));
+
+ return EXIT_SUCCESS;
}
if (!bufsize) {
@@ -112,14 +111,14 @@ main(int argc, char *argv[]) {
if (bufsize) {
sz = bufsize + 8;
- buf = (char *) malloc(sz * sizeof(char));
+ buf = xmalloc(sz * sizeof(char));
n = klogctl(cmd, buf, sz);
} else {
sz = 16392;
while (1) {
- buf = (char *) malloc(sz * sizeof(char));
+ buf = xmalloc(sz * sizeof(char));
n = klogctl(3, buf, sz); /* read only */
- if (n != sz || sz > (1<<28))
+ if (n != sz || sz > (1 << 28))
break;
free(buf);
sz *= 4;
@@ -129,16 +128,14 @@ main(int argc, char *argv[]) {
n = klogctl(cmd, buf, sz); /* read and clear */
}
- if (n < 0) {
- perror("klogctl");
- exit(EXIT_FAILURE);
- }
+ if (n < 0)
+ err(EXIT_FAILURE, _("klogctl failed"));
lastc = '\n';
for (i = 0; i < n; i++) {
if (!raw && (i == 0 || buf[i - 1] == '\n') && buf[i] == '<') {
i++;
- while (buf[i] >= '0' && buf[i] <= '9')
+ while (isdigit(buf[i]))
i++;
if (buf[i] == '>')
i++;
@@ -149,5 +146,6 @@ main(int argc, char *argv[]) {
if (lastc != '\n')
putchar('\n');
free(buf);
- return 0;
+
+ return EXIT_SUCCESS;
}