From: Craig A. Berry Date: Sun, 27 May 2007 01:54:45 +0000 (+0000) Subject: In the stat() wrapper for VMS, always allow extended characters X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f36b279dcdcc07778f02e64e91bbb36fc92a5ac6;p=p5sagit%2Fp5-mst-13.2.git 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 --- diff --git a/vms/vms.c b/vms/vms.c index 73f13f5..297e0b0 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