mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
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.
This commit is contained in:
parent
e7b88b7bc1
commit
dc90e0faae
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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)) {
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user