Author: guido.van.rossum
Date: Sat Oct 27 01:10:44 2007
New Revision: 58681

Modified:
   python/branches/py3k-pep3137/Include/stringobject.h
   python/branches/py3k-pep3137/Modules/_sqlite/cache.c
   python/branches/py3k-pep3137/Objects/stringobject.c
   python/branches/py3k-pep3137/Objects/unicodeobject.c
Log:
Fix compiler warnings in str8.decode() that I didn't notice before.
Get rid of str8() % ... and PyString_Format().


Modified: python/branches/py3k-pep3137/Include/stringobject.h
==============================================================================
--- python/branches/py3k-pep3137/Include/stringobject.h (original)
+++ python/branches/py3k-pep3137/Include/stringobject.h Sat Oct 27 01:10:44 2007
@@ -104,6 +104,12 @@
                                   strings) */
     );
 
+/* Flags used by string formatting */
+#define F_LJUST (1<<0)
+#define F_SIGN (1<<1)
+#define F_BLANK (1<<2)
+#define F_ALT  (1<<3)
+#define F_ZERO (1<<4)
 
 #ifdef __cplusplus
 }

Modified: python/branches/py3k-pep3137/Modules/_sqlite/cache.c
==============================================================================
--- python/branches/py3k-pep3137/Modules/_sqlite/cache.c        (original)
+++ python/branches/py3k-pep3137/Modules/_sqlite/cache.c        Sat Oct 27 
01:10:44 2007
@@ -246,7 +246,7 @@
             Py_DECREF(fmt_args);
             return NULL;
         }
