mirror of
https://https.git.savannah.gnu.org/git/coreutils.git
synced 2026-01-27 01:44:21 +00:00
touch: fix diagnostic on macOS 26
* src/touch.c (touch): Do not use open_errno == EEXIST for diagnostic
if file was a directory as macOS 26 sets it for open("/", O_CREAT, ...).
This commit is contained in:
parent
d535ca4c06
commit
d9ff4d9af2
@ -180,11 +180,12 @@ touch (char const *file)
|
||||
would give a bogus diagnostic for e.g., 'touch /' (assuming we
|
||||
don't own / or have write access). On Solaris 10 and probably
|
||||
other systems, opening a directory like "." fails with EINVAL.
|
||||
(On SunOS 4 it was EPERM but that's obsolete.) */
|
||||
(On SunOS 4 it was EPERM but that's obsolete.) On macOS 26
|
||||
opening "/" fails with EEXIST. */
|
||||
struct stat st;
|
||||
if (open_errno
|
||||
&& ! (open_errno == EISDIR
|
||||
|| (open_errno == EINVAL
|
||||
|| ((open_errno == EINVAL || open_errno == EEXIST)
|
||||
&& stat (file, &st) == 0 && S_ISDIR (st.st_mode))))
|
||||
{
|
||||
/* The wording of this diagnostic should cover at least two cases:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user