From: Craig A. Berry Date: Sat, 28 Jan 2012 14:59:09 +0000 (-0600) Subject: filelify shouldn't always escape dots. X-Git-Tag: accepted/trunk/20130322.191538~957 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=37769287773a12dbc22e9f93bf7f8c55068aafe2;p=platform%2Fupstream%2Fperl.git 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. --- diff --git a/vms/vms.c b/vms/vms.c index 9d3ed12..507d3b4 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--) {