[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-09-01 Thread Roundup Robot

Roundup Robot devn...@psf.upfronthosting.co.za added the comment:

New changeset 385c2ec78f16 by Antoine Pitrou in branch '3.2':
Issue #12802: the Windows error ERROR_DIRECTORY (numbered 267) is now
http://hg.python.org/cpython/rev/385c2ec78f16

New changeset d72d5c942232 by Antoine Pitrou in branch 'default':
Issue #12802: the Windows error ERROR_DIRECTORY (numbered 267) is now
http://hg.python.org/cpython/rev/d72d5c942232

--
nosy: +python-dev

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-09-01 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

Committed now. Hopefully it won't break anything!

--
resolution:  - fixed
stage: patch review - committed/rejected
status: open - closed
versions:  -Python 2.7

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Amaury Forgeot d'Arc

Amaury Forgeot d'Arc amaur...@gmail.com added the comment:

Unfortunately, it won't work. _dosmaperr() is not exported by msvcrt.dll, it is 
only available when you link against the static version of the C runtime.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Vlad Riscutia

Vlad Riscutia riscutiav...@gmail.com added the comment:

Oh, got it. Interesting. Then should I just add a comment somewhere or should 
we resolve this as Won't Fix?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

We could add a special case to generrmap.c (but how can I compile and execute 
this file? it doesn't seem to be part of the project files).

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

Ok, apparently I can use errmap.mak, except that I get the following error:

Z:\default\PCnmake errmap.mak

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

cl  generrmap.c
Microsoft (R) C/C++ Optimizing Compiler Version 15.00.21022.08 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

generrmap.c
generrmap.c(1) : fatal error C1034: stdio.h: no include path set
NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\bin\amd64\cl.EXE' : return code '0x2'
Stop.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

Ok, running vcvarsamd64.bat seems to do the trick.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

Here is a new patch.

--
Added file: http://bugs.python.org/file23053/winenotdir.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Vlad Riscutia

Vlad Riscutia riscutiav...@gmail.com added the comment:

Attached updated patch which extends generrmap.c to allow for easy addition of 
other error mappings.

Also regenerated errmap.h and unittest.

--
Added file: http://bugs.python.org/file23054/issue12802_2.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-27 Thread Vlad Riscutia

Vlad Riscutia riscutiav...@gmail.com added the comment:

Ah, I see Antoine already attached a patch. I was 3 minutes late :)

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

Brian, Tim, I'd feel more comfortable if any of you confirmed this isn't a 
stupid proposal on my part :)

--
components: +Interpreter Core
stage: needs patch - patch review

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Brian Curtin

Brian Curtin br...@python.org added the comment:

I could see how they'd use EINVAL, but to me ENOTDIR makes more sense here. 
However, I'm not sure if anyone is depending on this (or what they could depend 
on it for).

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

 I could see how they'd use EINVAL, but to me ENOTDIR makes more sense
 here. However, I'm not sure if anyone is depending on this (or what
 they could depend on it for).

Right now I'm not sure, but if PEP 3151 is accepted it will make much
more sense to get a NotADirectoryError.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Brian Curtin

Brian Curtin br...@python.org added the comment:

With that PEP likely to be accepted, I say go ahead with the change for that 
benefit.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Tim Golden

Tim Golden m...@timgolden.me.uk added the comment:

Obviously someone's code would break if it were relying on the Unix 
errno only in a Windows-only situation to determine the situation of 
opening a directory which isn't one. But that combination of events 
doesn't seem terribly likely.

Speaking for myself, since the exception is a WindowsError with the 
winerror attribute prominent, [Error 267] I'd be far more likely to be 
trapping that.

I say go ahead

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Amaury Forgeot d'Arc

Amaury Forgeot d'Arc amaur...@gmail.com added the comment:

Note that this file is not written by hand. It's generated by PC/generrmap.c, 
which uses the _dosmaperr() function provided by the msvcrt.

If we want to modify it, this should be clearly marked somewhere.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Amaury Forgeot d'Arc

Amaury Forgeot d'Arc amaur...@gmail.com added the comment:

If you have a copy of Visual Studio, you can see the code of _dosmaperr() in 
VC/crt/src/dosmap.c.
Otherwise the Google query inurl:dosmap.c returns some online copies of this 
file.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-26 Thread Vlad Riscutia

Vlad Riscutia riscutiav...@gmail.com added the comment:

I wasn't aware this is an auto-generated file. I can add a comment but looking 
at it, it seems we auto-generate this file just to save a call to _dosmaperr. I 
would refactor the whole function to call _dosmaperr first then if result is 
still EINVAL, tweak with custom switch case. The way I see it, this looks like 
premature optimization since OS error shouldn't be on a hot code path, meaning 
an application should be able to live with an extra CRT function call on such 
exceptions. I'm willing to implement this if  there are no objections. 
Something like:

errno = _dosmaperr(err)
if (EINVAL == errno)
{
switch (err)
{
// Our tweaks
}
}

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-23 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

I would add it in test_exceptions, since errno mapping is ultimately used by 
exceptions.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-23 Thread Vlad Riscutia

Vlad Riscutia riscutiav...@gmail.com added the comment:

Attached unit test.

--
Added file: http://bugs.python.org/file23026/issue12802_unittest.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-20 Thread Antoine Pitrou

New submission from Antoine Pitrou pit...@free.fr:

Windows error 3 is returned when a directory path doesn't exist, but 267 is 
returned when an existing path is not a directory. This corresponds straight to 
the definition of ENOTDIR, but Python translates it to EINVAL:

 os.listdir(xx)
Traceback (most recent call last):
  File stdin, line 1, in module
WindowsError: [Error 3] The system cannot find the path specified: 'xx\\*.*'

 os.listdir(LICENSE)
Traceback (most recent call last):
  File stdin, line 1, in module
WindowsError: [Error 267] The directory name is invalid: 'LICENSE\\*.*'

 os.chdir(LICENSE)
Traceback (most recent call last):
  File stdin, line 1, in module
WindowsError: [Error 267] The directory name is invalid: 'LICENSE'

 e = sys.last_value
 e.errno
22
 errno.errorcode[22]
'EINVAL'


In PC/errmap.h, no Windows error code is translated to ENOTDIR (errno 20).

--
messages: 142589
nosy: amaury.forgeotdarc, brian.curtin, pitrou, tim.golden
priority: normal
severity: normal
stage: needs patch
status: open
title: Windows error code 267 should be mapped to ENOTDIR, not EINVAL
type: behavior
versions: Python 2.7, Python 3.2, Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12802] Windows error code 267 should be mapped to ENOTDIR, not EINVAL

2011-08-20 Thread Vlad Riscutia

Vlad Riscutia riscutiav...@gmail.com added the comment:

Attached new mapping though I don't know where unit test for this should go...

--
keywords: +patch
nosy: +vladris
Added file: http://bugs.python.org/file22969/issue12802.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12802
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com