summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-01-14 00:00:17 (GMT)
committerGeorg Brandl <georg@python.org>2009-01-14 00:00:17 (GMT)
commitc04c2890c793a9e611e6a3c2ea417bb146d6be35 (patch)
tree8b51f17126db56fc819774ed382c3575650493b5 /Python
parenta1b22ce68c8c689f23746340bbb167186d5d24fa (diff)
downloadcpython-c04c2890c793a9e611e6a3c2ea417bb146d6be35.zip
cpython-c04c2890c793a9e611e6a3c2ea417bb146d6be35.tar.gz
cpython-c04c2890c793a9e611e6a3c2ea417bb146d6be35.tar.bz2
Merged revisions 68292,68344,68361,68378,68424,68426,68429-68430,68450,68457,68480-68481,68493,68495,68499,68501,68512,68514-68515 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r68292 | skip.montanaro | 2009-01-04 11:36:58 +0100 (So, 04 Jan 2009) | 3 lines If user configures --without-gcc give preference to $CC instead of blindly assuming the compiler will be "cc". ........ r68344 | marc-andre.lemburg | 2009-01-05 20:43:35 +0100 (Mo, 05 Jan 2009) | 7 lines Fix #4846 (Py_UNICODE_ISSPACE causes linker error) by moving the declaration into the extern "C" section. Add a few more comments and apply some minor edits to make the file contents fit the original structure again. ........ r68361 | antoine.pitrou | 2009-01-06 19:34:08 +0100 (Di, 06 Jan 2009) | 3 lines Use shutil.rmtree rather than os.rmdir. ........ r68378 | mark.dickinson | 2009-01-07 18:48:33 +0100 (Mi, 07 Jan 2009) | 2 lines Issue #4869: clarify documentation for random.expovariate. ........ r68424 | benjamin.peterson | 2009-01-09 03:53:35 +0100 (Fr, 09 Jan 2009) | 1 line specify what -3 warnings are about ........ r68426 | benjamin.peterson | 2009-01-09 04:03:05 +0100 (Fr, 09 Jan 2009) | 1 line fix spelling ........ r68429 | benjamin.peterson | 2009-01-09 04:05:14 +0100 (Fr, 09 Jan 2009) | 1 line add -3 to manpage ........ r68430 | benjamin.peterson | 2009-01-09 04:07:27 +0100 (Fr, 09 Jan 2009) | 1 line be more specific in -3 option help ........ r68450 | jeffrey.yasskin | 2009-01-09 17:47:07 +0100 (Fr, 09 Jan 2009) | 3 lines Fix issue 4884, preventing a crash in the socket code when python is compiled with llvm-gcc and run with a glibc <2.10. ........ r68457 | kristjan.jonsson | 2009-01-09 21:10:59 +0100 (Fr, 09 Jan 2009) | 1 line Issue 3677: Fix import from UNC paths on Windows. ........ r68480 | vinay.sajip | 2009-01-10 14:38:04 +0100 (Sa, 10 Jan 2009) | 1 line Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library. ........ r68481 | vinay.sajip | 2009-01-10 14:42:04 +0100 (Sa, 10 Jan 2009) | 1 line Corrected an incorrect self-reference. ........ r68493 | benjamin.peterson | 2009-01-10 18:18:55 +0100 (Sa, 10 Jan 2009) | 1 line rewrite verbose conditionals ........ r68495 | benjamin.peterson | 2009-01-10 18:36:44 +0100 (Sa, 10 Jan 2009) | 1 line tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901 ........ r68499 | mark.dickinson | 2009-01-10 20:14:55 +0100 (Sa, 10 Jan 2009) | 2 lines Remove an unnecessary check from test_decimal. ........ r68501 | vinay.sajip | 2009-01-10 20:22:57 +0100 (Sa, 10 Jan 2009) | 1 line Corrected minor typo and added .currentmodule directives to fix missing cross-references. ........ r68512 | benjamin.peterson | 2009-01-10 23:42:10 +0100 (Sa, 10 Jan 2009) | 1 line make tests fail if they can't be imported ........ r68514 | benjamin.peterson | 2009-01-11 00:41:59 +0100 (So, 11 Jan 2009) | 1 line move seealso to a more appropiate place ........ r68515 | benjamin.peterson | 2009-01-11 00:49:08 +0100 (So, 11 Jan 2009) | 1 line macos 9 isn't supported ........
Diffstat (limited to 'Python')
-rw-r--r--Python/import.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/Python/import.c b/Python/import.c
index 5c21e0b..5270b37 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -3199,24 +3199,11 @@ NullImporter_init(NullImporter *self, PyObject *args, PyObject *kwds)
return -1;
} else {
#ifndef RISCOS
+#ifndef MS_WINDOWS
struct stat statbuf;
int rv;
rv = stat(path, &statbuf);
-#ifdef MS_WINDOWS
- /* MS Windows stat() chokes on paths like C:\path\. Try to
- * recover *one* time by stripping off a trailing slash or
- * backslash. http://bugs.python.org/issue1293
- */
- if (rv != 0 && pathlen <= MAXPATHLEN &&
- (path[pathlen-1] == '/' || path[pathlen-1] == '\\')) {
- char mangled[MAXPATHLEN+1];
-
- strcpy(mangled, path);
- mangled[pathlen-1] = '\0';
- rv = stat(mangled, &statbuf);
- }
-#endif
if (rv == 0) {
/* it exists */
if (S_ISDIR(statbuf.st_mode)) {
@@ -3226,7 +3213,24 @@ NullImporter_init(NullImporter *self, PyObject *args, PyObject *kwds)
return -1;
}
}
-#else
+#else /* MS_WINDOWS */
+ DWORD rv;
+ /* see issue1293 and issue3677:
+ * stat() on Windows doesn't recognise paths like
+ * "e:\\shared\\" and "\\\\whiterab-c2znlh\\shared" as dirs.
+ */
+ rv = GetFileAttributesA(path);
+ if (rv != INVALID_FILE_ATTRIBUTES) {
+ /* it exists */
+ if (rv & FILE_ATTRIBUTE_DIRECTORY) {
+ /* it's a directory */
+ PyErr_SetString(PyExc_ImportError,
+ "existing directory");
+ return -1;
+ }
+ }
+#endif
+#else /* RISCOS */
if (object_exists(path)) {
/* it exists */
if (isdir(path)) {