summaryrefslogtreecommitdiff
path: root/src/utils/pactl.c
diff options
context:
space:
mode:
authorTanu Kaskinen <tanu.kaskinen@linux.intel.com>2015-04-01 19:40:28 +0300
committerTanu Kaskinen <tanu.kaskinen@linux.intel.com>2015-04-10 11:19:18 +0300
commit9860bc30ac6cf01aeb48cf26953042119961749f (patch)
tree9d36b2b12059efdd219d5de2ec7bb6525804b5a6 /src/utils/pactl.c
parent37a783473728aaa6bcec72e6cfb02767d3de722e (diff)
downloadpulseaudio-9860bc30ac6cf01aeb48cf26953042119961749f.tar.gz
pactl: Fix relative volume parsing
The recent change to reject leading '+' in pa_atod() broke the relative volume parsing in pactl. This fixes that.
Diffstat (limited to 'src/utils/pactl.c')
-rw-r--r--src/utils/pactl.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/utils/pactl.c b/src/utils/pactl.c
index 1dc8c3f8d..a13c7fbe3 100644
--- a/src/utils/pactl.c
+++ b/src/utils/pactl.c
@@ -1456,6 +1456,7 @@ static void exit_signal_callback(pa_mainloop_api *m, pa_signal_event *e, int sig
static int parse_volume(const char *vol_spec, pa_volume_t *vol, enum volume_flags *vol_flags) {
double v;
char *vs;
+ const char *atod_input;
pa_assert(vol_spec);
pa_assert(vol);
@@ -1475,7 +1476,12 @@ static int parse_volume(const char *vol_spec, pa_volume_t *vol, enum volume_flag
vs[strlen(vs)-2] = 0;
}
- if (pa_atod(vs, &v) < 0) {
+ atod_input = vs;
+
+ if (atod_input[0] == '+')
+ atod_input++; /* pa_atod() doesn't accept leading '+', so skip it. */
+
+ if (pa_atod(atod_input, &v) < 0) {
pa_log(_("Invalid volume specification"));
pa_xfree(vs);
return -1;