void trim_trailing_slashes(char *name)
{
- char *p;
+ int l;
/* Some BSD systems cannot make a directory if the name
* contains a trailing slash.
* <http://www.opensource.apple.com/bugs/X/BSD%20Kernel/2734739.html> */
- if (!*name)
- return; /* empty string */
- p = strchr(name, '\0') - 1;
- while (p == '/') {
- p-- = '\0';
+
+ /* Don't change empty string; and also we can't improve on
+ * "/" */
+
+ l = strlen(name);
+ while (l > 1) {
+ if (name[--l] != '/')
+ break;
+ name[l] = '\0';
}
}