Mercurial > hg > octave-kai > gnulib-hg
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)