exit 0;
}
-quit() if $^O eq 'MSWin32';
+quit() if (($^O eq 'MSWin32' || $^O eq 'NetWare') or $^O =~ /lynxos/i);
# We have to find a command that prints all (effective
# and real) group names (not ids). The known commands are:
quit();
}
+unless (eval { getgrgid(0); 1 }) {
+ print "1..0 # Skip: getgrgid() not implemented\n";
+ exit 0;
+}
+
# Remember that group names can contain whitespace, '-', et cetera.
# That is: do not \w, do not \S.
if ($groups =~ /groups=(.+)( [ug]id=|$)/) {
# prefer names over numbers
for (@g0) {
# 42(zot me)
- if (/^(\d+)(?:\(([^)]+)\))?$/) {
+ if (/^(\d+)(?:\(([^)]+)\))?/) {
push @g1, ($2 || $1);
}
# zot me(42)
- elsif (/^([^(]*)\((\d+)\)$/) {
+ elsif (/^([^(]*)\((\d+)\)/) {
push @g1, ($1 || $2);
}
else {
}
}
-if ($^O eq "uwin") { # Or anybody else who can have spaces in group names.
+if ($^O =~ /^(?:uwin|solaris)$/) {
+ # Or anybody else who can have spaces in group names.
$gr1 = join(' ', grep(!$did{$_}++, sort split(' ', join(' ', @gr))));
} else {
$gr1 = join(' ', sort @gr);