I have a new implementation of stat/fstat/wstat which directly uses Win32 API, rather than using msvcrt. This works fine so far, except that error handling turns out to be tricky.
mscvcrt maps errors (GetLastError()) into errno.h values, and also preserves the original error code in _doserrno. Currently, stat() will raise OSError, with errno set to the errno.h value. Because the Win32 error codes are much more fine-grained, this conversion loses information. Python raises WindowsError in some cases (e.g. os.listdir); WindowsError inherits from OSError, but the errno attribute now must be interpreted as a Win32 error. This is unfortunate, because the values overlap, and somebody handling OSError might confuse the error codes for errno.h (msvcrt) values. So what should I do in the new stat implementation? Try to map error codes also? Raise WindowsErrors instead? Do something else entirely? Comments appreciated. Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com