Files
core/system/base/python/files/gentoo/0015-Turkish-locale.patch
T
2021-03-18 02:50:26 +03:00

117 lines
3.2 KiB
Diff

From 5a9256368dfee7a64c811f557de1b8df86e05b07 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Sun, 17 Jun 2018 11:14:43 -0400
Subject: [PATCH 15/24] Turkish locale
---
Objects/stringobject.c | 39 ++++++++++++++++++++++++---------------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index c47d32f406..7cd0d0e625 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -1987,10 +1987,14 @@ PyDoc_STRVAR(lower__doc__,
\n\
Return a copy of the string S converted to lowercase.");
-/* _tolower and _toupper are defined by SUSv2, but they're not ISO C */
-#ifndef _tolower
-#define _tolower tolower
-#endif
+static int
+tolower_C_locale(int c)
+{
+ if (c >= 'A' && c <= 'Z')
+ return c + 0x20;
+ else
+ return c;
+}
static PyObject *
string_lower(PyStringObject *self)
@@ -2010,7 +2014,7 @@ string_lower(PyStringObject *self)
for (i = 0; i < n; i++) {
int c = Py_CHARMASK(s[i]);
if (isupper(c))
- s[i] = _tolower(c);
+ s[i] = tolower_C_locale(c);
}
return newobj;
@@ -2021,9 +2025,14 @@ PyDoc_STRVAR(upper__doc__,
\n\
Return a copy of the string S converted to uppercase.");
-#ifndef _toupper
-#define _toupper toupper
-#endif
+static int
+toupper_C_locale(int c)
+{
+ if (c >= 'a' && c <= 'z')
+ return c - 0x20;
+ else
+ return c;
+}
static PyObject *
string_upper(PyStringObject *self)
@@ -2043,7 +2052,7 @@ string_upper(PyStringObject *self)
for (i = 0; i < n; i++) {
int c = Py_CHARMASK(s[i]);
if (islower(c))
- s[i] = _toupper(c);
+ s[i] = toupper_C_locale(c);
}
return newobj;
@@ -2071,11 +2080,11 @@ string_title(PyStringObject *self)
int c = Py_CHARMASK(*s++);
if (islower(c)) {
if (!previous_is_cased)
- c = toupper(c);
+ c = toupper_C_locale(c);
previous_is_cased = 1;
} else if (isupper(c)) {
if (previous_is_cased)
- c = tolower(c);
+ c = tolower_C_locale(c);
previous_is_cased = 1;
} else
previous_is_cased = 0;
@@ -2104,7 +2113,7 @@ string_capitalize(PyStringObject *self)
if (0 < n) {
int c = Py_CHARMASK(*s++);
if (islower(c))
- *s_new = toupper(c);
+ *s_new = toupper_C_locale(c);
else
*s_new = c;
s_new++;
@@ -2112,7 +2121,7 @@ string_capitalize(PyStringObject *self)
for (i = 1; i < n; i++) {
int c = Py_CHARMASK(*s++);
if (isupper(c))
- *s_new = tolower(c);
+ *s_new = tolower_C_locale(c);
else
*s_new = c;
s_new++;
@@ -2183,10 +2192,10 @@ string_swapcase(PyStringObject *self)
for (i = 0; i < n; i++) {
int c = Py_CHARMASK(*s++);
if (islower(c)) {
- *s_new = toupper(c);
+ *s_new = toupper_C_locale(c);
}
else if (isupper(c)) {
- *s_new = tolower(c);
+ *s_new = tolower_C_locale(c);
}
else
*s_new = c;
--
2.30.1