From: Jim Meyering Date: Tue, 8 Jun 2004 12:01:38 +0000 (+0000) Subject: (lchown): Return EOPNOTSUPP if not supported; this X-Git-Tag: v5.3.0~1382 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0746994e48463c4333293902aff972dc89ca966e;p=thirdparty%2Fcoreutils.git (lchown): Return EOPNOTSUPP if not supported; this is what POSIX-2004 specifies. --- diff --git a/lib/lchown.c b/lib/lchown.c index 37320fb84b..9b99651eba 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 }