changeset 12010:e5fd78d17104

canonicalize: simplify errno handling This file originally forked from glibc, but has had so many other changes that it does not need to maintain glibc macros. * lib/canonicalize.c (__set_errno): Delete macro, and use direct assignment. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Wed, 16 Sep 2009 13:49:10 -0600
parents 5905adc25666
children d8660f7d216a
files ChangeLog lib/canonicalize.c
diffstat 2 files changed, 13 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-09-17  Eric Blake  <ebb9@byu.net>
 
+	canonicalize: simplify errno handling
+	* lib/canonicalize.c (__set_errno): Delete macro, and use direct
+	assignment.
+
 	canonicalize, canonicalize-lgpl: update module dependencies
 	* modules/canonicalize (Depends-on): Add extensions, lstat,
 	pathmax, stdlib.
--- a/lib/canonicalize.c
+++ b/lib/canonicalize.c
@@ -32,19 +32,14 @@
 #include <errno.h>
 #include <stddef.h>
 
+#include "areadlink.h"
 #include "file-set.h"
 #include "filenamecat.h"
 #include "hash-triple.h"
+#include "pathmax.h"
 #include "xalloc.h"
 #include "xgetcwd.h"
 
-#ifndef __set_errno
-# define __set_errno(Val) errno = (Val)
-#endif
-
-#include "pathmax.h"
-#include "areadlink.h"
-
 #if !(HAVE_CANONICALIZE_FILE_NAME || GNULIB_CANONICALIZE_LGPL)
 /* Return the canonical absolute name of file NAME.  A canonical name
    does not contain any `.', `..' components nor any repeated file name
@@ -62,13 +57,13 @@
 
   if (name == NULL)
     {
-      __set_errno (EINVAL);
+      errno = EINVAL;
       return NULL;
     }
 
   if (name[0] == '\0')
     {
-      __set_errno (ENOENT);
+      errno = ENOENT;
       return NULL;
     }
 
@@ -160,13 +155,13 @@
 
   if (name == NULL)
     {
-      __set_errno (EINVAL);
+      errno = EINVAL;
       return NULL;
     }
 
   if (name[0] == '\0')
     {
-      __set_errno (ENOENT);
+      errno = ENOENT;
       return NULL;
     }
 
@@ -262,11 +257,10 @@
 		 the same symlink,NAME pair twice does indicate a loop.  */
 	      if (seen_triple (&ht, name, &st))
 		{
-		  __set_errno (ELOOP);
 		  if (can_mode == CAN_MISSING)
 		    continue;
-		  else
-		    goto error;
+		  errno = ELOOP;
+		  goto error;
 		}
 
 	      buf = areadlink_with_size (rname, st.st_size);
@@ -274,8 +268,7 @@
 		{
 		  if (can_mode == CAN_MISSING && errno != ENOMEM)
 		    continue;
-		  else
-		    goto error;
+		  goto error;
 		}
 
 	      n = strlen (buf);