From bba6ffd66d7ca99685c0f34cf361ebd8c72b7ec1 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sun, 8 Jun 2008 13:29:35 +0200
Subject: [PATCH] Trivial code simplifications.

---
 ChangeLog          |  4 ++++
 lib/set-mode-acl.c | 25 ++++++++++---------------
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 1661de6917..982f89a2ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-06-08  Bruno Haible  <bruno@clisp.org>
+
+	* lib/set-mode-acl.c (qset_acl): Trivial code simplifications.
+
 2008-06-08  Jim Meyering  <meyering@redhat.com>
 
 	* modules/acl (Maintainer): Add Bruno Haible.
diff --git a/lib/set-mode-acl.c b/lib/set-mode-acl.c
index b56ce03a94..ea6fc363da 100644
--- a/lib/set-mode-acl.c
+++ b/lib/set-mode-acl.c
@@ -115,14 +115,12 @@ qset_acl (char const *name, int desc, mode_t mode)
       acl_free (acl);
 
       if (ACL_NOT_WELL_SUPPORTED (errno))
+	return chmod_or_fchmod (name, desc, mode);
+      else
 	{
-	  if (chmod_or_fchmod (name, desc, mode) != 0)
-	    saved_errno = errno;
-	  else
-	    return 0;
+	  errno = saved_errno;
+	  return -1;
 	}
-      errno = saved_errno;
-      return -1;
     }
   else
     acl_free (acl);
@@ -134,9 +132,7 @@ qset_acl (char const *name, int desc, mode_t mode)
     {
       /* We did not call chmod so far, so the special bits have not yet
          been set.  */
-
-      if (chmod_or_fchmod (name, desc, mode))
-	return -1;
+      return chmod_or_fchmod (name, desc, mode);
     }
   return 0;
 
@@ -186,19 +182,18 @@ qset_acl (char const *name, int desc, mode_t mode)
 	      acl_free (acl);
 
 	      if (ACL_NOT_WELL_SUPPORTED (saved_errno))
+		return chmod_or_fchmod (name, desc, mode);
+	      else
 		{
-		  if (chmod_or_fchmod (name, desc, mode) != 0)
-		    saved_errno = errno;
-		  else
-		    return 0;
+		  errno = saved_errno;
+		  return -1;
 		}
-	      errno = saved_errno;
-	      return -1;
 	    }
 	  acl_free (acl);
 	}
     }
 
+  /* Since !MODE_INSIDE_ACL, we have to call chmod explicitly.  */
   return chmod_or_fchmod (name, desc, mode);
 #  endif
 
-- 
2.39.5