diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-07-01 10:19:06 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-07-01 15:30:35 +0200 |
commit | e6a16a821c41ee9be5059b08765563eec91547ca (patch) | |
tree | 80951c8636f051ecfb23803fb3f9ff1d7f49ccac /src | |
parent | a7b73cc86777779a51ade1202f12ced0b937bff0 (diff) | |
download | systemd-e6a16a821c41ee9be5059b08765563eec91547ca.tar.gz |
core: always set output arg in unit_status_string()
As requested in https://github.com/systemd/systemd/pull/20058#pullrequestreview-696942153.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/unit.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/core/unit.c b/src/core/unit.c index 57e4acff3a..30afd5a776 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -1340,27 +1340,35 @@ const char* unit_description(Unit *u) { return strna(u->id); } -const char* unit_status_string(Unit *u, char **combined) { +const char* unit_status_string(Unit *u, char **ret_combined_buffer) { assert(u); assert(u->id); /* Return u->id, u->description, or "{u->id} - {u->description}". * Versions with u->description are only used if it is set. - * The last option is used if configured and the caller provided 'combined' pointer. */ + * The last option is used if configured and the caller provided the 'ret_combined_buffer' + * pointer. + * + * Note that *ret_combined_buffer may be set to NULL. */ if (!u->description || - streq(u->description, u->id) || u->manager->status_unit_format == STATUS_UNIT_FORMAT_NAME || - (u->manager->status_unit_format == STATUS_UNIT_FORMAT_COMBINED && !combined)) + (u->manager->status_unit_format == STATUS_UNIT_FORMAT_COMBINED && !ret_combined_buffer) || + streq(u->description, u->id)) { + + if (ret_combined_buffer) + *ret_combined_buffer = NULL; return u->id; + } - if (u->description && u->manager->status_unit_format == STATUS_UNIT_FORMAT_COMBINED && combined) { - char *t = strjoin(u->id, " - ", u->description); - if (t) { - *combined = t; - return t; + if (ret_combined_buffer) { + if (u->manager->status_unit_format == STATUS_UNIT_FORMAT_COMBINED) { + *ret_combined_buffer = strjoin(u->id, " - ", u->description); + if (*ret_combined_buffer) + return *ret_combined_buffer; + log_oom(); /* Fall back to ->description */ } else - log_oom(); + *ret_combined_buffer = NULL; } return u->description; |