summaryrefslogtreecommitdiff
path: root/vms/vms.c
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2012-01-14 22:40:24 -0600
committerCraig A. Berry <craigberry@mac.com>2012-01-14 22:40:24 -0600
commit4ab1eb56da9e51d7afaf7663e76680cf1e618834 (patch)
treebf99c104192a014673e0fdc9b387f2d06f31711e /vms/vms.c
parentd3a16da4332bc355764973b70da72fc54272f32b (diff)
downloadperl-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.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/vms/vms.c b/vms/vms.c
index 13d2fe2972..95b69a97e0 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -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;