summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2019-04-08 12:11:11 +0200
committerLennart Poettering <lennart@poettering.net>2019-04-08 12:11:11 +0200
commitdc90e0faae63a26a3e7aa4d285a50b1efb1ae39a (patch)
tree115168bfde588f513d92da56cbf0abc9ecf26d5a
parenttree-wide: introduce empty_or_dash() helper (diff)
downloadsystemd-dc90e0faae63a26a3e7aa4d285a50b1efb1ae39a.tar.xz
systemd-dc90e0faae63a26a3e7aa4d285a50b1efb1ae39a.zip
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.
-rw-r--r--src/basic/string-util.h4
-rw-r--r--src/import/export.c6
-rw-r--r--src/import/import-fs.c6
-rw-r--r--src/import/import.c12
-rw-r--r--src/import/pull.c6
-rw-r--r--src/locale/keymap-util.c20
-rw-r--r--src/machine/machinectl.c28
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);