On Jul 21, 2014, at 7:41 PM, John E. Malmberg <[email protected]> wrote:
> On 7/21/2014 7:06 PM, Craig A. Berry wrote:
>>
>> DECC$FILENAME_UNIX_REPORT has nothing at all to do with exit statuses.
Well, I wouldn't think it did, but for some reason the two are wired together:
s = decc$feature_get_index("DECC$FILENAME_UNIX_REPORT");
if (s >= 0) {
decc_filename_unix_report = decc$feature_get_value(s, 1);
if (decc_filename_unix_report > 0) {
decc_filename_unix_report = 1;
vms_posix_exit = 1;
}
else
decc_filename_unix_report = 0;
}
I think I'm going to regard that as a bug and separate them.
>
> The perlvms documentation needs to be updated.
>
> http://perldoc.perl.org/perlvms.html
>
> The PERL_VMS_POSIX_EXIT needed to be 1 to get it active. "ENABLE" did not
> work. Perl VMS documentation only mentions "ENABLE"
The problem is that for this feature and several others we have code that looks
like:
status = simple_trnlnm
("PERL_VMS_POSIX_EXIT", val_str, sizeof(val_str));
if ($VMS_STATUS_SUCCESS(status)) {
but simple_trnlnm does not return a VMS status. It returns zero on failure or
the length the equivalence name on success. "1" has an odd length and is
considered a success; "ENABLE" has an even length and is considered a failure.
That is definitely a bug, apparently one I introduced at
<http://perl5.git.perl.org/perl.git/commit/8dc9d3390b257b55ff81dfb908f4621b80760d78?f=vms/vms.c>.
Sorry about that. I will fix it soonish, possibly even in time for 5.20.1.
________________________________________
Craig A. Berry
mailto:[email protected]
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser