Make extended filename syntax the default on VMS.
authorCraig A. Berry <craigberry@mac.com>
Fri, 15 Feb 2013 03:27:26 +0000 (21:27 -0600)
committerCraig A. Berry <craigberry@mac.com>
Fri, 15 Feb 2013 03:41:21 +0000 (21:41 -0600)
This feature has been available for over a decade but is still not
the default for the CRTL.  It seems time to make it the default
for Perl.  It means that directory names can have dots in them,
and filenames can contain multiple dots as well as spaces and
generally characters from the top row of the keyboard while the
shift key is held down.

Filenames with native syntax must escape characters in the so-called
extended character set with a caret ("^"), but filenames in Unix
syntax must not have the escapes.  Conversions between native and
Unix syntax will, respectively, add and remove these escapes.

Supporting Unicode in filenames depends on this feature but has
not yet been investigated.

vms/vms.c

index 9a0ab4b..44d72ff 100644 (file)
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -14014,7 +14014,6 @@ vmsperl_set_features(void)
     status = simple_trnlnm("GNV$UNIX_SHELL", val_str, sizeof(val_str));
     if ($VMS_STATUS_SUCCESS(status)) {
         gnv_unix_shell = 1;
-        set_feature_default("DECC$EFS_CHARSET", 1);
         set_feature_default("DECC$FILENAME_UNIX_NO_VERSION", 1);
         set_feature_default("DECC$FILENAME_UNIX_REPORT", 1);
         set_feature_default("DECC$READDIR_DROPDOTNOTYPE", 1);
@@ -14025,6 +14024,7 @@ vmsperl_set_features(void)
     /* Some reasonable defaults that are not CRTL defaults */
     set_feature_default("DECC$EFS_CASE_PRESERVE", 1);
     set_feature_default("DECC$ARGV_PARSE_STYLE", 1);     /* Requires extended parse. */
+    set_feature_default("DECC$EFS_CHARSET", 1);
 #endif
 
     /* hacks to see if known bugs are still present for testing */