Commit ef8d95c4 authored by Victor Stinner's avatar Victor Stinner

Issue #9425: Create Py_UNICODE_strncmp() function

The code is based on strncmp() of the libiberty library,
function in the public domain.
parent 405038ac
...@@ -1613,23 +1613,38 @@ PyAPI_FUNC(int) _PyUnicode_IsAlpha( ...@@ -1613,23 +1613,38 @@ PyAPI_FUNC(int) _PyUnicode_IsAlpha(
Py_UNICODE ch /* Unicode character */ Py_UNICODE ch /* Unicode character */
); );
PyAPI_FUNC(size_t) Py_UNICODE_strlen(const Py_UNICODE *u); PyAPI_FUNC(size_t) Py_UNICODE_strlen(
const Py_UNICODE *u
);
PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcpy( PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcpy(
Py_UNICODE *s1, const Py_UNICODE *s2); Py_UNICODE *s1,
const Py_UNICODE *s2);
PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strncpy( PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strncpy(
Py_UNICODE *s1, const Py_UNICODE *s2, size_t n); Py_UNICODE *s1,
const Py_UNICODE *s2,
size_t n);
PyAPI_FUNC(int) Py_UNICODE_strcmp( PyAPI_FUNC(int) Py_UNICODE_strcmp(
const Py_UNICODE *s1, const Py_UNICODE *s2); const Py_UNICODE *s1,
const Py_UNICODE *s2
);
PyAPI_FUNC(int) Py_UNICODE_strncmp(
const Py_UNICODE *s1,
const Py_UNICODE *s2,
size_t n
);
PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strchr( PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strchr(
const Py_UNICODE *s, Py_UNICODE c const Py_UNICODE *s,
Py_UNICODE c
); );
PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strrchr( PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strrchr(
const Py_UNICODE *s, Py_UNICODE c const Py_UNICODE *s,
Py_UNICODE c
); );
#ifdef __cplusplus #ifdef __cplusplus
......
...@@ -9986,6 +9986,23 @@ Py_UNICODE_strcmp(const Py_UNICODE *s1, const Py_UNICODE *s2) ...@@ -9986,6 +9986,23 @@ Py_UNICODE_strcmp(const Py_UNICODE *s1, const Py_UNICODE *s2)
return 0; 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*
Py_UNICODE_strchr(const Py_UNICODE *s, Py_UNICODE c) Py_UNICODE_strchr(const Py_UNICODE *s, Py_UNICODE c)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment