SHA256
3
0
forked from pool/bash
bash/bash-3.2-printf.patch

33 lines
650 B
Diff

--- builtins/printf.def
+++ builtins/printf.def 2006-07-27 17:11:19.000000000 +0200
@@ -37,6 +37,7 @@ shell variable VAR rather than being sen
$END
#include <config.h>
+#include <locale.h>
#include "../bashtypes.h"
@@ -501,12 +502,20 @@ printf_builtin (list)
case 'A':
#endif
{
- char *f;
+ char *f, *lce = getenv("LC_NUMERIC"), *lcl = setlocale(LC_NUMERIC, NULL);
floatmax_t p;
p = getfloatmax ();
f = mklong (start, FLOATMAX_CONV, sizeof(FLOATMAX_CONV) - 1);
+
+ if (lce && lcl)
+ setlocale(LC_NUMERIC, lce);
+
PF (f, p);
+
+ if (lce && lcl)
+ setlocale(LC_NUMERIC, lcl);
+
break;
}