]> granicus.if.org Git - python/commitdiff
Merged revisions 73675 via svnmerge from
authorHirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
Mon, 29 Jun 2009 11:37:19 +0000 (11:37 +0000)
committerHirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
Mon, 29 Jun 2009 11:37:19 +0000 (11:37 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r73675 | hirokazu.yamamoto | 2009-06-29 20:27:03 +0900 | 3 lines

  Issue #4856: Py_GetFileAttributesEx[AW] are not needed because GetFileAttributesEx[AW]
  won't fail with ERROR_CALL_NOT_IMPLEMENTED on win NT.
  Reviewed by Amaury Forgeot d'Arc.
........

Modules/posixmodule.c

index 0aebf17412fe7b4340f29b8c9fd58e6374c5287a..f7677989b257953878f11a8f2a83fe03a07964cc 100644 (file)
@@ -1024,68 +1024,13 @@ attributes_from_dir_w(LPCWSTR pszFile, LPWIN32_FILE_ATTRIBUTE_DATA pfad)
        return TRUE;
 }
 
-static BOOL WINAPI
-Py_GetFileAttributesExA(LPCSTR pszFile, 
-                      GET_FILEEX_INFO_LEVELS level,
-                       LPVOID pv)
-{
-       BOOL result;
-       LPWIN32_FILE_ATTRIBUTE_DATA pfad = pv;
-       /* First try to use the system's implementation, if that is
-          available and either succeeds to gives an error other than
-          that it isn't implemented. */
-       result = GetFileAttributesExA(pszFile, level, pv);
-       if (result || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
-               return result;
-       /* It's either not present, or not implemented.
-          Emulate using FindFirstFile. */
-       if (level != GetFileExInfoStandard) {
-               SetLastError(ERROR_INVALID_PARAMETER);
-               return FALSE;
-       }
-       /* Use GetFileAttributes to validate that the file name
-          does not contain wildcards (which FindFirstFile would
-          accept). */
-       if (GetFileAttributesA(pszFile) == 0xFFFFFFFF)
-               return FALSE;
-       return attributes_from_dir(pszFile, pfad);
-}
-
-static BOOL WINAPI
-Py_GetFileAttributesExW(LPCWSTR pszFile, 
-                      GET_FILEEX_INFO_LEVELS level,
-                       LPVOID pv)
-{
-       BOOL result;
-       LPWIN32_FILE_ATTRIBUTE_DATA pfad = pv;
-       /* First try to use the system's implementation, if that is
-          available and either succeeds to gives an error other than
-          that it isn't implemented. */
-       result = GetFileAttributesExW(pszFile, level, pv);
-       if (result || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
-               return result;
-       /* It's either not present, or not implemented.
-          Emulate using FindFirstFile. */
-       if (level != GetFileExInfoStandard) {
-               SetLastError(ERROR_INVALID_PARAMETER);
-               return FALSE;
-       }
-       /* Use GetFileAttributes to validate that the file name
-          does not contain wildcards (which FindFirstFile would
-          accept). */
-       if (GetFileAttributesW(pszFile) == 0xFFFFFFFF)
-               return FALSE;
-       return attributes_from_dir_w(pszFile, pfad);
-}
-
 static int 
 win32_stat(const char* path, struct win32_stat *result)
 {
        WIN32_FILE_ATTRIBUTE_DATA info;
        int code;
        char *dot;
-       /* XXX not supported on Win95 and NT 3.x */
-       if (!Py_GetFileAttributesExA(path, GetFileExInfoStandard, &info)) {
+       if (!GetFileAttributesExA(path, GetFileExInfoStandard, &info)) {
                if (GetLastError() != ERROR_SHARING_VIOLATION) {
                        /* Protocol violation: we explicitly clear errno, instead of
                           setting it to a POSIX error. Callers should use GetLastError. */
@@ -1122,8 +1067,7 @@ win32_wstat(const wchar_t* path, struct win32_stat *result)
        int code;
        const wchar_t *dot;
        WIN32_FILE_ATTRIBUTE_DATA info;
-       /* XXX not supported on Win95 and NT 3.x */
-       if (!Py_GetFileAttributesExW(path, GetFileExInfoStandard, &info)) {
+       if (!GetFileAttributesExW(path, GetFileExInfoStandard, &info)) {
                if (GetLastError() != ERROR_SHARING_VIOLATION) {
                        /* Protocol violation: we explicitly clear errno, instead of
                           setting it to a POSIX error. Callers should use GetLastError. */