Would there be any objection to adding the enclosed patch to the
perl distribution?
diff -ruN perl_orig/MANIFEST perl/MANIFEST
--- perl_orig/MANIFEST Mon Apr 22 12:20:17 2002
+++ perl/MANIFEST Tue Apr 23 16:13:00 2002
@@ -2582,6 +2582,7 @@
t/uni/sprintf.t See if Unicode sprintf works
t/uni/title.t See if Unicode casing works
t/uni/upper.t See if Unicode casing works
+t/vms/uic.t Test if getpwuid() works like f$getjpi() and
+f$identifier() lexicals
t/win32/longpath.t Test if Win32::GetLongPathName() works
t/win32/system.t See if system works in Win*
t/x2p/s2p.t See if s2p/psed work
diff -ruN perl_orig/MANIFEST.new perl/MANIFEST.new
--- perl_orig/MANIFEST.new Mon Apr 22 12:20:17 2002
+++ perl/MANIFEST.new Tue Apr 23 16:13:00 2002
@@ -2582,6 +2582,7 @@
t/uni/sprintf.t See if Unicode sprintf works
t/uni/title.t See if Unicode casing works
t/uni/upper.t See if Unicode casing works
+t/vms/uic.t Test if getpwuid() works like f$getjpi() and
+f$identifier() lexicals
t/win32/longpath.t Test if Win32::GetLongPathName() works
t/win32/system.t See if system works in Win*
t/x2p/s2p.t See if s2p/psed work
diff -ruN perl_orig/t/vms/uic.t perl/t/vms/uic.t
--- perl_orig/t/vms/uic.t Wed Dec 31 19:00:00 1969
+++ perl/t/vms/uic.t Tue Apr 23 16:08:34 2002
@@ -0,0 +1,44 @@
+# uic.t - test return values from the getpw* and getgr* functions against
+# equivalent DCL calls (VMS only).
+
+BEGIN {
+ if ( $^O ne 'VMS' ) { print "1..0\n"; exit; }
+}
+
+print "1..3\n";
+
+# variables for perl
+my $login;
+my $pass;
+my $uid;
+my $gid;
+my $ugid_as_uic;
+
+# variables for DCL
+my $UIC;
+my $username;
+my $uic_numeric;
+
+( $login, $pass, $uid, $gid ) = getpwuid( $< );
+
+$login = uc( $login );
+
+$username = `write sys\$output f\$edit( f\$getjpi( "", "USERNAME" ), "TRIM" )`;
+
+chomp( $username );
+
+print + ( $username eq $login ) ? '' : 'not ', "ok 1\n";
+
+$UIC = `write sys\$output f\$identifier("$username","NAME_TO_NUMBER")`;
+
+chomp( $UIC );
+
+print + ( $UIC == $uid ) ? '' : 'not ', "ok 2\n";
+
+$uic_numeric = `write sys\$output f\$fao( "!\%U", $UIC )`;
+
+chomp( $uic_numeric );
+
+$ugid_as_uic = sprintf( "[%o,%o]", $gid, ( $uid - ( $gid * 0x10000 ) ) );
+
+print + ( $uic_numeric eq $ugid_as_uic ) ? '' : 'not ', "ok 3\n";
End of Patch.
Peter Prymmer