Craig A. Berry wrote:
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.
I meant to use the HAVE_UTIME_H macro conditionally compile this in.
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.
I missed that. Apparently while common, it is not tested in the Perl self tests.
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.
The ACP interface that is used for the work around to not having a built in utime() can not handle EFS file specifications. It needs to have the on-disk file specification.
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.
The utime() call always expects it's parameters to be in UTC, so when the pragma is set to use local time, the local time needs to be converted to UTC.
-John [EMAIL PROTECTED] Personal Opinion Only