This is patch.2b1f to perl5.002beta1.
authorAndy Dougherty <doughera.lafayette.edu>
Fri, 8 Dec 1995 00:34:53 +0000 (00:34 +0000)
committerAndy Dougherty <doughera.lafayette.edu>
Fri, 8 Dec 1995 00:34:53 +0000 (00:34 +0000)
cd to your perl source directory, execute the command above, and type
patch -p1 -N < patch.2b1f

This patch includes patches for the following items:
Changes.Conf
Configure
MANIFEST
Makefile.SH
XSUB.h
ext/POSIX/POSIX.pm
ext/POSIX/POSIX.pod
ext/POSIX/POSIX.xs
ext/Socket/Socket.pm
gv.c
lib/Cwd.pm
lib/Sys/Syslog.pm
lib/diagnostics.pm
t/lib/socket.t
toke.c
The changes are described after each /^Index/ line below.

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

16 files changed:
Changes.Conf
Configure
MANIFEST
Makefile.SH
XSUB.h
ext/POSIX/POSIX.pm
ext/POSIX/POSIX.pod [new file with mode: 0644]
ext/POSIX/POSIX.xs
ext/Socket/Socket.pm
gv.c
lib/Cwd.pm
lib/Sys/Syslog.pm
lib/diagnostics.pm
minimod.pl [moved from minimod.PL with 100% similarity]
t/lib/socket.t [new file with mode: 0644]
toke.c

index f77944a..a19185f 100644 (file)
@@ -9,7 +9,8 @@ build process for perl.  Most of these will not be visible to the
 ordinary user--they just make the process more robust and likely to
 work on a wider range of platforms.
 
-This is a brief summary of the most important changes:
+This is a brief summary of the most important changes.  A more
+detailed description is given below.
 
     Slightly changed installation directories.  See INSTALL.
 
@@ -40,13 +41,866 @@ versions, and which answer to keep can be difficult to sort out.
 Therefore, you are probably better off ignoring your old config.sh, as
 in the following:
 
-       make distclean          # (if you've built perl before)
+       make -k distclean       # (if you've built perl before)
        rm -f config.sh         # (in case distclean mysteriously fails)
        sh Configure [whatever options you like]
        make depend
        make
        make test
 
