diff options
| author | Martin v. Löwis <martin@v.loewis.de> | 2004-08-18 13:35:49 +0000 |
|---|---|---|
| committer | Martin v. Löwis <martin@v.loewis.de> | 2004-08-18 13:35:49 +0000 |
| commit | d903fc05344a36d2dc470e5bf93690b784bb6a9d (patch) | |
| tree | 780f5b970654e239f400d0e12d009419109e4c95 /Modules | |
| parent | 4f841d0be73110b53e4b1178ceff8cbd20615afe (diff) | |
| download | cpython-git-d903fc05344a36d2dc470e5bf93690b784bb6a9d.tar.gz | |
Patch #914291: Restore locale while calling readline.
Diffstat (limited to 'Modules')
| -rw-r--r-- | Modules/readline.c | 8 |
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; } |
