diff options
author | Craig A. Berry <craigberry@mac.com> | 2011-07-04 21:19:15 -0500 |
---|---|---|
committer | Craig A. Berry <craigberry@mac.com> | 2011-07-04 21:19:15 -0500 |
commit | 998e043925965cf6a2a62e8b7f519b4bba121b13 (patch) | |
tree | 2b0e4e68bd7f90e849f4afd3eaed958fc45333f3 /vms | |
parent | 6c8b7ff5cc78905b81e0c76fc54c60fc320b1194 (diff) | |
download | perl-998e043925965cf6a2a62e8b7f519b4bba121b13.tar.gz |
Fix ?/% mix-up in Perl_vms_start_glob.
When it sees the unixy ? as a single-character wildcard rather than
the native %, it intended to leave it alone when the CRTL's extended
character set processing was enabled, but it was actually checking
for a different and unrelated feature setting (case preservation),
meaning it would substitute % for ? in some cases where it meant
not to. This likely did no harm in most cases as LIB$FIND_FILE
will honor either, but if the pattern were to be re-used in a context
that required POSIX semantics, the ? really ought to be preserved
and now it is.
Broken in dca5a9130eb9e045fd52f88cf3dedee7093e19f7.
Diffstat (limited to 'vms')
-rw-r--r-- | vms/vms.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -13676,7 +13676,7 @@ Perl_vms_start_glob for (cp=wilddsc.dsc$a_pointer; ok && cp && *cp; cp++) { if (*cp == '?') { wildquery = 1; - if (!decc_efs_case_preserve) + if (!decc_efs_charset) *cp = '%'; } else if (*cp == '%') { wildquery = 1; |