+This, and much more, is described in the new INSTALL file.
+
+Here are the detailed changes from 5.001m to 5.002beta1:
+
+# rm -f Doc/perl5-notes                # Obsolete
+# rm -f c2ph.SH                        # Replaced by c2ph.PL
+# rm -f emacs/cperl-mode               # Obsolete
+# rm -f emacs/emacs19          # Obsolete
+# rm -f emacs/perl-mode.el     # Obsolete
+# rm -f emacs/perldb.el                # Obsolete
+# rm -f emacs/perldb.pl                # Obsolete
+# rm -f emacs/tedstuff         # Obsolete
+# rm -f h2ph.SH                        # Replaced by h2ph.PL
+# rm -f h2xs.SH                        # Replaced by h2xs.PL
+# rm -f hints/hpux_9.sh                # Replaced by generic hpux.sh
+# rm -f hints/sco_3.sh         # Replaced by generic sco.sh
+# rm -f perldoc.SH             # Replaced by perldoc.PL
+# rm -f pod/pod2html.SH                # Replaced by pod2html.PL
+# rm -f pod/pod2latex.SH               # Replaced by pod2latex.PL
+# rm -f pod/pod2man.SH         # Replaced by pod2man.PL
+# rm -f x2p/find2perl.SH               # Replaced by find2perl.PL
+# rm -f x2p/s2p.SH             # Replaced by s2p.PL
+# exit
+
+
+Index: patchlevel.h
+Incremented to 2!
+*** perl5.001.lwall/patchlevel.h       Sun Mar 12 22:29:12 1995
+--- perl5.002beta1/patchlevel.h        Sat Nov 18 15:41:15 1995
+***************
+
+Index: Changes
+This includes the Changes file Larry sent me.  I added the first
+paragraph.
+*** perl5.001.lwall/Changes    Mon Mar 13 00:44:07 1995
+--- perl5.002beta1/Changes     Sat Nov 18 15:43:29 1995
+***************
+
+Index: Changes.Conf
+An all too brief summary.
+*** perl5.001.lwall/Changes.Conf       Thu Oct 19 21:00:06 1995
+--- perl5.002beta1/Changes.Conf        Mon Nov 20 10:08:05 1995
+***************
+
+Index: Configure
+
+Upgraded to metaconfig PL60 (despite the erroneous metaconfig message.
+
+Layed some groundwork for support on non Unix systems, such as OS/2.
+Define things such as  .o vs. .obj,  '' vs. .exe, .a vs. .lib, etc.
+
+Include I_LOCALE testing.
+
+Include checks for new library set-up.  I don't want to ever have to
+change this again.  It's documented more clearly in INSTALL.
+
+Figure out correct string for $startperl (usually
+#!/usr/local/bin/perl).
+
+Improve signal detection even more.  Once again, the signal number
+corresponding to sig_name[n] is n (up to NSIG-1).  Gaps in signal
+numbers (e.g. on Solaris) are allowed and are filled with
+innocuous names such as NUM37 NUM38, etc., where the 37 or 38
+represents the actual signal number.
+
+Prereq:  3.0.1.8 
+*** perl5.001.lwall/Configure  Mon Oct 23 14:08:59 1995
+--- perl5.002beta1/Configure   Mon Nov 20 10:00:33 1995
+***************
+
+Index: INSTALL
+
+Explain the library directory structure.
+
+Remove some tailing whitespace.
+
+Indicate that only the interfaces to gdbm and db are provided, not
+the libraries themselves.
+
+Add section on upgrading from previous versions of perl5.00x.
+
+Mention how to override old config.sh with Configure -D and -O.
+
+*** perl5.001.lwall/INSTALL    Mon Oct 23 14:10:26 1995
+--- perl5.002beta1/INSTALL     Mon Nov 20 10:46:48 1995
+***************
+
+Index: MANIFEST
+
+In an attempt to make the distribution slightly less Unix specific,
+I've changed .SH extraction to a .PL extraction where possible.
+That way folks on systems without a shell can still get the
+auxilliarly files such as find2perl (assuming they *can* build
+perl).
+
+The emacs/ directory was hopelessly out of date.  I don't use emacs,
+but included a current cperl-mode.el
+
+*** perl5.001.lwall/MANIFEST   Tue Nov 14 15:21:03 1995
+--- perl5.002beta1/MANIFEST    Mon Nov 20 12:40:41 1995
+***************
+
+Index: Makefile.SH
+
+Add variables for non unix systems.
+
+Add .PL file extraction logic.
+
+*** perl5.001.lwall/Makefile.SH        Tue Nov 14 20:25:48 1995
+--- perl5.002beta1/Makefile.SH Mon Nov 20 15:56:12 1995
+***************
+
+Index: XSUB.h
+
+Protect arguments of macros with ().
+
+*** perl5.001.lwall/XSUB.h     Tue Mar  7 14:10:00 1995
+--- perl5.002beta1/XSUB.h      Fri Nov 10 13:11:02 1995
+***************
+
+Index: c2ph.PL
+Replaces c2ph.SH. 
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/c2ph.PL     Mon Nov 20 12:36:17 1995
+***************
+
+Index: cflags.SH
+Allow for .o or .obj in file names.
+*** perl5.001.lwall/cflags.SH  Thu Jan 19 19:06:13 1995
+--- perl5.002beta1/cflags.SH   Tue Nov 14 15:18:41 1995
+***************
+
+Index: config_H
+Updated.
+Prereq:  3.0.1.3 
+*** perl5.001.lwall/config_H   Thu Oct 19 21:01:14 1995
+--- perl5.002beta1/config_H    Mon Nov 20 15:41:49 1995
+***************
+
+Index: config_h.SH
+Updated to match new Configure.
+Prereq:  3.0.1.3 
+*** perl5.001.lwall/config_h.SH        Mon Oct 23 14:10:38 1995
+--- perl5.002beta1/config_h.SH Mon Nov 20 10:00:33 1995
+***************
+
+Index: configpm
+Add in routine to print out full config.sh file.
+*** perl5.001.lwall/configpm   Wed Jun  7 19:46:01 1995
+--- perl5.002beta1/configpm    Tue Oct 31 11:51:52 1995
+***************
+
+Index: doop.c
+Check for sprintf memory overflow that can arise from things
+like %999999s.
+
+*** perl5.001.lwall/doop.c     Sun Jul  2 23:33:44 1995
+--- perl5.002beta1/doop.c      Wed Nov 15 15:08:01 1995
+***************
+
+Index: emacs/cperl-mode.el
+New version.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/emacs/cperl-mode.el Sat Nov 11 16:29:33 1995
+***************
+
+Index: embed.h
+Remove unnecessary whichsigname introduced in patch.1n.
+*** perl5.001.lwall/embed.h    Tue Nov 14 15:21:08 1995
+--- perl5.002beta1/embed.h     Wed Nov 15 14:48:47 1995
+***************
+
+Index: ext/DB_File/DB_File.pm
+Updated to version 1.01.
+*** perl5.001.lwall/ext/DB_File/DB_File.pm     Wed Jun  7 19:46:14 1995
+--- perl5.002beta1/ext/DB_File/DB_File.pm      Tue Nov 14 14:14:25 1995
+***************
+
+Index: ext/DB_File/DB_File.xs
+Updated to version 1.01.
+*** perl5.001.lwall/ext/DB_File/DB_File.xs     Wed Jun  7 19:46:17 1995
+--- perl5.002beta1/ext/DB_File/DB_File.xs      Tue Nov 14 14:14:37 1995
+***************
+
+Index: ext/DB_File/Makefile.PL
+Updated to version 1.01.
+*** perl5.001.lwall/ext/DB_File/Makefile.PL    Wed Feb 22 14:36:32 1995
+--- perl5.002beta1/ext/DB_File/Makefile.PL     Tue Nov 14 14:14:17 1995
+***************
+
+Index: ext/DB_File/typemap
+Fix typemap to avoid core dump.
+*** perl5.001.lwall/ext/DB_File/typemap        Tue Oct 18 12:27:52 1994
+--- perl5.002beta1/ext/DB_File/typemap Tue Oct 31 11:53:28 1995
+***************
+
+Index: ext/DynaLoader/DynaLoader.pm
+Add parentheses to Carp::confess call.
+*** perl5.001.lwall/ext/DynaLoader/DynaLoader.pm       Thu Oct 19 20:13:25 1995
+--- perl5.002beta1/ext/DynaLoader/DynaLoader.pm        Fri Nov 10 11:49:00 1995
+***************
+
+Index: ext/DynaLoader/dl_os2.xs
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/ext/DynaLoader/dl_os2.xs    Mon Nov 13 22:58:42 1995
+***************
+
+Index: ext/Fcntl/Fcntl.xs
+Add O_BINARY define for OS/2.
+*** perl5.001.lwall/ext/Fcntl/Fcntl.xs Mon Oct 23 14:10:54 1995
+--- perl5.002beta1/ext/Fcntl/Fcntl.xs  Mon Nov 13 23:01:40 1995
+***************
+
+Index: ext/GDBM_File/GDBM_File.pm
+Added a tiny bit of documentation, including how to get gdbm.
+Shamelessly stolen from the DB_File.pm documentation.
+*** perl5.001.lwall/ext/GDBM_File/GDBM_File.pm Wed Jun  7 19:46:34 1995
+--- perl5.002beta1/ext/GDBM_File/GDBM_File.pm  Mon Nov 20 10:22:26 1995
+***************
+
+Index: ext/GDBM_File/GDBM_File.xs
+Add gdbm_EXISTS #define.
+*** perl5.001.lwall/ext/GDBM_File/GDBM_File.xs Sat Jul  1 18:44:02 1995
+--- perl5.002beta1/ext/GDBM_File/GDBM_File.xs  Sat Nov 11 14:25:50 1995
+***************
+
+Index: ext/NDBM_File/hints/solaris.pl
+Updated for MakeMaker 5.0x.
+*** perl5.001.lwall/ext/NDBM_File/hints/solaris.pl     Wed Jun  7 19:46:39 1995
+--- perl5.002beta1/ext/NDBM_File/hints/solaris.pl      Fri Nov 10 10:39:23 1995
+***************
+
+Index: ext/ODBM_File/hints/sco.pl
+Updated for MakeMaker 5.0x.
+*** perl5.001.lwall/ext/ODBM_File/hints/sco.pl Wed Jun  7 19:46:44 1995
+--- perl5.002beta1/ext/ODBM_File/hints/sco.pl  Fri Nov 10 10:39:32 1995
+***************
+
+Index: ext/ODBM_File/hints/solaris.pl
+Updated for MakeMaker 5.0x.
+*** perl5.001.lwall/ext/ODBM_File/hints/solaris.pl     Wed Jun  7 19:46:46 1995
+--- perl5.002beta1/ext/ODBM_File/hints/solaris.pl      Fri Nov 10 10:39:44 1995
+***************
+
+Index: ext/ODBM_File/hints/svr4.pl
+Updated for MakeMaker 5.0x.
+*** perl5.001.lwall/ext/ODBM_File/hints/svr4.pl        Wed Jun  7 19:46:48 1995
+--- perl5.002beta1/ext/ODBM_File/hints/svr4.pl Fri Nov 10 10:39:54 1995
+***************
+
+Index: ext/POSIX/POSIX.pm
+Remove POSIX_loadlibs relics from perl5alpha days.
+*** perl5.001.lwall/ext/POSIX/POSIX.pm Thu Sep 21 19:14:19 1995
+--- perl5.002beta1/ext/POSIX/POSIX.pm  Wed Nov 15 14:54:09 1995
+***************
+
+Index: ext/POSIX/POSIX.xs
+Change whichsigname(sig) back to sig_name[sig].
+*** perl5.001.lwall/ext/POSIX/POSIX.xs Mon Oct 23 14:11:01 1995
+--- perl5.002beta1/ext/POSIX/POSIX.xs  Wed Nov 15 14:56:22 1995
+***************
+
+Index: ext/SDBM_File/Makefile.PL
+Updated for MakeMaker 5.0x to allow compilation on non-unix systems.
+*** perl5.001.lwall/ext/SDBM_File/Makefile.PL  Thu Jan 19 18:59:02 1995
+--- perl5.002beta1/ext/SDBM_File/Makefile.PL   Tue Nov 14 11:16:43 1995
+***************
+
+Index: ext/SDBM_File/sdbm/Makefile.PL
+Updated for MakeMaker 5.0x to allow compilation on non-unix systems.
+*** perl5.001.lwall/ext/SDBM_File/sdbm/Makefile.PL     Wed Feb 22 14:36:47 1995
+--- perl5.002beta1/ext/SDBM_File/sdbm/Makefile.PL      Tue Nov 14 11:17:16 1995
+***************
+
+Index: ext/SDBM_File/sdbm/sdbm.c
+Include OS/2 O_BINARY flag.
+Prereq:  1.16 
+*** perl5.001.lwall/ext/SDBM_File/sdbm/sdbm.c  Wed Jun  7 19:46:57 1995
+--- perl5.002beta1/ext/SDBM_File/sdbm/sdbm.c   Mon Nov 13 23:01:41 1995
+***************
+
+Index: ext/Socket/Makefile.PL
+Updated to 1.3.  Actually we're up to 1.4, but I forgot to update
+the Makefile.PL.
+*** perl5.001.lwall/ext/Socket/Makefile.PL     Thu Jan 19 18:59:06 1995
+--- perl5.002beta1/ext/Socket/Makefile.PL      Sat Nov 18 15:36:56 1995
+***************
+
+Index: ext/Socket/Socket.pm
+Updated to 1.3.  Actually we're up to 1.4, but I forgot to update
+the version number.  This adds some non-portable stuff to manipulate
+structures in <sys/un.h>.  I'll have to #ifdef it out in the next
+patch.
+
+*** perl5.001.lwall/ext/Socket/Socket.pm       Sat Jul  1 15:51:54 1995
+--- perl5.002beta1/ext/Socket/Socket.pm        Sat Nov 18 15:37:03 1995
+***************
+
+Index: ext/Socket/Socket.xs
+Updated to 1.3.  Actually we're up to 1.4, but I forgot to update
+the version number.  This adds some non-portable stuff to manipulate
+structures in <sys/un.h>.  I'll have to #ifdef it out in the next
+patch.
+
+*** perl5.001.lwall/ext/Socket/Socket.xs       Sat Jul  1 15:51:56 1995
+--- perl5.002beta1/ext/Socket/Socket.xs        Sat Nov 18 15:36:57 1995
+***************
+
+Index: global.sym
+Remove unnecessary whichsigname that was added in patch.1n.
+*** perl5.001.lwall/global.sym Tue Nov 14 15:21:11 1995
+--- perl5.002beta1/global.sym  Wed Nov 15 14:58:14 1995
+***************
+
+Index: h2ph.PL
+Converted from h2ph.SH.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/h2ph.PL     Sun Nov 19 23:00:39 1995
+***************
+
+Index: h2xs.PL
+Converted from h2xs.SH.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/h2xs.PL     Sun Nov 19 22:37:58 1995
+***************
+
+Index: hints/aix.sh
+Add gcc-specific -Xlinker, if you're using gcc.
+*** perl5.001.lwall/hints/aix.sh       Thu Oct 19 21:02:08 1995
+--- perl5.002beta1/hints/aix.sh        Mon Nov 13 23:03:33 1995
+***************
+
+Index: hints/freebsd.sh
+Warn about possible here-document problem.
+*** perl5.001.lwall/hints/freebsd.sh   Sat Jul  1 18:44:07 1995
+--- perl5.002beta1/hints/freebsd.sh    Sat Nov 18 16:21:20 1995
+***************
+
+Index: hints/hpux.sh
+Replace old hpux_9.sh, since this works for 9 and 10.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/hints/hpux.sh       Mon Nov 20 09:53:28 1995
+***************
+
+Index: hints/irix_6_2.sh
+New hint file.  This should be merged with irix_6.sh, since it's
+almost identical.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/hints/irix_6_2.sh   Mon Nov 20 11:16:55 1995
+***************
+
+Index: hints/ncr_tower.sh
+Give pointers about directory functions.
+*** perl5.001.lwall/hints/ncr_tower.sh Tue Oct 18 12:33:25 1994
+--- perl5.002beta1/hints/ncr_tower.sh  Tue Oct 31 11:57:51 1995
+***************
+
+Index: hints/netbsd.sh
+Updated.
+*** perl5.001.lwall/hints/netbsd.sh    Wed Jun  7 19:47:45 1995
+--- perl5.002beta1/hints/netbsd.sh     Mon Nov 13 23:04:17 1995
+***************
+
+Index: hints/os2.sh
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/hints/os2.sh        Tue Nov 14 11:07:33 1995
+***************
+
+Index: hints/sco.sh
+Renamed from sco_3, since it should apply to most recent versions.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/hints/sco.sh        Mon Jun  5 11:50:11 1995
+***************
+
+Index: hints/solaris_2.sh
+Remove temporary file try.c.
+*** perl5.001.lwall/hints/solaris_2.sh Thu Oct 19 21:02:37 1995
+--- perl5.002beta1/hints/solaris_2.sh  Mon Nov 20 16:01:50 1995
+***************
+
+Index: hints/ultrix_4.sh
+Note that you can substitute sh5 for sh to get a big speed up.
+*** perl5.001.lwall/hints/ultrix_4.sh  Mon Feb 13 20:15:05 1995
+--- perl5.002beta1/hints/ultrix_4.sh   Sat Nov 11 17:11:41 1995
+***************
+
+Index: installman
+Quit if they just asked for help with -h.
+*** perl5.001.lwall/installman Sat Jul  1 18:44:09 1995
+--- perl5.002beta1/installman  Mon Nov  6 11:16:43 1995
+***************
+
+Index: installperl
+Updated to use Config rather than hand-reading config.sh again.
+
+Install h2ph.
+
+Create site_perl and site_perl/archname directories.
+
+*** perl5.001.lwall/installperl        Sat Jul  1 18:44:12 1995
+--- perl5.002beta1/installperl Mon Nov 20 12:55:08 1995
+***************
+
+Index: lib/AutoSplit.pm
+Handle OS/2 backslashes.
+
+Tim's prototype patch.
+
+Less enthusiastic checking of autoloader_seen.
+
+*** perl5.001.lwall/lib/AutoSplit.pm   Sat Jul  1 15:52:03 1995
+--- perl5.002beta1/lib/AutoSplit.pm    Wed Nov 15 15:06:19 1995
+***************
+
+Index: lib/Cwd.pm
+Updated for Unix, NT, and OS/2.
+*** perl5.001.lwall/lib/Cwd.pm Wed Jun  7 19:48:18 1995
+--- perl5.002beta1/lib/Cwd.pm  Mon Nov 13 23:01:38 1995
+***************
+
+Index: lib/ExtUtils/Liblist.pm
+Updated to MakeMaker 5.06.
+*** perl5.001.lwall/lib/ExtUtils/Liblist.pm    Wed Jun  7 19:48:27 1995
+--- perl5.002beta1/lib/ExtUtils/Liblist.pm     Mon Nov 13 22:03:29 1995
+***************
+
+Index: lib/ExtUtils/MakeMaker.pm
+Updated to MakeMaker 5.06.
+Prereq:  1.21 
+*** perl5.001.lwall/lib/ExtUtils/MakeMaker.pm  Thu Oct 19 21:02:57 1995
+--- perl5.002beta1/lib/ExtUtils/MakeMaker.pm   Sat Nov 18 16:01:05 1995
+***************
+
+Index: lib/ExtUtils/Manifest.pm
+Updated to MakeMaker 5.06.
+*** perl5.001.lwall/lib/ExtUtils/Manifest.pm   Sat Jul  1 15:52:11 1995
+--- perl5.002beta1/lib/ExtUtils/Manifest.pm    Mon Nov 13 22:03:30 1995
+***************
+
+Index: lib/ExtUtils/xsubpp
+Updated to xsubpp-1.923.
+*** perl5.001.lwall/lib/ExtUtils/xsubpp        Sat Jul  1 20:08:00 1995
+--- perl5.002beta1/lib/ExtUtils/xsubpp Mon Nov 20 11:03:49 1995
+***************
+
+Index: lib/File/Find.pm
+OS/2 patch for nlink.
+*** perl5.001.lwall/lib/File/Find.pm   Sat Jul  1 15:52:13 1995
+--- perl5.002beta1/lib/File/Find.pm    Wed Nov 15 15:20:03 1995
+***************
+
+Index: lib/Net/Ping.pm
+Updated to Net::Ping 1.00.
+*** perl5.001.lwall/lib/Net/Ping.pm    Wed Jun  7 19:49:13 1995
+--- perl5.002beta1/lib/Net/Ping.pm     Tue Oct 31 11:15:55 1995
+***************
+
+Index: lib/Shell.pm
+Updated for OS/2 or Unix.
+*** perl5.001.lwall/lib/Shell.pm       Tue Oct 18 12:34:59 1994
+--- perl5.002beta1/lib/Shell.pm        Mon Nov 13 23:01:40 1995
+***************
+
+Index: lib/Test/Harness.pm
+Updated for OS/2 or Unix.
+*** perl5.001.lwall/lib/Test/Harness.pm        Tue Oct 18 12:38:35 1994
+--- perl5.002beta1/lib/Test/Harness.pm Mon Nov 13 23:01:40 1995
+***************
+
+Index: lib/Text/Tabs.pm
+Updated.
+*** perl5.001.lwall/lib/Text/Tabs.pm   Wed Jun  7 19:49:20 1995
+--- perl5.002beta1/lib/Text/Tabs.pm    Sat Nov 18 16:08:55 1995
+***************
+
+Index: lib/Text/Wrap.pm
+New module.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/lib/Text/Wrap.pm    Sat Nov 18 16:08:56 1995
+***************
+
+Index: lib/diagnostics.pm
+New module.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/lib/diagnostics.pm  Tue Nov 14 16:16:36 1995
+***************
+
+Index: lib/lib.pm
+Automatically try to load an architecture-dependent library too.
+*** perl5.001.lwall/lib/lib.pm Sat Jul  1 15:51:37 1995
+--- perl5.002beta1/lib/lib.pm  Fri Nov 10 16:50:43 1995
+***************
+
+Index: lib/overload.pm
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/lib/overload.pm     Sat Nov 18 16:03:33 1995
+***************
+
+Index: lib/perl5db.pl
+Emacs and OS/2 fixes.
+*** perl5.001.lwall/lib/perl5db.pl     Sun Mar 12 22:34:53 1995
+--- perl5.002beta1/lib/perl5db.pl      Wed Nov 15 22:37:45 1995
+***************
+
+Index: lib/splain
+New file -- same as diagnostics.pm.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/lib/splain  Tue Nov 14 16:16:36 1995
+***************
+
+Index: mg.c
+Remove unnecessary whichsigname introduced in 5.001n.
+*** perl5.001.lwall/mg.c       Tue Nov 14 15:31:03 1995
+--- perl5.002beta1/mg.c        Wed Nov 15 15:44:10 1995
+***************
+
+Index: minimod.PL
+Made c++ friendly.
+*** perl5.001.lwall/minimod.PL Mon Feb 13 20:15:47 1995
+--- perl5.002beta1/minimod.PL  Sun Nov 19 23:01:02 1995
+***************
+
+Index: miniperlmain.c
+Made c++ friendly.
+*** perl5.001.lwall/miniperlmain.c     Mon Feb 13 21:48:50 1995
+--- perl5.002beta1/miniperlmain.c      Sat Nov 18 15:48:10 1995
+***************
+
+Index: op.c
+Larry's post 5.001mx prototype patch.
+*** perl5.001.lwall/op.c       Tue Nov 14 20:36:08 1995
+--- perl5.002beta1/op.c        Wed Nov 15 22:10:36 1995
+***************
+
+Index: os2/Makefile.SH
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/Makefile.SH     Tue Nov 14 11:07:32 1995
+***************
+
+Index: os2/POSIX.mkfifo
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/POSIX.mkfifo    Tue Nov 14 10:48:16 1995
+***************
+
+Index: os2/README
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/README  Tue Nov 14 14:42:13 1995
+***************
+
+Index: os2/diff.Makefile
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/diff.Makefile   Tue Nov 14 11:09:29 1995
+***************
+
+Index: os2/diff.configure
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/diff.configure  Sun Nov 12 01:31:34 1995
+***************
+
+Index: os2/diff.installperl
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/diff.installperl        Tue Nov 14 11:09:28 1995
+***************
+
+Index: os2/diff.mkdep
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/diff.mkdep      Tue Nov 14 11:09:28 1995
+***************
+
+Index: os2/diff.x2pMakefile
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/diff.x2pMakefile        Tue Nov 14 11:09:29 1995
+***************
+
+Index: os2/os2.c
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/os2.c   Tue Nov 14 11:07:33 1995
+***************
+
+Index: os2/os2ish.h
+New file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/os2/os2ish.h        Tue Nov 14 11:07:33 1995
+***************
+
+Index: perl.c
+Add -h option to print out usage.
+
+Add 'beta' to version number.
+
+Add new library hierarchy.  See INSTALL.
+
+*** perl5.001.lwall/perl.c     Tue Nov 14 20:09:28 1995
+--- perl5.002beta1/perl.c      Sun Nov 19 16:11:29 1995
+***************
+
+Index: perl.h
+
+Move around some includes for OS/2.
+
+Check for <locale.h>
+
+*** perl5.001.lwall/perl.h     Thu Nov  9 19:50:43 1995
+--- perl5.002beta1/perl.h      Wed Nov 15 17:13:16 1995
+***************
+
+Index: perldoc.PL
+
+Moved from perldoc.SH.  Updated to handle no nroff.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/perldoc.PL  Tue Nov 14 14:57:57 1995
+***************
+
+Index: pod/Makefile
+Updated for new pods and for new .PL format.
+*** perl5.001.lwall/pod/Makefile       Wed Jun  7 19:50:02 1995
+--- perl5.002beta1/pod/Makefile        Mon Nov 20 13:00:50 1995
+***************
+
+Index: pod/perl.pod
+Updated to refer to new pods.
+*** perl5.001.lwall/pod/perl.pod       Thu Oct  5 19:54:43 1995
+--- perl5.002beta1/pod/perl.pod        Sat Nov 18 17:23:58 1995
+***************
+
+Index: pod/perlbook.pod
+Updated info.
+*** perl5.001.lwall/pod/perlbook.pod   Wed Feb 22 18:32:35 1995
+--- perl5.002beta1/pod/perlbook.pod    Sat Nov 11 17:17:23 1995
+***************
+
+Index: pod/perlbot.pod
+Include SUPER stuff.
+*** perl5.001.lwall/pod/perlbot.pod    Wed Jun  7 19:50:14 1995
+--- perl5.002beta1/pod/perlbot.pod     Fri Nov 10 17:27:33 1995
+***************
+
+Index: pod/perlcall.pod
+Change perlapi to perlxs.
+*** perl5.001.lwall/pod/perlcall.pod   Wed Jun  7 19:50:17 1995
+--- perl5.002beta1/pod/perlcall.pod    Tue Oct 31 15:37:57 1995
+***************
+
+Index: pod/perldata.pod
+Tom's updates.
+*** perl5.001.lwall/pod/perldata.pod   Sun Mar 12 22:35:14 1995
+--- perl5.002beta1/pod/perldata.pod    Sat Nov 18 17:23:59 1995
+***************
+
+Index: pod/perldiag.pod
+Tom's updates.
+*** perl5.001.lwall/pod/perldiag.pod   Tue Nov 14 22:04:11 1995
+--- perl5.002beta1/pod/perldiag.pod    Sun Nov 19 22:10:58 1995
+***************
+
+Index: pod/perldsc.pod
+Tom's updates.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/pod/perldsc.pod     Sat Nov 18 17:24:22 1995
+***************
+
+Index: pod/perlform.pod
+Tom's updates.
+*** perl5.001.lwall/pod/perlform.pod   Wed Feb 22 18:32:41 1995
+--- perl5.002beta1/pod/perlform.pod    Sat Nov 18 17:23:59 1995
+***************
+
+Index: pod/perlfunc.pod
+Tom's updates.
+*** perl5.001.lwall/pod/perlfunc.pod   Tue Nov 14 15:31:33 1995
+--- perl5.002beta1/pod/perlfunc.pod    Sat Nov 18 17:24:01 1995
+***************
+
+Index: pod/perlguts.pod
+Change perlapi to perlxs.
+*** perl5.001.lwall/pod/perlguts.pod   Wed Jun  7 19:50:25 1995
+--- perl5.002beta1/pod/perlguts.pod    Tue Oct 31 15:38:18 1995
+***************
+
+Index: pod/perlipc.pod
+New file from Tom.
+*** perl5.001.lwall/pod/perlipc.pod    Wed Feb 22 18:32:48 1995
+--- perl5.002beta1/pod/perlipc.pod     Sat Nov 18 17:24:02 1995
+***************
+
+Index: pod/perllol.pod
+New file from Tom.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/pod/perllol.pod     Sat Nov 18 17:24:22 1995
+***************
+
+Index: pod/perlmod.pod
+Updates from Tom.
+*** perl5.001.lwall/pod/perlmod.pod    Wed Feb 22 18:32:51 1995
+--- perl5.002beta1/pod/perlmod.pod     Sat Nov 18 17:24:03 1995
+***************
+
+Index: pod/perlop.pod
+Add missing '>'.
+*** perl5.001.lwall/pod/perlop.pod     Tue Nov 14 15:31:37 1995
+--- perl5.002beta1/pod/perlop.pod      Sat Nov 18 17:24:03 1995
+***************
+
+Index: pod/perlpod.pod
+Add note about =cut operator.
+*** perl5.001.lwall/pod/perlpod.pod    Tue Oct 18 12:39:53 1994
+--- perl5.002beta1/pod/perlpod.pod     Sun Nov 19 22:22:59 1995
+***************
+
+Index: pod/perlref.pod
+Updates from Tom.
+*** perl5.001.lwall/pod/perlref.pod    Tue Mar  7 00:56:46 1995
+--- perl5.002beta1/pod/perlref.pod     Sat Nov 18 17:24:04 1995
+***************
+
+Index: pod/perlsyn.pod
+Updates from Tom.
+*** perl5.001.lwall/pod/perlsyn.pod    Sat Mar 11 14:13:48 1995
+--- perl5.002beta1/pod/perlsyn.pod     Sat Nov 18 17:24:04 1995
+***************
+
+Index: pod/perlxs.pod
+Updated.
+*** perl5.001.lwall/pod/perlxs.pod     Tue Nov 14 15:31:42 1995
+--- perl5.002beta1/pod/perlxs.pod      Sun Nov 19 22:12:44 1995
+***************
+
+Index: pod/perlxstut.pod
+New file from Jeff.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/pod/perlxstut.pod   Mon Nov 20 13:02:12 1995
+***************
+
+Index: pod/pod2html.PL
+Updated -- version 1.15 merges Tom's suggestions and ideas from
+pod2fm.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/pod/pod2html.PL     Sun Nov 19 22:11:59 1995
+***************
+
+Index: pod/pod2latex.PL
+Changed to a .PL file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/pod/pod2latex.PL    Wed Nov 15 22:32:39 1995
+***************
+
+Index: pod/pod2man.PL
+Changed to a .PL file.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/pod/pod2man.PL      Wed Nov 15 22:32:51 1995
+***************
+
+Index: pp_ctl.c
+Add OS/2 stuff.
+*** perl5.001.lwall/pp_ctl.c   Wed Nov 15 00:37:25 1995
+--- perl5.002beta1/pp_ctl.c    Wed Nov 15 21:46:37 1995
+***************
+
+Index: pp_sys.c
+Add OS/2 stuff.
+*** perl5.001.lwall/pp_sys.c   Tue Nov 14 21:03:06 1995
+--- perl5.002beta1/pp_sys.c    Wed Nov 15 21:51:33 1995
+***************
+
+Index: proto.h
+Add OS/2 stuff to better protect MYMALLOC.
+*** perl5.001.lwall/proto.h    Tue Nov 14 21:01:28 1995
+--- perl5.002beta1/proto.h     Wed Nov 15 21:55:23 1995
+***************
+
+Index: t/TEST
+Add OS/2 check for perl.exe.
+*** perl5.001.lwall/t/TEST     Sat Jan 14 19:35:33 1995
+--- perl5.002beta1/t/TEST      Tue Nov 14 11:22:08 1995
+***************
+
+Index: t/lib/db-btree.t
+Updated.
+*** perl5.001.lwall/t/lib/db-btree.t   Tue Oct 18 12:44:05 1994
+--- perl5.002beta1/t/lib/db-btree.t    Tue Oct 31 11:53:29 1995
+***************
+
+Index: t/op/overload.t
+Updated.
+*** perl5.001.lwall/t/op/overload.t    Tue Nov 14 20:56:57 1995
+--- perl5.002beta1/t/op/overload.t     Mon Nov 20 15:48:56 1995
+***************
+
+Index: t/op/stat.t
+Add note about tmpfs failures.
+*** perl5.001.lwall/t/op/stat.t        Tue Oct 18 12:46:23 1994
+--- perl5.002beta1/t/op/stat.t Wed Nov 15 22:00:50 1995
+***************
+
+Index: toke.c
+Patch from Paul M. for source filters.
+*** perl5.001.lwall/toke.c     Tue Nov 14 21:59:50 1995
+--- perl5.002beta1/toke.c      Wed Nov 15 22:08:23 1995
+***************
+
+Index: util.c
+Varargs fixes.
+*** perl5.001.lwall/util.c     Wed Jun  7 19:51:19 1995
+--- perl5.002beta1/util.c      Tue Nov 14 10:46:37 1995
+***************
+
+Index: writemain.SH
+Make c++ friendly.
+*** perl5.001.lwall/writemain.SH       Wed Feb  8 19:44:20 1995
+--- perl5.002beta1/writemain.SH        Sat Nov 18 15:51:55 1995
+***************
+
+Index: x2p/Makefile.SH
+Updated for .PL extraction.
+*** perl5.001.lwall/x2p/Makefile.SH    Wed Jun  7 19:51:37 1995
+--- perl5.002beta1/x2p/Makefile.SH     Sun Nov 19 23:17:39 1995
+***************
+
+Index: x2p/a2p.h
+Add OS/2 stuff.
+*** perl5.001.lwall/x2p/a2p.h  Thu Oct 19 21:03:58 1995
+--- perl5.002beta1/x2p/a2p.h   Tue Nov 14 10:46:57 1995
+***************
+
+Index: x2p/cflags.SH
+Add .obj for OS/2.
+*** perl5.001.lwall/x2p/cflags.SH      Tue Oct 18 12:47:34 1994
+--- perl5.002beta1/x2p/cflags.SH       Tue Nov 14 15:18:27 1995
+***************
+
+Index: x2p/find2perl.PL
+Changed from .SH to .PL.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/x2p/find2perl.PL    Sun Nov 19 23:11:58 1995
+***************
+
+Index: x2p/s2p.PL
+Changed from .SH to .PL extraction.
+*** /dev/null  Mon Nov 20 17:28:51 1995
+--- perl5.002beta1/x2p/s2p.PL  Sun Nov 19 23:14:59 1995
+***************
+
 -------------
 Version 5.001
 -------------
index 76b4e6d..e873dfe 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.8 1995/07/25 13:40:02 ram Exp $
 #
-# Generated on Sat Dec  2 15:29:39 EST 1995 [metaconfig 3.0 PL58]
+# Generated on Fri Dec  8 11:19:33 EST 1995 [metaconfig 3.0 PL58]
 
 cat >/tmp/c1$$ <<EOF
 ARGGGHHHH!!!!!
@@ -1343,7 +1343,6 @@ mkdir
 rm
 sed
 sort
-tail
 touch
 tr
 uniq
@@ -2361,10 +2360,58 @@ else
        d_archlib="$define"
 fi
 
-: determine where site specific architecture-dependent libraries go.
+: determine where site specific libraries go.
+set sitelib sitelib
+eval $prefixit
+case "$sitelib" in
+'')    dflt="$privlib/site_perl" ;;
+*)     dflt="$sitelib" ;;
+esac
+$cat <<EOM
+
+The installation process will also create a directory for
+site-specific extensions and modules.  Some users find it convenient
+to place all local files in this directory rather than in the main
+distribution directory.
+
+EOM
+fn=d~+
+rp='Pathname for the site-specific library files?'
+. ./getfile
+if $test "X$sitelibexp" != "X$ansexp"; then
+       installsitelib=''
+fi
+sitelib="$ans"
+sitelibexp="$ansexp"
+if $afs; then
+       $cat <<EOM
+
+Since you are running AFS, I need to distinguish the directory in which
+private files reside from the directory in which they are installed (and from
+which they are presumably copied to the former directory by occult means).
+
+EOM
+       case "$installsitelib" in
+       '') dflt=`echo $sitelibexp | sed 's#^/afs/#/afs/.#'`;;
+       *) dflt="$installsitelib";;
+       esac
+       fn=de~
+       rp='Where will private files be installed?'
+       . ./getfile
+       installsitelib="$ans"
+else
+       installsitelib="$sitelibexp"
+fi
 
