From 9517d8ad72c8db8336ea8dba05a64df44688dec8 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 15 Jun 2009 15:47:58 +0200 Subject: seq: fix input handling in non-C locales Signed-off-by: Denys Vlasenko --- coreutils/seq.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'coreutils/seq.c') diff --git a/coreutils/seq.c b/coreutils/seq.c index bb39a5b54..03ae3c632 100644 --- a/coreutils/seq.c +++ b/coreutils/seq.c @@ -22,8 +22,15 @@ int seq_main(int argc, char **argv) unsigned width; unsigned frac_part; const char *sep, *opt_s = "\n"; - unsigned opt = getopt32(argv, "+ws:", &opt_s); + unsigned opt; +#if ENABLE_LOCALE_SUPPORT + /* Undo busybox.c: on input, we want to use dot + * as fractional separator, regardless of current locale */ + setlocale(LC_NUMERIC, "C"); +#endif + + opt = getopt32(argv, "+ws:", &opt_s); argc -= optind; argv += optind; first = increment = 1; @@ -44,6 +51,10 @@ int seq_main(int argc, char **argv) bb_show_usage(); } +#if ENABLE_LOCALE_SUPPORT + setlocale(LC_NUMERIC, ""); +#endif + /* Last checked to be compatible with: coreutils-6.10 */ width = 0; frac_part = 0; -- cgit v1.2.3