From 37769287773a12dbc22e9f93bf7f8c55068aafe2 Mon Sep 17 00:00:00 2001 From: "Craig A. Berry" Date: Sat, 28 Jan 2012 08:59:09 -0600 Subject: filelify shouldn't always escape dots. Follow-up to a9fac63d75d9222a73fbf511ca58ae1d66cbf9a7. It turns out that the CRTL doesn't handle the escapes when the path is in Unix syntax (even though it requires them in native syntax). stat('foo/bar.baz.dir;1') is ok, but stat('foo/bar^.baz.dir;1') fails. So skip the escaping if there is a slash anywhere in the path. --- vms/vms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vms/vms.c b/vms/vms.c index 9d3ed12381..507d3b4d7a 100644 --- a/vms/vms.c +++ b/vms/vms.c @@ -6133,8 +6133,8 @@ int_fileify_dirspec(const char *dir, char *buf, int *utf8_fl) /* The .dir for now, and fix this better later */ dirlen = cp2 - trndir; } - if (decc_efs_charset) { - /* Dots are allowed in dir names, so escape them. */ + if (decc_efs_charset && !strchr(trndir,'/')) { + /* Dots are allowed in dir names, so escape them if input not in Unix syntax. */ char *cp4 = is_dir ? (cp2 - 1) : cp2; for (; cp4 > cp1; cp4--) { -- cgit v1.2.1