-set dflt sitearch lib/site_perl/$archname
+: determine where site specific architecture-dependent libraries go.
+xxx=`echo $sitelib/$archname | sed 's!^$prefix!!'`
+: xxx is usuually lib/site_perl/archname.
+set sitearch sitearch none
 eval $prefixit
+case "$sitearch" in
+'')    dflt="$sitelib/$archname" ;;
+*)     dflt="$sitearch" ;;
+esac
 $cat <<EOM
 
 The installation process will also create a directory for
@@ -2802,45 +2849,6 @@ else
        installscript="$scriptdirexp"
 fi
 
-: determine where site specific libraries go.
-set dflt sitelib lib/site_perl
-eval $prefixit
-$cat <<EOM
-
-The installation process will also create a directory for
-site-specific extensions and modules.  Some users find it convenient
-to place all local files in this directory rather than in the main
-distribution directory.
-
-EOM
-fn=d~+
-rp='Pathname for the site-specific library files?'
-. ./getfile
-if $test "X$sitelibexp" != "X$ansexp"; then
-       installsitelib=''
-fi
-sitelib="$ans"
-sitelibexp="$ansexp"
-if $afs; then
-       $cat <<EOM
-
-Since you are running AFS, I need to distinguish the directory in which
-private files reside from the directory in which they are installed (and from
-which they are presumably copied to the former directory by occult means).
-
-EOM
-       case "$installsitelib" in
-       '') dflt=`echo $sitelibexp | sed 's#^/afs/#/afs/.#'`;;
-       *) dflt="$installsitelib";;
-       esac
-       fn=de~
-       rp='Where will private files be installed?'
-       . ./getfile
-       installsitelib="$ans"
-else
-       installsitelib="$sitelibexp"
-fi
-
 : determine perl absolute location
 case "$perlpath" in
 '')    perlpath=$binexp/perl ;;
