From dc90e0faae63a26a3e7aa4d285a50b1efb1ae39a Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 8 Apr 2019 12:11:11 +0200 Subject: [PATCH] basic: add new helper call empty_or_dash_to_null() We have a function like this at two places already. Let's unify it in one generic location and let's port a number of users over. --- src/basic/string-util.h | 4 ++++ src/import/export.c | 6 ++---- src/import/import-fs.c | 6 ++---- src/import/import.c | 12 ++++-------- src/import/pull.c | 6 ++---- src/locale/keymap-util.c | 20 ++++++++------------ src/machine/machinectl.c | 28 ++++++++++------------------ 7 files changed, 32 insertions(+), 50 deletions(-) diff --git a/src/basic/string-util.h b/src/basic/string-util.h index b27ad511bd..b23f4c8341 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -63,6 +63,10 @@ static inline bool empty_or_dash(const char *str) { (str[0] == '-' && str[1] == 0); } +static inline const char *empty_or_dash_to_null(const char *p) { + return empty_or_dash(p) ? NULL : p; +} + static inline char *startswith(const char *s, const char *prefix) { size_t l; diff --git a/src/import/export.c b/src/import/export.c index ffd9347e92..77d24b8635 100644 --- a/src/import/export.c +++ b/src/import/export.c @@ -78,8 +78,7 @@ static int export_tar(int argc, char *argv[], void *userdata) { if (argc >= 3) path = argv[2]; - if (empty_or_dash(path)) - path = NULL; + path = empty_or_dash_to_null(path); determine_compression_from_filename(path); @@ -155,8 +154,7 @@ static int export_raw(int argc, char *argv[], void *userdata) { if (argc >= 3) path = argv[2]; - if (empty_or_dash(path)) - path = NULL; + path = empty_or_dash_to_null(path); determine_compression_from_filename(path); diff --git a/src/import/import-fs.c b/src/import/import-fs.c index 9f3ef0826c..04344492c8 100644 --- a/src/import/import-fs.c +++ b/src/import/import-fs.c @@ -117,15 +117,13 @@ static int import_fs(int argc, char *argv[], void *userdata) { if (argc >= 2) path = argv[1]; - if (empty_or_dash(path)) - path = NULL; + path = empty_or_dash_to_null(path); if (argc >= 3) local = argv[2]; else if (path) local = basename(path); - if (empty_or_dash(local)) - local = NULL; + local = empty_or_dash_to_null(local); if (local) { if (!machine_name_is_valid(local)) { diff --git a/src/import/import.c b/src/import/import.c index 4c9603fbdc..cc28557459 100644 --- a/src/import/import.c +++ b/src/import/import.c @@ -49,15 +49,13 @@ static int import_tar(int argc, char *argv[], void *userdata) { if (argc >= 2) path = argv[1]; - if (empty_or_dash(path)) - path = NULL; + path = empty_or_dash_to_null(path); if (argc >= 3) local = argv[2]; else if (path) local = basename(path); - if (empty_or_dash(local)) - local = NULL; + local = empty_or_dash_to_null(local); if (local) { r = tar_strip_suffixes(local, &ll); @@ -145,15 +143,13 @@ static int import_raw(int argc, char *argv[], void *userdata) { if (argc >= 2) path = argv[1]; - if (empty_or_dash(path)) - path = NULL; + path = empty_or_dash_to_null(path); if (argc >= 3) local = argv[2]; else if (path) local = basename(path); - if (empty_or_dash(local)) - local = NULL; + local = empty_or_dash_to_null(local); if (local) { r = raw_strip_suffixes(local, &ll); diff --git a/src/import/pull.c b/src/import/pull.c index 6342f7d7f1..7e8712493f 100644 --- a/src/import/pull.c +++ b/src/import/pull.c @@ -64,8 +64,7 @@ static int pull_tar(int argc, char *argv[], void *userdata) { local = l; } - if (empty_or_dash(local)) - local = NULL; + local = empty_or_dash_to_null(local); if (local) { r = tar_strip_suffixes(local, &ll); @@ -151,8 +150,7 @@ static int pull_raw(int argc, char *argv[], void *userdata) { local = l; } - if (empty_or_dash(local)) - local = NULL; + local = empty_or_dash_to_null(local); if (local) { r = raw_strip_suffixes(local, &ll); diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c index 18affb79ec..b8bd181c16 100644 --- a/src/locale/keymap-util.c +++ b/src/locale/keymap-util.c @@ -32,10 +32,6 @@ static bool startswith_comma(const char *s, const char *prefix) { return IN_SET(*s, ',', '\0'); } -static const char* strnulldash(const char *s) { - return empty_or_dash(s) ? NULL : s; -} - static const char* systemd_kbd_model_map(void) { const char* s; @@ -551,15 +547,15 @@ int vconsole_convert_to_x11(Context *c) { if (!streq(c->vc_keymap, a[0])) continue; - if (!streq_ptr(c->x11_layout, strnulldash(a[1])) || - !streq_ptr(c->x11_model, strnulldash(a[2])) || - !streq_ptr(c->x11_variant, strnulldash(a[3])) || - !streq_ptr(c->x11_options, strnulldash(a[4]))) { + if (!streq_ptr(c->x11_layout, empty_or_dash_to_null(a[1])) || + !streq_ptr(c->x11_model, empty_or_dash_to_null(a[2])) || + !streq_ptr(c->x11_variant, empty_or_dash_to_null(a[3])) || + !streq_ptr(c->x11_options, empty_or_dash_to_null(a[4]))) { - if (free_and_strdup(&c->x11_layout, strnulldash(a[1])) < 0 || - free_and_strdup(&c->x11_model, strnulldash(a[2])) < 0 || - free_and_strdup(&c->x11_variant, strnulldash(a[3])) < 0 || - free_and_strdup(&c->x11_options, strnulldash(a[4])) < 0) + if (free_and_strdup(&c->x11_layout, empty_or_dash_to_null(a[1])) < 0 || + free_and_strdup(&c->x11_model, empty_or_dash_to_null(a[2])) < 0 || + free_and_strdup(&c->x11_variant, empty_or_dash_to_null(a[3])) < 0 || + free_and_strdup(&c->x11_options, empty_or_dash_to_null(a[4])) < 0) return -ENOMEM; modified = true; diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c index d6e9c8c03c..d98027a0ca 100644 --- a/src/machine/machinectl.c +++ b/src/machine/machinectl.c @@ -1993,10 +1993,6 @@ static int transfer_image_common(sd_bus *bus, sd_bus_message *m) { return -r; } -static const char *nullify_dash(const char *p) { - return empty_or_dash(p) ? NULL : p; -} - static int import_tar(int argc, char *argv[], void *userdata) { _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL; _cleanup_free_ char *ll = NULL, *fn = NULL; @@ -2008,10 +2004,10 @@ static int import_tar(int argc, char *argv[], void *userdata) { assert(bus); if (argc >= 2) - path = nullify_dash(argv[1]); + path = empty_or_dash_to_null(argv[1]); if (argc >= 3) - local = nullify_dash(argv[2]); + local = empty_or_dash_to_null(argv[2]); else if (path) { r = path_extract_filename(path, &fn); if (r < 0) @@ -2075,10 +2071,10 @@ static int import_raw(int argc, char *argv[], void *userdata) { assert(bus); if (argc >= 2) - path = nullify_dash(argv[1]); + path = empty_or_dash_to_null(argv[1]); if (argc >= 3) - local = nullify_dash(argv[2]); + local = empty_or_dash_to_null(argv[2]); else if (path) { r = path_extract_filename(path, &fn); if (r < 0) @@ -2142,10 +2138,10 @@ static int import_fs(int argc, char *argv[], void *userdata) { assert(bus); if (argc >= 2) - path = nullify_dash(argv[1]); + path = empty_or_dash_to_null(argv[1]); if (argc >= 3) - local = nullify_dash(argv[2]); + local = empty_or_dash_to_null(argv[2]); else if (path) { r = path_extract_filename(path, &fn); if (r < 0) @@ -2224,8 +2220,7 @@ static int export_tar(int argc, char *argv[], void *userdata) { if (argc >= 3) path = argv[2]; - if (empty_or_dash(path)) - path = NULL; + path = empty_or_dash_to_null(path); if (path) { determine_compression_from_filename(path); @@ -2274,8 +2269,7 @@ static int export_raw(int argc, char *argv[], void *userdata) { if (argc >= 3) path = argv[2]; - if (empty_or_dash(path)) - path = NULL; + path = empty_or_dash_to_null(path); if (path) { determine_compression_from_filename(path); @@ -2332,8 +2326,7 @@ static int pull_tar(int argc, char *argv[], void *userdata) { local = l; } - if (empty_or_dash(local)) - local = NULL; + local = empty_or_dash_to_null(local); if (local) { r = tar_strip_suffixes(local, &ll); @@ -2396,8 +2389,7 @@ static int pull_raw(int argc, char *argv[], void *userdata) { local = l; } - if (empty_or_dash(local)) - local = NULL; + local = empty_or_dash_to_null(local); if (local) { r = raw_strip_suffixes(local, &ll);