summaryrefslogtreecommitdiff
path: root/vms
diff options
context:
space:
mode:
authorCharles Bailey <bailey@newman.upenn.edu>2000-02-27 05:05:35 +0000
committerbailey <bailey@newman.upenn.edu>2000-02-27 05:05:35 +0000
commit46726cbe13a1bbdca5ff648034840cd7466b80c5 (patch)
tree0d4ed0a86256c9537e001f74c4375215cb47618a /vms
parentaa779de11089a0113274275ef26a76ef1270014a (diff)
downloadperl-46726cbe13a1bbdca5ff648034840cd7466b80c5.tar.gz
Add new File::Spec::VMS methods
Don't add implicit device in VMS <-> Unix filespec translation Make File::Spec::Unix{rel2abs|abs2rel} OS-independent p4raw-id: //depot/vmsperl@5281
Diffstat (limited to 'vms')
-rw-r--r--vms/vms.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/vms/vms.c b/vms/vms.c
index c80de0048d..cf8ccd2c13 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -2117,16 +2117,12 @@ static char *do_tovmsspec(char *path, char *buf, int ts) {
else if (!infront && *cp2 == '.') {
if (cp2+1 == dirend || *(cp2+1) == '\0') { cp2++; break; }
else if (*(cp2+1) == '/') cp2++; /* skip over "./" - it's redundant */
- else if (*(cp2+1) == '.' && (*(cp2+2) == '/' || *(cp2+2) == '\0')) {
- if (*(cp1-1) == '-' || *(cp1-1) == '[') *(cp1++) = '-'; /* handle "../" */
+ else if (*(cp2+1) == '.' && (*(cp2+2) == '/' || *(cp2+2) == '\0')) { /* handle "../" */
+ if (*(cp1-1) == '-' || *(cp1-1) == '[') *(cp1++) = '-';
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 {
+/* if (*(cp1-1) != '.') *(cp1++) = '.'; */
+ *(cp1++) = '-';
}
cp2 += 2;
if (cp2 == dirend) break;