From 0746994e48463c4333293902aff972dc89ca966e Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 8 Jun 2004 12:01:38 +0000 Subject: [PATCH] (lchown): Return EOPNOTSUPP if not supported; this is what POSIX-2004 specifies. --- lib/lchown.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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 } -- 2.47.3