From f56d015a7123de2df3a32bc38f666a79dd8cab79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Thu, 13 Nov 2003 07:43:21 +0000 Subject: Patch #804543: strdup saved locales. Backported to 2.3. --- Modules/readline.c | 3 ++- Python/pythonrun.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Modules/readline.c b/Modules/readline.c index 5053d1c..7535ecf 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -611,7 +611,7 @@ static void setup_readline(void) { #ifdef SAVE_LOCALE - char *saved_locale = setlocale(LC_CTYPE, NULL); + char *saved_locale = strdup(setlocale(LC_CTYPE, NULL)); #endif using_history(); @@ -652,6 +652,7 @@ setup_readline(void) #ifdef SAVE_LOCALE setlocale(LC_CTYPE, saved_locale); /* Restore locale */ + free(saved_locale); #endif } diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 21c2cac..ab6ed58 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -235,7 +235,7 @@ Py_Initialize(void) initialized by other means. Also set the encoding of stdin and stdout if these are terminals. */ - saved_locale = setlocale(LC_CTYPE, NULL); + saved_locale = strdup(setlocale(LC_CTYPE, NULL)); setlocale(LC_CTYPE, ""); codeset = nl_langinfo(CODESET); if (codeset && *codeset) { @@ -250,6 +250,7 @@ Py_Initialize(void) } else codeset = NULL; setlocale(LC_CTYPE, saved_locale); + free(saved_locale); if (codeset) { sys_stream = PySys_GetObject("stdin"); -- cgit v0.12