changeset 17450:fcdfb5b7741a

* lib/tmpdir.c: Simplify code to add slash; no need for a loop.
author Paul Eggert <eggert@cs.ucla.edu>
date Mon, 15 Jul 2013 13:32:24 -0700
parents 960eeef4f5eb
children 1c64d8246a92
files ChangeLog lib/tmpdir.c
diffstat 2 files changed, 7 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,7 @@
 	(path_search): Don't put slash after directory if __VMS.
 	Problem reported by Steven M. Schweda in
 	<http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00019.html>.
+	Simplify code to add slash; no need for a loop.
 	Do not remove trailing slash from "//".
 	Do not assume dlen <= INT_MAX.
 
--- a/lib/tmpdir.c
+++ b/lib/tmpdir.c
@@ -89,11 +89,7 @@
 {
   const char *d;
   size_t dlen, plen;
-#ifdef __VMS
-  bool add_slash = false;
-#else
-  bool add_slash = true;
-#endif
+  bool add_slash;
 
   if (!pfx || !pfx[0])
     {
@@ -143,13 +139,12 @@
         }
     }
 
-  /* Remove trailing slashes, except remove just one from "//".  */
   dlen = strlen (dir);
-  if (dlen == 2 && ISSLASH (dir[0]) && ISSLASH (dir[1]))
-    dlen--;
-  else
-    while (0 < dlen && ISSLASH (dir[dlen - 1]))
-      dlen--;
+  add_slash = dlen != 0 && !ISSLASH (dir[dlen - 1]);
+#ifdef __VMS
+  if (dlen != 0 && dir[dlen - 1] == ':')
+    add_slash = false;
+#endif
 
   /* check we have room for "${dir}/${pfx}XXXXXX\0" */
   if (tmpl_len < dlen + add_slash + plen + 6 + 1)