X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fcat.c;h=627c0624a5064b26260b904b1f26572418e1ebfa;hb=edc501d4674dadc304d45a7e1c5b69e207eb8cd4;hp=f0a666642c64b75e2760f4dc23c0c8d7885a0c06;hpb=d508ac0ba0c43efa8caacdd8050970efb1e30243;p=elogind.git
diff --git a/src/journal/cat.c b/src/journal/cat.c
index f0a666642..627c0624a 100644
--- a/src/journal/cat.c
+++ b/src/journal/cat.c
@@ -6,16 +6,16 @@
Copyright 2012 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ Lesser General Public License for more details.
- You should have received a copy of the GNU General Public License
+ You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see .
***/
@@ -25,9 +25,9 @@
#include
#include
#include
-#include
+#include
-#include
+#include "systemd/sd-journal.h"
#include "util.h"
#include "build.h"
@@ -36,18 +36,15 @@ static char *arg_identifier = NULL;
static int arg_priority = LOG_INFO;
static bool arg_level_prefix = true;
-static int help(void) {
-
+static void help(void) {
printf("%s [OPTIONS...] {COMMAND} ...\n\n"
"Execute process with stdout/stderr connected to the journal.\n\n"
" -h --help Show this help\n"
" --version Show package version\n"
" -t --identifier=STRING Set syslog identifier\n"
" -p --priority=PRIORITY Set priority value (0..7)\n"
- " --level-prefix=BOOL Control whether level prefix shall be parsed\n",
- program_invocation_short_name);
-
- return 0;
+ " --level-prefix=BOOL Control whether level prefix shall be parsed\n"
+ , program_invocation_short_name);
}
static int parse_argv(int argc, char *argv[]) {
@@ -63,7 +60,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "identifier", required_argument, NULL, 't' },
{ "priority", required_argument, NULL, 'p' },
{ "level-prefix", required_argument, NULL, ARG_LEVEL_PREFIX },
- { NULL, 0, NULL, 0 }
+ {}
};
int c;
@@ -71,7 +68,7 @@ static int parse_argv(int argc, char *argv[]) {
assert(argc >= 0);
assert(argv);
- while ((c = getopt_long(argc, argv, "+ht:p:", options, NULL)) >= 0) {
+ while ((c = getopt_long(argc, argv, "+ht:p:", options, NULL)) >= 0)
switch (c) {
@@ -81,7 +78,6 @@ static int parse_argv(int argc, char *argv[]) {
case ARG_VERSION:
puts(PACKAGE_STRING);
- puts(DISTRIBUTION);
puts(SYSTEMD_FEATURES);
return 0;
@@ -91,10 +87,8 @@ static int parse_argv(int argc, char *argv[]) {
arg_identifier = NULL;
else {
arg_identifier = strdup(optarg);
- if (!arg_identifier) {
- log_error("Out of memory.");
- return -ENOMEM;
- }
+ if (!arg_identifier)
+ return log_oom();
}
break;
@@ -118,11 +112,12 @@ static int parse_argv(int argc, char *argv[]) {
break;
}
- default:
- log_error("Unknown option code %c", c);
+ case '?':
return -EINVAL;
+
+ default:
+ assert_not_reached("Unhandled option");
}
- }
return 1;
}
@@ -154,7 +149,7 @@ int main(int argc, char *argv[]) {
}
if (fd >= 3)
- close_nointr_nofail(fd);
+ safe_close(fd);
fd = -1;
@@ -172,11 +167,8 @@ int main(int argc, char *argv[]) {
log_error("Failed to execute process: %s", strerror(-r));
finish:
- if (fd >= 0)
- close_nointr_nofail(fd);
-
- if (saved_stderr >= 0)
- close_nointr_nofail(saved_stderr);
+ safe_close(fd);
+ safe_close(saved_stderr);
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}