summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2004-08-18 13:35:49 +0000
committerMartin v. Löwis <martin@v.loewis.de>2004-08-18 13:35:49 +0000
commitd903fc05344a36d2dc470e5bf93690b784bb6a9d (patch)
tree780f5b970654e239f400d0e12d009419109e4c95 /Modules
parent4f841d0be73110b53e4b1178ceff8cbd20615afe (diff)
downloadcpython-git-d903fc05344a36d2dc470e5bf93690b784bb6a9d.tar.gz
Patch #914291: Restore locale while calling readline.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/readline.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Modules/readline.c b/Modules/readline.c
index 1f1b327087..dea58e4b76 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -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;
}