summaryrefslogtreecommitdiff
path: root/ext/POSIX
Commit message (Collapse)AuthorAgeFilesLines
* mknod() is not POSIX, so remove the POSIX pieces from change#1199Gurusamy Sarathy1998-06-253-20/+1
| | | | | p4raw-link: @1199 on //depot/perl: 6990d9917c06c8c6c480c9c385d7d2ed536c8d24 p4raw-id: //depot/perl@1215
* tweak MANIFEST, add Dev_t to POSIX/typemapGurusamy Sarathy1998-06-231-0/+1
| | | p4raw-id: //depot/perl@1204
* applied patch, moved #define mkfifo ... from perl.h to POSIX.xsJarkko Hietaniemi1998-06-233-3/+30
| | | | | | Message-Id: <199806222101.AAA16456@alpha.hut.fi> Subject: [PATCH] _67: somebody said POSIX::mknod? p4raw-id: //depot/perl@1199
* tweaks to allow both mingw32{gcc-2.8.1,egcs-1.0.2} build and testGurusamy Sarathy1998-06-201-1/+1
| | | p4raw-id: //depot/perl@1163
* manual integration of all outstanding ansi branch stuff into mainlineGurusamy Sarathy1998-06-201-0/+2
| | | p4raw-id: //depot/perl@1162
* [asperl] integrate mainline changesGurusamy Sarathy1998-05-292-6/+18
|\ | | | | p4raw-id: //depot/asperl@1055
| * [win32] misc changesGurusamy Sarathy1998-05-291-3/+2
| | | | | | | | | | | | - remove code that works around lack of I_STDARG (we're a happy ANSI family) - leave dump_foo() stubs when not -DDEBUGGING for consistent symbol exports p4raw-id: //depot/win32/perl@1053
| * [win32] merge changes#1014,1038 from maintbranchGurusamy Sarathy1998-05-291-1/+1
| | | | | | | | | | | | p4raw-link: @1038 on //depot/maint-5.004/perl: c3cf4c2be38f0215f451c3dd6cb13089e5f2329f p4raw-link: @1014 on //depot/maint-5.004/perl: d14230f9721c31ac6e9e2fdb706c7fc95118b4e6 p4raw-id: //depot/win32/perl@1052
| * Integrated win32 branch into mainline. The changes to t/op/ipc*.tMalcolm Beattie1998-05-281-2/+11
| |\ | | | | | | | | | | | | | | | in change 1043 clashed badly with changes made in the win32 branch. I did an accept on the win32 branch version for now. p4raw-id: //depot/perl@1048
| | * [win32] more mingw32 tweaksGurusamy Sarathy1998-05-211-1/+6
| | | | | | | | | p4raw-id: //depot/win32/perl@1024
| | * [win32] fix POSIX for mingw32Gurusamy Sarathy1998-05-211-2/+6
| | | | | | | | | p4raw-id: //depot/win32/perl@1022
| * | [PATCH 5.004_65] Config_65-02-03.diff: SunOS and Solaris hintsAndy Dougherty1998-05-281-1/+5
| |/ | | | | | | | | | | | | Date: Thu, 28 May 1998 13:27:25 -0400 (EDT) Subject: [PATCH 5.004_65] Config_65-03-04.diff: semctl probing Date: Thu, 28 May 1998 13:28:21 -0400 (EDT) p4raw-id: //depot/perl@1047
* | [asperl] more changes to satisfy non-debug VC build (C-API doesn'tGurusamy Sarathy1998-05-261-2/+3
| | | | | | | | | | build, and the testsuite still won't run) p4raw-id: //depot/asperl@1035
* | [asperl] tweaks to make it build with the Borland compiler. Won't runGurusamy Sarathy1998-05-261-1/+7
|/ | | | | | testsuite because @INC intuition from location of perlcore.dll seems to be broken. Also, system() and qx// seem broken as well. p4raw-id: //depot/asperl@1033
* [win32] merge changes#922,944,949,965,970 from maintbranchGurusamy Sarathy1998-05-151-5/+7
| | | | | | | | | p4raw-link: @970 on //depot/maint-5.004/perl: 5362f8886d6c3fb908c863d910b1a158479419e2 p4raw-link: @965 on //depot/maint-5.004/perl: 8472ac73d6d802946d766b5459d2d9c334889a3f p4raw-link: @949 on //depot/maint-5.004/perl: 4b161ae29769b4a3eb304314bbbfe5969417c8ec p4raw-link: @944 on //depot/maint-5.004/perl: fa366f5fbba3f21113f9677105663454a3e0b678 p4raw-link: @922 on //depot/maint-5.004/perl: 68daf0ababdc0e913335a90c4361b792b2715301 p4raw-id: //depot/win32/perl@978
* [win32] integrate mainlineGurusamy Sarathy1998-05-144-0/+12
| | | p4raw-id: //depot/win32/perl@973
* [win32] merge change#886 from maintbranchGurusamy Sarathy1998-05-142-20/+20
| | | | | p4raw-link: @886 on //depot/maint-5.004/perl: 6dba07070c2cb08ffbc6e00eff60e8f5fc9a7ee8 p4raw-id: //depot/win32/perl@936
* [win32] support POSIX, enable more locale testsGurusamy Sarathy1998-04-173-4/+44
| | | p4raw-id: //depot/win32/perl@889
* Add missing export of "nice" to ext/POSIX/POSIX.pm (Phil Tait)Malcolm Beattie1998-04-021-0/+1
| | | p4raw-id: //depot/perl@847
* Andy Dougherty's configuration patches (Config_63-01 up to 04).Malcolm Beattie1998-04-021-1/+7
| | | p4raw-id: //depot/perl@845
* 5.004_63 picky compiler fixes [PATCH]Hans Mulder1998-04-021-6/+17
| | | | | | | Date: Wed, 18 Mar 1998 09:36:32 -0800 Subject: [PATCH 5.004_63] Fix function prototype with long doubles Date: Wed, 18 Mar 1998 14:48:19 -0800 p4raw-id: //depot/perl@843
* [win32] change all 'sp' to 'SP' in code and in the docs. ExplicitlyGurusamy Sarathy1998-03-071-7/+7
| | | | | | mention that local stack pointer should be called SP. This makes the API safer from source incompatibilities down the line. p4raw-id: //depot/win32/perl@795
* Re: ANNOUNCE: perl5.004_60 Configure patch is availableAndy Dougherty1998-02-251-0/+6
| | | p4raw-id: //depot/perl@575
* Re: posix::strftime (core dumped)Andy Dougherty1998-02-062-0/+11
| | | p4raw-id: //depot/perl@481
* Major changes to the DOS/djgpp port (including threading):Molnar Laszlo1997-12-171-0/+2
| | | | | Subject: Re: dos-djgpp port not in perl 5.004_54 p4raw-id: //depot/perl@373
* Further ANSI changes now builds and passes (most) testsNick Ing-Simmons1997-10-311-5/+2
| | | | | with gcc -x c++. p4raw-id: //depot/ansiperl@196
* Patches for VMS [Dan Sugalski]Malcolm Beattie1997-10-241-70/+0
| | | p4raw-id: //depot/perl@173
* posix.xs broken on VMS 7.1Dan Sugalski1997-08-071-5/+6
| | | | private-msgid: 3.0.2.32.19970718095755.00875ba0@stargate.lbcc.cc.or.us
* [inseparable changes from match from perl-5.003_97f to perl-5.003_97g]Perl 5 Porters1997-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | CORE LANGUAGE CHANGES Subject: Improve sysseek(), remove systell(), fix Opcode From: Chip Salzenberg <chip@perl.com> Files: doio.c ext/Opcode/Makefile.PL ext/Opcode/Opcode.pm ext/Opcode/Opcode.xs global.sym keywords.pl opcode.pl pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod pp_sys.c proto.h t/op/sysio.t toke.c DOCUMENTATION Subject: Document {,un}pack changes Date: Fri, 18 Apr 97 13:49:39 BST From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: pod/perldelta.pod pod/perldiag.pod Msg-ID: 9704181249.AA11733@claudius.bfsec.bt.co.uk (applied based on p5p patch as commit 7f505e5d2748dc2677688b22967678392a186b16) OTHER CORE CHANGES Subject: SECURITY FIX: 'Identifier too long' From: Chip Salzenberg <chip@perl.com> Files: pod/perldelta.pod pod/perldiag.pod toke.c
* Fix POSIX::raise()Jens T. Berger Thielemann1997-04-011-2/+2
| | | | | | | [editor's note: Chip credited Jens with the fix, but the message doesn't have a patch. *shrug*] p5p-msgid: Pine.SUN.3.91.970401153125.8053A-100000@holmenkollen.ifi.uio.no
* [inseparable changes from match from perl-5.003_93 to perl-5.003_94]Perl 5 Porters1997-03-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUILD PROCESS Subject: Don't use db 2.x, we're not yet ready for it From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: Configure Subject: Warn if #! command is longer than 32 chars From: Chip Salzenberg <chip@perl.com> Files: Configure Subject: patches re perl -wc install{perl,man} Date: Tue, 11 Mar 97 13:13:16 GMT From: Robin Barker <rmb1@cise.npl.co.uk> Files: installman installperl I got the new installhtml from CPAN (TOMC/scripts/pod2html-v2.0beta.shar.gz) I had problems getting the system call to splitpod at line 376 to work. 1. splitroot was not being found 2. splitroot was not finding its library 3. I changed htmlroot to podroot at line 175 to match the documentation. p5p-msgid: 3180.9703270906@tempest.cise.npl.co.uk private-msgid: 21544.9703111313@tempest.cise.npl.co.uk Subject: 3_93 doesn't install pods Date: Sun, 16 Mar 1997 02:21:35 -0500 From: Spider Boardman <spider@orb.nashua.nh.us> Files: installperl Msg-ID: 199703160721.CAA08339@Orb.Nashua.NH.US (applied based on p5p patch as commit 43506a616735d616e03d277d64fbae1e864024bf) Subject: When installing, use File::Copy instead of `cp` From: Chip Salzenberg <chip@perl.com> Files: installperl Subject: Make hint files' warnings more visible Date: Thu, 20 Mar 1997 23:18:03 +0100 (MET) From: Hallvard B Furuseth <h.b.furuseth@usit.uio.no> Files: hints/3b1.sh hints/apollo.sh hints/cxux.sh hints/dcosx.sh hints/dgux.sh hints/esix4.sh hints/freebsd.sh hints/hpux.sh hints/irix_4.sh hints/mips.sh hints/next_3_0.sh hints/os2.sh hints/qnx.sh hints/sco_2_3_3.sh hints/sco_2_3_4.sh hints/solaris_2.sh hints/ultrix_4.sh hints/utekv.sh private-msgid: 199703202218.XAA09041@bombur2.uio.no CORE LANGUAGE CHANGES Subject: Defer creation of array and hash elements as parameters From: Chip Salzenberg <chip@perl.com> Files: dump.c global.sym mg.c op.c op.h perl.h pp.c pp_hot.c proto.h sv.c Subject: New special literal: __PACKAGE__ From: Chip Salzenberg <chip@perl.com> Files: keywords.pl pod/perldata.pod toke.c Subject: Abort compilation at C<BEGIN{}> or C<use> after errors From: Chip Salzenberg <chip@perl.com> Files: op.c pod/perldiag.pod t/pragma/subs.t Subject: allow C<substr 'hello', -10> Date: Mon, 10 Mar 1997 15:55:44 -0800 From: David Dyck <dcd@tc.fluke.com> Files: pp.c Msg-ID: 97Mar10.155517pst.35716-2@gateway.fluke.com (applied based on p5p patch as commit 77f720bf92f3d0100352416caeedd57936807ff2) Subject: Regularize C<x % y>, esp. when y is negative From: Chip Salzenberg <chip@perl.com> Files: pp.c Subject: Flush before C<flock(FOO, LOCK_UN)> From: Chip Salzenberg <chip@perl.com> Files: pod/perldelta.pod pod/perlfunc.pod pp_sys.c Subject: Close loopholes in prototype mismatch warning From: Chip Salzenberg <chip@perl.com> Files: op.c sv.c toke.c Subject: Warn on C<while ($x = each %y) {}> From: Chip Salzenberg <chip@perl.com> Files: op.c pod/perldiag.pod Subject: Don't warn on C<print $fh func()> From: Chip Salzenberg <chip@perl.com> Files: toke.c CORE PORTABILITY Subject: Don't say 'static var = 1' Date: Sun, 9 Mar 1997 15:19:57 +0200 (EET) From: Jarkko Hietaniemi <jhi@iki.fi> Files: malloc.c private-msgid: 199703091319.PAA24714@alpha.hut.fi Subject: HP/UX hint comments Date: Fri, 21 Mar 1997 15:43:07 -0500 (EST) From: Andy Dougherty <doughera@fractal.phys.lafayette.edu> Files: hints/hpux.sh private-msgid: Pine.SOL.3.95q.970321153918.28770B-100000@fractal.lafayette. Subject: VMS update Date: Tue, 11 Mar 1997 22:00:55 -0500 (EST) From: Charles Bailey <bailey@hmivax.humgen.upenn.edu> Files: lib/ExtUtils/MM_VMS.pm lib/Test/Harness.pm t/op/taint.t utils/perlbug.PL vms/descrip.mms Msg-ID: 1997Mar11.220056.1873182@hmivax.humgen.upenn.edu (applied based on p5p patch as commit 2b5725676da60b49978f38b85bb7f8ee20b4cb55) Subject: vmsish.t and related patches Date: Fri, 21 Mar 1997 01:32:47 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: MANIFEST perl.h vms/descrip.mms vms/ext/vmsish.t vms/vms.c private-msgid: 01IGQW3IP1KK005VFB@hmivax.humgen.upenn.edu Subject: Win32 update (four patches) From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: MANIFEST README.win32 lib/AutoSplit.pm lib/Cwd.pm lib/ExtUtils/Command.pm lib/ExtUtils/Install.pm lib/ExtUtils/MM_OS2.pm lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_Win32.pm lib/ExtUtils/MakeMaker.pm lib/ExtUtils/Mksymlists.pm lib/File/Basename.pm lib/File/Path.pm mg.c t/comp/cpp.t t/comp/script.t t/harness t/io/argv.t t/io/dup.t t/io/fs.t t/io/inplace.t t/lib/filehand.t t/lib/io_dup.t t/lib/io_sel.t t/lib/io_taint.t t/op/closure.t t/op/exec.t t/op/glob.t t/op/goto.t t/op/magic.t t/op/misc.t t/op/rand.t t/op/split.t t/op/stat.t t/op/sysio.t t/op/taint.t t/pragma/strict.t t/pragma/subs.t t/pragma/warning.t util.c win32/* DOCUMENTATION Subject: perlfaq.pod Date: Mon, 17 Mar 1997 16:01:40 -0700 From: Tom Christiansen <tchrist@jhereg.perl.com> Files: MANIFEST pod/Makefile pod/buildtoc pod/perl.pod pod/perlfaq*.pod pod/roffitall private-msgid: 199703172301.QAA12566@jhereg.perl.com Subject: *.pod changes based on the FAQ Date: Mon, 17 Mar 1997 09:50:14 -0700 (MST) From: Nat Torkington <gnat@frii.com> Files: pod/perldata.pod pod/perlfunc.pod pod/perlipc.pod pod/perlop.pod pod/perlre.pod pod/perlrun.pod pod/perlsec.pod pod/perlvar.pod Msg-ID: 199703171650.JAA02655@elara.frii.com (applied based on p5p patch as commit 3c10ad8e31f7d77e71c048b1746912f41cb540f0) Subject: Document that $. is not reset on implicit open From: Chip Salzenberg <chip@perl.com> Files: pod/perldelta.pod Subject: Re: Embedding success with _93 Date: Tue, 11 Mar 1997 17:55:05 -0500 From: Doug MacEachern <dougm@opengroup.org> Files: pod/perldelta.pod Msg-ID: 199703112255.RAA22775@postman.osf.org (applied based on p5p patch as commit 63a6ff3a1dc8d86edb4d8a7ec1548205e32a7114) Subject: Patch to document illegal characters Date: Fri, 14 Mar 1997 09:08:10 -0800 (PST) From: Tom Phoenix <rootbeer@teleport.com> Files: pod/perldiag.pod pod/perltrap.pod private-msgid: Pine.GSO.3.96.970314090558.15346J-100000@kelly.teleport.com Subject: Document trap with //o and closures Date: Mon, 10 Mar 1997 18:08:08 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: pod/perltrap.pod Msg-ID: 01IGCHWRNSEU00661G@hmivax.humgen.upenn.edu (applied based on p5p patch as commit a54cb1465fdb400848f23705a6f130bb5c34ab70) Subject: Illegal character in input Date: Mon, 10 Mar 1997 15:21:21 -0800 (PST) From: Tom Phoenix <rootbeer@teleport.com> Files: pod/perldiag.pod private-msgid: Pine.GSO.3.95q.970310151512.22489a-100000@kelly.teleport.com Subject: Patch for docs Re: Lost backslash Date: Wed, 19 Mar 1997 07:28:57 -0800 (PST) From: Tom Phoenix <rootbeer@teleport.com> Files: pod/perlop.pod private-msgid: Pine.GSO.3.96.970319071438.24834G-100000@kelly.teleport.com Subject: XSUB's doc fix Date: Mon, 10 Mar 1997 11:42:06 -0500 From: Roderick Schertler <roderick@argon.org> Files: pod/perlcall.pod pod/perlguts.pod pod/perlxstut.pod Msg-ID: 28804.858012126@eeyore.ibcinc.com (applied based on p5p patch as commit 5f43237038ea7a4151d3bf65aeeecd56ceb78a6a) Subject: Document return from do FILE Date: Tue, 18 Mar 1997 14:50:10 +0000 From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk> Files: pod/perlfunc.pod Msg-ID: E0w70DK-0001yJ-00@ursa.cus.cam.ac.uk (applied based on p5p patch as commit ba8d5fb439878113de8abc9b52d2af237d30fb3c) Subject: Document $^M in perlvar Date: Thu, 20 Mar 97 21:08:33 GMT From: Robin Barker <rmb1@cise.npl.co.uk> Files: pod/perlvar.pod private-msgid: 6153.9703202108@tempest.cise.npl.co.uk Subject: typos in pods of 5.003_93 Date: 19 Mar 1997 10:39:38 -0600 From: Jim Meyering <meyering@asic.sc.ti.com> Files: pod/perlfunc.pod pod/perlguts.pod pod/perlre.pod pod/perltoot.pod pod/perlxs.pod Msg-ID: wpgendbzvhx.fsf@asic.sc.ti.com (applied based on p5p patch as commit 76a9873e006cf8f48f57062b2a0dd40b5ed45a95) Subject: Re: Updates to pod punctuations Date: Fri, 14 Mar 1997 17:00:12 -0500 From: Larry W. Virden <lvirden@cas.org> Files: pod/*.pod private-msgid: 9703141700.AA22911@cas.org Subject: clarify example in perlfunc Date: Thu, 20 Mar 1997 19:46:01 +0200 (EET) From: Jarkko Hietaniemi <jhi@iki.fi> Files: pod/perlfunc.pod private-msgid: 199703201746.TAA25195@alpha.hut.fi Subject: Regularize headings in DB_File documentation From: Chip Salzenberg <chip@perl.com> Files: ext/DB_File/DB_File.pm LIBRARY AND EXTENSIONS Subject: New module: autouse.pm Date: Thu, 20 Mar 1997 19:34:30 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: MANIFEST lib/autouse.pm Msg-ID: 199703210034.TAA13469@monk.mps.ohio-state.edu (applied based on p5p patch as commit 6757905eccb6dd0440ef65e8128a277a20f7d943) Subject: Refresh DB_File to 1.12 Date: Wed, 12 Mar 97 15:51:14 GMT From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs Msg-ID: 9703121551.AA07435@claudius.bfsec.bt.co.uk (applied based on p5p patch as commit b3deed9189f963e9994815307931f9084f60d1d9) Subject: In File::Path, some systems can't remove read-only files From: Chip Salzenberg <chip@perl.com> Files: lib/File/Path.pm Subject: Fix bugs revealed by prototype warnings From: Chip Salzenberg <chip@perl.com> Files: ext/Opcode/Opcode.pm lib/ExtUtils/MakeMaker.pm lib/Getopt/Long.pm Subject: Problems with SKIP in makemaker Date: Thu, 20 Mar 1997 23:13:31 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: lib/ExtUtils/MM_Unix.pm Msg-ID: 199703210413.XAA21601@monk.mps.ohio-state.edu (applied based on p5p patch as commit 970322a2e8024294ada6e8d1a027cb98f1f48ee3) Subject: In Exporter, don't C<require Carp> at file scope From: Chip Salzenberg <chip@perl.com> Files: lib/Exporter.pm Subject: fix for Exporter's $SIG{__WARN__} handler Date: Thu, 13 Mar 1997 18:40:51 -0500 From: Roderick Schertler <roderick@argon.org> Files: lib/Exporter.pm Msg-ID: 2282.858296451@eeyore.ibcinc.com (applied based on p5p patch as commit 2768ea1aeef34f42d096f198fbe629c8374ca429) Subject: Don't try to substr() refs in Carp From: Chip Salzenberg <chip@perl.com> Files: lib/Carp.pm Subject: Re: NUL in die and other messages Date: Fri, 21 Mar 1997 09:58:17 +0000 From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk> Files: lib/Carp.pm Msg-ID: E0w815V-0005xs-00@ursa.cus.cam.ac.uk (applied based on p5p patch as commit 52a267c574cb66c4bc35601dcf148a1d7a3bc557) OTHER CORE CHANGES Subject: Guard against buffer overflow in yyerror() and related funcs From: Chip Salzenberg <chip@perl.com> Files: toke.c Subject: For bin compat, rename calllist() and he_{,delay}free From: Chip Salzenberg <chip@perl.com> Files: global.sym hv.c op.c perl.c pod/perlguts.pod proto.h Subject: Fix C<print> on tied default handle From: Chip Salzenberg <chip@perl.com> Files: pp_hot.c Subject: Fix C<local($a, undef, $b) = (1,2,3)> From: Chip Salzenberg <chip@perl.com> Files: op.c Subject: Improve diagnostic on C<@a++>, C<--%a>, @a =~ s/a/b/ From: Chip Salzenberg <chip@perl.com> Files: pp.c pp_hot.c Subject: Don't warn on C<$x{y} .= "z"> when %x is tied From: Chip Salzenberg <chip@perl.com> Files: pp_hot.c Subject: Eliminate 'unreachable code' warnings From: Chip Salzenberg <chip@perl.com> Files: ext/POSIX/POSIX.xs mg.c pp_ctl.c toke.c Subject: printf format corrections for -DDEBUGGING Date: Wed, 19 Mar 1997 12:42:50 -0500 From: Roderick Schertler <roderick@argon.org> Files: doop.c malloc.c op.c pp_ctl.c regexec.c sv.c x2p/str.c x2p/util.c Msg-ID: 26592.858793370@eeyore.ibcinc.com (applied based on p5p patch as commit e125f273e351a19a92b69d6244af55abbbf0a26d) Subject: Warn about missing -DMULTIPLICITY if likely a problem Date: Wed, 19 Mar 1997 18:45:53 -0500 From: Doug MacEachern <dougm@opengroup.org> Files: perl.c Msg-ID: 199703192345.SAA15070@postman.osf.org (applied based on p5p patch as commit 71aeea1753924e6e19c2461e241e3f7d8a570e90)
* [inseparable changes from match from perl-5.003_91 to perl-5.003_92]Perl 5 Porters1997-03-011-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CORE LANGUAGE CHANGES Subject: Strictly follow lexical context of C<eval ''> and nested subs From: Chip Salzenberg <chip@perl.com> Files: op.c Subject: Make ::SUPER and UNIVERSAL work together From: Chip Salzenberg <chip@perl.com> Files: gv.c pod/perlguts.pod CORE PORTABILITY Subject: OS/2 patches Date: Wed, 5 Mar 1997 22:08:43 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: hints/os2.sh lib/ExtUtils/MakeMaker.pm t/op/taint.t Msg-ID: 199703060308.WAA22211@monk.mps.ohio-state.edu (applied based on p5p patch as commit eda4d5189d403b15f244b4696a710fb91d15053e) Subject: VMS patches Date: Wed, 05 Mar 1997 23:10:24 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: lib/ExtUtils/MM_VMS.pm lib/ExtUtils/Manifest.pm perlsdio.h t/op/runlevel.t t/op/taint.t vms/descrip.mms vms/perly_c.vms vms/sockadapt.c vms/sockadapt.h vms/vms_yfix.pl private-msgid: 01IG5SQE4A6U00661G@hmivax.humgen.upenn.edu DOCUMENTATION Subject: Add taint checks and srand to perldelta Date: Sun, 2 Mar 1997 11:56:08 -0800 (PST) From: Tom Phoenix <rootbeer@teleport.com> Files: pod/perldelta.pod Msg-ID: Pine.GSO.3.95q.970302115355.23058D-100000@kelly.teleport.com (applied based on p5p patch as commit b28e0bc0aa3232e18d1bacb3efcbfb755ad100e0) Subject: Don't call FileHandle 'deprecated' From: Chip Salzenberg <chip@perl.com> Files: pod/perldelta.pod Subject: Improve sample module header Date: Sat, 01 Mar 1997 10:32:31 -0700 From: Tom Christiansen <tchrist@jhereg.perl.com> Files: pod/perlmod.pod Msg-ID: 199703011732.KAA14693@jhereg.perl.com (applied based on p5p patch as commit 3e1e15658152387f41e00ded4796cede4e1e10d3) Subject: Update list of CPAN sites Date: Sun, 2 Mar 1997 16:54:22 +0200 (EET) From: Jarkko Hietaniemi <jhi@iki.fi> Files: pod/perlmod.pod Msg-ID: 199703021454.QAA07446@alpha.hut.fi (applied based on p5p patch as commit 9423903e60e6c92c1893f5f4cab2476f403f8a4b) Subject: Enhance description of 'server error' Date: Tue, 4 Feb 1997 21:03:23 +0200 (EET) From: Jarkko Hietaniemi <jhi@cc.hut.fi> Files: pod/perldiag.pod private-msgid: 199702041903.VAA16070@alpha.hut.fi Subject: Regularize format of E-Mail addresses in *.pod From: Chip Salzenberg <chip@perl.com> Files: pod/*.pod LIBRARY AND EXTENSIONS Subject: Use IV instead of double for tms structure members From: Chip Salzenberg <chip@perl.com> Files: ext/POSIX/POSIX.xs OTHER CORE CHANGES Subject: Make sure $^X is tainted when ARG_ZERO_IS_SCRIPT From: Chip Salzenberg <chip@perl.com> Files: toke.c Subject: Clarify '-T too late' error From: Chip Salzenberg <chip@perl.com> Files: perl.c pod/perldiag.pod Subject: Warn when redefining or undefining a constant sub From: Chip Salzenberg <chip@perl.com> Files: pod/perldiag.pod pp.c sv.c Subject: Don't generate spurious 'not imported' warning From: Chip Salzenberg <chip@perl.com> Files: gv.c t/pragma/strict-vars pod/perldiag.pod Subject: Clarify message re: @host in string From: Chip Salzenberg <chip@perl.com> Files: pod/perldiag.pod pod/perltrap.pod toke.c Subject: Disconnect refs that are targets of pp_readline From: Chip Salzenberg <chip@perl.com> Files: pp_hot.c Subject: Fix typo in test of HvFILL() From: Chip Salzenberg <chip@perl.com> Files: op.c Subject: Allow for pad name array to be shorter than pad array From: Chip Salzenberg <chip@perl.com> Files: op.c Subject: Eliminate format-string type warnings Date: Mon, 3 Mar 1997 10:15:11 +0100 (MET) From: Hallvard B Furuseth <h.b.furuseth@usit.uio.no> Files: doio.c ext/POSIX/POSIX.xs gv.c hints/dec_osf.sh pp.c pp_ctl.c pp_hot.c run.c sv.c x2p/a2py.c private-msgid: 199703030915.KAA11634@bombur2.uio.no Subject: Update copyright dates From: Chip Salzenberg <chip@perl.com> Files: *.[hc] x2p/*.[hc] win32/EXTERN.h vms/vmsish.h vms/vms.c TESTS Subject: Smarter t/op/taint.t Date: Mon, 3 Mar 1997 10:31:54 -0800 (PST) From: Tom Phoenix <rootbeer@teleport.com> Files: t/op/taint.t private-msgid: Pine.GSO.3.95q.970303103047.24000A-100000@kelly.teleport.com Subject: Fix taint test for systems without csh From: Chip Salzenberg <chip@perl.com> Files: t/op/taint.t
* Make POSIX::is*() eight-bit-cleanChip Salzenberg1997-02-041-44/+44
|
* Update $VERSION of DynaLoader and POSIXChip Salzenberg1997-01-291-1/+1
|
* [inseparable changes from patch from perl5.003_22 to perl5.003_23]perl-5.003_23Perl 5 Porters1997-01-253-22/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUILD PROCESS Subject: Make configure.gnu a copy of configure; make configure writea From: Chip Salzenberg <chip@atlantic.net> Files: MANIFEST configure.gnu Subject: Regen Configure with metaconfig: +ARCHNAME, -FILE_filbuf From: Chip Salzenberg <chip@perl.com> Files: Configure config_H config_h.SH hints/lynxos.sh os2/diff.configure os2/os2ish.h plan9/config.plan9 sv.c utils/perlbug.PL vms/config.vms vms/fndvers.com Subject: Compile with optimization when testing memory functions From: Chip Salzenberg <chip@atlantic.net> Files: Configure CORE LANGUAGE CHANGES Subject: Disallow changing $_[0] in __DIE__ handlers From: Chip Salzenberg <chip@atlantic.net> Files: pod/perlfunc.pod util.c Subject: Fix overloading with inheritance and AUTOLOAD Date: Mon, 20 Jan 1997 17:26:32 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: gv.c lib/diagnostics.pm lib/overload.pm pod/perldebug.pod pod/perldiag.pod pod/perlfunc.pod pod/perlop.pod pod/perlre.pod pod/perltoc.pod pod/perlxs.pod Msg-ID: <199701202226.RAA05072@monk.mps.ohio-state.edu> (applied based on p5p patch as commit e7ea3e70155d0bea30720ba41eb6bb6742aac0d1) Subject: Nested here-docs Date: Mon, 20 Jan 1997 15:13:42 -0800 From: Larry Wall <larry@wall.org> Files: toke.c Msg-ID: <199701202313.PAA11693@wall.org> (applied based on p5p patch as commit fd2d0953290ddd46f0820dbd6c87245486b7ab28) Subject: Revert $^X to old behavior (plus HP-UX bug fix) From: Chip Salzenberg <chip@atlantic.net> Files: hints/hpux.sh toke.c Subject: Protect against '0' in 'stmt while <HANDLE>' From: Chip Salzenberg <chip@atlantic.net> Files: op.c Subject: Don't warn when closure uses var at file scope From: Chip Salzenberg <chip@atlantic.net> Files: op.c CORE PORTABILITY Subject: VMS patches for _22 Date: Mon, 20 Jan 1997 22:50:21 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: ext/POSIX/POSIX.xs lib/ExtUtils/MM_VMS.pm lib/ExtUtils/xsubpp lib/Test/Harness.pm toke.c vms/Makefile vms/descrip.mms vms/genconfig.pl vms/perly_c.vms vms/vmsish.h x2p/a2p.h vms/Makefile vms/config.vms vms/descrip.mms vms/perly_c.vms private-msgid: <01IEGBJ2TMYS003PCL@hmivax.humgen.upenn.edu> Subject: Plan9 update From: Luther Huffman <lutherh@stratcom.com> Files: plan9/config.plan9 plan9/mkfile Subject: hints & Configure changes to build perl on DC/OSx Date: Thu, 16 Jan 1997 16:43:52 -0800 From: Stephen Zander <stephen.zander@interlock.mckesson.com> Files: Configure MANIFEST hints/dcosx.sh Msg-ID: <199701170043.QAA25985@wsbip1.mckesson.com> (applied based on p5p patch as commit 23f8769697279d7912be5943de9fdf93f6aa3013) DOCUMENTATION Subject: Additional docs for __DIE__ and __WARN__ From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: pod/perlfunc.pod pod/perlrun.pod pod/perlvar.pod Subject: Document #line directive Date: Fri, 24 Jan 1997 04:08:44 -0500 From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: pod/perlsyn.pod pod/perltoc.pod private-msgid: <199701240908.EAA23846@aatma.engin.umich.edu> Subject: delta for perldelta Date: Fri, 24 Jan 1997 07:57:43 -0800 From: Tom Christiansen <tchrist@mox.perl.com> Files: pod/perlnews.pod pod/perltoc.pod private-msgid: <804.854121463@jinete> Subject: Updates to perldelta Date: Mon, 20 Jan 1997 06:48:49 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: pod/perlnews.pod pod/perltoc.pod private-msgid: <199701211610.LAA06227@monk.mps.ohio-state.edu> Subject: perlnews.pod diff for the Fcntl Date: Tue, 21 Jan 1997 18:00:56 +0200 (EET) From: Jarkko Hietaniemi <jhi@cc.hut.fi> Files: pod/perlnews.pod private-msgid: <199701211600.SAA30117@alpha.hut.fi> Subject: Rename perlnews -> perldelta per Tom's request From: Chip Salzenberg <chip@atlantic.net> Files: MANIFEST pod/Makefile pod/buildtoc pod/perl.pod pod/perldelta.pod pod/perltoc.pod pod/roffitall LIBRARY AND EXTENSIONS Subject: Refresh IO to 1.15 (plus DESTROY and new_tmpfile fixes) From: Chip Salzenberg <chip@atlantic.net> Files: ext/IO/lib/IO/File.pm ext/IO/lib/IO/Handle.pm ext/IO/lib/IO/Pipe.pm ext/IO/lib/IO/Seekable.pm ext/IO/lib/IO/Socket.pm t/lib/io_pipe.t Subject: Allow IO.xs to remain at 1.15 while $VERSION is 1.1501 From: Chip Salzenberg <chip@atlantic.net> Files: XSUB.h ext/IO/Makefile.PL ext/IO/lib/IO/Handle.pm Subject: Add E* and SA_* constants Date: Wed, 22 Jan 1997 21:36:07 -0500 From: Roderick Schertler <roderick@gate.net> Files: ext/POSIX/POSIX.pm ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs private-msgid: <23338.853986967@eeyore.ibcinc.com> OTHER CORE CHANGES Subject: Make PERL5LIB and -I work like C<use lib> Date: Thu, 23 Jan 1997 15:23:27 +0000 From: Tim Bunce <Tim.Bunce@ig.co.uk> Files: lib/lib.pm perl.c private-msgid: <9701231523.AA26613@toad.ig.co.uk> Subject: Fix /\G.a/ From: Chip Salzenberg <chip@atlantic.net> Files: regcomp.c regcomp.h regexec.c regexp.h toke.c Subject: Extend stack in pp_undef (!) From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: Allow for sub to be redefined while executing From: Chip Salzenberg <chip@atlantic.net> Files: cop.h pp_hot.c t/op/misc.t Subject: Eliminate redundant flag CVf_FORMAT From: Chip Salzenberg <chip@atlantic.net> Files: cv.h op.c perl.c perly.c perly.y proto.h sv.c toke.c Subject: Generate IVs when possible in abs() and int() From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: Efficiency patchlet for pp_aassign() Date: Mon, 20 Jan 1997 22:05:39 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: pp_hot.c Msg-ID: <199701210305.WAA05451@monk.mps.ohio-state.edu> (applied based on p5p patch as commit 7e42bd57a6867e174bc3bc555c3268b485940a98) Subject: Remove "suidperl security patch" message From: Chip Salzenberg <chip@atlantic.net> Files: perl.c TESTS Subject: Fix tests of $^X and $0 to work with QNX From: Chip Salzenberg <chip@atlantic.net> Files: t/lib/io_pipe.t t/lib/open2.t t/lib/open3.t t/op/magic.t Subject: Patch tests for systems without fork() Date: Thu, 23 Jan 1997 23:51:28 +0100 From: "Norbert Pueschel" <pueschel@imsdd.meb.uni-bonn.de> Files: t/io/pipe.t t/lib/filehand.t t/lib/io_pipe.t t/lib/io_sock.t t/lib/open2.t t/lib/open3.t t/op/fork.t private-msgid: <77724697@Armageddon.meb.uni-bonn.de> Subject: Test patches for OS/2 Date: Thu, 16 Jan 1997 23:48:18 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: os2/OS2/ExtAttr/t/os2_ea.t os2/OS2/PrfDB/t/os2_prfdb.t os2/OS2/REXX/t/rx_cmprt.t os2/OS2/REXX/t/rx_dllld.t os2/OS2/REXX/t/rx_objcall.t os2/OS2/REXX/t/rx_sql.test os2/OS2/REXX/t/rx_tiesql.test os2/OS2/REXX/t/rx_tievar.t os2/OS2/REXX/t/rx_tieydb.t os2/OS2/REXX/t/rx_varset.t os2/OS2/REXX/t/rx_vrexx.t t/README t/cmd/while.t t/comp/colon.t t/comp/multiline.t t/io/argv.t t/lib/anydbm.t t/lib/gdbm.t t/lib/ndbm.t t/lib/odbm.t t/lib/sdbm.t t/op/cmp.t t/op/magic.t Msg-ID: <199701170448.XAA28948@monk.mps.ohio-state.edu> (applied based on p5p patch as commit bbad36071d5a6d4be3588f0f10c88247439076d8) UTILITIES Subject: Translate \200 to &#200; in pod2html From: Chip Salzenberg <chip@atlantic.net> Files: pod/pod2html.PL Subject: VMS patches: '.com' extension on scripts Date: Fri, 24 Jan 1997 18:42:29 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: pod/checkpods.PL pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL utils/c2ph.PL utils/h2ph.PL utils/h2xs.PL utils/perlbug.PL utils/perldoc.PL utils/pl2pm.PL utils/splain.PL vms/Makefile vms/descrip.mms x2p/find2perl.PL x2p/s2p.PL private-msgid: <01IELNPDLYJM003E7J@hmivax.humgen.upenn.edu>
* Avoid "uninitialized" warnings from POSIX::constant()Chip Salzenberg1997-01-161-1/+1
|
* [inseparable changes from patch from perl5.003_19 to perl5.003_20]Perl 5 Porters1997-01-082-35/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUILD PROCESS Subject: Make Configure default to the first domain in /etc/resolv.conf From: Chip Salzenberg <chip@atlantic.net> Files: Configure Subject: Start all helper scripts with $startsh From: Chip Salzenberg <chip@atlantic.net> Files: Configure Subject: Support libperl.so under FreeBSD Date: Sun, 5 Jan 1997 22:41:49 +0100 From: Ollivier Robert <roberto@keltia.freenix.fr> Files: Configure Makefile.SH Msg-ID: <Mutt.19970105224149.roberto@keltia.freenix.fr> (applied based on p5p patch as commit b126116e5ae3d57fa007f8a42fd506805b35163b) CORE LANGUAGE CHANGES Subject: Rescind named closures From: Chip Salzenberg <chip@atlantic.net> Files: Makefile.SH op.c perly.c perly.c.diff perly.y pp_hot.c Subject: Fix: empty @_ when calling empty-proto subs without parens Date: Sat, 04 Jan 1997 10:29:04 +0000 From: Graham Barr <bodg@tiuk.ti.com> Files: perly.c perly.y (applied based on p5p patch as commit 3112f5de73952f91aa4e8005d9852dfddbcf0402) CORE PORTABILITY Subject: Configure/perl5/Compartmented Mode Workstation (fwd) Date: Mon, 06 Jan 1997 13:15:38 -0500 (EST) From: Andy Dougherty <doughera@fractal.phys.lafayette.edu> Files: Configure hints/dec_osf.sh private-msgid: <Pine.SOL.3.95.970106131505.1662C-100000@fractal.lafayette.ed Subject: Remove obsolete file "dl_os2.xs". From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: MANIFEST DOCUMENTATION Subject: tiny doc patches Date: Sat, 04 Jan 1997 11:12:13 -0500 From: Roderick Schertler <roderick@gate.net> Files: pod/perlapio.pod pod/perlnews.pod pod/perltoc.pod Msg-ID: <23338.852394333@eeyore.ibcinc.com> (applied based on p5p patch as commit b681178584626ba3718f1279845fd452317134c1) Subject: doc patch for defined on perlfunc.pod Date: 04 Jan 1997 21:28:30 -0500 From: Roderick Schertler <roderick@gate.net> Files: pod/perlfunc.pod Msg-ID: <pz91686ek1.fsf@eeyore.ibcinc.com> (applied based on p5p patch as commit 38e3adfd2e3d40b46e465482945c4f3de4bb50ef) Subject: doc patch: perldsc Date: 04 Jan 1997 21:25:58 -0500 From: Roderick Schertler <roderick@gate.net> Files: pod/perldsc.pod pod/perltoc.pod Msg-ID: <pzafqo6eo9.fsf@eeyore.ibcinc.com> (applied based on p5p patch as commit 4d42f92e5bf79556508016b7af91233b12e526eb) Subject: scalar caller doc fix Date: Mon, 06 Jan 1997 22:34:20 -0500 From: Roderick Schertler <roderick@gate.net> Files: pod/perlfunc.pod Msg-ID: <18245.852608060@eeyore.ibcinc.com> (applied based on p5p patch as commit 218104faecb0ec19e0f4f89e084959e757a5230f) Subject: Misc perlfunc updates From: Tom Christiansen <tchrist@mox.perl.com> Files: pod/perlfunc.pod pod/perltoc.pod LIBRARY AND EXTENSIONS Subject: sigaction() problems Date: Mon, 06 Jan 1997 15:42:04 -0500 From: Roderick Schertler <roderick@gate.net> Files: ext/POSIX/POSIX.pm ext/POSIX/POSIX.pod Msg-ID: <12808.852583324@eeyore.ibcinc.com> (applied based on p5p patch as commit 84e96f2bcc509ba2fb5d2c9608a30cc3cfdea41a) Subject: Fix importation of FileHandle methods; fix POSIX docs From: Chip Salzenberg <chip@atlantic.net> Files: ext/POSIX/POSIX.pm ext/POSIX/POSIX.pod lib/FileHandle.pm Subject: Patch: make hints files warn about db-recno failures Date: Sun, 5 Jan 1997 12:34:25 +0100 From: Dominic Dunlop <domo@slipper.ip.lu> Files: MANIFEST hints/aux.sh hints/broken-db.msg hints/freebsd.sh (applied based on p5p patch as commit 692df45da95e2b7d14c4560347ef4555bb40b621) OTHER CORE CHANGES Subject: Fix C< sub foo (&@); sub bar (&); foo {}, bar {}, bar {} > From: Chip Salzenberg <chip@atlantic.net> Files: perly.c perly.c.diff perly.y Subject: plug for safe/opcode leaks Date: Tue, 07 Jan 1997 17:20:46 -0500 From: Doug MacEachern <dougm@osf.org> Files: op.c Msg-ID: <199701072220.RAA02117@postman.osf.org> (applied based on p5p patch as commit 5cbfc2849d37f748a8facbcbf1c889c575943488) Subject: Fix Dynaloader failures with DProf Date: Mon, 06 Jan 1997 12:18:46 -0500 From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: pp_hot.c private-msgid: <199701061718.MAA26909@aatma.engin.umich.edu> TESTS Subject: New test: comp/proto.t Date: Mon, 06 Jan 1997 09:13:03 +0000 From: Graham Barr <bodg@tiuk.ti.com> Files: MANIFEST t/comp/proto.t (applied based on p5p patch as commit 8c1635e65dc1b3900503d444e985e3f0e5601454)
* [inseparable changes from patch from perl5.003_13 to perl5.003_14]Perl 5 Porters1996-12-232-35/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CORE LANGUAGE CHANGES Subject: Eliminate support for {if,unless,while,until} BLOCK BLOCK From: Chip Salzenberg <chip@atlantic.net> Files: perly.c perly.c.diff perly.y toke.c Subject: Taint $x after $x =~ s/pat/xyz/ if pat or xyz is tainted by locale From: Chip Salzenberg <chip@atlantic.net> Files: cop.h mg.c pp_ctl.c pp_hot.c Subject: Complete support for modifying undefined array members in foreach From: Chip Salzenberg <chip@atlantic.net> Files: global.sym mg.c perl.h pp.c pp_hot.c proto.h sv.c DOCUMENTATION Subject: Update pod/Makefile; s/perli18n/perllocale/ From: Chip Salzenberg <chip@atlantic.net> Files: ext/POSIX/POSIX.pod lib/I18N/Collate.pm pod/Makefile pod/perl.pod pod/perlmod.pod pod/perlnews.pod pod/roffitall OTHER CORE CHANGES Subject: Bug in debugger with import manipulations Date: Mon, 23 Dec 1996 05:37:48 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: pp_hot.c Finally I traced why MakeMaker runs wrongly under debugger: debugger function calling sequence was assuming that GvCV(CvGV(cv)) == cv for non-anonymous subs (ne END). MakeMaker managed to break it by *A::B = \&C::D; eval 'sub C::D {new one}'; After this CvGV(\&A::B) is *C::D, but &{*C::D} is the "new one". Patch follows (note that in this case we do not sacrifice having a subroutine name in debugger output ;-). Enjoy, p5p-msgid: <199612231037.FAA08617@monk.mps.ohio-state.edu> Subject: Import and dynamic methods Date: Mon, 23 Dec 1996 01:45:37 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: gv.c hv.c sv.c Here is the patch which corrects bad things which happens when you import subroutines and otherwise manipulate the symbol tree. I put forward the only chunk which may be controversal, since it may have a minor performance penalty. It is independent of the others, so it can be freely deleted. The manipulations which correctly propagate to method calls: a) Pruning globs: delete $B::{method} b) Undefing subroutines: undef &B::method; c) Importing: *B::method = \&mymethod; Enjoy, p5p-msgid: <199612230645.BAA08378@monk.mps.ohio-state.edu> Subject: sv_gets patch Date: Sun, 22 Dec 1996 03:24:04 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: pp_hot.c I sent this patch before as a part of pos $str = $str = /failing/g patch. Now I separate it in the case it was tainted by environment: Synopsis: $a = <FH>; does not work as expected if $a is magic (say, tied). Enjoy, p5p-msgid: <199612220824.DAA07235@monk.mps.ohio-state.edu> Subject: pos $str patch Date: Sun, 22 Dec 1996 03:31:21 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: mg.c pp_hot.c t/op/pat.t This patch was (mostly) posted already. It fixes the bug: pos $str is reset to undef if $str =~ /failing/g fails. Additionally, if fixes the hidded bit (=MGf_MINMATCH) surviving setting pos $str = ... Enjoy, p5p-msgid: <199612220831.DAA07247@monk.mps.ohio-state.edu> PORTABILITY Subject: Fix bugs in bincompat3 usage From: Chip Salzenberg <chip@atlantic.net> Files: perl.h perl_exp.SH Subject: VMS patches to 5.003_13 Date: Mon, 23 Dec 1996 01:26:47 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: deb.c ext/POSIX/POSIX.xs gv.c lib/File/Copy.pm mg.c perl.c perl.h proto.h sv.c t/lib/filecopy.t taint.c toke.c util.c vms/Makefile vms/config.vms vms/descrip.mms vms/gen_shrfls.pl vms/genconfig.pl vms/genopt.com vms/perly_c.vms vms/perly_h.vms vms/test.com vms/vms.c vms/vms_yfix.pl private-msgid: <01IDBYYFYPIS002ASE@hmivax.humgen.upenn.edu> UTILITIES, LIBRARY, AND EXTENSIONS Subject: Remove libnet From: Chip Salzenberg <chip@atlantic.net> Files: MANIFEST pod/perlmod.pod Subject: Update IO->VERSION() to 1.1201 for CPAN's sake From: Chip Salzenberg <chip@atlantic.net> Files: ext/IO/lib/IO/Handle.pm lib/IO/Handle.pm Subject: Remodel File::Copy. From: Chip Salzenberg <chip@atlantic.net> Files: lib/File/Copy.pm
* [inseparable changes from patch from perl5.003_11 to perl5.003_12]Perl 5 Porters1996-12-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CORE LANGUAGE CHANGES Subject: Support C<delete @hash{@keys}> From: Chip Salzenberg <chip@atlantic.net> Files: op.c op.h opcode.pl pod/perldiag.pod pod/perlfunc.pod pp.c t/op/delete.t Subject: Autovivify scalars From: Chip Salzenberg <chip@atlantic.net> Files: dump.c op.c op.h pp.c pp_hot.c DOCUMENTATION Subject: Update pods: perldelta -> perlnews, perli18n -> perllocale From: Tom Christiansen <tchrist@perl.com> Files: MANIFEST pod/perl.pod pod/perldelta.pod pod/perli18n.pod pod/perlnews.pod Subject: perltoot.pod Date: Mon, 09 Dec 1996 07:44:10 -0700 From: Tom Christiansen <tchrist@mox.perl.com> Files: MANIFEST pod/perltoot.pod Msg-ID: <199612091444.HAA09947@toy.perl.com> (applied based on p5p patch as commit 32e22efaa9ec59b73a208b6c532a0b435e2c6462) Subject: Perlguts, version 25 Date: Fri, 6 Dec 96 11:40:27 PST From: Jeff Okamoto <okamoto@hpcc123.corp.hp.com> Files: pod/perlguts.pod private-msgid: <199612061940.AA055461228@hpcc123.corp.hp.com> Subject: pod patches for English errors Date: Mon, 09 Dec 1996 13:33:11 -0800 From: Steve Kelem <steve.kelem@xilinx.com> Files: pod/*.pod Msg-ID: <24616.850167191@castor> (applied based on p5p patch as commit 0135f10892ed8a21c4dbd1fca21fbcc365df99dd) Subject: Misc doc updates Date: Sat, 14 Dec 1996 18:56:33 -0700 From: Tom Christiansen <tchrist@mox.perl.com> Files: pod/* Subject: Re: perldelta.pod Here are some diffs to the _11 pods. I forgot to add perldelta to perl.pod though. And *PLEASE* fix the Artistic License so it no longer has the bogus "whomever" misdeclined in the nominative case: under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this It should obviously be "whoever". p5p-msgid: <199612150156.SAA12506@mox.perl.com> OTHER CORE CHANGES Subject: Allow assignment to empty array values during foreach() From: Chip Salzenberg <chip@atlantic.net> Files: cop.h global.sym mg.c op.c perl.h pp_hot.c proto.h sv.c Subject: Fix nested closures From: Chip Salzenberg <chip@atlantic.net> Files: op.c opcode.pl pp.c pp_ctl.c pp_hot.c Subject: Fix core dump on auto-vivification From: Chip Salzenberg <chip@atlantic.net> Files: pp_hot.c Subject: Fix core dump on C<open $undef_var, "X"> From: Chip Salzenberg <chip@atlantic.net> Files: pp_sys.c Subject: Fix -T/-B on globs and globrefs From: Chip Salzenberg <chip@atlantic.net> Files: pp_sys.c Subject: Fix memory management of $`, $&, and $' From: Chip Salzenberg <chip@atlantic.net> Files: pp_hot.c regexec.c Subject: Fix paren matching during backtracking From: Chip Salzenberg <chip@atlantic.net> Files: regexec.c Subject: Fix memory leak and std{in,out,err} death in perl_{con,de}str From: Chip Salzenberg <chip@atlantic.net> Files: miniperlmain.c perl.c perl.h sv.c Subject: Discard garbage bytes at end of prototype() From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: Fix local($pack::{foo}) From: Chip Salzenberg <chip@atlantic.net> Files: global.sym pp.c pp_hot.c proto.h scope.c Subject: Disable warn, die, and parse hooks _before_ global destruction From: Chip Salzenberg <chip@atlantic.net> Files: perl.c Subject: Re: Bug in formline Date: Sun, 08 Dec 1996 14:58:32 -0500 From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: pp_ctl.c Msg-ID: <199612081958.OAA26025@aatma.engin.umich.edu> (applied based on p5p patch as commit b386bda18108ba86d0b76ebe2d8745eafa80f39e) Subject: Fix C<@a = ($a,$b,$c,$d) = (1,2)> From: Chip Salzenberg <chip@atlantic.net> Files: pp_hot.c Subject: Properly support and document newRV{,_inc,_noinc} From: Chip Salzenberg <chip@atlantic.net> Files: global.sym pod/perlguts.pod sv.c sv.h Subject: Allow lvalue pos inside recursive function From: Chip Salzenberg <chip@atlantic.net> Files: op.c pp.c pp_ctl.c pp_hot.c PORTABILITY Subject: Make $privlib contents compatible with 5.003 From: Chip Salzenberg <chip@atlantic.net> Files: INSTALL ext/Opcode/Safe.pm installperl lib/FileHandle.pm lib/Test/Harness.pm Subject: Support $bincompat3 config variable; update metaconfig units From: Chip Salzenberg <chip@atlantic.net> Files: Configure MANIFEST compat3.sym config_h.SH embed.pl global.sym old_embed.pl old_global.sym old_perl_exp.SH perl_exp.SH Subject: Look for gettimeofday() in Configure Date: Wed, 11 Dec 1996 15:49:57 +0100 From: John Hughes <john@AtlanTech.COM> Files: Configure config_H config_h.SH pp.c Subject: perl5.003_11, Should base use of gettimeofday on HAS_GETTIMEOFDAY, not I_SYS_TIME I've been installing perl5.003_11 on a SCO system that has the TCP/IP runtime installed but not the TCP/IP development system. Unfortunately the <sys/time.h> include file is included in the TCP/IP runtime while libsocket.a is in the development system. This means that pp.c decides to use "gettimeofday" because <sys/time.h> is present but I can't link the perl that gets compiled. So, here's a patch to base the use of "gettimeofday" on "HAS_GETTIMEOFDAY" instead of "I_SYS_TIME". I also took the liberty of removing the special case for plan9 (I assume plan9 has <sys/time.h> but no gettimeofday. Am I right?). p5p-msgid: <01BBE77A.F6F37F80@malvinas.AtlanTech.COM> Subject: Make $startperl a relative path if people want portable scrip From: Chip Salzenberg <chip@atlantic.net> Files: Configure Subject: Homogenize use of "eval exec" hack From: Chip Salzenberg <chip@atlantic.net> Files: Porting/Glossary eg/README eg/nih eg/sysvipc/ipcmsg eg/sysvipc/ipcsem eg/sysvipc/ipcshm lib/diagnostics.pm makeaperl.SH pod/checkpods.PL pod/perlrun.pod pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL utils/c2ph.PL utils/h2ph.PL utils/h2xs.PL utils/perlbug.PL utils/perldoc.PL utils/pl2pm.PL x2p/a2py.c x2p/find2perl.PL x2p/s2p.PL Subject: LynxOS support Date: Thu, 12 Dec 1996 09:25:00 PST From: Greg Seibert <seibert@Lynx.COM> Files: Configure MANIFEST hints/lynxos.sh t/op/stat.t Msg-ID: <m0vYEsY-0000IZC@kzinti.lynx.com> (applied based on p5p patch as commit 6693373533b15e559fd8f0f1877e5e6ec15483cc) Subject: Re: db-recno.t failures with _11 on Freebsd 2.1-stable Date: 11 Dec 1996 18:58:56 -0500 From: Roderick Schertler <roderick@gate.net> Files: INSTALL hints/freebsd.sh Msg-ID: <pzohg0r5tr.fsf@eeyore.ibcinc.com> (applied based on p5p patch as commit 10e40321ee752c58e3407b204c74c8049894cb51) Subject: VMS patches to 5.003_11 Date: Mon, 09 Dec 1996 23:16:10 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: MANIFEST regexec.c t/lib/filehand.t util.c vms/* private-msgid: <01ICTR32LCZG001A1D@hmivax.humgen.upenn.edu> TESTING Subject: recurse recurse recurse ... Date: Mon, 9 Dec 1996 23:44:27 +0200 (EET) From: Jarkko Hietaniemi <jhi@cc.hut.fi> Files: MANIFEST t/op/recurse.t private-msgid: <199612092144.XAA29025@alpha.hut.fi> UTILITIES, LIBRARY, AND EXTENSIONS Subject: Add CPAN and Net::FTP From: Chip Salzenberg <chip@atlantic.net> Files: MANIFEST lib/CPAN.pm lib/CPAN/FirstTime.pm lib/CPAN/Nox.pm lib/Net/FTP.pm lib/Net/Netrc.pm lib/Net/Socket.pm pod/perlmod.pod Subject: Add File::Compare Date: Mon, 16 Dec 1996 18:44:59 GMT From: Nick Ing-Simmons <nik@tiuk.ti.com> Files: MANIFEST lib/File/Compare.pm pod/perlmod.pod Msg-ID: <199612161844.SAA02152@pluto> (applied based on p5p patch as commit ec971c5c328aca84fb827f69f2cc1dc3be81f830) Subject: Add Tie::RefHash Date: Sun, 15 Dec 1996 18:58:08 -0500 From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: MANIFEST lib/Tie/RefHash.pm pod/perlmod.pod Msg-ID: <199612152358.SAA28665@aatma.engin.umich.edu> (applied based on p5p patch as commit 9a079709134ebbf4c935cc8752fdb564e5c82b94) Subject: Put "splain" in utils. From: Chip Salzenberg <chip@atlantic.net> Files: Makefile.SH installperl utils/Makefile utils/splain.PL Subject: Some h2ph fixes Date: Fri, 13 Dec 1996 11:34:12 -0800 From: Jeff Okamoto <okamoto@hpcc123.corp.hp.com> Files: utils/h2ph.PL Here is a message regarding changes to h2ph that should probably be folded into the 5.004 release. p5p-msgid: <199612131934.AA289845652@hpcc123.corp.hp.com>
* [inseparable changes from patch from perl5.003_10 to perl5.003_11]Perl 5 Porters1996-12-061-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CORE LANGUAGE CHANGES Subject: Fix precedence problems with subs as uniops or listops From: Chip Salzenberg <chip@atlantic.net> Files: perly.c perly.c.diff perly.h perly.y Subject: Don't reset $. on open() From: Chip Salzenberg <chip@atlantic.net> Files: pp_sys.c Subject: Support *glob{IO} (eventually deprecate *glob{FILEHANDLE}) From: Chip Salzenberg <chip@atlantic.net> Files: pod/perlref.pod pp_hot.c sv.c Subject: Don't let expression context force return context From: Chip Salzenberg <chip@atlantic.net> Files: op.c Subject: Properly convert "1E2" et al to IV/UV From: Chip Salzenberg <chip@atlantic.net> Files: doio.c sv.c Subject: Fix modulo operator in UV realm From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: Fix stat(_) after stat(HANDLE) From: Chip Salzenberg <chip@atlantic.net> Files: pp_sys.c Subject: Fix: s/// and "$x =~ $y" under 'use locale' From: Chip Salzenberg <chip@atlantic.net> Files: op.c toke.c LIBRARY AND EXTENSIONS Subject: {in,ob}structive pods Date: Sat, 30 Nov 1996 09:52:57 -0700 From: Tom Christiansen <tchrist@mox.perl.com> Files: MANIFEST lib/Class/Template.pm lib/File/stat.pm lib/Net/hostent.pm lib/Net/netent.pm lib/Net/protoent.pm lib/Net/servent.pm lib/Time/gmtime.pm lib/Time/localtime.pm lib/Time/tm.pm lib/User/grent.pm lib/User/pwent.pm These "should" be ready for inclusion in 5.004, although I'd like to update Class::Template's doc for legibility. Dean, may we please have your permission to include this in the distribution? (I did look a bit into using Class::MethodMaker, but it seemed a bit complicated.) I know: these all look remarkably similar on the inside. I keep trying to find a way to abstract out some of it. Hopefully, they're reasonably legible at least in code, if not in docs. :-) Chip/Tim, please check the stat function for proper use of Symbol. thanks, --tom #!/bin/sh # This is a shell archive (produced by GNU sharutils 4.2). # To extract the files from this archive, save it to some FILE, remove # everything before the `!/bin/sh' line above, then type `sh FILE'. # # Made on 1996-11-30 09:52 MST by <tchrist@toy.perl.com>. # Source directory was `/home/tchrist/hack'. # # Existing files will *not* be overwritten unless `-c' is specified. # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 5024 -rw-r--r-- obstructs/Class/Template.pm # 2782 -rw-r--r-- obstructs/File/stat.pm # 3961 -rw-r--r-- obstructs/Net/hostent.pm # 4435 -rw-r--r-- obstructs/Net/netent.pm # 2973 -rw-r--r-- obstructs/Net/protoent.pm # 3424 -rw-r--r-- obstructs/Net/servent.pm # 2476 -rw-r--r-- obstructs/Time/gmtime.pm # 2307 -rw-r--r-- obstructs/Time/localtime.pm # 622 -rw-r--r-- obstructs/Time/tm.pm # 2848 -rw-r--r-- obstructs/User/grent.pm # 2899 -rw-r--r-- obstructs/User/pwent.pm # save_IFS="${IFS}" IFS="${IFS}:" gettext_dir=FAILED locale_dir=FAILED first_param="$1" for dir in $PATH do if test "$gettext_dir" = FAILED && test -f $dir/gettext \ && ($dir/gettext --version >/dev/null 2>&1) then set `$dir/gettext --version 2>&1` if test "$3" = GNU then gettext_dir=$dir fi fi if test "$locale_dir" = FAILED && test -f $dir/shar \ && ($dir/shar --print-text-domain-dir >/dev/null 2>&1) then locale_dir=`$dir/shar --print-text-domain-dir` fi done IFS="$save_IFS" if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED then echo=echo else TEXTDOMAINDIR=$locale_dir export TEXTDOMAINDIR TEXTDOMAIN=sharutils export TEXTDOMAIN echo="$gettext_dir/gettext -s" fi touch -am 1231235999 $$.touch >/dev/null 2>&1 if test ! -f 1231235999 && test -f $$.touch; then shar_touch=touch else shar_touch=: echo $echo 'WARNING: not restoring timestamps. Consider getting and' $echo "installing GNU \`touch', distributed in GNU File Utilities..." echo fi rm -f 1231235999 $$.touch # if mkdir _sh24166; then $echo 'x -' 'creating lock directory' else $echo 'failed to create lock directory' exit 1 fi # ============= obstructs/Class/Template.pm ============== if test ! -d 'obstructs'; then $echo 'x -' 'creating directory' 'obstructs' mkdir 'obstructs' fi if test ! -d 'obstructs/Class'; then $echo 'x -' 'creating directory' 'obstructs/Class' mkdir 'obstructs/Class' fi if test -f 'obstructs/Class/Template.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Class/Template.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Class/Template.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Class/Template.pm' && package Class::Template; require 5.000; require Exporter; X @ISA = qw(Exporter); @EXPORT = qw(members struct); use strict; X # Template.pm --- struct/member template builder # 12mar95 # Dean Roehrich # # changes/bugs fixed since 28nov94 version: # - podified # changes/bugs fixed since 21nov94 version: # - Fixed examples. # changes/bugs fixed since 02sep94 version: # - Moved to Class::Template. # changes/bugs fixed since 20feb94 version: # - Updated to be a more proper module. # - Added "use strict". # - Bug in build_methods, was using @var when @$var needed. # - Now using my() rather than local(). # # Uses perl5 classes to create nested data types. # This is offered as one implementation of Tom Christiansen's "structs.pl" # idea. X =head1 NAME X Class::Template - struct/member template builder X =head1 EXAMPLES X =item * Example 1 X X use Class::Template; X X struct( rusage => { X ru_utime => timeval, X ru_stime => timeval, X }); X X struct( timeval => [ X tv_secs => '$', X tv_usecs => '$', X ]); X X my $s = new rusage; X =item * Example 2 X X package OBJ; X use Class::Template; X X members OBJ { X 'a' => '$', X 'b' => '$', X }; X X members OBJ2 { X 'd' => '@', X 'c' => '$', X }; X X package OBJ2; @ISA = (OBJ); X X sub new { X my $r = InitMembers( &OBJ::InitMembers() ); X bless $r; X } X =head1 NOTES X Use '%' if the member should point to an anonymous hash. Use '@' if the member should point to an anonymous array. X When using % and @ the method requires one argument for the key or index into the hash or array. X Prefix the %, @, or $ with '*' to indicate you want to retrieve pointers to the values rather than the values themselves. X =cut X Var: { X $Class::Template::print = 0; X sub printem { $Class::Template::print++ } } X X sub struct { X my( $struct, $ref ) = @_; X my @methods = (); X my %refs = (); X my %arrays = (); X my %hashes = (); X my $out = ''; X X $out = "{\n package $struct;\n sub new {\n"; X parse_fields( $ref, \$out, \@methods, \%refs, \%arrays, \%hashes, 0 ); X $out .= " bless \$r;\n }\n"; X build_methods( $ref, \$out, \@methods, \%refs, \%arrays, \%hashes ); X $out .= "}\n1;\n"; X X ( $Class::Template::print ) ? print( $out ) : eval $out; } X sub members { X my( $pkg, $ref ) = @_; X my @methods = (); X my %refs = (); X my %arrays = (); X my %hashes = (); X my $out = ''; X X $out = "{\n package $pkg;\n sub InitMembers {\n"; X parse_fields( $ref, \$out, \@methods, \%refs, \%arrays, \%hashes, 1 ); X $out .= " bless \$r;\n }\n"; X build_methods( $ref, \$out, \@methods, \%refs, \%arrays, \%hashes ); X $out .= "}\n1;\n"; X X ( $Class::Template::print ) ? print( $out ) : eval $out; } X X sub parse_fields { X my( $ref, $out, $methods, $refs, $arrays, $hashes, $member ) = @_; X my $type = ref $ref; X my @keys; X my $val; X my $cnt = 0; X my $idx = 0; X my( $cmt, $n ); X X if( $type eq 'HASH' ){ X if( $member ){ X $$out .= " my(\$r) = \@_ ? shift : {};\n"; X } X else{ X $$out .= " my(\$r) = {};\n"; X } X @keys = keys %$ref; X foreach (@keys){ X $val = $ref->{$_}; X if( $val =~ /^\*(.)/ ){ X $refs->{$_}++; X $val = $1; X } X if( $val eq '@' ){ X $$out .= " \$r->{'$_'} = [];\n"; X $arrays->{$_}++; X } X elsif( $val eq '%' ){ X $$out .= " \$r->{'$_'} = {};\n"; X $hashes->{$_}++; X } X elsif( $val ne '$' ){ X $$out .= " \$r->{'$_'} = \&${val}::new();\n"; X } X else{ X $$out .= " \$r->{'$_'} = undef;\n"; X } X push( @$methods, $_ ); X } X } X elsif( $type eq 'ARRAY' ){ X if( $member ){ X $$out .= " my(\$r) = \@_ ? shift : [];\n"; X } X else{ X $$out .= " my(\$r) = [];\n"; X } X while( $idx < @$ref ){ X $n = $ref->[$idx]; X push( @$methods, $n ); X $val = $ref->[$idx+1]; X $cmt = "# $n"; X if( $val =~ /^\*(.)/ ){ X $refs->{$n}++; X $val = $1; X } X if( $val eq '@' ){ X $$out .= " \$r->[$cnt] = []; $cmt\n"; X $arrays->{$n}++; X } X elsif( $val eq '%' ){ X $$out .= " \$r->[$cnt] = {}; $cmt\n"; X $hashes->{$n}++; X } X elsif( $val ne '$' ){ X $$out .= " \$r->[$cnt] = \&${val}::new();\n"; X } X else{ X $$out .= " \$r->[$cnt] = undef; $cmt\n"; X } X ++$cnt; X $idx += 2; X } X } } X X sub build_methods { X my( $ref, $out, $methods, $refs, $arrays, $hashes ) = @_; X my $type = ref $ref; X my $elem = ''; X my $cnt = 0; X my( $pre, $pst, $cmt, $idx ); X X foreach (@$methods){ X $pre = $pst = $cmt = $idx = ''; X if( defined $refs->{$_} ){ X $pre = "\\("; X $pst = ")"; X $cmt = " # returns ref"; X } X $$out .= " sub $_ {$cmt\n my \$r = shift;\n"; X if( $type eq 'ARRAY' ){ X $elem = "[$cnt]"; X ++$cnt; X } X elsif( $type eq 'HASH' ){ X $elem = "{'$_'}"; X } X if( defined $arrays->{$_} ){ X $$out .= " my \$i;\n"; X $$out .= " \@_ ? (\$i = shift) : return \$r->$elem;\n"; X $idx = "->[\$i]"; X } X elsif( defined $hashes->{$_} ){ X $$out .= " my \$i;\n"; X $$out .= " \@_ ? (\$i = shift) : return \$r->$elem;\n"; X $idx = "->{\$i}"; X } X $$out .= " \@_ ? (\$r->$elem$idx = shift) : $pre\$r->$elem$idx$pst;\n"; X $$out .= " }\n"; X } } X 1; SHAR_EOF $shar_touch -am 1108060296 'obstructs/Class/Template.pm' && chmod 0644 'obstructs/Class/Template.pm' || $echo 'restore of' 'obstructs/Class/Template.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Class/Template.pm:' 'MD5 check failed' 4ccfb1ef6cb0ef795d19325556a78797 obstructs/Class/Template.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Class/Template.pm'`" test 5024 -eq "$shar_count" || $echo 'obstructs/Class/Template.pm:' 'original size' '5024,' 'current size' "$shar_count!" fi fi # ============= obstructs/File/stat.pm ============== if test ! -d 'obstructs/File'; then $echo 'x -' 'creating directory' 'obstructs/File' mkdir 'obstructs/File' fi if test -f 'obstructs/File/stat.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/File/stat.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/File/stat.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/File/stat.pm' && package File::stat; use strict; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter); X @EXPORT = qw(stat lstat); X @EXPORT_OK = qw( $st_dev $st_ino $st_mode X $st_nlink $st_uid $st_gid X $st_rdev $st_size X $st_atime $st_mtime $st_ctime X $st_blksize $st_blocks X ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X use Class::Template qw(struct); struct 'File::stat' => [ X map { $_ => '$' } qw{ X dev ino mode nlink uid gid rdev size X atime mtime ctime blksize blocks X } ]; X sub populate (@) { X return unless @_; X my $stob = new(); X @$stob = ( X $st_dev, $st_ino, $st_mode, $st_nlink, $st_uid, $st_gid, $st_rdev, X $st_size, $st_atime, $st_mtime, $st_ctime, $st_blksize, $st_blocks ) X = @_; X return $stob; } X sub lstat (*) { populate(CORE::lstat(shift)) } X sub stat ($) { X my $arg = shift; X my $st = populate(CORE::stat $arg); X return $st if $st; X no strict 'refs'; X require Symbol; X return populate(CORE::stat \*{Symbol::qualify($arg)}); } X 1; __END__ X =head1 NAME X File::stat.pm - by-name interface to Perl's built-in stat() functions X =head1 SYNOPSIS X X use File::stat; X $st = stat($file) or die "No $file: $!"; X if ( ($st->mode & 0111) && $st->nlink > 1) ) { X print "$file is executable with lotsa links\n"; X } X X use File::stat qw(:FIELDS); X stat($file) or die "No $file: $!"; X if ( ($st_mode & 0111) && $st_nlink > 1) ) { X print "$file is executable with lotsa links\n"; X } X =head1 DESCRIPTION X This module's default exports override the core stat() and lstat() functions, replacing them with versions that return "File::stat" objects. This object has methods that return the similarly named structure field name from the stat(2) function; namely, dev, ino, mode, nlink, uid, gid, rdev, size, atime, mtime, ctime, blksize, and blocks. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your stat() and lstat() functions.) Access these fields as variables named with a preceding C<st_> in front their method names. Thus, C<$stat_obj-E<gt>dev()> corresponds to $st_dev if you import the fields. X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1129130296 'obstructs/File/stat.pm' && chmod 0644 'obstructs/File/stat.pm' || $echo 'restore of' 'obstructs/File/stat.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/File/stat.pm:' 'MD5 check failed' 4d121fbb2e918b7f35c2b6fa2df6ffed obstructs/File/stat.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/File/stat.pm'`" test 2782 -eq "$shar_count" || $echo 'obstructs/File/stat.pm:' 'original size' '2782,' 'current size' "$shar_count!" fi fi # ============= obstructs/Net/hostent.pm ============== if test ! -d 'obstructs/Net'; then $echo 'x -' 'creating directory' 'obstructs/Net' mkdir 'obstructs/Net' fi if test -f 'obstructs/Net/hostent.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Net/hostent.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Net/hostent.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Net/hostent.pm' && package Net::hostent; use strict; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter); X @EXPORT = qw(gethostbyname gethostbyaddr gethost); X @EXPORT_OK = qw( X $h_name @h_aliases X $h_addrtype $h_length X @h_addr_list $h_addr X ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X use Class::Template qw(struct); struct 'Net::hostent' => [ X name => '$', X aliases => '@', X addrtype => '$', X 'length' => '$', X addr_list => '@', ]; X sub addr { shift->addr_list->[0] } X sub populate (@) { X return unless @_; X my $hob = new(); X $h_name = $hob->[0] = $_[0]; X @h_aliases = @{ $hob->[1] } = split ' ', $_[1]; X $h_addrtype = $hob->[2] = $_[2]; X $h_length = $hob->[3] = $_[3]; X $h_addr = $_[4]; X @h_addr_list = @{ $hob->[4] } = @_[ (4 .. $#_) ]; X return $hob; } X sub gethostbyname ($) { populate(CORE::gethostbyname(shift)) } X sub gethostbyaddr ($;$) { X my ($addr, $addrtype); X $addr = shift; X require Socket unless @_; X $addrtype = @_ ? shift : Socket::AF_INET(); X populate(CORE::gethostbyaddr($addr, $addrtype)) } X sub gethost($) { X if ($_[0] =~ /^\d+(?:\.\d+(?:\.\d+(?:\.\d+)?)?)?$/) { X require Socket; X &gethostbyaddr(Socket::inet_aton(shift)); X } else { X &gethostbyname; X } } X 1; __END__ X =head1 NAME X Net::hostent - by-name interface to Perl's built-in gethost*() functions X =head1 SYNOPSIS X X use Net::hostnet; X =head1 DESCRIPTION X This module's default exports override the core gethostbyname() and gethostbyaddr() functions, replacing them with versions that return "Net::hostent" objects. This object has methods that return the similarly named structure field name from the C's hostent structure from F<netdb.h>; namely name, aliases, addrtype, length, and addresses. The aliases and addresses methods return array reference, the rest scalars. The addr method is equivalent to the zeroth element in the addresses array reference. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<h_>. Thus, C<$host_obj-E<gt>name()> corresponds to $h_name if you import the fields. Array references are available as regular array variables, so for example C<@{ $host_obj-E<gt>aliases() }> would be simply @h_aliases. X The gethost() funtion is a simple front-end that forwards a numeric argument to gethostbyaddr() by way of Socket::inet_aton, and the rest to gethostbyname(). X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 EXAMPLES X X use Net::hostent; X use Socket; X X @ARGV = ('netscape.com') unless @ARGV; X X for $host ( @ARGV ) { X X unless ($h = gethost($host)) { X warn "$0: no such host: $host\n"; X next; X } X X printf "\n%s is %s%s\n", X $host, X lc($h->name) eq lc($host) ? "" : "*really* ", X $h->name; X X print "\taliases are ", join(", ", @{$h->aliases}), "\n" X if @{$h->aliases}; X X if ( @{$h->addr_list} > 1 ) { X my $i; X for $addr ( @{$h->addr_list} ) { X printf "\taddr #%d is [%s]\n", $i++, inet_ntoa($addr); X } X } else { X printf "\taddress is [%s]\n", inet_ntoa($h->addr); X } X X if ($h = gethostbyaddr($h->addr)) { X if (lc($h->name) ne lc($host)) { X printf "\tThat addr reverses to host %s!\n", $h->name; X $host = $h->name; X redo; X } X } X } X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1129133896 'obstructs/Net/hostent.pm' && chmod 0644 'obstructs/Net/hostent.pm' || $echo 'restore of' 'obstructs/Net/hostent.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Net/hostent.pm:' 'MD5 check failed' 27e11c684fe0e621da0109fa7ecef0d9 obstructs/Net/hostent.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Net/hostent.pm'`" test 3961 -eq "$shar_count" || $echo 'obstructs/Net/hostent.pm:' 'original size' '3961,' 'current size' "$shar_count!" fi fi # ============= obstructs/Net/netent.pm ============== if test -f 'obstructs/Net/netent.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Net/netent.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Net/netent.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Net/netent.pm' && package Net::netent; use strict; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter); X @EXPORT = qw(getnetbyname getnetbyaddr getnet); X @EXPORT_OK = qw( X $n_name @n_aliases X $n_addrtype $n_net X ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X use Class::Template qw(struct); struct 'Net::netent' => [ X name => '$', X aliases => '@', X addrtype => '$', X net => '$', ]; X sub populate (@) { X return unless @_; X my $nob = new(); X $n_name = $nob->[0] = $_[0]; X @n_aliases = @{ $nob->[1] } = split ' ', $_[1]; X $n_addrtype = $nob->[2] = $_[2]; X $n_net = $nob->[3] = $_[3]; X return $nob; } X sub getnetbyname ($) { populate(CORE::getnetbyname(shift)) } X sub getnetbyaddr ($;$) { X my ($net, $addrtype); X $net = shift; X require Socket if @_; X $addrtype = @_ ? shift : Socket::AF_INET(); X populate(CORE::getnetbyaddr($net, $addrtype)) } X sub getnet($) { X if ($_[0] =~ /^\d+(?:\.\d+(?:\.\d+(?:\.\d+)?)?)?$/) { X require Socket; X &getnetbyaddr(Socket::inet_aton(shift)); X } else { X &getnetbyname; X } } X 1; __END__ X =head1 NAME X Net::netent - by-name interface to Perl's built-in getnet*() functions X =head1 SYNOPSIS X X use Net::netent qw(:FIELDS); X getnetbyname("loopback") or die "bad net"; X printf "%s is %08X\n", $n_name, $n_net; X X use Net::netent; X X $n = getnetbyname("loopback") or die "bad net"; X { # there's gotta be a better way, eh? X @bytes = unpack("C4", pack("N", $n->net)); X shift @bytes while @bytes && $bytes[0] == 0; X } X printf "%s is %08X [%d.%d.%d.%d]\n", $n->name, $n->net, @bytes; X =head1 DESCRIPTION X This module's default exports override the core getnetbyname() and getnetbyaddr() functions, replacing them with versions that return "Net::netent" objects. This object has methods that return the similarly named structure field name from the C's netent structure from F<netdb.h>; namely name, aliases, addrtype, and net. The aliases method returns an array reference, the rest scalars. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<n_>. Thus, C<$net_obj-E<gt>name()> corresponds to $n_name if you import the fields. Array references are available as regular array variables, so for example C<@{ $net_obj-E<gt>aliases() }> would be simply @n_aliases. X The getnet() funtion is a simple front-end that forwards a numeric argument to getnetbyaddr(), and the rest to getnetbyname(). X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 EXAMPLES X The getnet() functions do this in the Perl core: X X sv_setiv(sv, (I32)nent->n_net); X The gethost() functions do this in the Perl core: X X sv_setpvn(sv, hent->h_addr, len); X That means that the address comes back in binary for the host functions, and as a regular perl integer for the net ones. This seems a bug, but here's how to deal with it: X X use strict; X use Socket; X use Net::netent; X X @ARGV = ('loopback') unless @ARGV; X X my($n, $net); X X for $net ( @ARGV ) { X X unless ($n = getnetbyname($net)) { X warn "$0: no such net: $net\n"; X next; X } X X printf "\n%s is %s%s\n", X $net, X lc($n->name) eq lc($net) ? "" : "*really* ", X $n->name; X X print "\taliases are ", join(", ", @{$n->aliases}), "\n" X if @{$n->aliases}; X X # this is stupid; first, why is this not in binary? X # second, why am i going through these convolutions X # to make it looks right X { X my @a = unpack("C4", pack("N", $n->net)); X shift @a while @a && $a[0] == 0; X printf "\taddr is %s [%d.%d.%d.%d]\n", $n->net, @a; X } X X if ($n = getnetbyaddr($n->net)) { X if (lc($n->name) ne lc($net)) { X printf "\tThat addr reverses to net %s!\n", $n->name; X $net = $n->name; X redo; X } X } X } X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1130091396 'obstructs/Net/netent.pm' && chmod 0644 'obstructs/Net/netent.pm' || $echo 'restore of' 'obstructs/Net/netent.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Net/netent.pm:' 'MD5 check failed' e75ca81b142c8df118f1cdddc285f71a obstructs/Net/netent.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Net/netent.pm'`" test 4435 -eq "$shar_count" || $echo 'obstructs/Net/netent.pm:' 'original size' '4435,' 'current size' "$shar_count!" fi fi # ============= obstructs/Net/protoent.pm ============== if test -f 'obstructs/Net/protoent.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Net/protoent.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Net/protoent.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Net/protoent.pm' && package Net::protoent; use strict; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter); X @EXPORT = qw(getprotobyname getprotobynumber getprotoent); X @EXPORT_OK = qw( $p_name @p_aliases $p_proto ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X use Class::Template qw(struct); struct 'Net::protoent' => [ X name => '$', X aliases => '@', X proto => '$', ]; X sub populate (@) { X return unless @_; X my $pob = new(); X $p_name = $pob->[0] = $_[0]; X @p_aliases = @{ $pob->[1] } = split ' ', $_[1]; X $p_proto = $pob->[2] = $_[2]; X return $pob; } X sub getprotoent ( ) { populate(CORE::getprotoent()) } sub getprotobyname ($) { populate(CORE::getprotobyname(shift)) } sub getprotobynumber ($) { populate(CORE::getprotobynumber(shift)) } X sub getproto ($;$) { X no strict 'refs'; X return &{'getprotoby' . ($_[0]=~/^\d+$/ ? 'number' : 'name')}(@_); } X 1; X __END__ X =head1 NAME X Net::protoent - by-name interface to Perl's built-in getproto*() functions X =head1 SYNOPSIS X X use Net::protoent; X $p = getprotobyname(shift || 'tcp') || die "no proto"; X printf "proto for %s is %d, aliases are %s\n", X $p->name, $p->proto, "@{$p->aliases}"; X X use Net::protoent qw(:FIELDS); X getprotobyname(shift || 'tcp') || die "no proto"; X print "proto for $p_name is $p_proto, aliases are @p_aliases\n"; X =head1 DESCRIPTION X This module's default exports override the core getprotoent(), getprotobyname(), and getnetbyport() functions, replacing them with versions that return "Net::protoent" objects. They take default second arguments of "tcp". This object has methods that return the similarly named structure field name from the C's protoent structure from F<netdb.h>; namely name, aliases, and proto. The aliases method returns an array reference, the rest scalars. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<p_>. Thus, C<$proto_obj-E<gt>name()> corresponds to $p_name if you import the fields. Array references are available as regular array variables, so for example C<@{ $proto_obj-E<gt>aliases() }> would be simply @p_aliases. X The getproto() function is a simple front-end that forwards a numeric argument to getprotobyport(), and the rest to getprotobyname(). X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1130095196 'obstructs/Net/protoent.pm' && chmod 0644 'obstructs/Net/protoent.pm' || $echo 'restore of' 'obstructs/Net/protoent.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Net/protoent.pm:' 'MD5 check failed' c8e24414a4b93b93dab2b257e15bdd38 obstructs/Net/protoent.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Net/protoent.pm'`" test 2973 -eq "$shar_count" || $echo 'obstructs/Net/protoent.pm:' 'original size' '2973,' 'current size' "$shar_count!" fi fi # ============= obstructs/Net/servent.pm ============== if test -f 'obstructs/Net/servent.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Net/servent.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Net/servent.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Net/servent.pm' && package Net::servent; use strict; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter); X @EXPORT = qw(getservbyname getservbyport getservent getserv); X @EXPORT_OK = qw( $s_name @s_aliases $s_port $s_proto ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X use Class::Template qw(struct); struct 'Net::servent' => [ X name => '$', X aliases => '@', X port => '$', X proto => '$', ]; X sub populate (@) { X return unless @_; X my $sob = new(); X $s_name = $sob->[0] = $_[0]; X @s_aliases = @{ $sob->[1] } = split ' ', $_[1]; X $s_port = $sob->[2] = $_[2]; X $s_proto = $sob->[3] = $_[3]; X return $sob; } X sub getservent ( ) { populate(CORE::getservent()) } sub getservbyname ($;$) { populate(CORE::getservbyname(shift,shift||'tcp')) } sub getservbyport ($;$) { populate(CORE::getservbyport(shift,shift||'tcp')) } X sub getserv ($;$) { X no strict 'refs'; X return &{'getservby' . ($_[0]=~/^\d+$/ ? 'port' : 'name')}(@_); } X 1; X __END__ X =head1 NAME X Net::servent - by-name interface to Perl's built-in getserv*() functions X =head1 SYNOPSIS X X use Net::servent; X $s = getservbyname(shift || 'ftp') || die "no service"; X printf "port for %s is %s, aliases are %s\n", X $s->name, $s->port, "@{$s->aliases}"; X X use Net::servent qw(:FIELDS); X getservbyname(shift || 'ftp') || die "no service"; X print "port for $s_name is $s_port, aliases are @s_aliases\n"; X =head1 DESCRIPTION X This module's default exports override the core getservent(), getservbyname(), and getnetbyport() functions, replacing them with versions that return "Net::servent" objects. They take default second arguments of "tcp". This object has methods that return the similarly named structure field name from the C's servent structure from F<netdb.h>; namely name, aliases, port, and proto. The aliases method returns an array reference, the rest scalars. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<n_>. Thus, C<$serv_obj-E<gt>name()> corresponds to $s_name if you import the fields. Array references are available as regular array variables, so for example C<@{ $serv_obj-E<gt>aliases() }> would be simply @s_aliases. X The getserv() function is a simple front-end that forwards a numeric argument to getservbyport(), and the rest to getservbyname(). X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 EXAMPLES X X use Net::servent qw(:FIELDS); X X while (@ARGV) { X my ($service, $proto) = ((split m!/!, shift), 'tcp'); X my $valet = getserv($service, $proto); X unless ($valet) { X warn "$0: No service: $service/$proto\n" X next; X } X printf "service $service/$proto is port %d\n", $valet->port; X print "alias are @s_aliases\n" if @s_aliases; X } X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1130094396 'obstructs/Net/servent.pm' && chmod 0644 'obstructs/Net/servent.pm' || $echo 'restore of' 'obstructs/Net/servent.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Net/servent.pm:' 'MD5 check failed' b09a8a3151b490a083236f84aae0e689 obstructs/Net/servent.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Net/servent.pm'`" test 3424 -eq "$shar_count" || $echo 'obstructs/Net/servent.pm:' 'original size' '3424,' 'current size' "$shar_count!" fi fi # ============= obstructs/Time/gmtime.pm ============== if test ! -d 'obstructs/Time'; then $echo 'x -' 'creating directory' 'obstructs/Time' mkdir 'obstructs/Time' fi if test -f 'obstructs/Time/gmtime.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Time/gmtime.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Time/gmtime.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Time/gmtime.pm' && package Time::gmtime; use strict; use Time::tm; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter Time::tm); X @EXPORT = qw(gmtime gmctime); X @EXPORT_OK = qw( X $tm_sec $tm_min $tm_hour $tm_mday X $tm_mon $tm_year $tm_wday $tm_yday X $tm_isdst X ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X sub populate (@) { X return unless @_; X my $tmob = Time::tm->new(); X @$tmob = ( X $tm_sec, $tm_min, $tm_hour, $tm_mday, X $tm_mon, $tm_year, $tm_wday, $tm_yday, X $tm_isdst ) X = @_; X return $tmob; } X sub gmtime (;$) { populate CORE::gmtime(shift||time)} sub gmctime (;$) { scalar CORE::gmtime(shift||time)} X 1; __END__ X =head1 NAME X Time::gmtime.pm - by-name interface to Perl's built-in gmtime() function X =head1 SYNOPSIS X X use Time::gmtime; X $gm = gmtime(); X printf "The day in Greenwich is %s\n", X (qw(Sun Mon Tue Wed Thu Fri Sat Sun))[ gm->wday() ]; X X use Time::gmtime w(:FIELDS; X printf "The day in Greenwich is %s\n", X (qw(Sun Mon Tue Wed Thu Fri Sat Sun))[ gm_wday() ]; X X $now = gmctime(); X X use Time::gmtime; X use File::stat; X $date_string = gmctime(stat($file)->mtime); X =head1 DESCRIPTION X This module's default exports override the core gmtime() function, replacing it with a version that returns "Time::tm" objects. This object has methods that return the similarly named structure field name from the C's tm structure from F<time.h>; namely sec, min, hour, mday, mon, year, wday, yday, and isdst. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<tm_> in front their method names. Thus, C<$tm_obj-E<gt>mday()> corresponds to $tm_mday if you import the fields. X The gmctime() funtion provides a way of getting at the scalar sense of the original CORE::gmtime() function. X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1129132196 'obstructs/Time/gmtime.pm' && chmod 0644 'obstructs/Time/gmtime.pm' || $echo 'restore of' 'obstructs/Time/gmtime.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Time/gmtime.pm:' 'MD5 check failed' 8617e4442d682c2bc444e12b612f98e2 obstructs/Time/gmtime.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Time/gmtime.pm'`" test 2476 -eq "$shar_count" || $echo 'obstructs/Time/gmtime.pm:' 'original size' '2476,' 'current size' "$shar_count!" fi fi # ============= obstructs/Time/localtime.pm ============== if test -f 'obstructs/Time/localtime.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Time/localtime.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Time/localtime.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Time/localtime.pm' && package Time::localtime; use strict; use Time::tm; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter Time::tm); X @EXPORT = qw(localtime ctime); X @EXPORT_OK = qw( X $tm_sec $tm_min $tm_hour $tm_mday X $tm_mon $tm_year $tm_wday $tm_yday X $tm_isdst X ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X sub populate (@) { X return unless @_; X my $tmob = Time::tm->new(); X @$tmob = ( X $tm_sec, $tm_min, $tm_hour, $tm_mday, X $tm_mon, $tm_year, $tm_wday, $tm_yday, X $tm_isdst ) X = @_; X return $tmob; } X sub localtime (;$) { populate CORE::localtime(shift||time)} sub ctime (;$) { scalar CORE::localtime(shift||time) } X 1; X __END__ X =head1 NAME X Time::localtime.pm - by-name interface to Perl's built-in localtime() function X =head1 SYNOPSIS X X use Time::localtime; X printf "Year is %d\n", localtime->year() + 1900; X X $now = ctime(); X X use Time::localtime; X use File::stat; X $date_string = ctime(stat($file)->mtime); X =head1 DESCRIPTION X This module's default exports override the core localtime() function, replacing it with a version that returns "Time::tm" objects. This object has methods that return the similarly named structure field name from the C's tm structure from F<time.h>; namely sec, min, hour, mday, mon, year, wday, yday, and isdst. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<tm_> in front their method names. Thus, C<$tm_obj-E<gt>mday()> corresponds to $tm_mday if you import the fields. X The ctime() funtion provides a way of getting at the scalar sense of the original CORE::localtime() function. X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1129132196 'obstructs/Time/localtime.pm' && chmod 0644 'obstructs/Time/localtime.pm' || $echo 'restore of' 'obstructs/Time/localtime.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Time/localtime.pm:' 'MD5 check failed' 4f44256053f0573143e7f1b78e3db9b1 obstructs/Time/localtime.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Time/localtime.pm'`" test 2307 -eq "$shar_count" || $echo 'obstructs/Time/localtime.pm:' 'original size' '2307,' 'current size' "$shar_count!" fi fi # ============= obstructs/Time/tm.pm ============== if test -f 'obstructs/Time/tm.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/Time/tm.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/Time/tm.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/Time/tm.pm' && package Time::tm; use strict; X use Class::Template qw(struct); struct('Time::tm' => [ X map { $_ => '$' } qw{ sec min hour mday mon year wday yday isdst } ]); X 1; __END__ X =head1 NAME X Time::tm.pm - internal object used by Time::gmtime and Time::localtime X =head1 DESCRIPTION X This module is used internally as a base class by Time::localtime And Time::gmtime functions. It creates a Time::tm struct object which is addressable just like's C's tm structure from F<time.h>; namely with sec, min, hour, mday, mon, year, wday, yday, and isdst. X This class is an internal interface only. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1129132696 'obstructs/Time/tm.pm' && chmod 0644 'obstructs/Time/tm.pm' || $echo 'restore of' 'obstructs/Time/tm.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/Time/tm.pm:' 'MD5 check failed' 02859f003106bb6eb92cc91bb9b37666 obstructs/Time/tm.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/Time/tm.pm'`" test 622 -eq "$shar_count" || $echo 'obstructs/Time/tm.pm:' 'original size' '622,' 'current size' "$shar_count!" fi fi # ============= obstructs/User/grent.pm ============== if test ! -d 'obstructs/User'; then $echo 'x -' 'creating directory' 'obstructs/User' mkdir 'obstructs/User' fi if test -f 'obstructs/User/grent.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/User/grent.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/User/grent.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/User/grent.pm' && package User::grent; use strict; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter); X @EXPORT = qw(getgrent getgrgid getgrnam getgr); X @EXPORT_OK = qw($gr_name $gr_gid $gr_passwd $gr_mem @gr_members); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X use Class::Template qw(struct); struct 'User::grent' => [ X name => '$', X passwd => '$', X gid => '$', X members => '@', ]; X sub populate (@) { X return unless @_; X my $gob = new(); X ($gr_name, $gr_passwd, $gr_gid) = @$gob[0,1,2] = @_[0,1,2]; X @gr_members = @{$gob->[3]} = split ' ', $_[3]; X return $gob; } X sub getgrent ( ) { populate(CORE::getgrent()) } sub getgrnam ($) { populate(CORE::getgrnam(shift)) } sub getgrgid ($) { populate(CORE::getgrgid(shift)) } sub getgr ($) { ($_[0] =~ /^\d+/) ? &getgrgid : &getgrnam } X 1; __END__ X =head1 NAME X User::grent.pm - by-name interface to Perl's built-in getgr*() functions X =head1 SYNOPSIS X X use User::grent; X $gr = getgrgid(0) or die "No group zero"; X if ( $gr->name eq 'wheel' && @{$gr->members} > 1 ) { X print "gid zero name wheel, with other members"; X } X X use User::grent qw(:FIELDS; X getgrgid(0) or die "No group zero"; X if ( $gr_name eq 'wheel' && @gr_members > 1 ) { X print "gid zero name wheel, with other members"; X } X X $gr = getgr($whoever); X =head1 DESCRIPTION X This module's default exports override the core getgrent(), getgruid(), and getgrnam() functions, replacing them with versions that return "User::grent" objects. This object has methods that return the similarly named structure field name from the C's passwd structure from F<grp.h>; namely name, passwd, gid, and members (not mem). The first three return scalars, the last an array reference. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<gr_>. Thus, C<$group_obj-E<gt>gid()> corresponds to $gr_gid if you import the fields. Array references are available as regular array variables, so C<@{ $group_obj-E<gt>members() }> would be simply @gr_members. X The getpw() funtion is a simple front-end that forwards a numeric argument to getpwuid() and the rest to getpwnam(). X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1130094696 'obstructs/User/grent.pm' && chmod 0644 'obstructs/User/grent.pm' || $echo 'restore of' 'obstructs/User/grent.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/User/grent.pm:' 'MD5 check failed' 9fbf4010f722f9bc493657ec56f8ce5d obstructs/User/grent.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/User/grent.pm'`" test 2848 -eq "$shar_count" || $echo 'obstructs/User/grent.pm:' 'original size' '2848,' 'current size' "$shar_count!" fi fi # ============= obstructs/User/pwent.pm ============== if test -f 'obstructs/User/pwent.pm' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'obstructs/User/pwent.pm' '(file already exists)' else $echo 'x -' extracting 'obstructs/User/pwent.pm' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'obstructs/User/pwent.pm' && package User::pwent; use strict; X BEGIN { X use Exporter (); X use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); X @ISA = qw(Exporter); X @EXPORT = qw(getpwent getpwuid getpwnam getpw); X @EXPORT_OK = qw( X $pw_name $pw_passwd $pw_uid X $pw_gid $pw_quota $pw_comment X $pw_gecos $pw_dir $pw_shell X ); X %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] ); } use vars @EXPORT_OK; X use Class::Template qw(struct); struct 'User::pwent' => [ X name => '$', X passwd => '$', X uid => '$', X gid => '$', X quota => '$', X comment => '$', X gcos => '$', X dir => '$', X shell => '$', ]; X sub populate (@) { X return unless @_; X my $pwob = new(); X X ( $pw_name, $pw_passwd, $pw_uid, X $pw_gid, $pw_quota, $pw_comment, X $pw_gecos, $pw_dir, $pw_shell, ) = @$pwob = @_; X X return $pwob; } X sub getpwent ( ) { populate(CORE::getpwent()) } sub getpwnam ($) { populate(CORE::getpwnam(shift)) } sub getpwgid ($) { populate(CORE::getpwgid(shift)) } sub getpw ($) { ($_[0] =~ /^\d+/) ? &getpwgid : &getpwnam } X 1; __END__ X =head1 NAME X User::pwent.pm - by-name interface to Perl's built-in getpw*() functions X =head1 SYNOPSIS X X use User::pwent; X $pw = getpwnam('daemon') or die "No daemon user"; X if ( $pw->uid == 1 && $pw->dir =~ m#^/(bin|tmp)?$# ) { X print "gid 1 on root dir"; X } X X use User::pwent qw(:FIELDS); X getpwnam('daemon') or die "No daemon user"; X if ( $pw_uid == 1 && $pw_dir =~ m#^/(bin|tmp)?$# ) { X print "gid 1 on root dir"; X } X X $pw = getpw($whoever); X =head1 DESCRIPTION X This module's default exports override the core getpwent(), getpwuid(), and getpwnam() functions, replacing them with versions that return "User::pwent" objects. This object has methods that return the similarly named structure field name from the C's passwd structure from F<pwd.h>; namely name, passwd, uid, gid, quota, comment, gecos, dir, and shell. X You may also import all the structure fields directly into your namespace as regular variables using the :FIELDS import tag. (Note that this still overrides your core functions.) Access these fields as variables named with a preceding C<pw_> in front their method names. Thus, C<$passwd_obj-E<gt>shell()> corresponds to $pw_shell if you import the fields. X The getpw() funtion is a simple front-end that forwards a numeric argument to getpwuid() and the rest to getpwnam(). X To access this functionality without the core overrides, pass the C<use> an empty import list, and then access function functions with their full qualified names. On the other hand, the built-ins are still available via the C<CORE::> pseudo-package. X =head1 NOTE X While this class is currently implemented using the Class::Template module to build a struct-like class, you shouldn't rely upon this. X =head1 AUTHOR X Tom Christiansen SHAR_EOF $shar_touch -am 1130094696 'obstructs/User/pwent.pm' && chmod 0644 'obstructs/User/pwent.pm' || $echo 'restore of' 'obstructs/User/pwent.pm' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'obstructs/User/pwent.pm:' 'MD5 check failed' 905033d579b32729f95a760e013dbde4 obstructs/User/pwent.pm SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'obstructs/User/pwent.pm'`" test 2899 -eq "$shar_count" || $echo 'obstructs/User/pwent.pm:' 'original size' '2899,' 'current size' "$shar_count!" fi fi rm -fr _sh24166 exit 0 p5p-msgid: <199611301652.JAA24201@toy.perl.com> Subject: FileHandle that 'ISA' IO::File Date: Mon, 2 Dec 1996 17:18:02 GMT From: Nick Ing-Simmons <nik@tiuk.ti.com> Files: MANIFEST lib/FileHandle.pm Subject: FileHandle that 'is' and IO::File Andreas Koenig <k@anna.in-berlin.de> writes: >>>>>> Nick Ing-Simmons <nik@tiuk.ti.com> writes: > > > The patch will serve till we can get derived version working. > >I'm putting much hope in the your patch, Nick, because I have another >problem pending. No test case yet, because I'm waiting for your >FileHandle.pm. > >I'll let you know more details as soon as I have a structured view of >the problem. Your patch will (hopefully) help me to get there, > >andreas Please try attached. Drop into lib/FileHandle.pm p5p-msgid: <199612021718.RAA04416@pluto> Subject: 10+ debugger patch Date: Sun, 1 Dec 1996 06:37:31 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: lib/perl5db.pl perl.c pod/perldebug.pod Bugs corrected: perl.c a) Could have deadlocked debugging its own signal handler; lib/perl5db.pl pod/perldebug.pod b) Documentation (internal and POD) updated; c) NonStop now will not stop at end; d) variable names more meaningful now; e) Will not trace last line of itself now; f) Dumping of looong lines in a program (see Config.pm) interruptable; g) $@ not wiped by evalled expressions; While updating the docs I was forced to change some API (to make it documentable), which resulted in following improvements: frame & 4 recognized: more verbose output; frame changes style of TRACE; Non-interruptable lines have no `:' in the listing; frame outputs `require'd packages as well. added Options AutoTrace inhibit_exit Though this may look a lot, all the changes are not in the main flow of execution (in frills which are usually disabled), so I think they may be added even this late in the cycle. Documentation would be quite messy without these changes. As well as I know, the documentation is complete now, so one can _really_ write a new debugger from scratch. Enjoy, p5p-msgid: <199612011137.GAA10864@monk.mps.ohio-state.edu> Subject: DB_File 1.07 From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs t/lib/db-btree.t t/lib/db-recno.t Subject: DB_File 1.08 From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs OTHER CORE CHANGES Subject: Eliminate spurious warning when splicing undefs From: Chip Salzenberg <chip@atlantic.net> Files: pp.c sv.h Subject: Eliminate spurious warning from "x=" operator From: Chip Salzenberg <chip@atlantic.net> Files: op.c Subject: Fix line numbers near control structures From: Chip Salzenberg <chip@atlantic.net> Files: op.c perly.c perly.c.diff perly.y proto.h Subject: Don't let scalar unpack() underflow stack From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: Fix core dump from precedence bug in "@foo" warning From: Chip Salzenberg <chip@atlantic.net> Files: toke.c Subject: Move die() to utils.c; add varargs hack to croak() From: Chip Salzenberg <chip@atlantic.net> Files: pp_ctl.c util.c Subject: Avoid memcmp() for magnitude test if it thinks char is signed From: Chip Salzenberg <chip@atlantic.net> Files: Configure config_H config_h.SH doop.c ext/SDBM_File/sdbm/pair.c ext/SDBM_File/sdbm/sdbm.h handy.h hv.c perl.h pp_hot.c proto.h regexec.c sv.c toke.c util.c Subject: Fully paramaterize locales; disable all if NO_LOCALE From: Chip Salzenberg <chip@atlantic.net> Files: ext/POSIX/POSIX.xs op.c perl.h pp.c pp_sys.c sv.c util.c PORTABILITY AND TESTING Subject: Bitwise op fix for Alpha From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: VMS patches for 5.003_10 Date: Wed, 04 Dec 1996 16:40:12 -0500 (EST) From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU> Files: EXTERN.h INTERN.h old_perl_exp.SH perl.c perl.h perl_exp.SH pp.c pp_ctl.c pp_sys.c proto.h sv.c toke.c util.c utils/perldoc.PL vms/config.vms vms/descrip.mms vms/gen_shrfls.pl vms/genconfig.pl vms/vmsish.h private-msgid: <01ICMALO8NMS001A1D@hmivax.humgen.upenn.edu>
* [inseparable changes from patch from perl5.003_09 to perl5.003_10]Perl 5 Porters1996-11-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CORE LANGUAGE CHANGES Subject: Allow &{sub {...}} without warning From: Chip Salzenberg <chip@atlantic.net> Files: toke.c Subject: Make parens optional on [gs]ethost and [gs]et{pw,gr} function From: Chip Salzenberg <chip@atlantic.net> Files: toke.c Subject: Fix syntax error with "$x [0]" and "$x {y}" and "@x {y}" From: Chip Salzenberg <chip@atlantic.net> Files: toke.c DOCUMENTATION Subject: Improve documentation for sysread() and syswrite() From: Chip Salzenberg <chip@atlantic.net> Files: pod/perlfunc.pod Subject: Document how to use $SIG{ALRM} and alarm() Date: Tue, 26 Nov 1996 11:42:49 -0500 From: Roderick Schertler <roderick@ibcinc.com> Files: pod/perlfunc.pod Msg-ID: <5898.849026569@eeyore.ibcinc.com> (applied based on p5p patch as commit 5fa5e7dfc2abaaadd377c97cd1ebe78ea844da88) OTHER CORE CHANGES Subject: Hash key memory corruption fix and naming cleanup From: Chip Salzenberg <chip@atlantic.net> Files: hv.c hv.h perl.h Subject: Undo broken perf. patch (PADTMP stealing) From: Chip Salzenberg <chip@atlantic.net> Files: sv.c Subject: Make SV unstudied in sv_gets() From: Chip Salzenberg <chip@atlantic.net> Files: sv.c Subject: Better support for UVs From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: global.sym old_global.sym perl.h pp.c pp.h proto.h sv.c sv.h Subject: Minor locale cleanups From: Chip Salzenberg <chip@atlantic.net> Files: t/lib/posix.t util.c Accept "POSIX" locale as standard like "C". Reset locale to 'C' when testing strtod() in t/lib/posix.t. Subject: Always taint result of sprintf() on float From: Chip Salzenberg <chip@atlantic.net> Files: doop.c Subject: Fix spurious warning from bitwise string ops From: Chip Salzenberg <chip@atlantic.net> Files: doop.c Subject: Eliminate warning on {,sys}read(,$newvar,) From: Chip Salzenberg <chip@atlantic.net> Files: doop.c pp_sys.c Subject: Namespace cleanup From: Chip Salzenberg <chip@atlantic.net> Files: global.sym old_global.sym perl.h Subject: Modify perl_exp.SH; create old_perl_exp.SH; document old_* From: Chip Salzenberg <chip@atlantic.net> Files: Configure INSTALL MANIFEST old_perl_exp.SH perl_exp.SH PORTABILITY Subject: Reliable signal patch Date: Tue, 26 Nov 1996 05:40:50 -0500 (EST) From: Kenneth Albanowski <kjahds@kjahds.com> Files: global.sym mg.c old_global.sym perl.h pp_sys.c proto.h util.c Msg-ID: <Pine.LNX.3.93.961126053209.294J-100000@kjahds.com> (applied based on p5p patch as commit 679728958e74b0ccd6d61567d84851f1ef994e1f) Subject: Emulate missing flock() with either fcntl() or lockf() From: Chip Salzenberg <chip@atlantic.net> Files: pp_sys.c Subject: 3_09: minor patches for OS/2 Date: Wed, 27 Nov 1996 03:30:05 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: doio.c global.sym malloc.c old_global.sym os2/Makefile.SHs os2/OS2/ExtAttr/Makefile.PL os2/OS2/PrfDB/Makefile.PL os2/OS2/Process/Makefile.PL os2/OS2/REXX/Makefile.PL os2/os2.c os2/os2ish.h perl.h Subject: 3_09: minor patches This patches mostly enable commpilation under OS/2, and fix malloc.c. Enjoy, p5p-msgid: <199611270830.DAA04985@monk.mps.ohio-state.edu> Subject: Re: 5.003_09 and QNX Date: Wed, 27 Nov 96 13:36:06 est From: Norton Allen <nort@bottesini.harvard.edu> Files: Configure MANIFEST README.qnx hints/qnx.sh qnx/ar qnx/cpp t/TEST toke.c util.c x2p/proto.h Msg-ID: <9611271836.AA14460@bottesini.harvard.edu> (applied based on p5p patch as commit c5117498be098729dc2af28089bd130c88c8d42b)
* [inseparable changes from patch from perl5.003_08 to perl5.003_09]Perl 5 Porters1996-11-261-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CORE LANGUAGE CHANGES Subject: Lexical locales From: Chip Salzenberg <chip@atlantic.net> Files: too many to list make effectiveness of locales depend on C<use locale> Subject: Lexical scoping cleanup From: Chip Salzenberg <chip@atlantic.net> Files: many... but mostly perly.y and toke.c tighten scoping of lexical variables, somewhat on the new constructs and somewhat on the old Subject: memory corruption / security bug in sysread,syswrite + patch Date: Mon, 25 Nov 1996 21:46:31 +0200 (EET) From: Jarkko Hietaniemi <jhi@cc.hut.fi> Files: MANIFEST pod/perldiag.pod pod/perlfunc.pod pp_sys.c t/op/sysio.t Msg-ID: <199611251946.VAA30459@alpha.hut.fi> (applied based on p5p patch as commit d7090df90a9cb89c83787d916e40d92a616b146d) DOCUMENTATION Subject: perldiag documentation patch. Date: Wed, 20 Nov 96 16:07:28 GMT From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: pod/perldiag.pod private-msgid: <9611201607.AA12729@claudius.bfsec.bt.co.uk> Subject: a missing perldiag entry Date: Thu, 21 Nov 1996 15:24:02 -0500 From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: pod/perldiag.pod private-msgid: <199611212024.PAA15758@aatma.engin.umich.edu> Subject: perlfunc patch Date: Wed, 20 Nov 96 14:04:08 GMT From: Paul Marquess <pmarquess@bfsec.bt.co.uk> Files: pod/perlfunc.pod Following on from the patch to make uc, lc etc default to $_ (as per Camel II), here is a followup patch to perlfunc that documents the change. I think I have documented all the other cases where $_ defaulting works as well. p5p-msgid: <9611201404.AA12477@claudius.bfsec.bt.co.uk> OTHER CORE CHANGES Subject: Properly prototype safe{malloc,calloc,realloc,free}. From: Chip Salzenberg <chip@atlantic.net> Files: proto.h Subject: UnixWare 2.1 fix for perl5.003_08 - cope with fp->_cnt < -1, allow debugging Date: Wed, 20 Nov 1996 14:27:06 +0100 From: John Hughes <john@AtlanTech.COM> Files: sv.c UnixWare 2.1 has no fp->_base so most of the debugging stuff in sv_gets just core dumps. Also, for some unknown reason fp->_cnt is sometimes < -1, screwing up the initial SvGROW in svgets. Appart from that its io is std. p5p-msgid: <01BBD6EE.E915C860@malvinas.AtlanTech.COM> Subject: die -> croak Date: Thu, 21 Nov 1996 16:11:21 -0500 From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: pp_ctl.c private-msgid: <199611212111.QAA17070@aatma.engin.umich.edu> Subject: Cleanup of {,un}pack('w'). From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: Cleanups from Ilya. From: Chip Salzenberg <chip@atlantic.net> Files: gv.c malloc.c pod/perlguts.pod pp_ctl.c Subject: Fix for unpack('w') on 64-bit systems. From: Chip Salzenberg <chip@atlantic.net> Files: pp.c Subject: Re: LC_NUMERIC support is ready + performance Date: Mon, 25 Nov 1996 22:08:27 -0500 (EST) From: Ilya Zakharevich <ilya@math.ohio-state.edu> Files: sv.c Chip Salzenberg writes: > > Having thought about the use of our own gcvt() and atof(), I've run > away in horror. It's just too hairy. > > So I've implemented the only viable alternative I know of: Toggling > LC_NUMERIC to/from "C" as needed. > > Patch follows. > > I think _09 is *very* close. Since _09 is going to be alpha anyway, I reiterate my question: Is there any reason to not include my hash/array performance patches in _09? Btw, here is the next performance patch. It makes PADTMP values stealable too. I do not do by setting TEMP flags on them, since it would be a very distributed patch, and it would break some places which check for TEMP for some other reasons (yes, I checked ;-). This patch decreases *twice* the memory usage of perl -e '$a = "a" x 1e6; 1' Enjoy, p5p-msgid: <199611260308.WAA02677@monk.mps.ohio-state.edu> Subject: Hash key sharing improvements from Ilya. From: Chip Salzenberg <chip@atlantic.net> Files: hv.c hv.h proto.h Subject: Mortal stack pre-allocation from Ilya. From: Chip Salzenberg <chip@atlantic.net> Files: pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c PORTABILITY Subject: VMS patches post-5.003_08 Date: Fri, 22 Nov 1996 18:16:31 -0500 (EST) From: Charles Bailey <bailey@hmivax.humgen.upenn.edu> Files: lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MakeMaker.pm lib/File/Path.pm mg.c pp_ctl.c utils/h2xs.PL vms/config.vms vms/descrip.mms vms/gen_shrfls.pl vms/genconfig.pl vms/perlvms.pod vms/vms.c vms/vmsish.h Here're diffs to bring a base 5.003_08 up to the current VMS working sources. Nearly all of the changes are VMS-specific, and comprise miscellaneous bugfixes accumulated since 5.003_07, rather than any particular problem with 5.003_08. I'm posting them here since some of the patches change core files, and I'd like to insure that I haven't accidentally created problems for anyone else. With these and a couple of of the small patches already send to p5p, 5.003_08 builds clean and passes all tests under VMS. Thanks, Chip, for all the work. p5p-msgid: <1996Nov22.181631.1603238@hmivax.humgen.upenn.edu>
* Re: strtod / strtol patch for POSIX moduleDavid Hammen1996-11-193-15/+128
|
* Dale's posting as patch (Was: Perl 5.003_5 make fails on NS3.2 - CURED)Andreas Koenig1996-09-281-0/+5
| | | | Handle NeXT, POSIX, and setpgid in pp_sys.c and POSIX.
* LC_COLLATE.Jarkko Hietaniemi1996-10-071-1/+8
| | | | | | | Big patch to add, document, and test LC_COLLATE support. setlocale() allowed one argument only, call to perl_init_fold() (in util.c) if setlocale() succeeded.
* LC_COLLATE.Jarkko Hietaniemi1996-10-071-1/+21
| | | | | | Big patch to add, document, and test LC_COLLATE support. enhanced setlocale() docs and introduced the one-argument variant doc.
* perl 5.003_03: [patch introduction and re-organisation]perl-5.003_03Andy Dougherty1996-08-251-1134/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # This is my patch perl5.003_03.pat to perl5.003_02 # The full description is below. # Please execute the following commands before applying this patch. # (You can feed this patch to 'sh' to do so.) # Andy Dougherty <doughera@lafcol.lafayette.edu> # Absorbed into Changes5.002 rm -f Changes.Conf # Not needed. rm -f ext/POSIX/mkposixman.pl # Moved to README.os2. I'm not sure why the README files are # here rather than in the appropriate subdirectories. rm -f os2/README # Not needed. rm -f pod/Makefile.PL # New test for bit ops touch t/op/bop.t # Patches that create new tests don't always make them executable. chmod +x t/*/*.t # Create a new directory for Porting and Patching info. mkdir Porting exit 0 This is patch perl5.003_03.pat to perl version 5.003_02. This takes you from 5.003_02 to 5.003_03. To apply this patch, run the above commands, cd to your perl source directory and then type patch -p1 -N < perl5.003_03.pat The changes are described after each /^Index/ line below. This is designed so you can examine each change with a command such as csplit -k perl5.003_03.pat '/^Index:/' '{99}' Patch and enjoy, Andy Dougherty doughera@lafcol.lafayette.edu Dept. of Physics Lafayette College, Easton PA 18042
* perl 5.003_02: [changes beteween cumulative patches and tarball release]perl-5.003_02Larry Wall1996-08-101-0/+0
| | | | | This commit just represents the minor differences between applying the patch from 5.003_01 to 5.003_02 and the 5.003_02 release tarball.
* perl 5.003_02: [no incremental changelog available]Larry Wall1996-08-102-7/+1135
|
* Correct order of arguments in setcc documentationPerl 5 Porters1996-06-181-1/+1
|