doc: fix stale --dereference info for chown/chgrp

Following v5.2.1-679-g7e29ef8b8 symlinks specified on the command line
no longer induce an error if lchown() is not supported on the system.

* doc/coreutils.texi (chown invocation, chgrp invocation): Adjust
accordingly, and also use a macro to avoid duplication.
* src/chown-core.c: Use our more standard is_ENOTSUP() wrapper
in the code related to this.
This commit is contained in:
Pádraig Brady 2024-03-17 12:18:25 +00:00
parent dda89eb5d3
commit 48cd67663d
2 changed files with 7 additions and 27 deletions

View File

@ -11656,9 +11656,10 @@ though still not perfect:
@end macro
@chownFromOption{chown}
@macro symlinkRefOpts
@item --dereference
@opindex --dereference
@cindex symbolic links, changing owner
@cindex symbolic links, changing owner, group
@findex lchown
Do not act on symbolic links themselves but rather on what they point to.
This is the default when not operating recursively.
@ -11673,10 +11674,9 @@ This is the default when not operating recursively.
Act on symbolic links themselves instead of what they point to.
This mode relies on the @code{lchown} system call.
On systems that do not provide the @code{lchown} system call,
@command{chown} fails when a file specified on the command line
is a symbolic link.
By default, no diagnostic is issued for symbolic links encountered
during a recursive traversal, but see @option{--verbose}.
no diagnostic is issued, but see @option{--verbose}.
@end macro
@symlinkRefOpts
@item --preserve-root
@opindex --preserve-root
@ -11790,27 +11790,7 @@ changed.
@chownFromOption{chgrp}
@item --dereference
@opindex --dereference
@cindex symbolic links, changing owner
@findex lchown
Do not act on symbolic links themselves but rather on what they point to.
This is the default when not operating recursively.
@warnOptDerefWithRec
@item -h
@itemx --no-dereference
@opindex -h
@opindex --no-dereference
@cindex symbolic links, changing group
@findex lchown
Act on symbolic links themselves instead of what they point to.
This mode relies on the @code{lchown} system call.
On systems that do not provide the @code{lchown} system call,
@command{chgrp} fails when a file specified on the command line
is a symbolic link.
By default, no diagnostic is issued for symbolic links encountered
during a recursive traversal, but see @option{--verbose}.
@symlinkRefOpts
@item --preserve-root
@opindex --preserve-root

View File

@ -420,7 +420,7 @@ change_file_owner (FTS *fts, FTSENT *ent,
/* Ignore any error due to lack of support; POSIX requires
this behavior for top-level symbolic links with -h, and
implies that it's required for all symbolic links. */
if (!ok && errno == EOPNOTSUPP)
if (!ok && is_ENOTSUP (errno))
{
ok = true;
symlink_changed = false;