@@ -2860,12 +2868,12 @@ want to share those scripts and perl is not in a standard place
 a shell by starting the script with a single ':' character.
 
 EOH
-               dflt=y
-               rp='Shall I use #! to start up perl?'
+               dflt=$perlpath
+               rp='What shall I put after the #! to start up perl ("none" to not use #!)?'
                . ./myread
                case "$ans" in
-               y*|Y*) startperl="#!$perlpath";;
-               *) startperl=": # use perl";;
+               none) startperl=": # use perl";;
+               *) startperl="#!$ans";;
                esac
                ;;
        *) startperl=": # use perl"
index 7bdf7a2..69370b5 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -113,6 +113,7 @@ ext/ODBM_File/hints/svr4.pl Hint for ODBM_File for named architecture
 ext/ODBM_File/typemap          ODBM extension interface types
 ext/POSIX/Makefile.PL          POSIX extension makefile writer
 ext/POSIX/POSIX.pm             POSIX extension Perl module
+ext/POSIX/POSIX.pod            POSIX extension documentation
 ext/POSIX/POSIX.xs             POSIX extension external subroutines
 ext/POSIX/typemap              POSIX extension interface types
 ext/SDBM_File/Makefile.PL      SDBM extension makefile writer
@@ -333,7 +334,7 @@ makedir.SH          Precursor to makedir
 malloc.c               A version of malloc you might not want
 mg.c                   Magic code
 mg.h                   Magic header
