At 8:12 AM -0500 3/20/06, John E. Malmberg wrote: >The patch changes the utime emulation in vms.c to handle pathnames longer than >255 characters when the rest of that support is enabled. > >It also changes the Perl_my_utime() call to use the real utime() call when the >DECC$_EFS_CHARSET feature is enabled so that the times of a file on an ODS-5 >volume can be properly set. > >Changed files: > >Configure.com - Detect utime.h header file and configure accordingly. > >vms/vmsish.h - If utime.h header file exists, use it, to make sure that the >structure is properly aligned. Do not hide the utime() function from vms.c. > >vms/vms.c - If DECC$_EFS_CHARSET enabled, use built in utime() function >instead of emulation, and convert the input times from local to utc if the >vmsish pragma is set. Also use rmsexpand() instead of tovmsspec() to convert >the path name to VMS, as rmsexpand() makes sure that the resulting VMS file >specification will fit in 255 characters.
I finally got around to testing this, and there are a few problems with it. 1.) We can no longer compile on pre-7.3 systems because the call to the CRTL utime() is done regardless of CRTL version. We need to make sure that on pre-7.3 systems we use the old home-grown code that fiddles with the FIB. 2.) The code as written does not handle a null second argument to utime() and accvios if it gets one. Null is valid (and quite common because it means "use the current time") and needs to be handled. 3.) I can't think of any relationship between DECC$EFS_CHARSET and utime. Perhaps this was supposed to be DECC$EFS_FILE_TIMESTAMPS ? Even here, though, I don't think we need to do anything differently because the CRTL utime() is going to do its own feature checking. I've attached my working patch, but I'm also not sure if we are doing the UTC translation in the right direction, so I need to study that a bit more. -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser
utime.patch
Description: Binary data