On Jul 21, 2014, at 7:41 PM, John E. Malmberg <wb8...@qsl.net> 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:craigbe...@mac.com

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to