X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fcat.c;h=60625cb6ddd311d84ec0f51a404d58e2a4c9f007;hb=322345fdb9865ef2477fba8e4bdde0e1183ef505;hp=31d76f33bb8c19ebf6f99c41f7398cce0c50c24d;hpb=9aac0b2c19c558b853da7a6d67a0929b2d44dee4;p=elogind.git diff --git a/src/journal/cat.c b/src/journal/cat.c index 31d76f33b..60625cb6d 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,7 +25,7 @@ #include #include #include -#include +#include #include @@ -33,7 +33,7 @@ #include "build.h" static char *arg_identifier = NULL; -static char arg_priority = LOG_INFO; +static int arg_priority = LOG_INFO; static bool arg_level_prefix = true; static int help(void) { @@ -63,7 +63,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; @@ -76,12 +76,10 @@ static int parse_argv(int argc, char *argv[]) { switch (c) { case 'h': - help(); - return 0; + return help(); case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; @@ -91,10 +89,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,9 +114,11 @@ 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"); } } @@ -154,7 +152,7 @@ int main(int argc, char *argv[]) { } if (fd >= 3) - close_nointr_nofail(fd); + safe_close(fd); fd = -1; @@ -172,11 +170,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; }