]> granicus.if.org Git - python/commitdiff
Merged revisions 84063 via svnmerge from
authorVictor Stinner <victor.stinner@haypocalc.com>
Sun, 15 Aug 2010 09:35:13 +0000 (09:35 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Sun, 15 Aug 2010 09:35:13 +0000 (09:35 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84063 | victor.stinner | 2010-08-15 11:33:08 +0200 (dim., 15 août 2010) | 5 lines

  Issue #9605: posix.getlogin() decodes the username with file filesystem
  encoding and surrogateescape error handler. Patch written by David Watson.

  Reindent also posix_getlogin(), and fix a typo in the NEWS file.
........

Misc/NEWS
Modules/posixmodule.c

index 81d3e81c543cea83d91bbca2baac84b9a8afbad3..83ddaaa950cd5e166ecb9bf768f1af9e20d9b6d4 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -93,6 +93,9 @@ C-API
 Library
 -------
 
+- Issue #9605: posix.getlogin() decodes the username with file filesystem
+  encoding and surrogateescape error handler. Patch written by David Watson.
+
 - Issue #9603: posix.ttyname() and posix.ctermid() decode the terminal name
   using the filesystem encoding and surrogateescape error handler. Patch
   written by David Watson.
index 6d92544982cdb14aa9d71bf27e46dabd5dfdfeb1..ef91dab0103bd2bc0ff0be779d9f4d417d1ee88c 100644 (file)
@@ -4144,13 +4144,12 @@ posix_getlogin(PyObject *self, PyObject *noargs)
     name = getlogin();
     if (name == NULL) {
         if (errno)
-        posix_error();
+            posix_error();
         else
-        PyErr_SetString(PyExc_OSError,
-                        "unable to determine login name");
+            PyErr_SetString(PyExc_OSError, "unable to determine login name");
     }
     else
-        result = PyUnicode_FromString(name);
+        result = PyUnicode_DecodeFSDefault(name);
     errno = old_errno;
 
     return result;