- if (depth > 0 && sanp == start) {
- /* allow depth levels of .. at the beginning */
- --depth;
- *sanp++ = *p++;
- *sanp++ = *p++;
- /* move virtual beginning to leave .. alone */
- start = sanp;
- continue;
- }
- p += 2;
- if (sanp != start) {
- /* back up sanp one level */
- --sanp; /* now pointing at slash */
- while (sanp > start && sanp[-1] != '/') {
- /* skip back up to slash */
- sanp--;
+ if (depth <= 0 || sanp != start) {
+ p += 2;
+ if (sanp != start) {
+ /* back up sanp one level */
+ --sanp; /* now pointing at slash */
+ while (sanp > start && sanp[-1] != '/') {
+ /* skip back up to slash */
+ sanp--;
+ }