develooper Front page | perl.perl5.porters | Postings from June 2008

Re: [patch@34044] Enable getgrgid on VMS

Thread Previous | Thread Next
From:
Craig A. Berry
Date:
June 13, 2008 08:31
Subject:
Re: [patch@34044] Enable getgrgid on VMS
Message ID:
c9ab31fc0806130831m32bdea60qc7484a02936244a@mail.gmail.com
On Thu, Jun 12, 2008 at 7:50 PM, John E. Malmberg <wb8tyw@qsl.net> wrote:
> Even though configure.com was detecting the getgrgid and friends, they were
> not being configured because HAS_GROUPS was not defined in vmsish.h.

Good catch.  Obviously it's HAS_GROUP, not HAS_GROUPS, but that's
correct in the patch itself.

> --- /rsync_root/perl/vms/vmsish.h       Thu Feb 21 18:20:57 2008
> +++ vms/vmsish.h        Thu Jun 12 08:34:47 2008
> @@ -448,8 +448,15 @@
>  *     This symbol, if defined, indicates that the getgrnam() and
>  *     getgrgid() routines are available to get group entries.
>  *     The getgrent() has a separate definition, HAS_GETGRENT.
> + *
> + *     These have been available in VMS for a while, but configure.com
> + *     only checks for the recursive versions.

The _r is for reentrant, not recursive.

>  */
> +#if defined HAS_GETGRNAM_R || defined HAS_GETGRGID_R

Wouldn't it be simpler to just do:

#if __CRTL_VER >= 70302000

plus that self-documents when they became available.

> +#define HAS_GROUP              /**/
> +#else
>  #undef HAS_GROUP               /**/
> +#endif
>
>  /* HAS_PASSWD
>  *     This symbol, if defined, indicates that the getpwnam() and
> --- /rsync_root/perl/t/op/groups.t      Wed Apr 30 10:20:16 2008
> +++ t/op/groups.t       Thu Jun 12 18:47:18 2008
> @@ -1,7 +1,7 @@
>  #!./perl
>
>  $ENV{PATH} ="/bin:/usr/bin:/usr/xpg4/bin:/usr/ucb" .
> -    exists $ENV{PATH} ? ":$ENV{PATH}" : "";
> +    exists $ENV{PATH} ? ":$ENV{PATH}" : "" unless $^O eq 'VMS';
>  $ENV{LC_ALL} = "C"; # so that external utilities speak English
>  $ENV{LANGUAGE} = 'C'; # GNU locale extension
>
> @@ -27,7 +27,8 @@
>     exit 0;
>  }
>
> -quit() if (($^O eq 'MSWin32' || $^O eq 'NetWare') or $^O =~ /lynxos/i);
> +quit() if (($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'VMS')
> +           or $^O =~ /lynxos/i);
>
>  # We have to find a command that prints all (effective
>  # and real) group names (not ids).  The known commands are:
>
>

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About