diff options
author | Jim Meyering <jim@meyering.net> | 2004-06-08 12:01:38 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2004-06-08 12:01:38 +0000 |
commit | 0746994e48463c4333293902aff972dc89ca966e (patch) | |
tree | 3c302e1881fc533dea50c37d452f46003281ce33 /lib | |
parent | 54ac424e7d4ce8018ceecbcb952833c32fcd8d19 (diff) | |
download | coreutils-0746994e48463c4333293902aff972dc89ca966e.tar.xz |
(lchown): Return EOPNOTSUPP if not supported; this
is what POSIX-2004 specifies.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/lchown.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/lchown.c b/lib/lchown.c index 37320fb84..9b99651eb 100644 --- a/lib/lchown.c +++ b/lib/lchown.c @@ -44,24 +44,22 @@ extern int errno; int chown (); /* Work just like chown, except when FILE is a symbolic link. - In that case, set errno to ENOSYS and return -1. + In that case, set errno to EOPNOTSUPP and return -1. But if autoconf tests determined that chown modifies symlinks, then just call chown. */ int lchown (const char *file, uid_t uid, gid_t gid) { -#if CHOWN_MODIFIES_SYMLINK - return chown (file, uid, gid); -#else +#if ! CHOWN_MODIFIES_SYMLINK struct stat stats; if (lstat (file, &stats) == 0 && S_ISLNK (stats.st_mode)) { - errno = ENOSYS; + errno = EOPNOTSUPP; return -1; } +#endif return chown (file, uid, gid); -#endif } |