From: John E. Malmberg Date: Thu, 4 Jun 2009 13:46:50 +0000 (-0500) Subject: vms.c EFS logical name fix. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=30e682852bf42358156ed62e06e91f75e9f5b807;p=p5sagit%2Fp5-mst-13.2.git 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 --- diff --git a/vms/vms.c b/vms/vms.c index 10ee36b..0896934 100644 --- a/vms/vms.c +++ b/vms/vms.c @@ -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);