]> granicus.if.org Git - python/commitdiff
Fix gcc 3.3 warnings related to Py_UNICODE_WIDE.
authorHye-Shik Chang <hyeshik@gmail.com>
Mon, 29 Dec 2003 01:36:01 +0000 (01:36 +0000)
committerHye-Shik Chang <hyeshik@gmail.com>
Mon, 29 Dec 2003 01:36:01 +0000 (01:36 +0000)
Objects/unicodectype.c
Python/codecs.c

index 106726d7fceefd26221446c6aa4e54942ad10437..7a330d9052fe313b40a7a8b8350ebf03a910576e 100644 (file)
@@ -36,9 +36,12 @@ gettyperecord(Py_UNICODE code)
 {
     int index;
 
+#ifdef Py_UNICODE_WIDE
     if (code >= 0x110000)
         index = 0;
-    else {
+    else
+#endif
+    {
         index = index1[(code>>SHIFT)];
         index = index2[(index<<SHIFT)+(code&((1<<SHIFT)-1))];
     }
index 3675f3cc8080d4dcc65067be53441811a68ef0d8..a208898e8c07aaa9c78f0d4e0026fb7d185c6514 100644 (file)
@@ -563,12 +563,17 @@ PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
                ressize += 2+3+1;
            else if (*p<10000)
                ressize += 2+4+1;
+#ifndef Py_UNICODE_WIDE
+           else
+               ressize += 2+5+1;
+#else
            else if (*p<100000)
                ressize += 2+5+1;
            else if (*p<1000000)
                ressize += 2+6+1;
            else
                ressize += 2+7+1;
+#endif
        }
        /* allocate replacement */
        res = PyUnicode_FromUnicode(NULL, ressize);
@@ -600,6 +605,12 @@ PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
                digits = 4;
                base = 1000;
            }
+#ifndef Py_UNICODE_WIDE
+           else {
+               digits = 5;
+               base = 10000;
+           }
+#else
            else if (*p<100000) {
                digits = 5;
                base = 10000;
@@ -612,6 +623,7 @@ PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
                digits = 7;
                base = 1000000;
            }
+#endif
            while (digits-->0) {
                *outp++ = '0' + c/base;
                c %= base;
@@ -655,9 +667,12 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
            return NULL;
        startp = PyUnicode_AS_UNICODE(object);
        for (p = startp+start, ressize = 0; p < startp+end; ++p) {
+#ifdef Py_UNICODE_WIDE
            if (*p >= 0x00010000)
                ressize += 1+1+8;
-           else if (*p >= 0x100) {
+           else
+#endif
+           if (*p >= 0x100) {
                ressize += 1+1+4;
            }
            else
@@ -670,6 +685,7 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
            p < startp+end; ++p) {
            Py_UNICODE c = *p;
            *outp++ = '\\';
+#ifdef Py_UNICODE_WIDE
            if (c >= 0x00010000) {
                *outp++ = 'U';
                *outp++ = hexdigits[(c>>28)&0xf];
@@ -679,7 +695,9 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
                *outp++ = hexdigits[(c>>12)&0xf];
                *outp++ = hexdigits[(c>>8)&0xf];
            }
-           else if (c >= 0x100) {
+           else
+#endif
+           if (c >= 0x100) {
                *outp++ = 'u';
                *outp++ = hexdigits[(c>>12)&0xf];
                *outp++ = hexdigits[(c>>8)&0xf];