diff options
author | Craig A. Berry <craigberry@mac.com> | 2012-01-14 22:40:24 -0600 |
---|---|---|
committer | Craig A. Berry <craigberry@mac.com> | 2012-01-14 22:40:24 -0600 |
commit | 4ab1eb56da9e51d7afaf7663e76680cf1e618834 (patch) | |
tree | bf99c104192a014673e0fdc9b387f2d06f31711e /vms/vms.c | |
parent | d3a16da4332bc355764973b70da72fc54272f32b (diff) | |
download | perl-4ab1eb56da9e51d7afaf7663e76680cf1e618834.tar.gz |
In vmsify, leave ../ path components alone.
Way back in 08c7cbbb0fc466967038dcb56ca4f1b828b96269, we started
eliminating ../ components when converting paths from Unix syntax
to VMS syntax. No corresponding change was made when converting
in the opposite direction, so this was inconsistent. We should
get a valid path either way, but doing more interpretation than
necessary seems uncalled for, so this patch restores the previous
behavior.
This also paves the way to eliminate some inconsistencies between
what we do when Extended Filename Syntax (EFS) is in effect and
when it's not.
Diffstat (limited to 'vms/vms.c')
-rw-r--r-- | vms/vms.c | 9 |
1 files changed, 2 insertions, 7 deletions
@@ -8616,13 +8616,8 @@ static char *int_tovmsspec else if (*(cp2+1) == '.' && (*(cp2+2) == '/' || *(cp2+2) == '\0')) { if (*(cp1-1) == '-' || *(cp1-1) == '[') *(cp1++) = '-'; /* handle "../" */ else if (*(cp1-2) == '[') *(cp1-1) = '-'; - else { /* back up over previous directory name */ - cp1--; - while (*(cp1-1) != '.' && *(cp1-1) != '[') cp1--; - if (*(cp1-1) == '[') { - memcpy(cp1,"000000.",7); - cp1 += 7; - } + else { + *(cp1++) = '-'; } cp2 += 2; if (cp2 == dirend) break; |