]> granicus.if.org Git - python/commitdiff
SF patch# 1758570 by Jeffrey Yasskin, who writes:
authorGuido van Rossum <guido@python.org>
Mon, 23 Jul 2007 17:08:21 +0000 (17:08 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 23 Jul 2007 17:08:21 +0000 (17:08 +0000)
I made Carbon.File.pathname return unicode, by analogy with
macpath.abspath. There could easily be other bugs of the same sort in this
file. The uses of PyString_FromString*() in particular look sketchy.

Mac/Modules/file/_Filemodule.c

index ce4049f9a59768b3a6dc26b99f6f2f44ee70f5d6..8b4dd1308f55c43fa2906522f65f095fc449f707 100644 (file)
@@ -3033,12 +3033,8 @@ static PyObject *File_pathname(PyObject *_self, PyObject *_args)
 
        if (!PyArg_ParseTuple(_args, "O", &obj))
                return NULL;
-       if (PyString_Check(obj)) {
-               Py_INCREF(obj);
-               return obj;
-       }
-       if (PyUnicode_Check(obj))
-               return PyUnicode_AsEncodedString(obj, "utf8", "strict");
+       if (PyString_Check(obj) || PyUnicode_Check(obj))
+               return PyUnicode_FromObject(obj);
        _res = PyObject_CallMethod(obj, "as_pathname", NULL);
        return _res;
 
@@ -3140,7 +3136,7 @@ static PyMethodDef File_methods[] = {
        {"FSUpdateAlias", (PyCFunction)File_FSUpdateAlias, 1,
         PyDoc_STR("(FSRef fromFile, FSRef target, AliasHandle alias) -> (Boolean wasChanged)")},
        {"pathname", (PyCFunction)File_pathname, 1,
-        PyDoc_STR("(str|unicode|FSSpec|FSref) -> pathname")},
+        PyDoc_STR("(str|FSSpec|FSref) -> pathname")},
        {NULL, NULL, 0}
 };