-        display_str = PyString_Format(template, fmt_args);
+        display_str = PyUnicode_Format(template, fmt_args);
         Py_DECREF(template);
         Py_DECREF(fmt_args);
         if (!display_str) {

Modified: python/branches/py3k-pep3137/Objects/stringobject.c
==============================================================================
--- python/branches/py3k-pep3137/Objects/stringobject.c (original)
+++ python/branches/py3k-pep3137/Objects/stringobject.c Sat Oct 27 01:10:44 2007
@@ -2739,10 +2739,10 @@
 able to handle UnicodeDecodeErrors.");
 
 static PyObject *
-string_decode(PyStringObject *self, PyObject *args)
+string_decode(PyObject *self, PyObject *args)
 {
-       char *encoding = NULL;
-       char *errors = NULL;
+       const char *encoding = NULL;
+       const char *errors = NULL;
 
        if (!PyArg_ParseTuple(args, "|ss:decode", &encoding, &errors))
                return NULL;
@@ -3062,23 +3062,6 @@
        return pnew;
 }
 
-static PyObject *
-string_mod(PyObject *v, PyObject *w)
-{
-       if (!PyString_Check(v)) {
-               Py_INCREF(Py_NotImplemented);
-               return Py_NotImplemented;
-       }
-       return PyString_Format(v, w);
-}
-
-static PyNumberMethods string_as_number = {
-       0,                      /*nb_add*/
-       0,                      /*nb_subtract*/
-       0,                      /*nb_multiply*/
-       string_mod,             /*nb_remainder*/
-};
-
 PyDoc_STRVAR(string_doc,
 "str(object) -> string\n\
 \n\
@@ -3098,7 +3081,7 @@
        0,                                      /* tp_setattr */
        0,                                      /* tp_compare */
        string_repr,                            /* tp_repr */
-       &string_as_number,                      /* tp_as_number */
+       0,                                      /* tp_as_number */
        &string_as_sequence,                    /* tp_as_sequence */
        &string_as_mapping,                     /* tp_as_mapping */
        (hashfunc)string_hash,                  /* tp_hash */
@@ -3199,85 +3182,6 @@
        return 0;
 }
 
-/* Helpers for formatstring */
-
-Py_LOCAL_INLINE(PyObject *)
-getnextarg(PyObject *args, Py_ssize_t arglen, Py_ssize_t *p_argidx)
-{
-       Py_ssize_t argidx = *p_argidx;
-       if (argidx < arglen) {
-               (*p_argidx)++;
-               if (arglen < 0)
-                       return args;
-               else
-                       return PyTuple_GetItem(args, argidx);
-       }
-       PyErr_SetString(PyExc_TypeError,
-                       "not enough arguments for format string");
-       return NULL;
-}
-
-/* Format codes
- * F_LJUST     '-'
- * F_SIGN      '+'
- * F_BLANK     ' '
- * F_ALT       '#'
- * F_ZERO      '0'
- */
-#define F_LJUST (1<<0)
-#define F_SIGN (1<<1)
-#define F_BLANK (1<<2)
-#define F_ALT  (1<<3)
-#define F_ZERO (1<<4)
-
-Py_LOCAL_INLINE(int)
-formatfloat(char *buf, size_t buflen, int flags,
-           int prec, int type, PyObject *v)
-{
-       /* fmt = '%#.' + `prec` + `type`
-          worst case length = 3 + 10 (len of INT_MAX) + 1 = 14 (use 20)*/
-       char fmt[20];
-       double x;
-       x = PyFloat_AsDouble(v);
-       if (x == -1.0 && PyErr_Occurred()) {
-               PyErr_Format(PyExc_TypeError, "float argument required, "
-                            "not %.200s", Py_Type(v)->tp_name);
-               return -1;
-       }
-       if (prec < 0)
-               prec = 6;
-       if (type == 'f' && fabs(x)/1e25 >= 1e25)
-               type = 'g';
-       /* Worst case length calc to ensure no buffer overrun:
-
-          'g' formats:
-            fmt = %#.<prec>g
-            buf = '-' + [0-9]*prec + '.' + 'e+' + (longest exp
-               for any double rep.)
-            len = 1 + prec + 1 + 2 + 5 = 9 + prec
-
-          'f' formats:
-            buf = '-' + [0-9]*x + '.' + [0-9]*prec (with x < 50)
-            len = 1 + 50 + 1 + prec = 52 + prec
-
-          If prec=0 the effective precision is 1 (the leading digit is
-          always given), therefore increase the length by one.
-
-       */
-       if (((type == 'g' || type == 'G') &&
-             buflen <= (size_t)10 + (size_t)prec) ||
-           (type == 'f' && buflen <= (size_t)53 + (size_t)prec)) {
-               PyErr_SetString(PyExc_OverflowError,
-                       "formatted float is too long (precision too large?)");
-               return -1;
-       }
-       PyOS_snprintf(fmt, sizeof(fmt), "%%%s.%d%c",
-                     (flags&F_ALT) ? "#" : "",
-                     prec, type);
-       PyOS_ascii_formatd(buf, buflen, fmt, x);
-       return (int)strlen(buf);
-}
-
 /* _PyString_FormatLong emulates the format codes d, u, o, x and X, and
  * the F_ALT flag, for Python's long (unbounded) ints.  It's not used for
  * Python's regular ints.
@@ -3356,7 +3260,8 @@
        }
        llen = PyString_Size(result);
        if (llen > INT_MAX) {
-               PyErr_SetString(PyExc_ValueError, "string too large in 
_PyString_FormatLong");
+               PyErr_SetString(PyExc_ValueError,
+                               "string too large in _PyString_FormatLong");
                return NULL;
        }
        len = (int)llen;
@@ -3420,566 +3325,6 @@
        return result;
 }
 
-Py_LOCAL_INLINE(int)
-formatint(char *buf, size_t buflen, int flags,
-         int prec, int type, PyObject *v)
-{
-       /* fmt = '%#.' + `prec` + 'l' + `type`
-          worst case length = 3 + 19 (worst len of INT_MAX on 64-bit machine)
-          + 1 + 1 = 24 */
-       char fmt[64];   /* plenty big enough! */
-       char *sign;
-       long x;
-
-       x = PyInt_AsLong(v);
-       if (x == -1 && PyErr_Occurred()) {
-               PyErr_Format(PyExc_TypeError, "int argument required, not 
%.200s",
-                            Py_Type(v)->tp_name);
-               return -1;
-       }
-       if (x < 0 && type == 'u') {
-               type = 'd';
-       }
-       if (x < 0 && (type == 'x' || type == 'X' || type == 'o'))
-               sign = "-";
-       else
-               sign = "";
-       if (prec < 0)
-               prec = 1;
-
-       if ((flags & F_ALT) &&
-           (type == 'x' || type == 'X' || type == 'o')) {
-               /* When converting under %#o, %#x or %#X, there are a number
-                * of issues that cause pain:
-                * - for %#o, we want a different base marker than C
-                * - when 0 is being converted, the C standard leaves off
-                *   the '0x' or '0X', which is inconsistent with other
-                *   %#x/%#X conversions and inconsistent with Python's
-                *   hex() function
-                * - there are platforms that violate the standard and
-                *   convert 0 with the '0x' or '0X'
-                *   (Metrowerks, Compaq Tru64)
-                * - there are platforms that give '0x' when converting
-                *   under %#X, but convert 0 in accordance with the
-                *   standard (OS/2 EMX)
-                *
-                * We can achieve the desired consistency by inserting our
-                * own '0x' or '0X' prefix, and substituting %x/%X in place
-                * of %#x/%#X.
-                *
-                * Note that this is the same approach as used in
-                * formatint() in unicodeobject.c
-                */
-               PyOS_snprintf(fmt, sizeof(fmt), "%s0%c%%.%dl%c",
-                             sign, type, prec, type);
-       }
-       else {
-               PyOS_snprintf(fmt, sizeof(fmt), "%s%%%s.%dl%c",
-                             sign, (flags&F_ALT) ? "#" : "",
-                             prec, type);
-       }
-
-       /* buf = '+'/'-'/'' + '0o'/'0x'/'' + '[0-9]'*max(prec, len(x in octal))
-        * worst case buf = '-0x' + [0-9]*prec, where prec >= 11
-        */
-       if (buflen <= 14 || buflen <= (size_t)3 + (size_t)prec) {
-               PyErr_SetString(PyExc_OverflowError,
-                   "formatted integer is too long (precision too large?)");
-               return -1;
-       }
-       if (sign[0])
-               PyOS_snprintf(buf, buflen, fmt, -x);
-       else
-               PyOS_snprintf(buf, buflen, fmt, x);
-       return (int)strlen(buf);
-}
-
-Py_LOCAL_INLINE(int)
-formatchar(char *buf, size_t buflen, PyObject *v)
-{
-       /* presume that the buffer is at least 2 characters long */
-       if (PyString_Check(v)) {
-               if (!PyArg_Parse(v, "c;%c requires int or char", &buf[0]))
-                       return -1;
-       }
-       else {
-               if (!PyArg_Parse(v, "b;%c requires int or char", &buf[0]))
-                       return -1;
-       }
-       buf[1] = '\0';
-       return 1;
-}
-
-/* fmt%(v1,v2,...) is roughly equivalent to sprintf(fmt, v1, v2, ...)
-
-   FORMATBUFLEN is the length of the buffer in which the floats, ints, &
-   chars are formatted. XXX This is a magic number. Each formatting
-   routine does bounds checking to ensure no overflow, but a better
-   solution may be to malloc a buffer of appropriate size for each
-   format. For now, the current solution is sufficient.
-*/
-#define FORMATBUFLEN (size_t)120
-
-PyObject *
-PyString_Format(PyObject *format, PyObject *args)
-{
-       char *fmt, *res;
-       Py_ssize_t arglen, argidx;
-       Py_ssize_t reslen, rescnt, fmtcnt;
-       int args_owned = 0;
-       PyObject *result, *orig_args;
-       PyObject *v, *w;
-       PyObject *dict = NULL;
-       if (format == NULL || !PyString_Check(format) || args == NULL) {
-               PyErr_BadInternalCall();
-               return NULL;
-       }
-       orig_args = args;
-       fmt = PyString_AS_STRING(format);
-       fmtcnt = PyString_GET_SIZE(format);
-       reslen = rescnt = fmtcnt + 100;
-       result = PyString_FromStringAndSize((char *)NULL, reslen);
-       if (result == NULL)
-               return NULL;
-       res = PyString_AsString(result);
-       if (PyTuple_Check(args)) {
-               arglen = PyTuple_GET_SIZE(args);
-               argidx = 0;
-       }
-       else {
-               arglen = -1;
-               argidx = -2;
-       }
-       if (Py_Type(args)->tp_as_mapping && !PyTuple_Check(args) &&
-           !PyString_Check(args) && !PyUnicode_Check(args))
-               dict = args;
-       while (--fmtcnt >= 0) {
-               if (*fmt != '%') {
-                       if (--rescnt < 0) {
-                               rescnt = fmtcnt + 100;
-                               reslen += rescnt;
-                               if (_PyString_Resize(&result, reslen) < 0)
-                                       return NULL;
-                               res = PyString_AS_STRING(result)
-                                       + reslen - rescnt;
-                               --rescnt;
-                       }
-                       *res++ = *fmt++;
-               }
-               else {
-                       /* Got a format specifier */
-                       int flags = 0;
-                       Py_ssize_t width = -1;
-                       int prec = -1;
-                       int c = '\0';
-                       int fill;
-                       PyObject *v = NULL;
-                       PyObject *temp = NULL;
-                       char *pbuf;
-                       int sign;
-                       Py_ssize_t len;
-                       char formatbuf[FORMATBUFLEN];
-                            /* For format{float,int,char}() */
-                       char *fmt_start = fmt;
-                       Py_ssize_t argidx_start = argidx;
-
-                       fmt++;
-                       if (*fmt == '(') {
-                               char *keystart;
-                               Py_ssize_t keylen;
-                               PyObject *key;
-                               int pcount = 1;
-
-                               if (dict == NULL) {
-                                       PyErr_SetString(PyExc_TypeError,
-                                                "format requires a mapping");
-                                       goto error;
-                               }
-                               ++fmt;
-                               --fmtcnt;
-                               keystart = fmt;
-                               /* Skip over balanced parentheses */
-                               while (pcount > 0 && --fmtcnt >= 0) {
-                                       if (*fmt == ')')
-                                               --pcount;
-                                       else if (*fmt == '(')
-                                               ++pcount;
-                                       fmt++;
-                               }
-                               keylen = fmt - keystart - 1;
-                               if (fmtcnt < 0 || pcount > 0) {
-                                       PyErr_SetString(PyExc_ValueError,
-                                                  "incomplete format key");
-                                       goto error;
-                               }
-                               key = PyString_FromStringAndSize(keystart,
-                                                                keylen);
-                               if (key == NULL)
-                                       goto error;
-                               if (args_owned) {
-                                       Py_DECREF(args);
-                                       args_owned = 0;
-                               }
-                               args = PyObject_GetItem(dict, key);
-                               Py_DECREF(key);
-                               if (args == NULL) {
-                                       goto error;
-                               }
-                               args_owned = 1;
-                               arglen = -1;
-                               argidx = -2;
-                       }
-                       while (--fmtcnt >= 0) {
-                               switch (c = *fmt++) {
-                               case '-': flags |= F_LJUST; continue;
-                               case '+': flags |= F_SIGN; continue;
-                               case ' ': flags |= F_BLANK; continue;
-                               case '#': flags |= F_ALT; continue;
-                               case '0': flags |= F_ZERO; continue;
-                               }
-                               break;
-                       }
-                       if (c == '*') {
-                               v = getnextarg(args, arglen, &argidx);
-                               if (v == NULL)
-                                       goto error;
-                               if (!PyInt_Check(v)) {
-                                       PyErr_SetString(PyExc_TypeError,
-                                                       "* wants int");
-                                       goto error;
-                               }
-                               width = PyInt_AsLong(v);
-                               if (width == -1 && PyErr_Occurred())
-                                       goto error;
-                               if (width < 0) {
-                                       flags |= F_LJUST;
-                                       width = -width;
-                               }
-                               if (--fmtcnt >= 0)
-                                       c = *fmt++;
-                       }
-                       else if (c >= 0 && ISDIGIT(c)) {
-                               width = c - '0';
-                               while (--fmtcnt >= 0) {
-                                       c = Py_CHARMASK(*fmt++);
-                                       if (!ISDIGIT(c))
-                                               break;
-                                       if ((width*10) / 10 != width) {
-                                               PyErr_SetString(
-                                                       PyExc_ValueError,
-                                                       "width too big");
-                                               goto error;
-                                       }
-                                       width = width*10 + (c - '0');
-                               }
-                       }
-                       if (c == '.') {
-                               prec = 0;
-                               if (--fmtcnt >= 0)
-                                       c = *fmt++;
-                               if (c == '*') {
-                                       v = getnextarg(args, arglen, &argidx);
-                                       if (v == NULL)
-                                               goto error;
-                                       if (!PyInt_Check(v)) {
-                                               PyErr_SetString(
-                                                       PyExc_TypeError,
-                                                       "* wants int");
-                                               goto error;
-                                       }
-                                       prec = PyInt_AsLong(v);
-                                       if (prec == -1 && PyErr_Occurred())
-                                               goto error;
-                                       if (prec < 0)
-                                               prec = 0;
-                                       if (--fmtcnt >= 0)
-                                               c = *fmt++;
-                               }
-                               else if (c >= 0 && ISDIGIT(c)) {
-                                       prec = c - '0';
-                                       while (--fmtcnt >= 0) {
-                                               c = Py_CHARMASK(*fmt++);
-                                               if (!ISDIGIT(c))
-                                                       break;
-                                               if ((prec*10) / 10 != prec) {
-                                                       PyErr_SetString(
-                                                           PyExc_ValueError,
-                                                           "prec too big");
-                                                       goto error;
-                                               }
-                                               prec = prec*10 + (c - '0');
-                                       }
-                               }
-                       } /* prec */
-                       if (fmtcnt >= 0) {
-                               if (c == 'h' || c == 'l' || c == 'L') {
-                                       if (--fmtcnt >= 0)
-                                               c = *fmt++;
-                               }
-                       }
-                       if (fmtcnt < 0) {
-                               PyErr_SetString(PyExc_ValueError,
-                                               "incomplete format");
-                               goto error;
-                       }
-                       if (c != '%') {
-                               v = getnextarg(args, arglen, &argidx);
-                               if (v == NULL)
-                                       goto error;
-                       }
-                       sign = 0;
-                       fill = ' ';
-                       switch (c) {
-                       case '%':
-                               pbuf = "%";
-                               len = 1;
-                               break;
-                       case 's':
-                               if (PyUnicode_Check(v)) {
-                                       fmt = fmt_start;
-                                       argidx = argidx_start;
-                                       goto unicode;
-                               }
-                               temp = _PyObject_Str(v);
-                               if (temp != NULL && PyUnicode_Check(temp)) {
-                                       Py_DECREF(temp);
-                                       fmt = fmt_start;
-                                       argidx = argidx_start;
-                                       goto unicode;
-                               }
-                               /* Fall through */
-                       case 'r':
-                               if (c == 'r')
-                                       temp = PyObject_ReprStr8(v);
-                               if (temp == NULL)
-                                       goto error;
-                               if (!PyString_Check(temp)) {
-                                       PyErr_SetString(PyExc_TypeError,
-                                         "%s argument has non-string 
str()/repr()");
-                                       Py_DECREF(temp);
-                                       goto error;
-                               }
-                               pbuf = PyString_AS_STRING(temp);
-                               len = PyString_GET_SIZE(temp);
-                               if (prec >= 0 && len > prec)
-                                       len = prec;
-                               break;
-                       case 'i':
-                       case 'd':
-                       case 'u':
-                       case 'o':
-                       case 'x':
-                       case 'X':
-                               if (c == 'i')
-                                       c = 'd';
-                               if (PyLong_Check(v)) {
-                                       int ilen;
-                                       temp = _PyString_FormatLong(v, flags,
-                                               prec, c, &pbuf, &ilen);
-                                       len = ilen;
-                                       if (!temp)
-                                               goto error;
-                                       sign = 1;
-                               }
-                               else {
-                                       pbuf = formatbuf;
-                                       len = formatint(pbuf,
-                                                       sizeof(formatbuf),
-                                                       flags, prec, c, v);
-                                       if (len < 0)
-                                               goto error;
-                                       sign = 1;
-                               }
-                               if (flags & F_ZERO)
-                                       fill = '0';
-                               break;
-                       case 'e':
-                       case 'E':
-                       case 'f':
-                       case 'F':
-                       case 'g':
-                       case 'G':
-                               if (c == 'F')
-                                       c = 'f';
-                               pbuf = formatbuf;
-                               len = formatfloat(pbuf, sizeof(formatbuf),
-                                                 flags, prec, c, v);
-                               if (len < 0)
-                                       goto error;
-                               sign = 1;
-                               if (flags & F_ZERO)
-                                       fill = '0';
-                               break;
-                       case 'c':
-                               if (PyUnicode_Check(v)) {
-                                       fmt = fmt_start;
-                                       argidx = argidx_start;
-                                       goto unicode;
-                               }
-                               pbuf = formatbuf;
-                               len = formatchar(pbuf, sizeof(formatbuf), v);
-                               if (len < 0)
-                                       goto error;
-                               break;
-                       default:
-                               PyErr_Format(PyExc_ValueError,
-                                 "unsupported format character '%c' (0x%x) "
-                                 "at index %zd",
-                                 c, c,
-                                 (Py_ssize_t)(fmt - 1 -
-                                              PyString_AsString(format)));
-                               goto error;
-                       }
-                       if (sign) {
-                               if (*pbuf == '-' || *pbuf == '+') {
-                                       sign = *pbuf++;
-                                       len--;
-                               }
-                               else if (flags & F_SIGN)
-                                       sign = '+';
-                               else if (flags & F_BLANK)
-                                       sign = ' ';
-                               else
-                                       sign = 0;
-                       }
-                       if (width < len)
-                               width = len;
-                       if (rescnt - (sign != 0) < width) {
-                               reslen -= rescnt;
-                               rescnt = width + fmtcnt + 100;
-                               reslen += rescnt;
-                               if (reslen < 0) {
-                                       Py_DECREF(result);
-                                       Py_XDECREF(temp);
-                                       return PyErr_NoMemory();
-                               }
-                               if (_PyString_Resize(&result, reslen) < 0) {
-                                       Py_XDECREF(temp);
-                                       return NULL;
-                               }
-                               res = PyString_AS_STRING(result)
-                                       + reslen - rescnt;
-                       }
-                       if (sign) {
-                               if (fill != ' ')
-                                       *res++ = sign;
-                               rescnt--;
-                               if (width > len)
-                                       width--;
-                       }
-                       if ((flags & F_ALT) &&
-                           (c == 'x' || c == 'X' || c == 'o')) {
-                               assert(pbuf[0] == '0');
-                               assert(pbuf[1] == c);
-                               if (fill != ' ') {
-                                       *res++ = *pbuf++;
-                                       *res++ = *pbuf++;
-                               }
-                               rescnt -= 2;
-                               width -= 2;
-                               if (width < 0)
-                                       width = 0;
-                               len -= 2;
-                       }
-                       if (width > len && !(flags & F_LJUST)) {
-                               do {
-                                       --rescnt;
-                                       *res++ = fill;
-                               } while (--width > len);
-                       }
-                       if (fill == ' ') {
-                               if (sign)
-                                       *res++ = sign;
-                               if ((flags & F_ALT) &&
-                                   (c == 'x' || c == 'X' || c == 'o')) {
-                                       assert(pbuf[0] == '0');
-                                       assert(pbuf[1] == c);
-                                       *res++ = *pbuf++;
-                                       *res++ = *pbuf++;
-                               }
-                       }
-                       Py_MEMCPY(res, pbuf, len);
-                       res += len;
-                       rescnt -= len;
-                       while (--width >= len) {
-                               --rescnt;
-                               *res++ = ' ';
-                       }
-                       if (dict && (argidx < arglen) && c != '%') {
-                               PyErr_SetString(PyExc_TypeError,
-                                               "not all arguments converted "
-                                               "during string formatting");
-                               Py_XDECREF(temp);
-                               goto error;
-                       }
-                       Py_XDECREF(temp);
-               } /* '%' */
-       } /* until end */
-       if (argidx < arglen && !dict) {
-               PyErr_SetString(PyExc_TypeError,
-                               "not all arguments converted "
-                               "during string formatting");
-               goto error;
-       }
-       if (args_owned) {
-               Py_DECREF(args);
-       }
-       _PyString_Resize(&result, reslen - rescnt);
-       return result;
-
- unicode:
-       if (args_owned) {
-               Py_DECREF(args);
-               args_owned = 0;
-       }
-       /* Fiddle args right (remove the first argidx arguments) */
-       if (PyTuple_Check(orig_args) && argidx > 0) {
-               PyObject *v;
-               Py_ssize_t n = PyTuple_GET_SIZE(orig_args) - argidx;
-               v = PyTuple_New(n);
-               if (v == NULL)
-                       goto error;
-               while (--n >= 0) {
-                       PyObject *w = PyTuple_GET_ITEM(orig_args, n + argidx);
-                       Py_INCREF(w);
-                       PyTuple_SET_ITEM(v, n, w);
-               }
-               args = v;
-       } else {
-               Py_INCREF(orig_args);
-               args = orig_args;
-       }
-       args_owned = 1;
-       /* Take what we have of the result and let the Unicode formatting
-          function format the rest of the input. */
-       rescnt = res - PyString_AS_STRING(result);
-       if (_PyString_Resize(&result, rescnt))
-               goto error;
-       fmtcnt = PyString_GET_SIZE(format) - \
-                (fmt - PyString_AS_STRING(format));
-       format = PyUnicode_Decode(fmt, fmtcnt, NULL, NULL);
-       if (format == NULL)
-               goto error;
-       v = PyUnicode_Format(format, args);
-       Py_DECREF(format);
-       if (v == NULL)
-               goto error;
-       /* Paste what we have (result) to what the Unicode formatting
-          function returned (v) and return the result (or error) */
-       w = PyUnicode_Concat(result, v);
-       Py_DECREF(result);
-       Py_DECREF(v);
-       Py_DECREF(args);
-       return w;
-
- error:
-       Py_DECREF(result);
-       if (args_owned) {
-               Py_DECREF(args);
-       }
-       return NULL;
-}
-
 void
 PyString_InternInPlace(PyObject **p)
 {

Modified: python/branches/py3k-pep3137/Objects/unicodeobject.c
==============================================================================
--- python/branches/py3k-pep3137/Objects/unicodeobject.c        (original)
+++ python/branches/py3k-pep3137/Objects/unicodeobject.c        Sat Oct 27 
01:10:44 2007
@@ -8225,12 +8225,6 @@
     return NULL;
 }
 
-#define F_LJUST (1<<0)
-#define F_SIGN (1<<1)
-#define F_BLANK (1<<2)
-#define F_ALT  (1<<3)
-#define F_ZERO (1<<4)
-
 static Py_ssize_t
 strtounicode(Py_UNICODE *buffer, const char *charbuffer)
 {
_______________________________________________
Python-3000-checkins mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000-checkins

Reply via email to