live-bootstrap/steps/python-2.0.1/files/disable-unicode.patch
fosslinux a67db8fcbd Make patches relative to where tarballs are extracted
Ever since an old patch version, it has (for reasonable security
reasons) not supported patched with ../ in the filename.
Many of our patches have been relying on this behaviour being OK,
because we start off with an ancient patch version that didn't perform
such checks. As soon as we need this behaviour after we build a newer
patch though, we will have problems.

So, let's change the policy.
Patches are relative to where tarballs are extracted, rather than the
"working directory" - e.g. have patches for `coreutils-9.4/src/cp.c`
instead of `src/cp.c`.
Keeping this consistent has a few implications;
- patches are applied from the build/ directory in bash era now, with
  `-p0`
- when patches are manually applied in the bash era, use `-p` as
  required, usually `-p1`
- in kaem era where patches are always manually applied, `-p1` is used
2024-12-23 15:20:42 +11:00

107 lines
2.6 KiB
Diff

SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: Python-2.0.1
unicodetype_db.h is a file that needs to be regened, but it not
particularly trivial to regen. For the first build of Python,
strip out any kind of unicode support that requires
unicodetype_db.h indiscriminately.
We are effectively restricted to ASCII characters with this change,
but it works.
--- Python-2.0.1/Objects/unicodectype.c 2000-09-26 08:48:13.000000000 +1100
+++ Python-2.0.1/Objects/unicodectype.c 2022-10-03 21:09:02.108869321 +1100
@@ -29,30 +29,12 @@
const unsigned char digit;
} _PyUnicode_TypeRecord;
-#include "unicodetype_db.h"
-
-static const _PyUnicode_TypeRecord *
-gettyperecord(int code)
-{
- int index;
-
- if (code < 0 || code >= 65536)
- index = 0;
- else {
- index = index1[(code>>SHIFT)];
- index = index2[(index<<SHIFT)+(code&((1<<SHIFT)-1))];
- }
- return &_PyUnicode_TypeRecords[index];
-}
-
/* Returns 1 for Unicode characters having the category 'Zl' or type
'B', 0 otherwise. */
int _PyUnicode_IsLinebreak(register const Py_UNICODE ch)
{
- const _PyUnicode_TypeRecord *ctype = gettyperecord(ch);
-
- return (ctype->flags & LINEBREAK_MASK) != 0;
+ return 0;
}
/* Returns the titlecase Unicode characters corresponding to ch or just
@@ -60,12 +44,7 @@
Py_UNICODE _PyUnicode_ToTitlecase(register const Py_UNICODE ch)
{
- const _PyUnicode_TypeRecord *ctype = gettyperecord(ch);
-
- if (ctype->title)
- return ch + ctype->title;
-
- return ch + ctype->upper;
+ return ch;
}
/* Returns 1 for Unicode characters having the category 'Lt', 0
@@ -73,9 +52,7 @@
int _PyUnicode_IsTitlecase(register const Py_UNICODE ch)
{
- const _PyUnicode_TypeRecord *ctype = gettyperecord(ch);
-
- return (ctype->flags & TITLE_MASK) != 0;
+ return 0;
}
/* Returns the integer decimal (0-9) for Unicode characters having
@@ -83,15 +60,13 @@
int _PyUnicode_ToDecimalDigit(register const Py_UNICODE ch)
{
- const _PyUnicode_TypeRecord *ctype = gettyperecord(ch);
-
- return (ctype->flags & DECIMAL_MASK) ? ctype->decimal : -1;
+ return -1;
}
int _PyUnicode_IsDecimalDigit(register const Py_UNICODE ch)
{
if (_PyUnicode_ToDecimalDigit(ch) < 0)
- return 0;
+ return 0;
return 1;
}
@@ -100,15 +75,13 @@
int _PyUnicode_ToDigit(register const Py_UNICODE ch)
{
- const _PyUnicode_TypeRecord *ctype = gettyperecord(ch);
-
- return (ctype->flags & DIGIT_MASK) ? ctype->digit : -1;
+ return -1;
}
int _PyUnicode_IsDigit(register const Py_UNICODE ch)
{
if (_PyUnicode_ToDigit(ch) < 0)
- return 0;
+ return 0;
return 1;
}