diff options
author | John E. Malmberg <wb8tyw@qsl.net> | 2009-06-04 08:46:50 -0500 |
---|---|---|
committer | H.Merijn Brand <h.m.brand@xs4all.nl> | 2009-06-04 16:11:02 +0200 |
commit | 30e682852bf42358156ed62e06e91f75e9f5b807 (patch) | |
tree | 8380f895e6283b9bc987a503ec0fc6666ab37e51 /vms | |
parent | 1be14c39f70bc8c2f895cdd9147c1c0cc33589df (diff) | |
download | perl-30e682852bf42358156ed62e06e91f75e9f5b807.tar.gz |
vms.c EFS logical name fix.
This patch fixes an issue that Craig Berry found in the handling of
logical names of the form foo = "device:[dir]" when the EFS character
set is enabled.
Regards,
-John
wb8tyw@qsl.net
Personal Opinion Only
Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
Diffstat (limited to 'vms')
-rw-r--r-- | vms/vms.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -8231,7 +8231,7 @@ int sts, v_len, r_len, d_len, n_len, e_len, vs_len; * special device files. */ - if ((add_6zero == 0) && (*nextslash == '/') && + if (!islnm && (add_6zero == 0) && (*nextslash == '/') && (&nextslash[1] == unixend)) { /* No real directory present */ add_6zero = 1; @@ -8491,7 +8491,7 @@ int sts, v_len, r_len, d_len, n_len, e_len, vs_len; vmsptr2 = vmsptr - 1; if ((vmslen > 1) && (*vmsptr2 != ']') && (*vmsptr2 != '*') && (*vmsptr2 != '%') && - (*vmsptr2 != ')') && (*lastdot != '.')) { + (*vmsptr2 != ')') && (*lastdot != '.') && (*vmsptr2 != ':')) { *vmsptr++ = '.'; vmslen++; } @@ -8677,7 +8677,7 @@ static char *int_tovmsspec } } -/* If POSIX mode active, handle the conversion */ +/* If EFS charset mode active, handle the conversion */ #if __CRTL_VER >= 80200000 && !defined(__VAX) if (decc_efs_charset) { posix_to_vmsspec_hardway(rslt, rslt_len, path, dir_flag, utf8_flag); |