diff options
author | Craig A. Berry <craigberry@mac.com> | 2014-12-04 08:02:09 -0600 |
---|---|---|
committer | Craig A. Berry <craigberry@mac.com> | 2014-12-04 08:10:34 -0600 |
commit | 9b2457c186d2257f3ef7f3d7faca0bfdc74c6c98 (patch) | |
tree | fa9777da07cb451519239c97832a468065cf048a /vms | |
parent | 542a754528b7b23df13117bb0f791aeafa63c8f7 (diff) | |
download | perl-9b2457c186d2257f3ef7f3d7faca0bfdc74c6c98.tar.gz |
Unescape directory portion of path in unixify.
Basically I missed a spot in 812e68ff314e, so the escaped space
in [foo^_bar], for example, was not translated correctly.
Diffstat (limited to 'vms')
-rw-r--r-- | vms/vms.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -7094,13 +7094,11 @@ static char *int_tounixspec(const char *spec, char *rslt, int * utf8_fl) PerlMem_free(tmp); for (; cp2 <= dirend; cp2++) { if ((*cp2 == '^')) { - /* EFS file escape, pass the next character as is */ - /* Fix me: HEX encoding for Unicode not implemented */ - *(cp1++) = *(++cp2); - /* An escaped dot stays as is -- don't convert to slash */ - if (*cp2 == '.') cp2++; + /* EFS file escape -- unescape it. */ + cp2 += copy_expand_vms_filename_escape(cp1, cp2, &outchars_added) - 1; + cp1 += outchars_added; } - if (*cp2 == ':') { + else if (*cp2 == ':') { *(cp1++) = '/'; if (*(cp2+1) == '[' || *(cp2+1) == '<') cp2++; } |