From 4aeac332f6ed5c0be1a1664903bf7794c1226b1c Mon Sep 17 00:00:00 2001 From: arpi Date: Wed, 23 Oct 2002 17:42:12 +0000 Subject: Fixed a bug in MPlayer which would prevent proper parsing of some floating point options when the locale used has a decimal point other than the dot character ("."). My patch inserts calls to setlocale around float parsing functions strtod() and atof() in cfgparser.c and input/input.c. patch by Aleksander Adamowski git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7871 b3059339-0415-0410-9bf9-f77b7e298cf2 --- input/input.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'input/input.c') diff --git a/input/input.c b/input/input.c index 66484fa20f..e12316c04d 100644 --- a/input/input.c +++ b/input/input.c @@ -12,6 +12,10 @@ #include #include +#ifdef USE_SETLOCALE +#include +#endif + #include "input.h" #include "mouse.h" #ifdef MP_DEBUG @@ -470,7 +474,14 @@ mp_input_parse_cmd(char* str) { break; case MP_CMD_ARG_FLOAT: errno = 0; + /* Use portable C locale for parsing floats: */ +#ifdef USE_SETLOCALE + setlocale(LC_NUMERIC, "C"); +#endif cmd->args[i].v.f = atof(ptr); +#ifdef USE_SETLOCALE + setlocale(LC_NUMERIC, ""); +#endif if(errno != 0) { mp_msg(MSGT_INPUT,MSGL_ERR,"Command %s : argument %d isn't a float\n",cmd_def->name,i+1); ptr = NULL; -- cgit v1.2.3