pactl: fix invalid JSON output by overriding LC_NUMERIC
Hello,
When the --format json
parameter is given on the command line, we attempt to produce a JSON output for most commands.
Our implementation of the JSON serialization uses vsnprintf
to output numbers. Unfortunately, vsnprintf
is affected by the locale and more specifically the `LC_NUMERIC variable.
When LC_NUMERIC
is set to, for instance, fr_FR.UTF-8
, floating-point numbers are output with a comma as the decimal separator, which is then considered invalid JSON.
$ LC_NUMERIC=fr_FR.UTF-8 pactl --format json list sinks | jq .
parse error: Objects must consist of key:value pairs at line 1, column 435
This is the token which failed to parse:
}},"balance":0,00,"base_volume":{
Fixed by overriding the LC_NUMERIC value when we request JSON output.
Thanks! Olivier