changeset 1539:b6fbf22cae1b

[lstat]: Remove #undef. (rpl_lstat): Protoize. Use ENOENT, not EINVAL, to be consistent with lib/stat.c.
author Jim Meyering <jim@meyering.net>
date Sun, 08 Nov 1998 03:40:04 +0000
parents 525b7d3e72f0
children 8a73e8a7a5d4
files lib/lstat.c
diffstat 1 files changed, 10 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lib/lstat.c
+++ b/lib/lstat.c
@@ -1,7 +1,7 @@
 /* Work around the bug in some systems whereby lstat succeeds when
    given the zero-length file name argument.  The lstat from SunOS4.1.4
    has this bug.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 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
@@ -21,11 +21,6 @@
 
 #include <config.h>
 
-/* Disable the definition of lstat to rpl_lstat (from config.h) in this
-   file.  Otherwise, we'd get conflicting prototypes for rpl_lstat on
-   most systems.  */
-#undef lstat
-
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <errno.h>
@@ -33,16 +28,20 @@
 extern int errno;
 #endif
 
-/* FIXME: describe.  */
+/* This is a wrapper for lstat(2).
+   If FILE is the empty string, fail with errno == ENOENT.
+   Otherwise, return the result of calling the real lstat.
+
+   This works around the bug in some systems whereby lstat succeeds when
+   given the zero-length file name argument.  The lstat from SunOS4.1.4
+   has this bug.  */
 
 int
-rpl_lstat (file, sbuf)
-     const char *file;
-     struct stat *sbuf;
+rpl_lstat (const char *file, struct stat *sbuf)
 {
   if (file && *file == 0)
     {
-      errno = EINVAL;
+      errno = ENOENT;
       return -1;
     }