- if (ISSLASH (*(p - 1)) && ISSLASH(*base))
- --p;
- else if (!ISSLASH (*(p - 1)) && !ISSLASH(*base))
- *p++ = DIRECTORY_SEPARATOR;
+ if (FILESYSTEM_PREFIX_LEN (dir) < dirlen)
+ {
+ if (ISSLASH (*(p - 1)) && ISSLASH (*base))
+ --p;
+ else if (!ISSLASH (*(p - 1)) && !ISSLASH (*base))
+ *p++ = DIRECTORY_SEPARATOR;
+ }