[pacman-dev] [PATCH] Use C locale for parsing Delta value
Locales that use "," as their decimal separator resulted in parsing issues with the Delta value. Ensure the C locale is used during parsing. Fixes FS#34253 Signed-off-by: Allan McRae <allan@archlinux.org> --- src/pacman/conf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pacman/conf.c b/src/pacman/conf.c index 815df95..71bfed6 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -22,6 +22,7 @@ #include <glob.h> #include <limits.h> #include <fcntl.h> /* open */ +#include <locale.h> #include <stdlib.h> #include <stdio.h> #include <string.h> /* strdup */ @@ -514,7 +515,9 @@ static int _parse_options(const char *key, char *value, } else if(strcmp(key, "UseDelta") == 0) { double ratio; char *endptr; + setlocale(LC_NUMERIC, "C"); ratio = strtod(value, &endptr); + setlocale(LC_NUMERIC, ""); if(*endptr != '\0' || ratio < 0.0 || ratio > 2.0) { pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: invalid value for '%s' : '%s'\n"), -- 1.8.1.5
participants (1)
-
Allan McRae