This shortens the code by a few lines.
@@
- s ? s : ""
+ strempty(s)
+@@
+expression s;
+@@
+- if (!s)
+- s = "";
++ s = strempty(s);
+@@
+expression s;
+@@
+- s ?: "(null)"
++ strnull(s)
+@@
+expression s;
+@@
+- s ? s : "(null)"
++ strnull(s)
+@@
+expression s;
+@@
+- if (!s)
+- s = "(null)";
++ s = strnull(s);
+@@
+expression s;
+@@
+- s ?: "n/a"
++ strna(s)
+@@
+expression s;
+@@
+- s ? s : "n/a"
++ strna(s)
+@@
+expression s;
+@@
+- if (!s)
+- s = "n/a";
++ s = strna(s);
if (!filename_is_valid(fn))
return -EINVAL;
- if (!extra)
- extra = "";
+ extra = strempty(extra);
t = new(char, strlen(p) + 2 + strlen(extra) + 6 + 1);
if (!t)
if (!filename_is_valid(fn))
return -EINVAL;
- if (!extra)
- extra = "";
+ extra = strempty(extra);
t = new(char, strlen(p) + 2 + strlen(extra) + 16 + 1);
if (!t)
return r;
}
- if (!extra)
- extra = "";
+ extra = strempty(extra);
t = new(char, strlen(p) + 3 + strlen(extra) + 16 + 1);
if (!t)
}
static inline const char* strempty(const char *s) {
- return s ? s : "";
+ return s ?: "";
}
static inline const char* strnull(const char *s) {
- return s ? s : "(null)";
+ return s ?: "(null)";
}
static inline const char *strna(const char *s) {
- return s ? s : "n/a";
+ return s ?: "n/a";
}
static inline bool isempty(const char *p) {
assert(j);
assert(f);
- if (!prefix)
- prefix = "";
+ prefix = strempty(prefix);
fprintf(f,
"%s-> Job %u:\n"
void kill_context_dump(KillContext *c, FILE *f, const char *prefix) {
assert(c);
- if (!prefix)
- prefix = "";
+ prefix = strempty(prefix);
fprintf(f,
"%sKillMode: %s\n"
fd_inc_sndbuf(fd, SNDBUF_SIZE);
- if (!identifier)
- identifier = "";
+ identifier = strempty(identifier);
l = strlen(identifier);
header = alloca(l + 1 + 1 + 2 + 2 + 2 + 2 + 2);
assert(c);
assert(f);
- if (!prefix)
- prefix = "";
+ prefix = strempty(prefix);
fprintf(f,
"%s\t%s: %s%s%s %s\n",
unsigned long val;
v = udev_device_get_sysattr_value(pdev, attr);
- if (!v)
- v = "";
+ v = strempty(v);
xsprintf(text, "%s", v);
log_debug("%s raw kernel attribute: %s", attr, text);