]> granicus.if.org Git - python/commitdiff
Patch #914291: Restore locale while readline is running.
authorMartin v. Löwis <martin@v.loewis.de>
Wed, 18 Aug 2004 13:34:00 +0000 (13:34 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Wed, 18 Aug 2004 13:34:00 +0000 (13:34 +0000)
Modules/readline.c

index 40d489f0a57c78574a4d8daa7026711590af744f..5e771d98574173e67689862923524b71595c4626 100644 (file)
@@ -821,6 +821,10 @@ readline_until_enter_or_signal(char *prompt, int *signal)
 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;
        int signal;
@@ -879,6 +883,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;
 }