[Python-checkins] cpython: Drop Py_UCS4_ functions. Closes #13246.

martin.v.loewis python-checkins at python.org
Mon Oct 31 08:41:08 CET 2011


http://hg.python.org/cpython/rev/80a7ab9ac29f
changeset:   73236:80a7ab9ac29f
user:        Martin v. Löwis <martin at v.loewis.de>
date:        Mon Oct 31 08:40:56 2011 +0100
summary:
  Drop Py_UCS4_ functions. Closes #13246.

files:
  Include/unicodeobject.h |   37 ----------
  Objects/unicodeobject.c |  100 +++++++++++++++++++++++++--
  Objects/uniops.h        |   91 -------------------------
  3 files changed, 90 insertions(+), 138 deletions(-)


diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -1984,43 +1984,6 @@
     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
    and raise a MemoryError exception on memory allocation failure, otherwise
    return a new allocated buffer (use PyMem_Free() to free the buffer). */
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -14195,16 +14195,96 @@
     return (PyObject *)it;
 }
 
-#define UNIOP(x) Py_UNICODE_##x
-#define UNIOP_t Py_UNICODE
-#include "uniops.h"
-#undef UNIOP
-#undef UNIOP_t
-#define UNIOP(x) Py_UCS4_##x
-#define UNIOP_t Py_UCS4
-#include "uniops.h"
-#undef UNIOP
-#undef UNIOP_t
+
+size_t
+Py_UNICODE_strlen(const Py_UNICODE *u)
+{
+    int res = 0;
+    while(*u++)
+        res++;
+    return res;
+}
+
+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*
 PyUnicode_AsUnicodeCopy(PyObject *unicode)
diff --git a/Objects/uniops.h b/Objects/uniops.h
deleted file mode 100644
--- a/Objects/uniops.h
+++ /dev/null
@@ -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;
-}
-

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list