From cf9d3c08c85e659a322d24467fc972959e326c9a Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sun, 24 Jul 2011 02:27:04 +0200 Subject: Issue #1813: Fix codec lookup under Turkish locales. --- Lib/test/test_codecs.py | 14 ++++++++++++++ Misc/NEWS | 2 ++ Python/codecs.c | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py index 6c7d44b..6b84023 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -1,6 +1,7 @@ from test import support import unittest import codecs +import locale import sys, _testcapi, io class Queue(object): @@ -1230,6 +1231,19 @@ class CodecsModuleTest(unittest.TestCase): self.assertRaises(TypeError, codecs.getwriter) self.assertRaises(LookupError, codecs.getwriter, "__spam__") + def test_lookup_issue1813(self): + # Issue #1813: under Turkish locales, lookup of some codecs failed + # because 'I' is lowercased as "ı" (dotless i) + oldlocale = locale.getlocale(locale.LC_CTYPE) + self.addCleanup(locale.setlocale, locale.LC_CTYPE, oldlocale) + try: + locale.setlocale(locale.LC_CTYPE, 'tr_TR') + except locale.Error: + # Unsupported locale on this system + self.skipTest('test needs Turkish locale') + c = codecs.lookup('ASCII') + self.assertEqual(c.name, 'ascii') + class StreamReaderTest(unittest.TestCase): def setUp(self): diff --git a/Misc/NEWS b/Misc/NEWS index c7e917e..4513f9a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -37,6 +37,8 @@ Core and Builtins Library ------- +- Issue #1813: Fix codec lookup under Turkish locales. + - Issue #12591: Improve support of "universal newlines" in the subprocess module: the piped streams can now be properly read from or written to. diff --git a/Python/codecs.c b/Python/codecs.c index 45d9929..1a3e457 100644 --- a/Python/codecs.c +++ b/Python/codecs.c @@ -69,7 +69,7 @@ PyObject *normalizestring(const char *string) if (ch == ' ') ch = '-'; else - ch = tolower(Py_CHARMASK(ch)); + ch = Py_TOLOWER(Py_CHARMASK(ch)); p[i] = ch; } p[i] = '\0'; -- cgit v0.12