-minimod.PL             Writes lib/ExtUtils/Miniperl.pm
+minimod.pl             Writes lib/ExtUtils/Miniperl.pm
 miniperlmain.c         Basic perl w/o dynamic loading or extensions
 mv-if-diff             Script to mv a file if it changed
 myconfig               Prints summary of the current configuration
@@ -453,6 +454,7 @@ t/lib/ndbm.t                See if NDBM_File works
 t/lib/odbm.t           See if ODBM_File works
 t/lib/posix.t          See if POSIX works
 t/lib/sdbm.t           See if SDBM_File works
+t/lib/socket.t         See if Socket works
 t/lib/soundex.t                See if Soundex works
 t/op/append.t          See if . works
 t/op/array.t           See if array operations work
index b3ac78b..4cdfc67 100644 (file)
@@ -296,8 +296,8 @@ lib/Config.pm: config.sh miniperl
        ./miniperl configpm tmp
        sh mv-if-diff tmp lib/Config.pm
 
-lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl minimod.PL lib/Config.pm
-       ./miniperl minimod.PL > tmp && mv tmp $@
+lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl minimod.pl lib/Config.pm
+       ./miniperl minimod.pl > tmp && mv tmp $@
 
 $(plextract):  miniperl lib/Config.pm
        ./miniperl -Ilib $@.PL
diff --git a/XSUB.h b/XSUB.h
index 8c2caa6..78a922d 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -34,4 +34,4 @@
 #define XSRETURN_UNDEF do { XST_mUNDEF(0); XSRETURN(1); } while (0)
 #define XSRETURN_EMPTY do {                XSRETURN(0); } while (0)
 
-#define newXSproto(a,b,c,d)    sv_setpv(newXS(a,b,c), d)
+#define newXSproto(a,b,c,d)    sv_setpv((SV*)newXS(a,b,c), d)
index 0a3eb82..2c397bb 100644 (file)
@@ -1,61 +1,5 @@
 package POSIX;
 
-=head1 NAME
-
-POSIX - Perl interface to IEEE 1003.1 namespace
-
-=head1 SYNOPSIS
-
-    use POSIX;
-    use POSIX 'strftime';
-
-=head1 DESCRIPTION
-
-The POSIX module permits you to access all (or nearly all) the standard
-POSIX 1003.1 identifiers.  Things which are C<#defines> in C, like EINTR
-or O_NDELAY, are automatically exported into your namespace.  All
-functions are only exported if you ask for them explicitly.  Most likely
-people will prefer to use the fully-qualified function names.
-
-To get a list of all the possible identifiers available to you--and
-their semantics--you should pick up a 1003.1 spec, or look in the
-F<POSIX.pm> module.
-
-=head1 EXAMPLES
-
-    printf "EINTR is %d\n", EINTR;
-
-    POSIX::setsid(0);
-
-    $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
-       # note: that's a filedescriptor, *NOT* a filehandle
-
-=head1 NOTE
-
-The POSIX module is probably the most complex Perl module supplied with
-the standard distribution.  It incorporates autoloading, namespace games,
-and dynamic loading of code that's in Perl, C, or both.  It's a great
-source of wisdom.
-
-=head1 CAVEATS 
-
-A few functions are not implemented because they are C specific.  If you
-attempt to call these, they will print a message telling you that they
-aren't implemented, and suggest using the Perl equivalent should one
-exist.  For example, trying to access the setjmp() call will elicit the
-message "setjmp() is C-specific: use eval {} instead".
-
-Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
-are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
-For example, one vendor may not define EDEADLK, or the semantics of the
-errno values set by open(2) might not be quite right.  Perl does not
-attempt to verify POSIX compliance.  That means you can currently
-successfully say "use POSIX",  and then later in your program you find
-that your vendor has been lax and there's no usable ICANON macro after
-all.  This could be construed to be a bug.
-
-=cut
-
 use Carp;
 require Exporter;
 use AutoLoader;
