mirror of https://github.com/python/cpython.git
Drop Py_UCS4_ functions. Closes #13246.
This commit is contained in:
parent
a72e78b3b1
commit
0d3072e98d
|
@ -1984,43 +1984,6 @@ PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strrchr(
|
||||||
Py_UNICODE c
|
Py_UNICODE c
|
||||||
);
|
);
|
||||||
|
|
||||||
PyAPI_FUNC(size_t) Py_UCS4_strlen(
|
|
||||||
const Py_UCS4 *u
|
|
||||||
);
|
|
||||||
|
|
||||||
PyAPI_FUNC(Py_UCS4*) Py_UCS4_strcpy(
|
|
||||||
Py_UCS4 *s1,
|
|
||||||
const Py_UCS4 *s2);
|
|
||||||
|
|
||||||
PyAPI_FUNC(Py_UCS4*) Py_UCS4_strcat(
|
|
||||||
Py_UCS4 *s1, const Py_UCS4 *s2);
|
|
||||||
|
|
||||||
PyAPI_FUNC(Py_UCS4*) Py_UCS4_strncpy(
|
|
||||||
Py_UCS4 *s1,
|
|
||||||
const Py_UCS4 *s2,
|
|
||||||
size_t n);
|
|
||||||
|
|
||||||
PyAPI_FUNC(int) Py_UCS4_strcmp(
|
|
||||||
const Py_UCS4 *s1,
|
|
||||||
const Py_UCS4 *s2
|
|
||||||
);
|
|
||||||
|
|
||||||
PyAPI_FUNC(int) Py_UCS4_strncmp(
|
|
||||||
const Py_UCS4 *s1,
|
|
||||||
const Py_UCS4 *s2,
|
|
||||||
size_t n
|
|
||||||
);
|
|
||||||
|
|
||||||
PyAPI_FUNC(Py_UCS4*) Py_UCS4_strchr(
|
|
||||||
const Py_UCS4 *s,
|
|
||||||
Py_UCS4 c
|
|
||||||
);
|
|
||||||
|
|
||||||
PyAPI_FUNC(Py_UCS4*) Py_UCS4_strrchr(
|
|
||||||
const Py_UCS4 *s,
|
|
||||||
Py_UCS4 c
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Create a copy of a unicode string ending with a nul character. Return NULL
|
/* Create a copy of a unicode string ending with a nul character. Return NULL
|
||||||
and raise a MemoryError exception on memory allocation failure, otherwise
|
and raise a MemoryError exception on memory allocation failure, otherwise
|
||||||
return a new allocated buffer (use PyMem_Free() to free the buffer). */
|
return a new allocated buffer (use PyMem_Free() to free the buffer). */
|
||||||
|
|
|
@ -14195,16 +14195,96 @@ unicode_iter(PyObject *seq)
|
||||||
return (PyObject *)it;
|
return (PyObject *)it;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define UNIOP(x) Py_UNICODE_##x
|
|
||||||
#define UNIOP_t Py_UNICODE
|
size_t
|
||||||
#include "uniops.h"
|
Py_UNICODE_strlen(const Py_UNICODE *u)
|
||||||
#undef UNIOP
|
{
|
||||||
#undef UNIOP_t
|
int res = 0;
|
||||||
#define UNIOP(x) Py_UCS4_##x
|
while(*u++)
|
||||||
#define UNIOP_t Py_UCS4
|
res++;
|
||||||
#include "uniops.h"
|
return res;
|
||||||
#undef UNIOP
|
}
|
||||||
#undef UNIOP_t
|
|
||||||
|
Py_UNICODE*
|
||||||
|
Py_UNICODE_strcpy(Py_UNICODE *s1, const Py_UNICODE *s2)
|
||||||
|
{
|
||||||
|
Py_UNICODE *u = s1;
|
||||||
|
while ((*u++ = *s2++));
|
||||||
|
return s1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Py_UNICODE*
|
||||||
|
Py_UNICODE_strncpy(Py_UNICODE *s1, const Py_UNICODE *s2, size_t n)
|
||||||
|
{
|
||||||
|
Py_UNICODE *u = s1;
|
||||||
|
while ((*u++ = *s2++))
|
||||||
|
if (n-- == 0)
|
||||||
|
break;
|
||||||
|
return s1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Py_UNICODE*
|
||||||
|
Py_UNICODE_strcat(Py_UNICODE *s1, const Py_UNICODE *s2)
|
||||||
|
{
|
||||||
|
Py_UNICODE *u1 = s1;
|
||||||
|
u1 += Py_UNICODE_strlen(u1);
|
||||||
|
Py_UNICODE_strcpy(u1, s2);
|
||||||
|
return s1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
Py_UNICODE_strcmp(const Py_UNICODE *s1, const Py_UNICODE *s2)
|
||||||
|
{
|
||||||
|
while (*s1 && *s2 && *s1 == *s2)
|
||||||
|
s1++, s2++;
|
||||||
|
if (*s1 && *s2)
|
||||||
|
return (*s1 < *s2) ? -1 : +1;
|
||||||
|
if (*s1)
|
||||||
|
return 1;
|
||||||
|
if (*s2)
|
||||||
|
return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
Py_UNICODE_strncmp(const Py_UNICODE *s1, const Py_UNICODE *s2, size_t n)
|
||||||
|
{
|
||||||
|
register Py_UNICODE u1, u2;
|
||||||
|
for (; n != 0; n--) {
|
||||||
|
u1 = *s1;
|
||||||
|
u2 = *s2;
|
||||||
|
if (u1 != u2)
|
||||||
|
return (u1 < u2) ? -1 : +1;
|
||||||
|
if (u1 == '\0')
|
||||||
|
return 0;
|
||||||
|
s1++;
|
||||||
|
s2++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Py_UNICODE*
|
||||||
|
Py_UNICODE_strchr(const Py_UNICODE *s, Py_UNICODE c)
|
||||||
|
{
|
||||||
|
const Py_UNICODE *p;
|
||||||
|
for (p = s; *p; p++)
|
||||||
|
if (*p == c)
|
||||||
|
return (Py_UNICODE*)p;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Py_UNICODE*
|
||||||
|
Py_UNICODE_strrchr(const Py_UNICODE *s, Py_UNICODE c)
|
||||||
|
{
|
||||||
|
const Py_UNICODE *p;
|
||||||
|
p = s + Py_UNICODE_strlen(s);
|
||||||
|
while (p != s) {
|
||||||
|
p--;
|
||||||
|
if (*p == c)
|
||||||
|
return (Py_UNICODE*)p;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
Py_UNICODE*
|
Py_UNICODE*
|
||||||
PyUnicode_AsUnicodeCopy(PyObject *unicode)
|
PyUnicode_AsUnicodeCopy(PyObject *unicode)
|
||||||
|
|
|
@ -1,91 +0,0 @@
|
||||||
|
|
||||||
size_t
|
|
||||||
UNIOP(strlen)(const UNIOP_t *u)
|
|
||||||
{
|
|
||||||
int res = 0;
|
|
||||||
while(*u++)
|
|
||||||
res++;
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
UNIOP_t*
|
|
||||||
UNIOP(strcpy)(UNIOP_t *s1, const UNIOP_t *s2)
|
|
||||||
{
|
|
||||||
UNIOP_t *u = s1;
|
|
||||||
while ((*u++ = *s2++));
|
|
||||||
return s1;
|
|
||||||
}
|
|
||||||
|
|
||||||
UNIOP_t*
|
|
||||||
UNIOP(strncpy)(UNIOP_t *s1, const UNIOP_t *s2, size_t n)
|
|
||||||
{
|
|
||||||
UNIOP_t *u = s1;
|
|
||||||
while ((*u++ = *s2++))
|
|
||||||
if (n-- == 0)
|
|
||||||
break;
|
|
||||||
return s1;
|
|
||||||
}
|
|
||||||
|
|
||||||
UNIOP_t*
|
|
||||||
UNIOP(strcat)(UNIOP_t *s1, const UNIOP_t *s2)
|
|
||||||
{
|
|
||||||
UNIOP_t *u1 = s1;
|
|
||||||
u1 += UNIOP(strlen(u1));
|
|
||||||
UNIOP(strcpy(u1, s2));
|
|
||||||
return s1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
UNIOP(strcmp)(const UNIOP_t *s1, const UNIOP_t *s2)
|
|
||||||
{
|
|
||||||
while (*s1 && *s2 && *s1 == *s2)
|
|
||||||
s1++, s2++;
|
|
||||||
if (*s1 && *s2)
|
|
||||||
return (*s1 < *s2) ? -1 : +1;
|
|
||||||
if (*s1)
|
|
||||||
return 1;
|
|
||||||
if (*s2)
|
|
||||||
return -1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
UNIOP(strncmp)(const UNIOP_t *s1, const UNIOP_t *s2, size_t n)
|
|
||||||
{
|
|
||||||
register UNIOP_t u1, u2;
|
|
||||||
for (; n != 0; n--) {
|
|
||||||
u1 = *s1;
|
|
||||||
u2 = *s2;
|
|
||||||
if (u1 != u2)
|
|
||||||
return (u1 < u2) ? -1 : +1;
|
|
||||||
if (u1 == '\0')
|
|
||||||
return 0;
|
|
||||||
s1++;
|
|
||||||
s2++;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
UNIOP_t*
|
|
||||||
UNIOP(strchr)(const UNIOP_t *s, UNIOP_t c)
|
|
||||||
{
|
|
||||||
const UNIOP_t *p;
|
|
||||||
for (p = s; *p; p++)
|
|
||||||
if (*p == c)
|
|
||||||
return (UNIOP_t*)p;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
UNIOP_t*
|
|
||||||
UNIOP(strrchr)(const UNIOP_t *s, UNIOP_t c)
|
|
||||||
{
|
|
||||||
const UNIOP_t *p;
|
|
||||||
p = s + UNIOP(strlen)(s);
|
|
||||||
while (p != s) {
|
|
||||||
p--;
|
|
||||||
if (*p == c)
|
|
||||||
return (UNIOP_t*)p;
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue