X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbinfmt%2Fbinfmt.c;h=c1c152239bed496e8c37d353e8bc7d3b2c1182b1;hp=9ca1e604c498aa095fda3200d41af79c8f90406c;hb=edc501d4674dadc304d45a7e1c5b69e207eb8cd4;hpb=574d5f2dfc25226afc718aa5ba1a145fe5cad221 diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c index 9ca1e604c..c1c152239 100644 --- a/src/binfmt/binfmt.c +++ b/src/binfmt/binfmt.c @@ -34,6 +34,7 @@ #include "util.h" #include "conf-files.h" #include "fileio.h" +#include "build.h" static const char conf_file_dirs[] = "/etc/binfmt.d\0" @@ -85,7 +86,7 @@ static int apply_file(const char *path, bool ignore_enoent) { assert(path); - r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f); + r = search_and_fopen_nulstr(path, "re", NULL, conf_file_dirs, &f); if (r < 0) { if (ignore_enoent && r == -ENOENT) return 0; @@ -94,7 +95,7 @@ static int apply_file(const char *path, bool ignore_enoent) { return r; } - log_debug("apply: %s\n", path); + log_debug("apply: %s", path); for (;;) { char l[LINE_MAX], *p; int k; @@ -110,7 +111,7 @@ static int apply_file(const char *path, bool ignore_enoent) { p = strstrip(l); if (!*p) continue; - if (strchr(COMMENTS, *p)) + if (strchr(COMMENTS "\n", *p)) continue; k = apply_rule(p); @@ -121,21 +122,24 @@ static int apply_file(const char *path, bool ignore_enoent) { return r; } -static int help(void) { - +static void help(void) { printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n" "Registers binary formats.\n\n" - " -h --help Show this help\n", - program_invocation_short_name); - - return 0; + " -h --help Show this help\n" + " --version Show package version\n" + , program_invocation_short_name); } static int parse_argv(int argc, char *argv[]) { + enum { + ARG_VERSION = 0x100, + }; + static const struct option options[] = { { "help", no_argument, NULL, 'h' }, - { NULL, 0, NULL, 0 } + { "version", no_argument, NULL, ARG_VERSION }, + {} }; int c; @@ -143,7 +147,7 @@ static int parse_argv(int argc, char *argv[]) { assert(argc >= 0); assert(argv); - while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) { + while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) switch (c) { @@ -151,14 +155,17 @@ static int parse_argv(int argc, char *argv[]) { help(); return 0; + case ARG_VERSION: + puts(PACKAGE_STRING); + puts(SYSTEMD_FEATURES); + return 0; + case '?': return -EINVAL; default: - log_error("Unknown option code %c", c); - return -EINVAL; + assert_not_reached("Unhandled option"); } - } return 1; }