Explicitly set errno to ENOENT if err is not ERROR_DIRECTORY
PATCH 1/1 Explicitly set errno to ENOENT if err is not ERROR_DIRECTORY
From: Seija Kijin <[email protected]>
At this point, the only two possible errors areERROR_DIRECTORY or ERROR_BAD_PATHNAME.
This code clarifies this and also saves a call toerr_win_to_posix.
---
Explicitly set errno to ENOENT if err is not ERROR_DIRECTORY
At this point, the only two possible errors are ERROR_DIRECTORY or ERROR_BAD_PATHNAME.
This code clarifies this and also saves a call to err_win_to_posix.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1402%2FAtariDreams%2Fopendir-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1402/AtariDreams/opendir-v1
Pull-Request: https://github.com/git/git/pull/1402
compat/win32/dirent.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
compat/win32/dirent.c +2 -2
@@ -34,13 +34,13 @@ DIR *opendir(const char *name)if (len && !is_dir_sep (pattern[len -1 ])) pattern[len++] ='/' ; pattern[len++] ='*' ; - pattern[len] =0 ; + pattern[len] ='\0' ;/* open find handle */ h =FindFirstFileW (pattern, &fdata);if (h ==INVALID_HANDLE_VALUE ) {DWORD err =GetLastError (); - errno = (err ==ERROR_DIRECTORY ) ?ENOTDIR :err_win_to_posix (err); + errno = (err ==ERROR_DIRECTORY ) ?ENOTDIR :ENOENT ;return NULL ; }
base-commit: 7c2ef319c52c4997256f5807564523dfd4acdfc7
Signature · 1 line
gitgitgadget
PATCH v2 1/1 win32: explicitly set errno to enoent if err is not error_directory
From: Seija Kijin <[email protected]>
At this point, the only two possible errors areERROR_DIRECTORY or ERROR_BAD_PATHNAME.
This code clarifies this and also saves a call toerr_win_to_posix.
---
win32: explicitly set errno to enoent if err is not error_directory
At this point, the only two possible errors are ERROR_DIRECTORY or ERROR_BAD_PATHNAME.
This code clarifies this and also saves a call to err_win_to_posix.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1402%2FAtariDreams%2Fopendir-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1402/AtariDreams/opendir-v2
Pull-Request: https://github.com/git/git/pull/1402
Range-diff vs v1:
1: 6e66c0deaf9 ! 1: bf757aee0be Explicitly set errno to ENOENT if err is not ERROR_DIRECTORY
@@ Metadata
Author: Seija Kijin <[email protected]>
## Commit message ##
- Explicitly set errno to ENOENT if err is not ERROR_DIRECTORY
+ win32: explicitly set errno to enoent if err is not error_directory
At this point, the only two possible errors are ERROR_DIRECTORY or ERROR_BAD_PATHNAME.
compat/win32/dirent.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
compat/win32/dirent.c +2 -2
@@ -34,13 +34,13 @@ DIR *opendir(const char *name)if (len && !is_dir_sep (pattern[len -1 ])) pattern[len++] ='/' ; pattern[len++] ='*' ; - pattern[len] =0 ; + pattern[len] ='\0' ;/* open find handle */ h =FindFirstFileW (pattern, &fdata);if (h ==INVALID_HANDLE_VALUE ) {DWORD err =GetLastError (); - errno = (err ==ERROR_DIRECTORY ) ?ENOTDIR :err_win_to_posix (err); + errno = (err ==ERROR_DIRECTORY ) ?ENOTDIR :ENOENT ;return NULL ; }
base-commit: 7c2ef319c52c4997256f5807564523dfd4acdfc7
Signature · 1 line
gitgitgadget
Re: [PATCH v2] win32: explicitly set errno to enoent if err is not error_directory
Am 19.12.22 um 17:20 schrieb Rose via GitGitGadget:
Quoted 18 lines
From: Seija Kijin <[email protected]>
At this point, the only two possible errors are
ERROR_DIRECTORYorERROR_BAD_PATHNAME.This code clarifies this and also saves a call to
err_win_to_posix.Signed-off-by Seija Kijin <[email protected]>---
compat/win32/dirent.c +0
-0@@ -34,13 +34,13 @@ DIR *opendir(const char *name)if (len && !is_dir_sep (pattern[len -1 ])) pattern[len++] ='/' ;
compat/win32/dirent.c DIR *opendir(const char *name) · line 43
Quoted 10 lines
compat/win32/dirent.c +2
-2pattern[len++] ='*' ; - pattern[len] =0 ; + pattern[len] ='\0' ;/* open find handle */ h =FindFirstFileW (pattern, &fdata);if (h ==INVALID_HANDLE_VALUE ) {DWORD err =GetLastError (); - errno = (err ==ERROR_DIRECTORY ) ?ENOTDIR :err_win_to_posix (err); + errno = (err ==ERROR_DIRECTORY ) ?ENOTDIR :ENOENT ;
This change does not look correct. The documentation of FindFirstFileW()[*] does not give any guarantees that ERROR_DIRECTORY and ERROR_BAD_PATHNAME are the only possible error values. It is certainly not unthinkable that a hardware error is reported as ERROR_IO_DEVICE and should be translated to EIO.
[*]
https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-findfirstfilew
-- Hannes
Quoted 31 lines · Rose via GitGitGadget
From: Seija Kijin <[email protected]>
At this point, the only two possible errors are
ERROR_DIRECTORYorERROR_BAD_PATHNAME.This code clarifies this and also saves a call to
err_win_to_posix.Signed-off-by Seija Kijin <[email protected]>---
Explicitly set errno to ENOENT if err is notERROR_DIRECTORYAt this point, the only two possible errors are
ERROR_DIRECTORYorERROR_BAD_PATHNAME.This code clarifies this and also saves a call to
err_win_to_posix.Signed-off-by Seija Kijin [email protected]Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1402%2FAtariDreams%2Fopendir-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1402/AtariDreams/opendir-v1
Pull-Request: https://github.com/git/git/pull/1402compat/win32/dirent.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)compat/win32/dirent.c +0
-0
compat/win32/dirent.c DIR *opendir(const char *name) · line 37
Quoted 5 lines
compat/win32/dirent.c +1
-1@@ -34,13 +34,13 @@ DIR *opendir(const char *name)if (len && !is_dir_sep (pattern[len -1 ])) pattern[len++] ='/' ; pattern[len++] ='*' ; - pattern[len] =0 ; + pattern[len] ='\0' ;
Maybe the subject of this patch is a good change (I have no idea, and don't use Windows), but this just seems like unrelated general cleanup.
I think it's probably good to change these sorts cases from 0 to '\0', but let's do that as a seperate change...