assert(table);
l = strlen(text);
- if (!(r = new(char, l+1)))
+ r = new(char, l+1);
+ if (!r)
return NULL;
t = r;
char *n, *w;
size_t k, j;
- if (!(w = i->lookup(i->specifier, i->data, userdata))) {
+ w = i->lookup(i->specifier, i->data, userdata);
+ if (!w) {
free(r);
return NULL;
}
j = t - r;
k = strlen(w);
- if (!(n = new(char, j + k + l + 1))) {
+ n = new(char, j + k + l + 1);
+ if (!n) {
free(r);
free(w);
return NULL;
char* specifier_string(char specifier, void *data, void *userdata) {
return strdup(strempty(data));
}
+
+char *specifier_machine_id(char specifier, void *data, void *userdata) {
+ sd_id128_t id;
+ char *buf;
+ int r;
+
+ r = sd_id128_get_machine(&id);
+ if (r < 0)
+ return NULL;
+
+ buf = new(char, 33);
+ if (!buf)
+ return NULL;
+
+ return sd_id128_to_string(id, buf);
+}
+
+char *specifier_boot_id(char specifier, void *data, void *userdata) {
+ sd_id128_t id;
+ char *buf;
+ int r;
+
+ r = sd_id128_get_boot(&id);
+ if (r < 0)
+ return NULL;
+
+ buf = new(char, 33);
+ if (!buf)
+ return NULL;
+
+ return sd_id128_to_string(id, buf);
+}
+
+char *specifier_host_name(char specifier, void *data, void *userdata) {
+ return gethostname_malloc();
+}