Commit 19dde103 authored by Guido van Rossum's avatar Guido van Rossum

Mark Hammond to the rescue:

Checkin 2.131 of posixmodule.c changed os.stat on Windows, so that
"/bin/" type notation (trailing backslash) would work on Windows to
be consistent with Unix.

However, the patch broke the simple case of: os.stat("\\")

This did work in 1.5.2, and obviously should!

This patch addresses this, and restores the correct behaviour.
parent be317e61
...@@ -567,10 +567,11 @@ posix_do_stat(self, args, format, statfunc) ...@@ -567,10 +567,11 @@ posix_do_stat(self, args, format, statfunc)
} }
if ((pathlen > 0) && (path[pathlen-1] == '\\' || path[pathlen-1] == '/')) { if ((pathlen > 0) && (path[pathlen-1] == '\\' || path[pathlen-1] == '/')) {
/* exception for drive root */ /* exception for specific or current drive root */
if (!((pathlen == 3) && if (!((pathlen == 1) ||
((pathlen == 3) &&
(path[1] == ':') && (path[1] == ':') &&
(path[2] == '\\' || path[2] == '/'))) (path[2] == '\\' || path[2] == '/'))))
{ {
strncpy(pathcopy, path, pathlen); strncpy(pathcopy, path, pathlen);
pathcopy[pathlen-1] = '\0'; /* nuke the trailing backslash */ pathcopy[pathlen-1] = '\0'; /* nuke the trailing backslash */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment