summaryrefslogtreecommitdiffstats
path: root/src/varlinkctl/varlinkctl.c
diff options
context:
space:
mode:
authorNick Rosbrook <enr0n@ubuntu.com>2024-10-22 18:03:50 +0200
committerNick Rosbrook <enr0n@ubuntu.com>2024-10-22 18:09:41 +0200
commitc89b578f33dae9f66149ff2e32405d84abb2d4d6 (patch)
tree3847042ea699e2a0b816e5159232931a85fa2800 /src/varlinkctl/varlinkctl.c
parentMerge pull request #34848 from yuwata/network-dhcpv6-do-not-request-ia-pd-on-... (diff)
downloadsystemd-c89b578f33dae9f66149ff2e32405d84abb2d4d6.tar.xz
systemd-c89b578f33dae9f66149ff2e32405d84abb2d4d6.zip
varlinkctl: do not clobber format flags in verb_call
Currently, when SD_JSON_FORMAT_OFF is set in verb_call, the json format flags are set to SD_JSON_FORMAT_PRETTY_AUTO|SD_JSON_FORMAT_COLOR_AUTO, rather than or'ing those flags in. This means that other flags that may have been set, e.g. SD_JSON_FORMAT_SEQ when --more is set, will be clobbered. Fix this by masking SD_JSON_FORMAT_OFF out, and then or'ing the new flags in.
Diffstat (limited to '')
-rw-r--r--src/varlinkctl/varlinkctl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/varlinkctl/varlinkctl.c b/src/varlinkctl/varlinkctl.c
index f88a105093..f204b0f3c9 100644
--- a/src/varlinkctl/varlinkctl.c
+++ b/src/varlinkctl/varlinkctl.c
@@ -539,8 +539,10 @@ static int verb_call(int argc, char *argv[], void *userdata) {
parameter = argc > 3 && !streq(argv[3], "-") ? argv[3] : NULL;
/* No JSON mode explicitly configured? Then default to the same as -j */
- if (FLAGS_SET(arg_json_format_flags, SD_JSON_FORMAT_OFF))
- arg_json_format_flags = SD_JSON_FORMAT_PRETTY_AUTO|SD_JSON_FORMAT_COLOR_AUTO;
+ if (FLAGS_SET(arg_json_format_flags, SD_JSON_FORMAT_OFF)) {
+ arg_json_format_flags &= ~SD_JSON_FORMAT_OFF;
+ arg_json_format_flags |= SD_JSON_FORMAT_PRETTY_AUTO|SD_JSON_FORMAT_COLOR_AUTO;
+ }
/* For pipeable text tools it's kinda customary to finish output off in a newline character, and not
* leave incomplete lines hanging around. */