(quotearg_buffer):
[gnulib.git] / lib / lchown.c
index b15233e..9c420bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide a stub lchown function for systems that lack it.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include <config.h>
 
-/* Disable the definition of lchown to rpl_lchown (from config.h) in this
-   file.  Otherwise, we'd get conflicting prototypes for rpl_lchown on
-   most systems.  */
-#undef lchown
-
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <errno.h>
 #ifndef errno
 extern int errno;
 #endif
+#include "lchown.h"
+
+/* Declare chown to avoid a warning.  Don't include unistd.h,
+   because it may have a conflicting prototype for lchown.  */
+int chown ();
 
 /* Work just like chown, except when FILE is a symbolic link.
    In that case, set errno to ENOSYS and return -1.  */
 
 int
-rpl_lchown (const chat *file, uid_t uid, gid_t gid)
+lchown (const char *file, uid_t uid, gid_t gid)
 {
   struct stat stats;
 
-  if (lstat (file, &stats) && S_ISLNK (stats.st_mode))
+  if (lstat (file, &stats) == 0 && S_ISLNK (stats.st_mode))
     {
       errno = ENOSYS;
       return -1;