summaryrefslogtreecommitdiff
path: root/vms
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2007-05-27 01:54:45 +0000
committerCraig A. Berry <craigberry@mac.com>2007-05-27 01:54:45 +0000
commitf36b279dcdcc07778f02e64e91bbb36fc92a5ac6 (patch)
treefd790fd1af2646d5bb0bcb2baf2f90b5b008b10a /vms
parentf617045b1dc288a3a5c423f1bc2d20a0b872e39e (diff)
downloadperl-f36b279dcdcc07778f02e64e91bbb36fc92a5ac6.tar.gz
In the stat() wrapper for VMS, always allow extended characters
(such as multiple dots) in the filename regardless of environment setting. p4raw-id: //depot/perl@31283
Diffstat (limited to 'vms')
-rw-r--r--vms/vms.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/vms/vms.c b/vms/vms.c
index 73f13f56da..297e0b0a93 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -11187,6 +11187,16 @@ Perl_flex_stat_int(pTHX_ const char *fspec, Stat_t *statbufp, int lstat_flag)
*
* If we are in Posix filespec mode, accept the filename as is.
*/
+
+
+#if __CRTL_VER >= 70300000 && !defined(__VAX)
+ /* The CRTL stat() falls down hard on multi-dot filenames in unix format unless
+ * DECC$EFS_CHARSET is in effect, so temporarily enable it if it isn't already.
+ */
+ if (!decc_efs_charset)
+ decc$feature_set_value(decc$feature_get_index("DECC$EFS_CHARSET"),1,1);
+#endif
+
#if __CRTL_VER >= 80200000 && !defined(__VAX)
if (decc_posix_compliant_pathnames == 0) {
#endif
@@ -11213,6 +11223,13 @@ Perl_flex_stat_int(pTHX_ const char *fspec, Stat_t *statbufp, int lstat_flag)
save_spec = temp_fspec;
}
#endif
+
+#if __CRTL_VER >= 70300000 && !defined(__VAX)
+ /* As you were... */
+ if (!decc_efs_charset)
+ decc$feature_set_value(decc$feature_get_index("DECC$EFS_CHARSET"),1,0);
+#endif
+
if (!retval) {
char * cptr;
cptr = do_rmsexpand