summaryrefslogtreecommitdiffstats
path: root/Objects/unicodeobject.c
diff options
context:
space:
mode:
authorMarc-André Lemburg <mal@egenix.com>2000-08-08 08:04:29 (GMT)
committerMarc-André Lemburg <mal@egenix.com>2000-08-08 08:04:29 (GMT)
commite5034378cc2e46f9a7233269a5687bfec8c8c303 (patch)
treee7b66c147c9ded2b44114d0fb35968febc9febd4 /Objects/unicodeobject.c
parent5660639f9f1121cdb7abf6202a6005f1a890a1e5 (diff)
downloadcpython-e5034378cc2e46f9a7233269a5687bfec8c8c303.zip
cpython-e5034378cc2e46f9a7233269a5687bfec8c8c303.tar.gz
cpython-e5034378cc2e46f9a7233269a5687bfec8c8c303.tar.bz2
Removing UTF-16 aware Unicode comparison code. This kind of compare
function (together with other locale aware ones) should into a new collation support module. See python-dev for a discussion of this removal. Note: This patch should also be applied to the 1.6 branch.
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r--Objects/unicodeobject.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 83efa81..95f4761 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -3169,6 +3169,12 @@ unicode_center(PyUnicodeObject *self, PyObject *args)
return (PyObject*) pad(self, left, marg - left, ' ');
}
+#if 0
+
+/* This code should go into some future Unicode collation support
+ module. The basic comparison should compare ordinals on a naive
+ basis (this is what Java does and thus JPython too).
+
/* speedy UTF-16 code point order comparison */
/* gleaned from: */
/* http://www-4.ibm.com/software/developer/library/utf16.html?dwzone=unicode */
@@ -3213,6 +3219,33 @@ unicode_compare(PyUnicodeObject *str1, PyUnicodeObject *str2)
return (len1 < len2) ? -1 : (len1 != len2);
}
+#else
+
+static int
+unicode_compare(PyUnicodeObject *str1, PyUnicodeObject *str2)
+{
+ register int len1, len2;
+
+ Py_UNICODE *s1 = str1->str;
+ Py_UNICODE *s2 = str2->str;
+
+ len1 = str1->length;
+ len2 = str2->length;
+
+ while (len1 > 0 && len2 > 0) {
+ register long diff;
+
+ diff = (long)*s1++ - (long)*s2++;
+ if (diff)
+ return (diff < 0) ? -1 : (diff != 0);
+ len1--; len2--;
+ }
+
+ return (len1 < len2) ? -1 : (len1 != len2);
+}
+
+#endif
+
int PyUnicode_Compare(PyObject *left,
PyObject *right)
{