]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Patch #914291: Restore locale while calling readline.
authorMartin v. Löwis <martin@v.loewis.de>
Wed, 18 Aug 2004 13:35:49 +0000 (13:35 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Wed, 18 Aug 2004 13:35:49 +0000 (13:35 +0000)
Misc/NEWS
Modules/readline.c

index f6add9259dc01a93cb9644dd052cdc5e6d59a41a..1cb3487c1c8aabf79bc3da5293faefbad6f8137d 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -28,6 +28,8 @@ Core and builtins
 Extension modules
 -----------------
 
+- Patch #914291: Set locale while getting a line from readline.
+
 - Bug #1005308: Define _BSD_TYPES.
 
 - Patch #1005568: Use _SC_PAGESIZE on Irix in resourcemoudle.
index 1f1b32708721586a0b317bdb3e11db5d3214a53a..dea58e4b76868578d9f6ef6ea35b1c1aeec6a342 100644 (file)
@@ -653,6 +653,10 @@ onintr(int sig)
 static char *
 call_readline(FILE *sys_stdin, FILE *sys_stdout, char *prompt)
 {
+#ifdef SAVE_LOCALE
+       char *saved_locale = strdup(setlocale(LC_CTYPE, NULL));
+       setlocale(LC_CTYPE, "");
+#endif
        size_t n;
        char *p, *q;
        PyOS_sighandler_t old_inthandler;
@@ -714,6 +718,10 @@ call_readline(FILE *sys_stdin, FILE *sys_stdout, char *prompt)
                p[n+1] = '\0';
        }
        free(q);
+#ifdef SAVE_LOCALE
+       setlocale(LC_CTYPE, saved_locale); /* Restore locale */
+       free(saved_locale);
+#endif
        return p;
 }