| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUILD PROCESS
Subject: AFS patches
From: Chip Salzenberg <chip@perl.com>
Files: Configure installperl
CORE LANGUAGE CHANGES
Subject: SECURITY: Forbid glob() when tainting (-T or setuid)
From: Chip Salzenberg <chip@perl.com>
Files: pod/perlrun.pod pod/perlsec.pod pp_sys.c
Subject: SECURITY: Forbid exec() if $ENV{TERM} or $ENV{ENV} is tainted
From: Chip Salzenberg <chip@perl.com>
Files: pod/perlrun.pod pod/perlsec.pod t/op/taint.t taint.c
CORE PORTABILITY
Subject: (NeXT|Open)Step update
Date: Wed, 7 May 97 17:47:02 -0500
From: Gerd Knops <gerti@BITart.com>
Files: Configure MANIFEST config_h.SH hints/next_3.sh hints/next_4.sh
private-msgid: 9705072247.AA18882@BITart.com
Subject: Win32 update (consolidated patch plus three followups)
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: EXTERN.h README.win32 lib/Sys/Hostname.pm pod/perldelta.pod win32/config.H win32/config.w32 win32/config_sh.PL win32/perllib.c win32/win32.c win32/win32.h win32/include/sys/socket.h
DOCUMENTATION
Subject: Updates to perldelta
From: Chip Salzenberg <chip@perl.com>
Files: pod/perldelta.pod
Subject: Document 'Possible attempt to separate words with commas'
Date: 06 May 1997 23:27:55 +0200
From: Gisle Aas <gisle@aas.no>
Files: pod/perlop.pod
Msg-ID: hyb9snvdw.fsf@bergen.sn.no
(applied based on p5p patch as commit 18270fd3b8aafde2f9ea21ea13adde95ef24b149)
Subject: Document that C<m?x?> is just like C<?x?>
From: Chip Salzenberg <chip@perl.com>
Files: pod/perlop.pod
OTHER CORE CHANGES
Subject: Fix for redefined sort subs nastiness
Date: Thu, 08 May 1997 20:04:18 -0400
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: op.c pod/perldelta.pod pod/perldiag.pod sv.c t/op/sort.t
Msg-ID: 199705090004.UAA15032@aatma.engin.umich.edu
(applied based on p5p patch as commit e9e069932a0db06904b29e2b09a435afd40ed35c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUILD PROCESS
Subject: Don't suggest 'Configure -der' in config.sh comments
From: Chip Salzenberg <chip@perl.com>
Files: Configure
CORE LANGUAGE CHANGES
Subject: Make assignment to C<$)> call setgroups()
From: Chip Salzenberg <chip@perl.com>
Files: Configure config_H config_h.SH mg.c plan9/config.plan9 pod/perldelta.pod vms/config.vms win32/config.H win32/config.w32
Subject: Grandfather "$$<digit>" in strings
From: Chip Salzenberg <chip@perl.com>
Files: pod/perldiag.pod toke.c
Subject: Disconnect warn and die hooks _after_ object destruction
From: Chip Salzenberg <chip@perl.com>
Files: perl.c
Subject: Forbid recursive substitutions
From: Chip Salzenberg <chip@perl.com>
Files: cop.h pod/perldelta.pod pod/perldiag.pod pp_ctl.c pp_hot.c
DOCUMENTATION
Subject: Document required module versions
From: Chip Salzenberg <chip@perl.com>
Files: pod/perldelta.pod
LIBRARY AND EXTENSIONS
Subject: Updates to Math::Complex and Math::Trig
From: Jarkko Hietaniemi <Jarkko.Hietaniemi@cc.hut.fi>
Files: lib/Math/Complex.pm lib/Math/Trig.pm pod/perldelta.pod t/lib/complex.t
OTHER CORE CHANGES
Subject: length($') isn't
Date: Mon, 07 Apr 1997 03:30:44 -0400
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: mg.c
Msg-ID: 199704070730.DAA07310@aatma.engin.umich.edu
(applied based on p5p patch as commit 645a7cbb1f14932f058231f0a4f808b88ebe8703)
Subject: Fix obscure regex bug related to leading C<.*>
From: Chip Salzenberg <chip@perl.com>
Files: toke.c
Subject: Add warning for glob failure
From: Chip Salzenberg <chip@perl.com>
Files: pod/perldelta.pod pod/perldiag.pod pp_hot.c
Subject: Fix C<perl -V> in presence of local patches
From: Chip Salzenberg <chip@perl.com>
Files: perl.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUILD PROCESS
Subject: Fix for Unisys UNIX and libperl.so
Date: Thu, 6 Mar 97 16:28 GMT0
From: Alan Burlison <aburlison@cix.compulink.co.uk>
Files: Configure
Msg-ID: memo.147328@cix.compulink.co.uk
(applied based on p5p patch as commit 2f525a329506abe067c4ec9d4c7ae13d8b223081)
Subject: Allow './Configure -Uoptimize'
Date: Thu, 06 Mar 1997 11:15:47 -0500 (EST)
From: Andy Dougherty <doughera@fractal.phys.lafayette.edu>
Files: Configure
Msg-ID: Pine.SOL.3.95q.970306110532.11070A-100000@fractal.lafayette.
(applied based on p5p patch as commit 59ae47780c168857b216412f8354d10ae6dd0b61)
Subject: Use 'test -f', not 'test -x'
Date: Fri, 7 Mar 1997 19:53:00 -0500
From: Spider Boardman <spider@web.zk3.dec.com>
Files: Configure
Msg-ID: 199703080053.TAA13943@web.zk3.dec.com
(applied based on p5p patch as commit 64b4562546c4e74f87c21f65a76ec05e96a1b74f)
CORE LANGUAGE CHANGES
Subject: Don't autovivify array and hash elements in sub parameters
Date: Thu, 06 Mar 1997 14:12:09 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: op.c pod/perldelta.pod pod/perlsub.pod pod/perltrap.pod
Msg-ID: 199703061912.OAA20606@aatma.engin.umich.edu
(applied based on p5p patch as commit 0ffc6623ceb5acc7b954e8cdbaeb8ba319474d7b)
Subject: Support READ and GETC for tied handles
Date: Sat, 08 Mar 1997 19:19:38 -0500
From: Doug MacEachern <dougm@opengroup.org>
Files: pod/perldelta.pod pod/perltie.pod pp_sys.c t/op/misc.t
Msg-ID: 199703090019.TAA32591@postman.osf.org
(applied based on p5p patch as commit b06b64f805517c26cbd7c4d2f74efd5f36b4692c)
Subject: Warn on C<@x =~ /a/> and C<%x =~ s/a/b/>
From: Chip Salzenberg <chip@perl.com>
Files: op.c pod/perldiag.pod
CORE PORTABILITY
Subject: VMS update
Date: Fri, 07 Mar 1997 22:49:46 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: lib/ExtUtils/MM_VMS.pm vms/descrip.mms vms/gen_shrfls.pl vms/sockadapt.h
private-msgid: 01IG8KN5R28M00661G@hmivax.humgen.upenn.edu
DOCUMENTATION
Subject: Consolidated INSTALL updates since _92
Date: Sat, 08 Mar 1997 13:21:22 -0500 (EST)
From: Andy Dougherty <doughera@fractal.phys.lafayette.edu>
Files:
Msg-ID: Pine.SOL.3.95q.970308131806.23766F-100000@fractal.lafayette.
(applied based on p5p patch as commit e6834c60cd85866fc530e8b4bb831af6186bad4d)
Subject: PODs corrections
Date: Fri, 7 Mar 1997 21:53:04 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: ext/DB_File/DB_File.pm ext/Socket/Socket.pm lib/Class/Template.pm lib/ExtUtils/Embed.pm lib/ExtUtils/MM_VMS.pm lib/ExtUtils/Mksymlists.pm lib/File/Basename.pm lib/File/stat.pm lib/Time/gmtime.pm lib/Time/localtime.pm lib/Time/tm.pm lib/User/grent.pm lib/User/pwent.pm pod/perlcall.pod pod/perldebug.pod pod/perlfunc.pod pod/perlguts.pod pod/perllocale.pod pod/perlop.pod pod/perlsub.pod
Msg-ID: 199703080253.VAA24975@monk.mps.ohio-state.edu
(applied based on p5p patch as commit 72451f4af0d31f24ef5b12bc5d034e3e8b35d43d)
OTHER CORE CHANGES
Subject: Fix imbalanced ENTER/LEAVE from C<BEGIN{die}>
From: Chip Salzenberg <chip@perl.com>
Files: op.c perl.c proto.h
Subject: perl -P path patch
Date: Sat, 08 Mar 1997 12:45:08 -0500 (EST)
From: Andy Dougherty <doughera@fractal.phys.lafayette.edu>
Files: config_H config_h.SH perl.c plan9/config.plan9 t/comp/cpp.t vms/config.vms win32/config.H
Msg-ID: Pine.SOL.3.95q.970308120242.23766D-100000@fractal.lafayette.
(applied based on p5p patch as commit bba014945c609b5474f61f5e82ed2ff3e83a6e47)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 È 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DOCUMENTATION
Subject: small doc tweaks for _12
Date: Thu, 19 Dec 1996 11:05:57 -0500
From: Roderick Schertler <roderick@gate.net>
Files: lib/UNIVERSAL.pm pod/perldiag.pod pod/perltie.pod
Msg-ID: <1826.851011557@eeyore.ibcinc.com>
(applied based on p5p patch as commit 3314ffc68a11690bd9977cbdd7ea0601ad6ced13)
PORTABILITY
Subject: Add missing backslash in Configure
From: Chip Salzenberg <chip@atlantic.net>
Files: Configure
UTILITIES, LIBRARY, AND EXTENSIONS
Subject: Include libnet-1.01 instead of old Net::FTP
From: Graham Barr <Graham.Barr@tiuk.ti.com>
Files: MANIFEST lib/Net/Cmd.pm lib/Net/Domain.pm lib/Net/DummyInetd.pm lib/Net/FTP.pm lib/Net/NNTP.pm lib/Net/Netrc.pm lib/Net/POP3.pm lib/Net/SMTP.pm lib/Net/SNPP.pm lib/Net/Socket.pm lib/Net/Telnet.pm lib/Net/Time.pm pod/perlmod.pod
Subject: Use binmode when doing binary FTP
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: lib/Net/FTP.pm
Subject: Re: Open3.pm tries to close unopened file handle
Date: 18 Dec 1996 22:19:54 -0500
From: Roderick Schertler <roderick@gate.net>
Files: MANIFEST lib/IPC/Open2.pm lib/IPC/Open3.pm lib/open2.pl lib/open3.pl pod/perldiag.pod pod/perlfunc.pod t/lib/open2.t t/lib/open3.t
Msg-ID: <pzloavmd9h.fsf@eeyore.ibcinc.com>
(applied based on p5p patch as commit 982b4e8fc47473059e209787b589853f4c8f8f9e)
Subject: Long-standing problem in Socket module
Date: Wed, 18 Dec 1996 23:18:14 -0500
From: Spider Boardman <spider@orb.nashua.nh.us>
Files: Configure Porting/Glossary config_H config_h.SH ext/Socket/Socket.pm ext/Socket/Socket.xs
Msg-ID: <199612190418.XAA07291@Orb.Nashua.NH.US>
(applied based on p5p patch as commit 3e6a22d2723daf415793f9a4fc1b57f4d8a576fd)
Subject: flock() constants
Date: Thu, 19 Dec 1996 01:37:17 -0500
From: Roderick Schertler <roderick@gate.net>
Files: ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs pod/perlfunc.pod
Msg-ID: <26669.850977437@eeyore.ibcinc.com>
(applied based on p5p patch as commit 3dea0e15e4684f6defe2f25a16bc696b96697ac2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change from running these commands:
# We'll create new scripts, but patch won't automatically make them
# executable.
test -d qnx || mkdir qnx
touch qnx/ar qnx/cpp
chmod +x qnx/ar qnx/cpp
touch old_perl_exp.SH
chmod +x *.SH *.pl
exit 0
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# This is my patch perl5.003_05.pat to perl5.003_04
# 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>
# We'll create a new test, but patch won't automatically make it
# executable.
touch t/io/read.t
chmod +x t/io/read.t
exit 0
This is patch perl5.003_05.pat to perl version 5.003_04.
This takes you from 5.003_04 to 5.003_05.
To apply this patch, run the above commands,
cd to your perl source directory and then type
patch -p1 -N < perl5.003_05.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_05.pat '/^Index:/' '{99}'
Patch and enjoy,
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College, Easton PA 18042
|
|
|
|
|
|
|
| |
Updated to match Configure.
Changed the DLSYM_NEEDS_UNDERSCORE comment to
/**/ to conform to metaconfig style.
|
|
|
|
|
|
|
|
|
|
| |
Change /*#define../**/ into /*#define../ **/
to make IBM's xlc compiler shut up about nested comments.
The /*#define FOO /**/ is a perfectly legal un-nested comment, and
I wish IBM would fix it's blasted compiler instead. In the meantime
we'll take mercy on the poor AIX user and get rid of the screenfulls
of stupid warning messages. Thanks to Hallvard B Furuseth
<h.b.furuseth@usit.uio.no> for the fix.
|
|
|
|
|
|
|
|
|
|
|
| |
Updated to match current Configure and config_h.SH.
Some rearrangement of parts has occurred due to new
dependencies in the metaconfig units.
Include full descriptions of ARCHLIB, OLDARCHLIB, PRIVLIB,
SITEARCH, and SITELIB. Previous versions just included the
~-expanded names (with unhelpful descriptions). No functionality
is changed, but maybe it's a little better documented now.
|
| |
|
|
|
|
|
|
|
| |
Insure execution by /bin/sh
Add BIN_SH macro (defaults to /bin/sh)
Remove old copy of config.h before creating new one
Ascertain BYTEORDER at compile time on NeXT, so it's correct for MABs
|
| |
|
|
|
|
|
| |
[editor's note: changes seem to be mostly module updates,
documentation changes and some perl API macro additions]
|
|
|
|
|
|
| |
Delete the VMS and UNLINK_ALL_VERSIONS defines.
Some parts are rearranged.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[editor's note: no patch file was found for this release, so no
fine-grained changes]
I can't find the password for our ftp server, so I had to drop it into
ftp://ftp.sems.com/pub/incoming/perl5.002b3.tar.gz, which is a drop
directory you can't ls.
The current plan is that Andy is gonna whack on this a little more, and
then release a gamma in a few days when he's happy with it. So don't get
carried away. This is now *late* beta.
In other words, have less than the appropriate amount of fun. :-)
Larry
|
|
|
|
|
|
| |
Check for HAS_SIGACCTION
Add STARTPERL define for C code (specifically, a2p).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cd to your perl source directory and type
patch -p1 -N < patch.2b1a
This patch includes patches for the following items:
NETaa14710: Included bsdi_bsdos.sh hint file.
pod/perlre.pod: Mention 32bit limit.
Configure Updates.
Update Socket.xs to version 1.5. This handles
systems that might not have <sys/un.h>.
Fix missing quotes in h2ph.PL
These are each described in detail below, after the corresponding
index line.
Patch and enjoy,
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College, Easton PA 18042
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you're adventurous, have a look at
ftp://ftp.sems.com/pub/outgoing/perl5.0/perl5.002beta1.tar.gz
Many thanks to Andy for doing the integration.
Obviously, if you consult the bugs database, you'll note there are
still plenty of buglets that need fixing, and several enhancements that
I've intended to put in still haven't made it in (Hi, Tim and Ilya).
But I think it'll be pretty stable. And you can start to fiddle around
with prototypes (which are, of course, still totally undocumented).
Packrats, don't worry too much about readvertising this widely.
Nowadays we're on a T1 here, so our bandwidth is okay.
Have the appropriate amount of jollity.
Larry
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To apply, change to your perl directory, run the command above, then
apply with
patch -p1 -N < thispatch.
This is a consolidation patch. It contains many of the most commonly
applied or agreed-to patches that have been circulating since
patch.1m.
It also changes the 'unofficial patchlevel' in perl.c.
There are some problems (see items marked with '***').
I will attempt to address those in a patch.1o in a few days.
This patch contains the following packages:
My Jumbo Configure patch vs. 1m, with subsequent patches 1, 2, and 3.
Mainly, this provides easier use of local libraries, documents
the installation process in a new INSTALL file, moves important
questions towards the beginning, and improves detection of
signal names (mostly for Linux).
xsubpp-1.922.
Patches from Larry:
eval "1" memory leak patch (as modified by GSAR to apply to 5.001m).
NETaa14551 Infinite loop in formats,
NETaa13729 scope.c patch (fixed problems on AIX and others)
NETaa14138 "substr() & s///" (pp_hot.c)
Patches from ftp.perl.com:
ftp://ftp.perl.com/pub/perl/src/patches/closure-bug.patch,
version of 20 Sep 1995
Includes fix for NETaa14347 (32k limit in regex), and other
fixes.
ftp://ftp.perl.com/pub/perl/src/patches/debugger.patch,
version of 27 Aug 1995
ftp://ftp.perl.com/pub/perl/src/patches/glob-undef.patch,
version of 4 Sep 1995
NETaa14421 $_ doesn't undef
ftp://ftp.perl.com/pub/perl/src/patches/op-segfault.patch,
version of 21 Aug 1995
ftp://ftp.perl.com/pub/perl/src/patches/warn-ref-hash-key.patch,
version of 5 Jun 1995
Tim Bunce's Jumbo DynaLoader patch for Perl5.001m, which is
NETaa14636 Jumbo DynaLoader patch for Perl5.001m, and
Additional patch for NETaa14636 Jumbo DynaLoader patch for Perl5.001m
version of 09 Oct 1995.
***This needs some additional parentheses.***
MakeMaker-5.00. Supercedes NETaa13540 (VMS MakeMaker patches).
(Updates minimod.PL as well.)
***This has a couple of minor problems.
pod2man is run even if it isn't available.
LD_RUN_PATH gets set to some mysterious values.***
NETaa14657 Paul Marquess Net::Ping patch. I've included
Net-Ping-1.00.
NETaa14661 Dean Roehrich DProf. Installed as ext/Devel/DProf.
Configure should pick this up automatically. (5 Apr 1995
version.)
NETaa13742 Jack Shirazi Socket in 5.001. I've also included
his socket.t test in t/lib/socket.t.
c2ph-1.7.
Dean's perlapi patches of Oct 12, 1995, which superceded those
of Oct 8, 1995. This is the one that did
mv perlapi.pid perlxs.pod.
NETaa14310 Tim Bunce A trivial patch for configpm (handy for shell scripts)
DB_File-1.0 patch from Paul Marquess (pmarquess@bfsec.bt.co.uk)
last modified 7th October 1995
version 1.0
Added or updated the following hints files:
hints/hpux.sh
hints/ncr_tower.sh
hints/netbsd.sh
hints/ultrix.sh
Patch and enjoy.
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College, Easton PA 18042
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To apply, change to your perl directory, run the command above, then
apply with
patch -p1 -N < thispatch.
This patch fixes all the Configure & build problems for which I have a
solution.
After you apply this patch, I would recommend:
make distclean # or at the very least rm config.sh
sh Configure [whatever options you use]
make depend
make
make test
Patch and enjoy,
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College, Easton PA 18042
Here are the file-by-file contents:
Changes.Conf
Updated a bit.
Configure
Now honors hints on <pwd.h>-related things (for CX/UX, in particular).
Now honors previous values of d_stdio_ptr_lval and d_stdio_cnt_lval.
DB test programs now conditionally include 'const'.
MANIFEST
Updated.
config_H
Updated.
config_h.SH
Include trailing /**/ on STDIO_..._LVALUE defines.
hints/cxux.sh
Simplified.
Include info about failing test.
hints/epix.sh
A guess at a dynamic loading fix.
hints/next_3.sh
Add a few comments.
lib/Benchmark.pm
Ensure numeric context on number of loop iterations.
op.c
Spider's padlex and goto &$nonesuch patches.
perl.c
fputs("\tUnofficial patchlevel 1l.\n",stdout);
pp_ctl.c
pp_hot.c
scope.c
Spider's padlex and goto &$nonesuch patches.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To apply, change to your perl directory and apply with
patch -p1 -N < thispatch.
After you apply this patch, I would recommend:
rm config.sh
sh Configure [whatever options you use]
make depend
make
make test
Here are the highlights:
Linux fixes: Now correctly sets & uses stdio _ptr and _cnt
tricks only when feasible (Configure, config_h.SH, config_H,
doio.c, sv.c x2p/str.c)
#!path-to-perl fixed to use $binexp instead of $bin. This should
really be fixed to do the correct perl start-up stuff. Volunteers?
(c2ph.SH, h2ph.SH, h2xs.SH, makeaperl.SH, perldoc.SH,
pod/pod2*.SH, x2p/find2perl.SH, x2p/s2p.SH)
hint updates: hints/apollo.sh, hints/linux.sh, hints/freebsd.sh,
hints/sco_3.sh.
xsubpp version 1.7. (includes CASE support)
pod/perlbot updates.
my lib/AutoLoader patch (to use @INC).
[ON]DBM_File/Makefile.PL now have a few hint files.
Other sundry small things.
Patch and enjoy,
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College Easton, PA 18042
Here's the file-by-file breakdown of what's included:
Configure
Checks if File_ptr(fp) and File_cnt(fp) can be assigned to.
Fix typo: s/sytem/system/
MANIFEST
Include new extension hint files.
README
Some clarifications, thanks to John Stoeffel. Tell users how to
not use dynamic loading.
c2ph.SH
Use $binexp instead of $bin.
config_H
Updated to match config_h.SH.
config_h.SH
Include defines for whether File_ptr(fp) and File_cnt(fp)
can be assigned to.
doio.c
Use defines for whether File_ptr(fp) and File_cnt(fp) can be assigned to.
ext/DynaLoader/DynaLoader.pm
Improve error messages and a little documentation.
ext/NDBM_File/hints/solaris.pl
New hint file.
ext/ODBM_File/Makefile.PL
Removed -ldbm.nfs, since it's now in the sco hint file.
ext/ODBM_File/hints/sco.pl
ext/ODBM_File/hints/solaris.pl
ext/ODBM_File/hints/svr4.pl
New hint files.
h2ph.SH
h2xs.SH
Use $binexp instead of $bin.
hints/apollo.sh
hints/freebsd.sh
hints/linux.sh
hints/sco_3.sh
Updated.
lib/AutoLoader.pm
Eliminate else clause in sub import.
Handle case where @INC contains relative paths.
lib/ExtUtils/xsubpp
Update to version 1.7. This includes CASE support.
lib/I18N/Collate.pm
Updated documentation.
lib/ftp.pl
Look for socket.ph or sys/socket.ph
lib/getcwd.pl
Use defined().
makeaperl.SH
Use $binexp instead of $bin.
perl.c
fputs("\tUnofficial patchlevel 1j.\n",stdout);
perldoc.SH
Use $binexp instead of $bin.
Turn off debugging messages.
pod/perlbot.pod
Updated.
pod/pod2html.SH
pod/pod2latex.SH
pod/pod2man.SH
Use $binexp instead of $bin.
sv.c
Use defines for whether File_ptr(fp) and File_cnt(fp) can be assigned to.
toke.c
Fix spelling of ambiguous.
x2p/find2perl.SH
x2p/s2p.SH
Use $binexp instead of $bin.
x2p/str.c
Use defines for whether File_ptr(fp) and File_cnt(fp) can be assigned to.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To apply, change to your perl directory, run the commands above, then
apply with
patch -p1 -N < thispatch.
After you apply this patch, I would recommend:
rm config.sh
sh Configure [whatever options you use]
make depend
make
make test
Here are the highlights:
All pod documentation now installed, along with corresponding man
pages, if possible (Configure allows you to change this).
cppstdin no longer points back to the build directory. This
necessitated two changes to the test suite: comp/cpp.t is now a
front end that punts if cppstdin is not yet available (the old
perl4 trick doesn't work for perl5). The op/misc.t test
./perl -P -e 'use POSIX;' has been dropped since I couldn't think
of an elegant way to bypass it for systems that need the cppstdin
wrapper.
Grand autoload patch included (minus the installperl, lib/, and
ext/ changes). The lib/ changes are in patch.1g, and the
ext/ changes are in patch.1h.
Better detection and use of stdio variants, especially on SVR4.
Sarathy's consolidated patches (for ties) included.
New filter stuff included.
Three patches from Larry (gv.c, toke.c, pp_ctl.c)
Patch and enjoy,
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College Easton, PA 18042
Here's the file-by-file breakdown of what's included:
Changes.Conf
Document changes in the Configure & build process.
Configure
Upgrade to metaconfig PL55.
Add /opt hierarchy to paths searched for programs.
Tye McQueen's updated std stdio testing.
Prompting for installation info for perl module pages.
Add possible SITELIB to include site-specific include directories.
By default this is disabled, but it seemed a neat idea now that
the standard perl library is getting so big.
Check that the compiler chosen exists and actually supports the
options the user specified.
Correctly sort multiple shared library version numbers.
Use a compile & link test for gconvert(), dlopen(), and dlerror().
Do not include build directory name in cppstdin wrapper.
MANIFEST
Updated.
Makefile.SH
Reorganized a bit to support separate install.perl and install.man
targets to use the new installman script and to accomodate those who
don't want to install the man pages.
Organize cleanup of .SH files a little better.
No longer automatically make the pod/*.man files. This is done by
installman only if requested.
Include additional error messages and info for regenerating the
automatically maintained header files.
Add 'minitest' target.
README
Updated.
README.vms
Fix perl5-porters subscription info.
config_H
Updated.
config_h.SH
Updated.
configpm
Embedded pod.
configure
GNU configure-like front end to metaconfig's Configure.
Only supports a few options.
doio.c
Updated to use new std stdio testing.
embed.h
Add new symbols for filtering.
global.sym
see embed.h.
gv.c
C<sub method;> patch from lwall.
hints/README.hints
Updated.
hints/aux.sh
Updated.
hints/cxux.sh
Updated.
hints/epix.sh
New file.
hints/freebsd.sh
Updated.
hints/irix_4.sh
Updated.
hints/irix_5.sh
Updated.
hints/irix_6.sh
Updated.
hints/linux.sh
Updated.
hints/powerunix.sh
Updated.
installman
New file to install pod/*.pod and lib/*.p(m|od) man pages.
installperl
Move installation of man pages over to installman script.
Install pod/*.pod files in $privlib/pod/.
Preserve timestamps on .a files.
makedepend.SH
Now includes . and .. in PATH to explicitly find cppstdin wrapper.
opcode.h
opcode.pl
shmwrite fix.
perl.c
Changed unofficial patchlevel message.
Included optional SITELIB directory.
perl.h
#include <memory.h>
cryptswitch gone/filters added.
EUNICE replaced by UNLINK_ALL_VERSIONS. Only matters for VMS.
perldoc.SH
New file.
pod/perl.pod
Describe where modpods are.
pp_ctl.c
sort bug fix from lwall.
pp_hot.c
csh glob bug fix from tchrist.
Sarathy's consolidated "tie" patch for NETaa13753 N 2 trey
pp_sys.c
Emulate flock with lockf, if possible.
Use new std stdio unit.
proto.h
Filters stuff.
prototype for unlnk() is only needed #if UNLINK_ALL_VERSIONS
sv.c
Sarathy's consolidated "tie" patch for NETaa13753 N 2 trey
Sarathy's consolidated patch for nested ties.
Use new std stdio unit.
t/comp/cpp.aux
New file. This only gets called if cppstdin is avaiable.
t/comp/cpp.t
Calls cpp.aux test only if cppstdin is available.
t/op/misc.t
Drop
perl -P -e 'use POSIX;' test.
it couldn't work on systems without the cppstdin wrapper
installed, and is usually misleading when it fails anyway.
toke.c
filter stuff.
fix for NETaa13798 from lwall.
unixish.h
undef UNLINK_ALL_VERSIONS since it's irrelevant for unix.
util.c
s/EUNICE/UNLINK_ALL_VERSIONS/ for the unlnk() function.
vms/config.vms
VMS updates from Charles Bailey.
std stdio updates to match changes in perl sources.
add UNLINK_ALL_VERSIONS constant, but leave it #undef.
vms/ext/MM_VMS.pm
vms/ext/VMS/stdio/stdio.xs
vms/perlvms.pod
vms/vms.c
VMS updates from Charles Bailey.
x2p/Makefile.SH
Updated to match man page Configure questions.
Slight clean-up on .SH targets.
x2p/str.c
Use new std stdio unit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Configure
Updated to dist PL53.
Fix overlapping memcpy test.
Add check for ld. Use $cc instead, if on an ELF system.
With -d, don't reuse config.sh unless $myuname matches.
Warn more explicitly about changing compilers before reloading
old config.sh.
Detect Linux ELF format in nm scan.
Better detection of d_castneg. (ISC 4.1 was passing the test,
but couldn't cast in an argument list.)
Suggest -fpic for dynamic loading if you're using GNU CC under any
name.
No longer test for byacc, fmod, or drem, since they are not used.
Makefile.SH
Use $ld, not ld (only matters for SVR4)
Silence some byacc-related harmless error messages.
README
Suggest using -Dcc=gcc (or whatever).
Warn about reusing old config.sh. (The warning was already there
in 5.001; I've just expanded it a little.)
Warn against using GNU as and GNU ld on SunOS & Solaris.
config.H
config_h.SH
Updated to match Configure.
doio.c
Add socket includes.
ext/Fcntl/Fcntl.xs
Fix typo: s/SETFL/F_SETFL/;
handy.h
Check _G_HAVE_BOOL, not just if it's defined.
hints/dynix.sh
hints/hpux_9.sh
hints/linux.sh
hints/netbsd.sh
hints/titanos.sh
Updated. ELF on linux should probably work.
installperl
Install pod2html, pod2latex, and pod2man.
lib/ExtUtils/MakeMaker.pm
Updated to 4.091. (4.09 + a small writedoc() patch.)
myconfig
Now includes 'ld' command.
perl.c
Revised an #elif clause since Pyramid's cpp doesn't understand
#elif.
perl.h
Fix U_L, I_V, and I_32 cast macros to ensure that
the cast_ulong(), cast_iv(), and cast_i32() functions (if used)
are passed a double. In particular, the FIXSTATUS macros were
handing int's to U_L().
Remove unnecessary HAS_FMOD testing (See util.c).
proto.h
Remove my_fmod() prototype. (See util.c)
sv.h
Fix GV/CV typo.
util.c
Simplified cast_i32() and cast_iv() to mimic what *actually*
happens on a SPARC running SunOS 4.1.3. (Previously, they did
some complicated fmod() calculation. I've since discovered that's
not what happens on the SPARC.)
With this change, fmod() is no longer necessary. Hence my_fmod
is removed. This also means the HAS_FMOD and HAS_DREM tests are
no longer needed in Configure, so they are gone too.
vms/config.vms
Remove unnecessary HAS_FMOD and HAS_DREM defines.
x2p/Makefile.SH
Silence byacc-related things.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is my patch patch.0m for perl5.000.
This patch fixes all remaining problems that I am aware of, and for
which I have a solution. It also updates some hint files and
documentation.
Here's what's new:
Configure
Protect against spaces in uname -m output (unicos).
Look in <stdlib.h> for malloctype and freetype.
Check if user has void free() or int free().
Look in linux/signal.h for signal names.
MANIFEST
MANIFEST.new
Two new hint files: cxux.sh and PowerUNIX.sh.
Sorted.
README
Indicate what gets installed and where it usually goes.
Thanks to Hallvard B. Furuseth <h.b.furuseth@usit.uio.no>
for suggesting this.
U/Myinit.U
Update extliblist comment.
U/dist3_051.pat
This file contains patches to dist 3 (PL 51) that I used to generate
Configure for perl.
U/mallocsrc.U
Look in <stdlib.h> for malloctype and freetype.
Check if user has void free() or int free().
config_h.SH
config.H
Add Free_t to handle void free() vs. int free().
ext/DynaLoader/README
Updated comment.
ext/POSIX/POSIX.pm
creat() has 2 arguments, not 3 (thanks, Paul).
ext/POSIX/POSIX.xs
Fix return type of lseek.
ext/SDBM_File/sdbm/sdbm.h
Add I_STDLIB guard on #include <stdlib.h>
ext/util/extliblist
Add note indicating this is obsolete. Don't remove it because
people might be using it for their own private extensions.
hints/PowerUNIX.sh
hints/cxux.sh
New files. Written by Tom.Horsley@mail.hcsc.com
hints/linux.sh
Simplified.
lib/ExtUtils/MakeMaker.pm
Typo fixed, only affected aix?
malloc.c
Allow for possible int free().
perl.h
pp_sys.c
util.c
If the user is not using vfork, move the #define vfork fork
util after various #include files. Since vfork() and fork() might
have different prototypes, the #define could cause a conflict in
system header files. (Reported for 386bsd.)
Makefile.SH
make realclean will remove h2xs and makeaperl (but leave behind
the .SH versions, of course).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here's what's new:
Configure
Generated by metaconfig PL 51.
Correctly set ./mips on a MIPS system.
Improved (we hope) handling of $archname.
MANIFEST
MANIFEST.new
Made .SH files out of h2xs and makeaperl so that they get the
correct path-to-perl at the top.
Makefile.SH
Propagate $(perllib) to extensions.
U/dist3_051.patches
Two patches to apply on top of metaconfig PL 51. I've sent
them off for inclusion in the next metaconfig update.
config_h.SH
config.H
Regenerated. Only the order of elements has changed.
ext/DB_File/Makefile.PL
ext/GDBM_File/Makefile.PL
ext/NDBM_File/Makefile.PL
Add -L/usr/local/lib to LIBS variable.
ext/POSIX/POSIX.xs
Place #ifdef around FD_CLOEXEC (needed for Apollo).
ext/SDBM_File/sdbm/Makefile.PL
Simplified, thanks to MakeMaker enhancements.
ext/util/make_ext
Pass through $(perllib) argument for cflags.
h2xs.SH
Changed from h2xs to h2xs.SH. Now finds correct path to perl.
hints/next_3_2.sh
Updated for hppa.
hints/solaris_2.sh
Remove potentially problematic -lmalloc from $libswanted.
hints/unicos.sh
Look in /usr/include/rpcsvc for dbm.h.
installperl
Install h2xs.
lib/Cwd.pm
Use 'my' variable to avoid clobbering $_.
lib/ExtUtils/MakeMaker.pm
Upgraded from 4.06 to 4.085.
Lots of documentation improvements.
EXE_FILES to refer to an array of executable files to install.
Reduce chatter during build process.
Don't count a useful -L/path option as a successful search for
a particular library.
Cleanup handling of aix external symbols.
Create/update perllocal.pod to indicate what we've done.
makeaperl.SH
Changed from makeaperl to makeaperl.SH. Now finds correct path
to perl.
x2p/util.c
Delete unused setenv() and envix() functions.
x2p/util.h
Delete unused setenv() and envix() prototypes.
vms/config.vms
Define I_SYS_STAT and I_SYS_TYPES.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
problems reported even after patches 0a through 0j
MakeMaker 4.06 allows you to build extensions away from the source
tree with either static or dynamic loading.
In a rare act of prescience, I've also fixed some un-reported bugs.
Specifically, there were several places where Configure said you could
specify things using ~name notation, but, in fact, you couldn't.
In detail, here's what's included:
Configure
Check I_SYS_TYPES for x2p/a2p.h
Improve and generalize $osvers detection for DEC Alpha
(now will work even for osvers > 3.)
No longer override hint-file setting of $archname.
Don't tell users ~name is ok for Dynamic loading file. It's not.
MANIFEST
MANIFEST.new
Updated.
Makefile.SH
Some trailing ' ' removed from lines.
New target lib/ExtUtils/Miniperl.pm built. This stashes away
miniperlmain.c in the library so new static extensions can be
built away from the source tree.
Minor cleanup.
U/Oldconfig.pat.2
This is a patch to be applied against dist-PL 50 to upgrade
the DEC OSF/1 version detection.
U/archlib.U
Preserve previous value for $archname. Otherwise this is
identical to the unit in dist-PL 50.
U/dlsrc.U
Users may not use ~name notation to find the dynamic loading
module. (Back in early alpha days they could, but that hasn't
worked since the DynaLoader module was introduced.
config.H
Updated.
config_h.SH
Updated.
hints/dec_osf.sh
Updated. Simplified. Don't use ld -no_archive (at least as
the default). It only worked because some versions *ignored* it.
hints/mpeix.sh
Add a few comments. I should have added more.
hints/next_3_0.sh
New hint file from Kevin White <klwhite@magnus.acs.ohio-state.edu>
hints/ultrix_4.sh
Separate out flags not appropriate for gcc.
installperl
Install sperl.o.
lib/ExtUtils/MakeMaker.pm
Upgraded from 4.03 to 4.06. Many improvements. Now possible
to build and install new extensions outside the source tree,
for both static and dynamic loading.
lib/File/Path.pm
New. Creates or removes a series of directories
makeaperl
New utility to create a new perl binary from static extensions
minimod.PL
New. minimod.PL writes the contents of miniperlmain.c into the
module ExtUtils::Miniperl for later perusal (when the perl
source is deleted)
perl.c
ARCHLIB and PRIVLIB changed to ARCHLIB_EXP and PRIVLIB_EXP,
since perl is not prepared to deal with ~name expansion. The
_EXP variables are pre-expanded by Configure.
proto.h
NeXt 3.0 couldn't handle the #ifdef __attribute line.
It said 'illegal #ifdef'.
vms/config.vms
s/ARCHLIB/ARCHLIB_EXP/;
s/PRIVLIB/PRIVLIB_EXP/;
Add in I_SYS_STAT and I_SYS_TYPES, since the source now looks
for them.
vms/ext/MM_VMS.pm
New file.
x2p/a2p.h
Include <sys/types.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
after patches 0a through 0i
Specifically, here's what's included:
Configure
Regenerated with metaconfig patchlevel 50. This changed
a variety of things, mostly related to selecting and changing
the installation prefix.
Handle csh, sed, and byacc no matter what the setting of
d_portable. (This was causing glob problems in patch.0i).
Set d_portable to default to 'y'. It doesn't matter anyway,
but gives people a warm fuzzy feeling.
Remove useless d_group and d_passwd tests.
Add check for <sys/stat.h>.
Improve & generalize AIX version detection.
Consider /opt/man/man1 as a possible place to install man pages.
Be a little more robust about OS version changes when deciding
if the output of uname -a has really changed.
MANIFEST
MANIFEST.new
Added hints/mpeix.sh.
README
Tell users the Configure defaults are probably right.
Makefile.SH
Better detection of whether user has byacc.
Use $(MAKE) instead of make.
U/Loc_sed.U
Works again with d_portable='define'.
U/Myinit.U
Set d_portable=define as default.
U/d_byacc.U
Detect whether user has byacc even if d_portable=define.
U/d_csh.U
Works again with d_portable='define'.
U/d_group.U
Empty file to avoid useless metaconfig test.
U/d_passwd.U
Empty file to avoid useless metaconfig test.
U/dist.patch
This file contains two minor updates to dist3 PL50 that were used
to generage Configure.
U/i_sysstat.U
New test. See if sys/stat.h is available.
config.H
Updated.
config_h.SH
Updated to metaconfig patchlevel 50.
ext/NDBM_File/Makefile.PL
ext/ODBM_File/Makefile.PL
Add -lucb for SVR4 systems.
handy.h
Protect agains g++-2.6.3, which predefines bool. g++ can be
used to compile an extension, but not perl itself. Still, the
extension will #include "perl.h", which eventually gets
"handy.h", which #define's bool. If this happens to you, add
-DHAS_BOOL to your ccflags in your extension, or else ensure that
_G_config.h is #include'd before perl.h. (_G_config.h will define
_G_HAVE_BOOL, if indeed your version of g++ has bool.)
hints/aix.sh
Updated. Handles AIX 3.2.x and 4.1. Comments included!
hints/hpux_9.sh
Updated.
hints/irix_4.sh
Updated. Includes comments for IRIX 4.0.4
hints/linux.sh
Updated. Beginnings of ELF support added, but completely
untested.
hints/mpeix.sh
New hint file.
hints/solaris_2.sh
Useless ccflags="$ccflags" line removed.
hints/svr4.sh
Updated.
installperl
Doesn't use Config anymore (it already reads config.sh
directly. That's probably backwards, but, oh well.
Install perl.exp for AIX.
lib/ExtUtils/MakeMaker.pm
Upgraded from 4.01 to 4.03.
makedepend.SH
Use $MAKE instead of plain make.
Index: op.c
Remove overlapping strcpy().
perl.h
Add test for <sys/stat.h>.
Delete unused VOIDSIG stuff.
Delete unused typedef struct lstring Lstring;
perl_exp.SH
Add safexxxx calls.
pp_sys.c
Delete wayward break in HAS_ALARM section.
proto.h
Change true and false (!) in function prototypes to please
g++-2.6.3, which has true and false built in. (See notes for
handy.h.)
Index: unixish.h
Long-overdue housekeeping.
HAS_GROUP and HAS_PASSWD are always defined.
util.c
Yet another (char*) cast for bcmp.
vms/config.vms
Changed comments to match unixish.h.
writemain.SH
Now correctly handles nested static extensions. Recent
MakeMakers have moved where they get built.
x2p/a2p.h
More definitions that will doubtless cause trouble somewhere
else.
x2p/a2py.c
x2p/walk.c
Remove unprotected char *strchr();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does the following things:
1. Fix various bonehead errors I introduced in patches a-g.
2. Incorporate MakeMaker changes to bring it up to version 4.01 (mostly).
3. Stick in things I forgot in patches a-g (e.g. AIX).
4. Some minor additional cleanup in x2p/ for even pickier compilers.
5. More hints updates (hpux and next).
6. Include newest dl_hpux.xs.
I didn't have time to
1. Fix the overlapping strcpy() in op.c
2. Restore h2xs to Larry's original design to process <>.
3. take out unnecessary "use Config" in installperl.
4. Add in vms patches.
I forgot to
[If I remembered what i forgot, I wouldn't have forgotten it. :]
I deliberately decided *not* to
1. Touch pod/*
2. deal with overloading
Specifically, here's what's included:
Configure
Regenerated to be sure it's up-to-date.
Makefile.SH
Build extension libraries right into lib/auto/whatever.
Don't set CCCDLFLAGS since we don't use it anyway.
Take care to avoid modifying lib/Config.pm without reason
Visit DynaLoader for `make clean'. (Previously only did
so for `make realclean'.)
@echo "Note that make realclean does not delete config.sh"
Include config.h dependency.
U/i_db.U
config_h.SH
config.H
Remove unwanted quotes around db_hashtype and db_prefixtype.
configpm
Allow specification of alternate name for lib/Config.pm,
so the makefile mv-if-diff trick saves needless re-making.
ext/DynaLoader/DynaLoader.pm
Updated warning messages and comments.
ext/DynaLoader/dl_hpux.xs
Updated to version 2.1. Now uses bootstrap files.
ext/util/make_ext
Explicitly use #!/bin/sh to start it up. This is useful
for testing make_ext.
Improve & simplify Nested::Extension::Processing.
More robust handling of `make clean'.
hints/hpux_9.sh
Support both the bundled and unbundled compilers.
hints/next_3_2.sh
Back to using -posix rather than POSIX_SOURCE. And that only
for ext/POSIX/POSIX.xs.
installperl
Special ranlib treatment for NeXT, which gets confused about
timestamps in libraries, even when you just copy the library.
Supply missing '$' in samepath() function.
lib/AutoSplit.pm
New parameters.
lib/ExtUtils/MakeMaker.pm
Upgraded from 3.8 to 4.01.
lib/ExtUtils/xsubpp
Documentation changed from man to pod.
lib/Getopt/Long.pm
Avoid typo warning.
Drop unused $optx.
lib/Text/Tabs.pm
Fix package name.
makedepend.SH
Explicitly start with $startsh.
Catch cpp that prints # <stdin> instead of line numbers.
perl.h
Fix bonehead mistake that ended up calling my_fmod even if
not needed.
perl_exp.SH
also add symbols from interp.sym
proto.h
Delete 2 redundant prototypes (newBINOP and newUNOP).
util.c
Add (char *) casts to unsigned char args to bcmp.
x2p/a2p.h
Rearrange order of <string?.h> and bcopy & bzero stuff.
Change a few function prototypes to void, to reflect actual
usage.
x2p/a2py.c
Change a few function types to void, to reflect actual usage.
x2p/handy.h
Make *alloc declarations match those in x2p/util.c.
x2p/util.c
Make *alloc declarations match those in x2p/handy.h.
x2p/walk.c
Add a (Size_t) cast for comparison of 1 to the result of strlen().
Thanks to all who's work is included here. Little of it is mine.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for Configure]
This patch incorporates various portability fixes and uses the latest
metaconfig to generate Configure (and config_h.SH).
It would take a long time to summarize all that I've changed. I
haven't included many code changes because I'm trying *not* to
duplicate bug fixes Larry may already have applied.
Here's an older description I prepared that's still mostly accurate:
I've also included a few portability fixes in the main source, but
these are certainly not a complete set of everything that's been
reported.
Don't be put off by the size of the patch. Mostly, it's just
rearrangement of the parts in Configure and some cosmetic changes.
Since gcc often supports long long, I had started to add quad support
to Configure. Since SunOS 4.1.3 defines a conflicting "quad"
structure, I changed the name from 'quad' to Quad_t, consistent with
other Configure "types." I also changed "QUAD" to "HAS_QUAD".
However, it turns out it's pretty hard to actually *use* Quad_t.
Neither system I have access to can sprintf() a "long long", nor can
they carry one around in an IV, unless I make IV "long long", which I
didn't want to force generally. Thus I wonder whether any but a
precious few could actually use Quad_t, and dropped the tests from
Configure. I left in the s/quad/Quad_t/ and s/QUAD/HAS_QUAD/ stuff in
case someone else wants to pick it up, and also because I was too lazy
to take it back out :-).
Some highlights:
Configure
Several new options. Use Configure -h to learn more. Also,
read the directions Configure prints. :-)
Spaces now allowed in -D command line options.
New -O option that overrides config.sh.
You can start interactively and then change that to accepting
all the defaults by specifying &-d at any Configure prompt. This
is useful if you have to re-run Configure to only change a few
settings.
Signal type set correctly for the cast{i32,neg} tests.
archname detection improved a bit
guard against ksh users who have set -u
Oldconfig.U cleaned up and regularized a bit more.
Guard against hint files using (and over-writing) $tmp.
Command line options now are processed after metaconfig INIT
lines. Thus things like Configure -Uuseposix should work now.
Various miscellaneous clean-ups.
better use/detection of tr.
i_db.U now checks for hash and prefix type (I think!) I can't
test it here.
i_?db*.U now all check for an associated function before deciding
to include or not the header.
MANIFEST
MANIFEST.new
Sorted & updated.
Makefile.SH
Some shells/makes bombed out on test -d lib/auto || mkdir lib/auto
Use makedir instead.
README
Some additional notes that people won't read :-).
cflags.SH
Now calls $startsh. Weird things were happening on Intergraph,
and this might be related.
config.H
Updated.
config_h.SH
Regenerated.
deb.c
Varargs dependencies on STANDARD_C replaced by I_STDARG.
doop.c
quad stuff.
ext/DB_File/DB_File.xs
Use the new DB_Hash_t and DB_Prefix_t symbols.
ext/SDBM_File/sdbm/sdbm.h
Fix #defines to be more robust.
mg.c
Replace VOIDSIG by metaconfig's Signal_t.
opcode.h
opcode.pl
semop only takes 2 arguments, not 3.
perl.c
Better guard on getenv() prototype. A hint file can use this, if
necessary. Me, I think some compilers are just too picky.
perl.h
The (very) beginnings of some Quad support. See above.
Remove the very troublesome sprintf() prototype. Since we don't
_use_ the return value anyway (since it's not portable) this
should be o.k. The problem was that some systems CAN_PROTOTYPE
but include char *sprintf(); in <stdio.h>. That's incompatible
with the version we used to have in perl.h. Most people have
a prototype for sprintf() in <stdio.h>. Those that don't probably
can get by without it anyway.
Protect the timesbuf by the specific HAS_TIMES test. Some older
gcc-2.something/Solaris 2.something installations apparently don't
have times.
pp.c
More quad stuff.
pp_ctl.c
s/STANDARD_C/I_STDARG/ for varargs stuff.
pp_sys.c
use Signal_t.
proto.h
Update to match new metaconfig names.
util.c
s/STANDARD_C/I_STDARG/ for varargs stuff.
comment out <unistd.h>. A pause prototype was causing problems on
some systems.
vms/config.vms
Changed to use Signal_t.
|
|
|
|
|
|
|
|
|
|
|
| |
[editor's note: this commit combines approximate 4 months of furious
releases of Andy Dougherty and Larry Wall - see pod/perlhist.pod for
details. Andy notes that;
Alas neither my "Irwin AccuTrack" nor my DC 600A quarter-inch cartridge
backup tapes from that era seem to be readable anymore. I guess 13 years
exceeds the shelf life for that backup technology :-(.
]
|
|
|
|
| |
[editor's note: the sparc executables have not been included,
and emacs backup files have been removed]
|
|
|
|
|
| |
[the last one taken from the September '94 InfoMagic CD; a similar
style of cleanup as the previous commits was performed]
|
|
|
|
|
|
| |
[editor's note: the sparc executables have not been included,
and emacs backup files and other cruft such as patch backup files have
been removed. This was reconstructed from a tarball found on the
September 1994 InfoMagic CD]
|
|
|
|
| |
[editor's note: from history.perl.org. The sparc executables
originally included in the distribution are not in this commit.]
|
|
|
|
| |
See patch #20.
|
|
|
|
| |
See patch #11.
|
|
|
|
| |
See patch #4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Subject: Configure now handles defaults much better
Subject: Configure now knows if config.sh was built on this machine
Subject: Configure now checks file existence more efficiently
Subject: Configure now handles stupid SCO csh
Configure has been heavily revised. Many of the tests that used
to simply force a decision now check that decision against the
previous value of the variable, and offer to let you change it.
The default now is to keep the old value, so that you don't lose
information from your previous run.
Because of this, it's now more important to know whether, in fact,
config.sh was produced on this machine and on this version of
the operating system. config.sh now contains a lastuname variable
which contains the output of uname -a. If this matches the current
output of uname -a, Configure defaults to including the old config.sh.
Otherwise not. If there is no valid config.sh, then Configure looks
defaults for the current architecture in the hints/ subdirectory
instead. The guesswork I've done in this section of code is
phenomenal, so you'll have to instruct me where I've misparsed
the output of uname (a problem in portability all of its own).
Subject: Configure now differentiates getgroups() type from getgid() type
Subject: Configure now figures out malloc ptr type
Subject: Configure now does better on sprintf()
Configure was assuming that the array of values returned from
getgroups was the same type as the gids returned by other system
calls. Unfortunately, reality set in. Likewise for malloc() and
sprintf(), which there is only one portable way to find out the return
value of: try it one way or the other, and see if it blows up.
Subject: C flags are now settable on a per-file basis
Subject: reduced maximum branch distance in eval.c
Certain compilers and/or optimizers get bozoed out by large
compilation units, or by large structures within those units.
Previously, you either had to change the compiler flags for all
the files, or do hairy editing in Makefile.SH and remake the Makefile,
necessitating a make depend. Now there is a script called cflags.SH
whose duty it is to return the proper CFLAGS for any given C file.
You can change the flags in just one spot now and they will be
immediately reflected in the next make (or even in the current
make, if one is running). Eventually I expect that any of the hints
files could modify cflags.SH, but I haven't done that yet.
The particular problem of long jump offsets in eval.c has been at
least partially alleviated by locating some of the labels in the
middle of the function instead of at the end. This still doesn't
help the poor Vax when you compile with -g, since it puts a jump
to the end of the function to allocate the stack frame and then
jumps back to the beginning of the function to execute it. For
now Vaxen will have to stick with -O or hand assemble eval.c and
teval.c with a -J switch.
Subject: fixed "Bad free" error
Subject: fixed debugger coredump on subroutines
Subject: regexec only allocated space for 9 subexpresssions
These are problems that were reported on the net and had unofficial
patches. Now they have official patches. Be sure to patch a
copy of your files without the unofficial patches, or the patch
program will get confused.
Subject: you may now use "die" and "caller" in a signal handler
Someone pointed out that using die to raise an exception out
of a signal handler trashed the expression value stack if the
exception was caught by eval. While fixing that, I also fixed
the longstanding problem that signal handlers didn't have a normal
call frame, which prevented the caller function from working.
Subject: fixed undefined environ problem
Subject: hopefully straightened out some of the Xenix mess
Subject: random cleanup in cpp namespace
Just keeping up with the current progress in non-standardization.
Subject: fixed failed fork to return undef as documented
The open function returns undef on failed implicit forks. The Book
assumed that the same was true of an explicit fork. I've made the
function behave like the Book says. It's a pity there's no way
to have an undefined value that returns -1 in a numeric context
but false in a boolean context...
Subject: generalized the yaccpar fixer some
Thanks to Andy Dougherty, perly.fixer now knows how to fix SVR3 2.2's
yaccpar code to do dynamic parse stack allocation. He also made it
easy for other people to insert their code there. Hooray!
Subject: find2perl sometimes needs to stat on the 2nd leg of a -o
Subject: find2perl didn't correctly handle switches with an argument of 0
In attempting to delay the lstat to the last moment, in case a filename
could be rejected on the basis of its name, find2perl neglected to
take into account the fact that control might pass to the 2nd half
of a -o without executing all of the 1st half, in particular without
executing the lstat.
find2perl was wisely removing leading zeroes from numbers that would
mistakenly be interpreted as octal numbers by Perl. Unfortunately,
this caused it to delete the number 0 entirely.
Subject: fixed dumpvar not to dump internal debugging info
Subject: substr($ENV{"PATH"},0,0) = "/foo:" didn't modify environment
Subject: $foo .= <BAR> could cause core dump for certain lengths of $foo
Subject: perl -de "print" wouldn't stop at the first statement
Random glitchy little things.
Subject: I'm at NetLabs now
I'm now working for NetLabs, Inc., and I hadn't changed my
address everywhere.
|
|
So far, 4.0 is still a beta test version. For the last production
version, look in pub/perl.3.0/kits@44.
|