summaryrefslogtreecommitdiff
path: root/vms
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2011-07-04 21:19:15 -0500
committerCraig A. Berry <craigberry@mac.com>2011-07-04 21:19:15 -0500
commit998e043925965cf6a2a62e8b7f519b4bba121b13 (patch)
tree2b0e4e68bd7f90e849f4afd3eaed958fc45333f3 /vms
parent6c8b7ff5cc78905b81e0c76fc54c60fc320b1194 (diff)
downloadperl-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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vms/vms.c b/vms/vms.c
index 2ce99d15b4..fef625c6d0 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -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;