@@ -513,35 +457,35 @@ sub offsetof {
 }
 
 sub clearerr {
-    redef "$filehandle->clearerr(filehandle)";
+    redef "FileHandle::clearerr()";
 }
 
 sub fclose {
-    redef "$filehandle->fclose(filehandle)";
+    redef "FileHandle::close()";
 }
 
 sub fdopen {
-    redef "FileHandle->new_from_fd(fd,mode)";
+    redef "FileHandle::new_from_fd()";
 }
 
 sub feof {
-    redef "$filehandle->eof()";
+    redef "FileHandle::eof()";
 }
 
 sub fgetc {
-    redef "$filehandle->getc()";
+    redef "FileHandle::getc()";
 }
 
 sub fgets {
-    redef "$filehandle->gets()";
+    redef "FileHandle::gets()";
 }
 
 sub fileno {
-    redef "$filehandle->fileno()";
+    redef "FileHandle::fileno()";
 }
 
 sub fopen {
-    redef "FileHandle->open()";
+    redef "FileHandle::open()";
 }
 
 sub fprintf {
@@ -569,27 +513,27 @@ sub fscanf {
 }
 
 sub fseek {
-    redef "$filehandle->seek(pos,whence)";
+    redef "FileHandle::seek()";
 }
 
 sub ferror {
-    redef "$filehandle->error()";
+    redef "FileHandle::error()";
 }
 
 sub fflush {
-    redef "$filehandle->flush()";
+    redef "FileHandle::flush()";
 }
 
 sub fgetpos {
-    redef "$filehandle->getpos()";
+    redef "FileHandle::getpos()";
 }
 
 sub fsetpos {
-    redef "$filehandle->setpos(pos)";
+    redef "FileHandle::setpos()";
 }
 
 sub ftell {
-    redef "$filehandle->tell()";
+    redef "FileHandle::tell()";
 }
 
 sub fwrite {
@@ -662,11 +606,11 @@ sub sscanf {
 }
 
 sub tmpfile {
-    redef "FileHandle->new_tmpfile()";
+    redef "FileHandle::new_tmpfile()";
 }
 
 sub ungetc {
-    redef "$filehandle->ungetc(char)";
+    redef "FileHandle::ungetc()";
 }
 
 sub vfprintf {
@@ -703,8 +647,7 @@ sub atol {
 }
 
 sub bsearch {
-    unimpl "bsearch(xxx)" if @_ != 123;
-    bsearch($_[0]);
+    unimpl "bsearch() not supplied";
 }
 
 sub calloc {
@@ -722,7 +665,6 @@ sub exit {
 
 sub free {
     unimpl "free() is C-specific, stopped";
-    free($_[0]);
 }
 
 sub getenv {
@@ -785,7 +727,7 @@ sub memcmp {
 
 sub memcpy {
     unimpl "memcpy() is C-specific, use = instead";
-    memcpy($_[0]);
+}
 
 sub memmove {
     unimpl "memmove() is C-specific, use = instead";
@@ -887,11 +829,6 @@ sub umask {
     umask($_[0]);
 }
 
-sub times {
-    usage "times()" if @_ != 0;
-    times();
-}
-
 sub wait {
     usage "wait(statusvariable)" if @_ != 1;
     local $result = wait();
@@ -917,7 +854,7 @@ sub localtime {
 }
 
 sub time {
-    unimpl "time()" if @_ != 0;
+    usage "time()" if @_ != 0;
     time;
 }
 
@@ -938,32 +875,26 @@ sub chown {
 
 sub execl {
     unimpl "execl() is C-specific, stopped";
-    execl($_[0]);
 }
 
 sub execle {
     unimpl "execle() is C-specific, stopped";
-    execle($_[0]);
 }
 
 sub execlp {
     unimpl "execlp() is C-specific, stopped";
-    execlp($_[0]);
 }
 
 sub execv {
     unimpl "execv() is C-specific, stopped";
-    execv($_[0]);
 }
 
 sub execve {
     unimpl "execve() is C-specific, stopped";
-    execve($_[0]);
 }
 
 sub execvp {
     unimpl "execvp() is C-specific, stopped";
-    execvp($_[0]);
 }
 
 sub fork {
diff --git a/ext/POSIX/POSIX.pod b/ext/POSIX/POSIX.pod
new file mode 100644 (file)
index 0000000..654028e
--- /dev/null
@@ -0,0 +1,1452 @@
+=head1 NAME
+
+POSIX - Perl interface to IEEE Std 1003.1
+
+=head1 DESCRIPTION
+
+The POSIX module permits you to access all (or nearly all) the standard
+POSIX 1003.1 identifiers.  Many of these identifiers have been given Perl-ish
+interfaces.  Things which are C<#defines> in C, like EINTR or O_NDELAY, are
+automatically exported into your namespace.  All functions are only exported
+if you ask for them explicitly.  Most likely people will prefer to use the
+fully-qualified function names.
+
+This document gives a condensed list of the features available in the POSIX
+module.  Consult your operating system's manpages for general information on
+most features.  Consult L<perlfunc> for functions which are noted as being
+identical to Perl's builtin functions.
+
+The first section describes POSIX functions from the 1003.1 specification.
+The second section describes some classes for signal objects, TTY objects,
+and other miscellaneous objects.  The remaining sections list various
+constants and macros in an organization which roughly follows IEEE Std
+1003.1b-1993.
+
+=head1 EXAMPLES
+
+    printf "EINTR is %d\n", EINTR;
+
+    $sess_id = POSIX::setsid();
+
+    $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
+       # note: that's a filedescriptor, *NOT* a filehandle
+
+=head1 NOTE
+
+The POSIX module is probably the most complex Perl module supplied with
+the standard distribution.  It incorporates autoloading, namespace games,
+and dynamic loading of code that's in Perl, C, or both.  It's a great
+source of wisdom.
+
+=head1 CAVEATS 
+
+A few functions are not implemented because they are C specific.  If you
+attempt to call these, they will print a message telling you that they
+aren't implemented, and suggest using the Perl equivalent should one
+exist.  For example, trying to access the setjmp() call will elicit the
+message "setjmp() is C-specific: use eval {} instead".
+
+Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
+are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
+For example, one vendor may not define EDEADLK, or the semantics of the
+errno values set by open(2) might not be quite right.  Perl does not
+attempt to verify POSIX compliance.  That means you can currently
+successfully say "use POSIX",  and then later in your program you find
+that your vendor has been lax and there's no usable ICANON macro after
+all.  This could be construed to be a bug.
+
+=head1 FUNCTIONS
+
+=over 8
+
+=item _exit
+
+This is identical to the C function C<_exit()>.
+
+=item abort
+
+This is identical to the C function C<abort()>.
+
+=item abs
+
+This is identical to Perl's builtin C<abs()> function.
+
+=item access
+
+Determines the accessibility of a file.
+
+       if( POSIX::access( "/", &POSIX::R_OK ) ){
+               print "have read permission\n";
+       }
+
+Returns C<undef> on failure.
+
+=item acos
+
+This is identical to the C function C<acos()>.
+
+=item alarm
+
+This is identical to Perl's builtin C<alarm()> function.
+
+=item asctime
+
+This is identical to the C function C<asctime()>.
+
+=item asin
+
+This is identical to the C function C<asin()>.
+
+=item assert
+
+
+=item atan
+
+This is identical to the C function C<atan()>.
+
+=item atan2
+
+This is identical to Perl's builtin C<atan2()> function.
+
+=item atexit
+
+atexit() is C-specific: use END {} instead.
+
+=item atof
+
+atof() is C-specific.
+
+=item atoi
+
+atoi() is C-specific.
+
+=item atol
+
+atol() is C-specific.
+
+=item bsearch
+
+bsearch() not supplied.
+
+=item calloc
+
+calloc() is C-specific.
+
+=item ceil
+
+This is identical to the C function C<ceil()>.
+
+=item chdir
+
+This is identical to Perl's builtin C<chdir()> function.
+
+=item chmod
+
+This is identical to Perl's builtin C<chmod()> function.
+
+=item chown
+
+This is identical to Perl's builtin C<chown()> function.
+
+=item clearerr
+
+Use method C<FileHandle::clearerr()> instead.
+
+=item clock
+
+This is identical to the C function C<clock()>.
+
+=item close
+
+
+Returns C<undef> on failure.
+
+=item closedir
+
+This is identical to Perl's builtin C<closedir()> function.
+
+=item cos
+
+This is identical to Perl's builtin C<cos()> function.
+
+=item cosh
+
+This is identical to the C function C<cosh()>.
+
+=item creat
+
+
+=item ctermid
+
+Generates the path name for controlling terminal.
+
+       $path = POSIX::ctermid();
+
+=item ctime
+
+This is identical to the C function C<ctime()>.
+
+=item cuserid
+
+Get the character login name of the user.
+
+       $name = POSIX::cuserid();
+
+=item difftime
+
+This is identical to the C function C<difftime()>.
+
+=item div
+
+div() is C-specific.
+
+=item dup
+
+
+Returns C<undef> on failure.
+
+=item dup2
+
+
+Returns C<undef> on failure.
+
+=item errno
+
+Returns the value of errno.
+
+       $errno = POSIX::errno();
+
+=item execl
+
+execl() is C-specific.
+
+=item execle
+
+execle() is C-specific.
+
+=item execlp
+
+execlp() is C-specific.
+
+=item execv
+
+execv() is C-specific.
+
+=item execve
+
+execve() is C-specific.
+
+=item execvp
+
+execvp() is C-specific.
+
+=item exit
+
+This is identical to Perl's builtin C<exit()> function.
+
+=item exp
+
+This is identical to Perl's builtin C<exp()> function.
+
+=item fabs
+
+This is identical to Perl's builtin C<abs()> function.
+
+=item fclose
+
+Use method C<FileHandle::close()> instead.
+
+=item fcntl
+
+This is identical to Perl's builtin C<fcntl()> function.
+
+=item fdopen
+
+Use method C<FileHandle::new_from_fd()> instead.
+
+=item feof
+
+Use method C<FileHandle::eof()> instead.
+
+=item ferror
+
+Use method C<FileHandle::error()> instead.
+
+=item fflush
+
+Use method C<FileHandle::flush()> instead.
+
+=item fgetc
+
+Use method C<FileHandle::getc()> instead.
+
+=item fgetpos
+
+Use method C<FileHandle::getpos()> instead.
+
+=item fgets
+
+Use method C<FileHandle::gets()> instead.
+
+=item fileno
+
+Use method C<FileHandle::fileno()> instead.
+
+=item floor
+
+This is identical to the C function C<floor()>.
+
+=item fmod
+
+This is identical to the C function C<fmod()>.
+
+=item fopen
+
+Use method C<FileHandle::open()> instead.
+
+=item fork
+
+This is identical to Perl's builtin C<fork()> function.
+
+=item fpathconf
+
+
+Returns C<undef> on failure.
+
+=item fprintf
+
+fprintf() is C-specific--use printf instead.
+
+=item fputc
+
+fputc() is C-specific--use print instead.
+
+=item fputs
+
+fputs() is C-specific--use print instead.
+
+=item fread
+
+fread() is C-specific--use read instead.
+
+=item free
+
+free() is C-specific.
+
+=item freopen
+
+freopen() is C-specific--use open instead.
+
+=item frexp
+
+
+=item fscanf
+
+fscanf() is C-specific--use <> and regular expressions instead.
+
+=item fseek
+
+Use method C<FileHandle::seek()> instead.
+
+=item fsetpos
+
+Use method C<FileHandle::setpos()> instead.
+
+=item fstat
+
+
+=item ftell
+
+Use method C<FileHandle::tell()> instead.
+
+=item fwrite
+
+fwrite() is C-specific--use print instead.
+
+=item getc
+
+This is identical to Perl's builtin C<getc()> function.
+
+=item getchar
+
+Returns one character from STDIN.
+
+=item getcwd
+
+Returns the name of the current working directory.
+
+=item getegid
+
+Returns the effective group id.
+
+=item getenv
+
+Returns the value of the specified enironment variable.
+
+=item geteuid
+
+Returns the effective user id.
+
+=item getgid
+
+Returns the user's real group id.
+
+=item getgrgid
+
+This is identical to Perl's builtin C<getgrgid()> function.
+
+=item getgrnam
+
+This is identical to Perl's builtin C<getgrnam()> function.
+
+=item getgroups
+
+Returns the ids of the user's supplementary groups.
+
+=item getlogin
+
+This is identical to Perl's builtin C<getlogin()> function.
+
+=item getpgrp
+
+This is identical to Perl's builtin C<getpgrp()> function.
+
+=item getpid
+
+Returns the process's id.
+
+=item getppid
+
+This is identical to Perl's builtin C<getppid()> function.
+
+=item getpwnam
+
+This is identical to Perl's builtin C<getpwnam()> function.
+
+=item getpwuid
+
+This is identical to Perl's builtin C<getpwuid()> function.
+
+=item gets
+
+Returns one line from STDIN.
+
+=item getuid
+
+Returns the user's id.
+
+=item gmtime
+
+This is identical to Perl's builtin C<gmtime()> function.
+
+=item isalnum
+
+
+=item isalpha
+
+
+=item isatty
+
+Returns a boolean indicating whether the specified filehandle is connected
+to a tty.
+
+=item iscntrl
+
+
+=item isdigit
+
+
+=item isgraph
+
+
+=item islower
+
+
+=item isprint
+
+
+=item ispunct
+
+
+=item isspace
+
+
+=item isupper
+
+
+=item isxdigit
+
+
+=item kill
+
+This is identical to Perl's builtin C<kill()> function.
+
+=item labs
+
+labs() is C-specific, use abs instead.
+
+=item ldexp
+
+This is identical to the C function C<ldexp()>.
+
+=item ldiv
+
+ldiv() is C-specific, use / and int instead.
+
+=item link
+
+This is identical to Perl's builtin C<link()> function.
+
+=item localeconv
+
+
+=item localtime
+
+This is identical to Perl's builtin C<localtime()> function.
+
+=item log
+
+This is identical to Perl's builtin C<log()> function.
+
+=item log10
+
+This is identical to the C function C<log10()>.
+
+=item longjmp
+
+longjmp() is C-specific: use die instead.
+
+=item lseek
+
+
+Returns C<undef> on failure.
+
+=item malloc
+
+malloc() is C-specific.
+
+=item mblen
+
+
+=item mbstowcs
+
+
+=item mbtowc
+
+
+=item memchr
+
+memchr() is C-specific, use index() instead.
+
+=item memcmp
+
+memcmp() is C-specific, use eq instead.
+
+=item memcpy
+
+memcpy() is C-specific, use = instead.
+
+=item memmove
+
+memmove() is C-specific, use = instead.
+
+=item memset
+
+memset() is C-specific, use x instead.
+
+=item mkdir
+
+This is identical to Perl's builtin C<mkdir()> function.
+
+=item mkfifo
+
+
+Returns C<undef> on failure.
+
+=item mktime
+
+
+Returns C<undef> on failure.
+
+=item modf
+
+
+=item nice
+
+
+Returns C<undef> on failure.
+
+=item offsetof
+
+offsetof() is C-specific.
+
+=item open
+
+
+Returns C<undef> on failure.
+
+=item opendir
+
+
+=item pathconf
+
+Retrieves the value of a configurable limit on a file or directory.
+
+The following will determine the maximum length of the longest allowable
+pathname on the filesystem which holds C</tmp>.
+
+       $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX );
+
+Returns C<undef> on failure.
+
+=item pause
+
+This is similar to the C function C<pause()>.
+
+Returns C<undef> on failure.
+
+=item perror
+
+This is identical to the C function C<perror()>.
+
+=item pipe
+
+
+=item pow
+
+Computes $x raised to the power $exponent.
+
+       $ret = POSIX::pow( $x, $exponent );
+
+=item printf
+
+Prints the specified arguments to STDOUT.
+
+=item putc
+
+putc() is C-specific--use print instead.
+
+=item putchar
+
+putchar() is C-specific--use print instead.
+
+=item puts
+
+puts() is C-specific--use print instead.
+
+=item qsort
+
+qsort() is C-specific, use sort instead.
+
+=item raise
+
+Sends the specified signal to the current process.
+
+=item rand
+
+rand() is non-portable, use Perl's rand instead.
+
+=item read
+
+
+Returns C<undef> on failure.
+
+=item readdir
+
+This is identical to Perl's builtin C<readdir()> function.
+
+=item realloc
+
+realloc() is C-specific.
+
+=item remove
+
+This is identical to Perl's builtin C<unlink()> function.
+
+=item rename
+
+This is identical to Perl's builtin C<rename()> function.
+
+=item rewind
+
+Seeks to the beginning of the file.
+
+=item rewinddir
+
+This is identical to Perl's builtin C<rewinddir()> function.
+
+=item rmdir
+
+This is identical to Perl's builtin C<rmdir()> function.
+
+=item scanf
+
+scanf() is C-specific--use <> and regular expressions instead.
+
+=item setgid
+
+Sets the real group id for this process.
+
+=item setjmp
+
+setjmp() is C-specific: use eval {} instead.
+
+=item setlocale
+
+Modifies and queries program's locale.
+
+The following will set the traditional UNIX system locale behavior.
+
+       $loc = POSIX::setlocale( &POSIX::LC_ALL, "C" );
+
+=item setpgid
+
+
+Returns C<undef> on failure.
+
+=item setsid
+
+This is identical to the C function C<setsid()>.
+
+=item setuid
+
+Sets the real user id for this process.
+
+=item sigaction
+
+
+Returns C<undef> on failure.
+
+=item siglongjmp
+
+siglongjmp() is C-specific: use die instead.
+
+=item sigpending
+
+
+Returns C<undef> on failure.
+
+=item sigprocmask
+
+
+Returns C<undef> on failure.
+
+=item sigsetjmp
+
+sigsetjmp() is C-specific: use eval {} instead.
+
+=item sigsuspend
+
+
+Returns C<undef> on failure.
+
+=item sin
+
+This is identical to Perl's builtin C<sin()> function.
+
+=item sinh
+
+This is identical to the C function C<sinh()>.
+
+=item sleep
+
+This is identical to Perl's builtin C<sleep()> function.
+
+=item sprintf
+
+
+=item sqrt
+
+This is identical to Perl's builtin C<sqrt()> function.
+
+=item srand
+
+srand().
+
+=item sscanf
+
+sscanf() is C-specific--use regular expressions instead.
+
+=item stat
+
+This is identical to Perl's builtin C<stat()> function.
+
+=item strcat
+
+strcat() is C-specific, use .= instead.
+
+=item strchr
+
+strchr() is C-specific, use index() instead.
+
+=item strcmp
+
+strcmp() is C-specific, use eq instead.
+
+=item strcoll
+
+This is identical to the C function C<strcoll()>.
+
+=item strcpy
+
+strcpy() is C-specific, use = instead.
+
+=item strcspn
+
+strcspn() is C-specific, use regular expressions instead.
+
+=item strerror
+
+Returns the error string for the specified errno.
+
+=item strftime
+
+
+=item strlen
+
+strlen() is C-specific, use length instead.
+
+=item strncat
+
+strncat() is C-specific, use .= instead.
+
+=item strncmp
+
+strncmp() is C-specific, use eq instead.
+
+=item strncpy
+
+strncpy() is C-specific, use = instead.
+
+=item stroul
+
+stroul() is C-specific.
+
+=item strpbrk
+
+strpbrk() is C-specific.
+
+=item strrchr
+
+strrchr() is C-specific, use rindex() instead.
+
+=item strspn
+
+strspn() is C-specific.
+
+=item strstr
+
+This is identical to Perl's builtin C<index()> function.
+
+=item strtod
+
+strtod() is C-specific.
+
+=item strtok
+
+strtok() is C-specific.
+
+=item strtol
+
+strtol() is C-specific.
+
+=item strxfrm
+
+
+=item sysconf
+
+Retrieves values of system configurable variables.
+
+The following will get the machine's clock speed.
+
+       $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
+
+Returns C<undef> on failure.
+
+=item system
+
+This is identical to Perl's builtin C<system()> function.
+
+=item tan
+
+This is identical to the C function C<tan()>.
+
+=item tanh
+
+This is identical to the C function C<tanh()>.
+
+=item tcdrain
+
+
+Returns C<undef> on failure.
+
+=item tcflow
+
+
+Returns C<undef> on failure.
+
+=item tcflush
+
+
+Returns C<undef> on failure.
+
+=item tcgetpgrp
+
+This is identical to the C function C<tcgetpgrp()>.
+
+=item tcsendbreak
+
+
+Returns C<undef> on failure.
+
+=item tcsetpgrp
+
+
+Returns C<undef> on failure.
+
+=item time
+
+This is identical to Perl's builtin C<time()> function.
+
+=item times
+
+The times() function returns elapsed realtime since some point in the past
+(such as system startup), user and system times for this process, and user
+and system times used by child processes.  All times are returned in clock
+ticks.
+
+    ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
+
+Note: Perl's builtin C<times()> function returns four values, measured in
+seconds.
+
+=item tmpfile
+
+Use method C<FileHandle::new_tmpfile()> instead.
+
+=item tmpnam
+
+Returns a name for a temporary file.
+
+       $tmpfile = POSIX::tmpnam();
+
+=item tolower
+
+This is identical to Perl's builtin C<lc()> function.
+
+=item toupper
+
+This is identical to Perl's builtin C<uc()> function.
+
+=item ttyname
+
+
+=item tzname
+
+
+=item tzset
+
+This is identical to the C function C<tzset()>.
+
+=item umask
+
+This is identical to Perl's builtin C<umask()> function.
+
+=item uname
+
+
+=item ungetc
+
+Use method C<FileHandle::ungetc()> instead.
+
+=item unlink
+
+This is identical to Perl's builtin C<unlink()> function.
+
+=item utime
+
+This is identical to Perl's builtin C<utime()> function.
+
+=item vfprintf
+
+vfprintf() is C-specific.
+
+=item vprintf
+
+vprintf() is C-specific.
+
+=item vsprintf
+
+vsprintf() is C-specific.
+
+=item wait
+
+
+=item waitpid
+
+
+=item wcstombs
+
+
+=item wctomb
+
+
+=item write
+
+
+Returns C<undef> on failure.
+
+=back
+
+=head1 CLASSES
+
+=head2 FileHandle
+
+=over 8
+
+=item new
+
+
+=item clearerr
+
+
+=item close
+
+
+=item eof
+
+
+=item error
+
+
+=item fileno
+
+
+=item flush
+
+
+Returns C<undef> on failure.
+
+=item getc
+
+
+=item getpos
+
+
+=item gets
+
+
+=item new_from_fd
+
+
+=item new_tmpfile
+
+
+=item seek
+
+
+=item setbuf
+
+
+=item setpos
+
+
+Returns C<undef> on failure.
+
+=item setvbuf
+
+
+Returns C<undef> on failure.
+
+=item tell
+
+
+=item ungetc
+
+
+=back
+
+=head2 POSIX::SigAction
+
+=over 8
+
+=item new
+
+Creates a new SigAction object.  This object will be destroyed automatically
+when it is no longer needed.
+
+=back
+
+=head2 POSIX::SigSet
+
+=over 8
+
+=item new
+
+Create a new SigSet object.  This object will be destroyed automatically
+when it is no longer needed.  Arguments may be supplied to initialize the
+set.
+
+Create an empty set.
+
+       $sigset = POSIX::SigSet->new;
+
+Create a set with SIGUSR1.
+
+       $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
+
+=item addset
+
+Add a signal to a SigSet object.
+
+       $sigset->addset( &POSIX::SIGUSR2 );
+
+Returns C<undef> on failure.
+
+=item delset
+
+Remove a signal from the SigSet object.
+
+       $sigset->delset( &POSIX::SIGUSR2 );
+
+Returns C<undef> on failure.
+
+=item emptyset
+
+Initialize the SigSet object to be empty.
+
+       $sigset->emptyset();
+
+Returns C<undef> on failure.
+
+=item fillset
+
+Initialize the SigSet object to include all signals.
+
+       $sigset->fillset();
+
+Returns C<undef> on failure.
+
+=item ismember
+
+Tests the SigSet object to see if it contains a specific signal.
+
+       if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
+               print "contains SIGUSR1\n";
+       }
+
+=back
+
+=head2 POSIX::Termios
+
+=over 8
+
+=item new
+
+Create a new Termios object.  This object will be destroyed automatically
+when it is no longer needed.
+
+       $termios = POSIX::Termios->new;
+
+=item getattr
+
+
+Returns C<undef> on failure.
+
+=item getcc
+
+Retrieve a value from the c_cc field of a termios object.  The c_cc field is
+an array so an index must be specified.
+
+       $c_cc[1] = $termios->getcc(1);
+
+=item getcflag
+
+Retrieve the c_cflag field of a termios object.
+
+       $c_cflag = $termios->getcflag;
+
+=item getiflag
+
+Retrieve the c_iflag field of a termios object.
+
+       $c_iflag = $termios->getiflag;
+
+=item getispeed
+
+Retrieve the input baud rate.
+
+       $ispeed = $termios->getispeed;
+
+=item getlflag
+
+Retrieve the c_lflag field of a termios object.
+
+       $c_lflag = $termios->getlflag;
+
+=item getoflag
+
+Retrieve the c_oflag field of a termios object.
+
+       $c_oflag = $termios->getoflag;
+
+=item getospeed
+
+Retrieve the output baud rate.
+
+       $ospeed = $termios->getospeed;
+
+=item setattr
+
+
+Returns C<undef> on failure.
+
+=item setcc
+
+Set a value in the c_cc field of a termios object.  The c_cc field is an
+array so an index must be specified.
+
+       $termios->setcc( 1, &POSIX::VEOF );
+
+=item setcflag
+
+Set the c_cflag field of a termios object.
+
+       $termios->setcflag( &POSIX::CLOCAL );
+
+=item setiflag
+
+Set the c_iflag field of a termios object.
+
+       $termios->setiflag( &POSIX::BRKINT );
+
+=item setispeed
+
+Set the input baud rate.
+
+       $termios->setispeed( &POSIX::B9600 );
+
+Returns C<undef> on failure.
+
+=item setlflag
+
+Set the c_lflag field of a termios object.
+
+       $termios->setlflag( &POSIX::ECHO );
+
+=item setoflag
+
+Set the c_oflag field of a termios object.
+
+       $termios->setoflag( &POSIX::OPOST );
+
+=item setospeed
+
+Set the output baud rate.
+
+       $termios->setospeed( &POSIX::B9600 );
+
+Returns C<undef> on failure.
+
+=item Baud rate values
+
+B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
+
+=item Terminal interface values
+
+TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
+
+=item c_cc field values
+
+VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
+
+=item c_cflag field values
+
+CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
+
+=item c_iflag field values
+
+BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
+
+=item c_lflag field values
+
+ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
+
+=item c_oflag field values
+
+OPOST
+
+=back
+
+=head1 PATHNAME CONSTANTS
+
+=over 8
+
+=item Constants
+
+_PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
+
+=back
+
+=head1 POSIX CONSTANTS
+
+=over 8
+
+=item Constants
+
+_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
+
+=back
+
+=head1 SYSTEM CONFIGURATION
+
+=over 8
+
+=item Constants
+
+_SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
+
+=back
+
+=head1 ERRNO
+
+=over 8
+
+=item Constants
+
+E2BIG EACCES EAGAIN EBADF EBUSY ECHILD EDEADLK EDOM EEXIST EFAULT EFBIG EINTR EINVAL EIO EISDIR EMFILE EMLINK ENAMETOOLONG ENFILE ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS ENOTDIR ENOTEMPTY ENOTTY ENXIO EPERM EPIPE ERANGE EROFS ESPIPE ESRCH EXDEV
+
+=back
+
+=head1 FCNTL
+
+=over 8
+
+=item Constants
+
+FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY
+
+=back
+
+=head1 FLOAT
+
+=over 8
+
+=item Constants
+
+DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
+
+=back
+
+=head1 LIMITS
+
+=over 8
+
+=item Constants
+
+ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
+
+=back
+
+=head1 LOCALE
+
+=over 8
+
+=item Constants
+
+LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
+
+=back
+
+=head1 MATH
+
+=over 8
+
+=item Constants
+
+HUGE_VAL
+
+=back
+
+=head1 SIGNAL
+
+=over 8
+
+=item Constants
+
+SA_NOCLDSTOP SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK
+
+=back
+
+=head1 STAT
+
+=over 8
+
+=item Constants
+
+S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
+
+=item Macros
+
+S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
+
+=back
+
+=head1 STDLIB
+
+=over 8
+
+=item Constants
+
+EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
+
+=back
+
+=head1 STDIO
+
+=over 8
+
+=item Constants
+
+BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX _IOFBF _IOLBF _IONBF
+
+=back
+
+=head1 TIME
+
+=over 8
+
+=item Constants
+
+CLK_TCK CLOCKS_PER_SEC
+
+=back
+
+=head1 UNISTD
+
+=over 8
+
+=item Constants
+
+R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STRERR_FILENO W_OK X_OK
+
+=back
+
+=head1 WAIT
+
+=over 8
+
+=item Constants
+
+WNOHANG WUNTRACED
+
+=item Macros
+
+WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
+
+=back
+
+=head1 CREATION
+
+This document generated by mkposixman.PL version 951129.
+
index a303f57..2a6244a 100644 (file)
@@ -2889,10 +2889,6 @@ read(fd, buffer, nbytes)
                sv_magic(ST(1), 0, 't', 0, 0);
        }
 
-SysRet
-setgid(gid)
-       Gid_t           gid
-
 SysRet
 setpgid(pid, pgid)
        pid_t           pid
@@ -2901,10 +2897,6 @@ setpgid(pid, pgid)
 pid_t
 setsid()
 
-SysRet
-setuid(uid)
-       Uid_t           uid
-
 pid_t
 tcgetpgrp(fd)
        int             fd
@@ -3064,6 +3056,19 @@ char *
 ctime(time)
        Time_t          &time
 
+void
+times()
+       PPCODE:
+       struct tms tms;
+       clock_t realtime;
+       realtime = times( &tms );
+       EXTEND(sp,5);
+       PUSHs( sv_2mortal( newSVnv( realtime ) ) );
+       PUSHs( sv_2mortal( newSVnv( tms.tms_utime ) ) );
+       PUSHs( sv_2mortal( newSVnv( tms.tms_stime ) ) );
+       PUSHs( sv_2mortal( newSVnv( tms.tms_cutime ) ) );
+       PUSHs( sv_2mortal( newSVnv( tms.tms_cstime ) ) );
+
 double
 difftime(time1, time2)
        Time_t          time1
index f96fbec..7f0943b 100644 (file)
@@ -244,8 +244,8 @@ sub sockaddr_un {
        croak "usage:   (filename) = sockaddr_un(sun_sv)" unless @_ == 1;
         unpack_sockaddr_un(@_);
     } else {
-       croak "usage:   sun_sv = sockaddr_un(filename))" unless @_ == 1;
-        pack_sockaddr_in(@_);
+       croak "usage:   sun_sv = sockaddr_un(filename)" unless @_ == 1;
+        pack_sockaddr_un(@_);
     }
 }
 
diff --git a/gv.c b/gv.c
index f4d03d2..36b7f70 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -225,7 +225,7 @@ char* name;
        *nsplit = '\0';
        if (strEQ(origname,"SUPER")) {
            /* Degenerate case ->SUPER::method should really lookup in original stash */
-           SV *tmpstr = sv_2mortal(newSVpv(HvNAME(stash),0));
+           SV *tmpstr = sv_2mortal(newSVpv(HvNAME(curcop->cop_stash),0));
            sv_catpvn(tmpstr, "::SUPER", 7);
            stash = gv_stashpv(SvPV(tmpstr,na),TRUE);
            *nsplit = ch;
index 6b84510..2636fd2 100644 (file)
@@ -114,8 +114,10 @@ sub getcwd
                unless (@tst = lstat("$dotdots/$dir"))
                {
                    warn "lstat($dotdots/$dir): $!";
-                   closedir(PARENT);
-                   return '';
+                   # Just because you can't lstat this directory
+                   # doesn't mean you'll never find the right one.
+                   # closedir(PARENT);
+                   # return '';
                }
            }
            while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] ||
index 0a0d25e..671da9f 100644 (file)
@@ -6,6 +6,9 @@ use Carp;
 @ISA = qw(Exporter);
 @EXPORT = qw(openlog closelog setlogmask syslog);
 
+use Socket;
+use Sys::Hostname;
+
 #
 # syslog.pl
 #
@@ -34,7 +37,7 @@ use Carp;
 #      $! = 55;
 #      syslog('info','problem was %m'); # %m == $! in syslog(3)
 
-$host = 'localhost' unless $host;      # set $Syslog::host to change
+$host = hostname() unless $host;       # set $Syslog::host to change
 
 require 'syslog.ph';
 
@@ -146,11 +149,11 @@ sub xlate {
 sub connect {
     $pat = 'S n C4 x8';
 
-    $af_unix = 1;
-    $af_inet = 2;
+    $af_unix = AF_UNIX();
+    $af_inet = AF_INET();
 
-    $stream = 1;
-    $datagram = 2;
+    $stream = SOCK_STREAM();
+    $datagram = SOCK_DGRAM();
 
     ($name,$aliases,$proto) = getprotobyname('udp');
     $udp = $proto;
@@ -158,7 +161,7 @@ sub connect {
     ($name,$aliase,$port,$proto) = getservbyname('syslog','udp');
     $syslog = $port;
 
-    if (chop($myname = `hostname`)) {
+    if ($myname = hostname()) {
        ($name,$aliases,$addrtype,$length,@addrs) = gethostbyname($myname);
        croak "Can't lookup $myname" unless $name;
        @bytes = unpack("C4",$addrs[0]);
index 073a456..6016d96 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/local/bin/perl
 eval 'exec perl -S $0  ${1+"$@"}'
-    if $0;
+    if 0;
 
 use Config;
 $diagnostics::PODFILE= $Config{privlib} . "/pod/perldiag.pod";
@@ -406,14 +406,14 @@ sub warn_trap {
     if (caller eq $WHOAMI or !splainthis($warning)) {
        print STDERR $warning;
     } 
-    &$oldwarn if $oldwarn and $oldwarn ne \&warn_trap;
+    &$oldwarn if defined $oldwarn and $oldwarn and $oldwarn ne \&warn_trap;
 };
 
 sub death_trap {
     my $exception = $_[0];
     splainthis($exception);
     if (caller eq $WHOAMI) { print STDERR "INTERNAL EXCEPTION: $exception"; } 
-    &$olddie if defined $olddie and $olddie ne \&death_trap;
+    &$olddie if defined $olddie and $olddie and $olddie ne \&death_trap;
     $SIG{__DIE__} = $SIG{__WARN__} = '';
     confess "Uncaught exception from user code:\n\t$exception    Bailing out";
        # up we go; where we stop, nobody knows, but i think we die now
similarity index 100%
rename from minimod.PL
rename to minimod.pl
diff --git a/t/lib/socket.t b/t/lib/socket.t
new file mode 100644 (file)
index 0000000..7aec86a
--- /dev/null
@@ -0,0 +1,67 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = '../lib' if -d '../lib';
+    require Config; import Config;
+    if ($Config{'extensions'} !~ /\bSocket\b/ && $Config{'osname'} ne 'VMS') {
+       print STDERR "1..0\n";
+       exit 0;
+    }
+}
+       
+use Socket;
+
+print "1..6\n";
+
+if (socket(T,PF_INET,SOCK_STREAM,6)) {
+  print "ok 1\n";
+
+  if (connect(T,pack_sockaddr_in(7,inet_aton("localhost")))){
+       print "ok 2\n";
+
+       print "# Connected to ",
+               inet_ntoa((unpack_sockaddr_in(getpeername(T)))[1]),"\n";
+
+       syswrite(T,"hello",5);
+       sysread(T,$buff,10);
+       print $buff eq "hello" ? "ok 3\n" : "not ok 3\n";
+  }
+  else {
+       print "# You're allowed to fail tests 2 and 3 if.\n";
+       print "# The echo service has been disabled.\n";
+       print "# $!\n";
+       print "ok 2\n";
+       print "ok 3\n";
+  }
+}
+else {
+       print "# $!\n";
+       print "not ok 1\n";
+}
+
+if( socket(S,PF_INET,SOCK_STREAM,6) ){
+  print "ok 4\n";
+
+  if (connect(S,pack_sockaddr_in(7,INADDR_LOOPBACK))){
+       print "ok 5\n";
+
+       print "# Connected to ",
+               inet_ntoa((unpack_sockaddr_in(getpeername(S)))[1]),"\n";
+
+       syswrite(S,"olleh",5);
+       sysread(S,$buff,10);
+       print $buff eq "olleh" ? "ok 6\n" : "not ok 6\n";
+  }
+  else {
+       print "# You're allowed to fail tests 5 and 6 if.\n";
+       print "# The echo service has been disabled.\n";
+       print "# $!\n";
+       print "ok 5\n";
+       print "ok 6\n";
+  }
+}
+else {
+       print "# $!\n";
+       print "not ok 4\n";
+}
diff --git a/toke.c b/toke.c
index 2cfcefb..118079c 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -1069,13 +1069,21 @@ filter_read(idx, buf_sv, maxlen)
 
            /* ensure buf_sv is large enough */
            SvGROW(buf_sv, old_len + maxlen) ;
-           if ((len = fread(SvPVX(buf_sv) + old_len, 1, maxlen, rsfp)) <= 0)
-               return len ;
+           if ((len = fread(SvPVX(buf_sv) + old_len, 1, maxlen, rsfp)) <= 0){
+               if (ferror(rsfp))
+                   return -1;          /* error */
+               else
+                   return 0 ;          /* end of file */
+           }
            SvCUR_set(buf_sv, old_len + len) ;
        } else {
            /* Want a line */
-            if (sv_gets(buf_sv, rsfp, SvCUR(buf_sv)) == NULL)
-               return -1;              /* end of file */
+            if (sv_gets(buf_sv, rsfp, SvCUR(buf_sv)) == NULL) {
+               if (ferror(rsfp))
+                   return -1;          /* error */
+               else
+                   return 0 ;          /* end of file */
+           }
        }
        return SvCUR(buf_sv);
     }
@@ -1092,7 +1100,7 @@ filter_read(idx, buf_sv, maxlen)
                idx, funcp, SvPV(datasv,na));
     /* Call function. The function is expected to      */
     /* call "FILTER_READ(idx+1, buf_sv)" first.                */
-    /* Return: <0:error/eof, >=0:not eof (see yylex()) */
+    /* Return: <0:error, =0:eof, >0:not eof            */
     return (*funcp)(idx, buf_sv, maxlen);
 }