if (begin && s[1] == '\0') {
break;
}
- /* Trim embedded ./ , trailing /. */
- if ((t[-1] == '/' && s[1] == '\0') || (t > path && t[-1] == '/' && s[1] == '/')) {
- s++;
- continue;
+ /* Handle the ./ cases */
+ if (t > path && t[-1] == '/') {
+ /* Trim embedded ./ */
+ if (s[1] == '/') {
+ s+=2;
+ continue;
+ }
+ /* Trim trailing /. */
+ if (s[1] == '\0') {
+ s++;
+ continue;
+ }
}
/* Trim embedded /../ and trailing /.. */
if (!begin && t > path && t[-1] == '/' && s[1] == '.' && (s[2] == '/' || s[2] == '\0')) {