summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Config.pm106
-rw-r--r--lib/English.pm1
-rw-r--r--lib/Hostname.pm8
-rw-r--r--lib/NDBM_File.pm9
-rw-r--r--lib/POSIX.pm85
-rw-r--r--lib/SDBM_File.pm2
-rw-r--r--lib/Termcap.pm (renamed from lib/termcap.pl)23
-rwxr-xr-xlib/auto/NDBM_File.sobin0 -> 73728 bytes
-rwxr-xr-xlib/auto/NDBM_File/NDBM_File.sobin0 -> 73728 bytes
-rwxr-xr-xlib/auto/ODBM_File.sobin0 -> 73728 bytes
-rwxr-xr-xlib/auto/ODBM_File/ODBM_File.sobin0 -> 73728 bytes
-rwxr-xr-xlib/auto/POSIX.sobin0 -> 172032 bytes
-rwxr-xr-xlib/auto/POSIX/POSIX.sobin0 -> 221184 bytes
-rw-r--r--lib/auto/POSIX/_exit.al9
-rw-r--r--lib/auto/POSIX/abort.al9
-rw-r--r--lib/auto/POSIX/abs.al9
-rw-r--r--lib/auto/POSIX/access.al9
-rw-r--r--lib/auto/POSIX/alarm.al9
-rw-r--r--lib/auto/POSIX/asctime.al9
-rw-r--r--lib/auto/POSIX/assert.al12
-rw-r--r--lib/auto/POSIX/atan2.al9
-rw-r--r--lib/auto/POSIX/atexit.al8
-rw-r--r--lib/auto/POSIX/atof.al8
-rw-r--r--lib/auto/POSIX/atoi.al8
-rw-r--r--lib/auto/POSIX/atol.al8
-rw-r--r--lib/auto/POSIX/bsearch.al9
-rw-r--r--lib/auto/POSIX/calloc.al9
-rw-r--r--lib/auto/POSIX/cfgetispeed.al9
-rw-r--r--lib/auto/POSIX/cfgetospeed.al9
-rw-r--r--lib/auto/POSIX/cfsetispeed.al9
-rw-r--r--lib/auto/POSIX/cfsetospeed.al9
-rw-r--r--lib/auto/POSIX/chdir.al9
-rw-r--r--lib/auto/POSIX/chmod.al9
-rw-r--r--lib/auto/POSIX/chown.al9
-rw-r--r--lib/auto/POSIX/clearerr.al9
-rw-r--r--lib/auto/POSIX/clock.al9
-rw-r--r--lib/auto/POSIX/close.al9
-rw-r--r--lib/auto/POSIX/closedir.al10
-rw-r--r--lib/auto/POSIX/cos.al9
-rw-r--r--lib/auto/POSIX/creat.al9
-rw-r--r--lib/auto/POSIX/ctermid.al9
-rw-r--r--lib/auto/POSIX/ctime.al9
-rw-r--r--lib/auto/POSIX/cuserid.al9
-rw-r--r--lib/auto/POSIX/difftime.al9
-rw-r--r--lib/auto/POSIX/div.al9
-rw-r--r--lib/auto/POSIX/dup.al9
-rw-r--r--lib/auto/POSIX/dup2.al9
-rw-r--r--lib/auto/POSIX/errno.al9
-rw-r--r--lib/auto/POSIX/execl.al9
-rw-r--r--lib/auto/POSIX/execle.al9
-rw-r--r--lib/auto/POSIX/execlp.al9
-rw-r--r--lib/auto/POSIX/execv.al9
-rw-r--r--lib/auto/POSIX/execve.al9
-rw-r--r--lib/auto/POSIX/execvp.al9
-rw-r--r--lib/auto/POSIX/exit.al9
-rw-r--r--lib/auto/POSIX/exp.al9
-rw-r--r--lib/auto/POSIX/fabs.al9
-rw-r--r--lib/auto/POSIX/fclose.al8
-rw-r--r--lib/auto/POSIX/fcntl.al9
-rw-r--r--lib/auto/POSIX/fdopen.al9
-rw-r--r--lib/auto/POSIX/feof.al9
-rw-r--r--lib/auto/POSIX/ferror.al9
-rw-r--r--lib/auto/POSIX/fflush.al9
-rw-r--r--lib/auto/POSIX/fgetc.al9
-rw-r--r--lib/auto/POSIX/fgetpos.al9
-rw-r--r--lib/auto/POSIX/fgets.al10
-rw-r--r--lib/auto/POSIX/fileno.al9
-rw-r--r--lib/auto/POSIX/fopen.al8
-rw-r--r--lib/auto/POSIX/fork.al9
-rw-r--r--lib/auto/POSIX/fpathconf.al9
-rw-r--r--lib/auto/POSIX/fprintf.al8
-rw-r--r--lib/auto/POSIX/fputc.al8
-rw-r--r--lib/auto/POSIX/fputs.al11
-rw-r--r--lib/auto/POSIX/fread.al10
-rw-r--r--lib/auto/POSIX/free.al9
-rw-r--r--lib/auto/POSIX/freopen.al10
-rw-r--r--lib/auto/POSIX/fscanf.al10
-rw-r--r--lib/auto/POSIX/fseek.al10
-rw-r--r--lib/auto/POSIX/fsetpos.al10
-rw-r--r--lib/auto/POSIX/fstat.al13
-rw-r--r--lib/auto/POSIX/ftell.al10
-rw-r--r--lib/auto/POSIX/fwrite.al10
-rw-r--r--lib/auto/POSIX/getc.al9
-rw-r--r--lib/auto/POSIX/getchar.al9
-rw-r--r--lib/auto/POSIX/getcwd.al9
-rw-r--r--lib/auto/POSIX/getegid.al9
-rw-r--r--lib/auto/POSIX/getenv.al9
-rw-r--r--lib/auto/POSIX/geteuid.al9
-rw-r--r--lib/auto/POSIX/getgid.al9
-rw-r--r--lib/auto/POSIX/getgrgid.al9
-rw-r--r--lib/auto/POSIX/getgrnam.al9
-rw-r--r--lib/auto/POSIX/getgroups.al10
-rw-r--r--lib/auto/POSIX/getlogin.al9
-rw-r--r--lib/auto/POSIX/getpgrp.al9
-rw-r--r--lib/auto/POSIX/getpid.al9
-rw-r--r--lib/auto/POSIX/getppid.al9
-rw-r--r--lib/auto/POSIX/getpwnam.al9
-rw-r--r--lib/auto/POSIX/getpwuid.al9
-rw-r--r--lib/auto/POSIX/gets.al10
-rw-r--r--lib/auto/POSIX/getuid.al9
-rw-r--r--lib/auto/POSIX/gmtime.al9
-rw-r--r--lib/auto/POSIX/isatty.al9
-rw-r--r--lib/auto/POSIX/kill.al9
-rw-r--r--lib/auto/POSIX/labs.al9
-rw-r--r--lib/auto/POSIX/ldiv.al9
-rw-r--r--lib/auto/POSIX/link.al9
-rw-r--r--lib/auto/POSIX/localtime.al9
-rw-r--r--lib/auto/POSIX/log.al9
-rw-r--r--lib/auto/POSIX/longjmp.al8
-rw-r--r--lib/auto/POSIX/lseek.al9
-rw-r--r--lib/auto/POSIX/malloc.al9
-rw-r--r--lib/auto/POSIX/mblen.al9
-rw-r--r--lib/auto/POSIX/mbstowcs.al9
-rw-r--r--lib/auto/POSIX/mbtowc.al9
-rw-r--r--lib/auto/POSIX/memchr.al9
-rw-r--r--lib/auto/POSIX/memcmp.al9
-rw-r--r--lib/auto/POSIX/memcpy.al9
-rw-r--r--lib/auto/POSIX/memmove.al9
-rw-r--r--lib/auto/POSIX/memset.al9
-rw-r--r--lib/auto/POSIX/mkdir.al9
-rw-r--r--lib/auto/POSIX/mkfifo.al9
-rw-r--r--lib/auto/POSIX/mktime.al9
-rw-r--r--lib/auto/POSIX/offsetof.al8
-rw-r--r--lib/auto/POSIX/opendir.al12
-rw-r--r--lib/auto/POSIX/pathconf.al9
-rw-r--r--lib/auto/POSIX/pause.al9
-rw-r--r--lib/auto/POSIX/perror.al10
-rw-r--r--lib/auto/POSIX/pipe.al9
-rw-r--r--lib/auto/POSIX/pow.al9
-rw-r--r--lib/auto/POSIX/printf.al9
-rw-r--r--lib/auto/POSIX/putc.al10
-rw-r--r--lib/auto/POSIX/putchar.al10
-rw-r--r--lib/auto/POSIX/puts.al10
-rw-r--r--lib/auto/POSIX/qsort.al9
-rw-r--r--lib/auto/POSIX/raise.al9
-rw-r--r--lib/auto/POSIX/rand.al9
-rw-r--r--lib/auto/POSIX/read.al9
-rw-r--r--lib/auto/POSIX/readdir.al9
-rw-r--r--lib/auto/POSIX/realloc.al9
-rw-r--r--lib/auto/POSIX/remove.al9
-rw-r--r--lib/auto/POSIX/rename.al9
-rw-r--r--lib/auto/POSIX/rewind.al9
-rw-r--r--lib/auto/POSIX/rewinddir.al9
-rw-r--r--lib/auto/POSIX/rmdir.al9
-rw-r--r--lib/auto/POSIX/scanf.al9
-rw-r--r--lib/auto/POSIX/setbuf.al9
-rw-r--r--lib/auto/POSIX/setgid.al9
-rw-r--r--lib/auto/POSIX/setjmp.al8
-rw-r--r--lib/auto/POSIX/setpgid.al9
-rw-r--r--lib/auto/POSIX/setsid.al9
-rw-r--r--lib/auto/POSIX/setuid.al9
-rw-r--r--lib/auto/POSIX/setvbuf.al9
-rw-r--r--lib/auto/POSIX/sigaction.al9
-rw-r--r--lib/auto/POSIX/sigaddset.al9
-rw-r--r--lib/auto/POSIX/sigdelset.al9
-rw-r--r--lib/auto/POSIX/sigemptyset.al9
-rw-r--r--lib/auto/POSIX/sigfillset.al9
-rw-r--r--lib/auto/POSIX/sigismember.al9
-rw-r--r--lib/auto/POSIX/siglongjmp.al8
-rw-r--r--lib/auto/POSIX/signal.al9
-rw-r--r--lib/auto/POSIX/sigpending.al9
-rw-r--r--lib/auto/POSIX/sigprocmask.al9
-rw-r--r--lib/auto/POSIX/sigsetjmp.al8
-rw-r--r--lib/auto/POSIX/sigsuspend.al9
-rw-r--r--lib/auto/POSIX/sin.al9
-rw-r--r--lib/auto/POSIX/sleep.al9
-rw-r--r--lib/auto/POSIX/sprintf.al9
-rw-r--r--lib/auto/POSIX/sqrt.al9
-rw-r--r--lib/auto/POSIX/srand.al9
-rw-r--r--lib/auto/POSIX/sscanf.al9
-rw-r--r--lib/auto/POSIX/stat.al9
-rw-r--r--lib/auto/POSIX/strcat.al9
-rw-r--r--lib/auto/POSIX/strchr.al9
-rw-r--r--lib/auto/POSIX/strcmp.al9
-rw-r--r--lib/auto/POSIX/strcoll.al9
-rw-r--r--lib/auto/POSIX/strcpy.al9
-rw-r--r--lib/auto/POSIX/strcspn.al9
-rw-r--r--lib/auto/POSIX/strerror.al9
-rw-r--r--lib/auto/POSIX/strftime.al9
-rw-r--r--lib/auto/POSIX/strlen.al9
-rw-r--r--lib/auto/POSIX/strncat.al9
-rw-r--r--lib/auto/POSIX/strncmp.al9
-rw-r--r--lib/auto/POSIX/strncpy.al9
-rw-r--r--lib/auto/POSIX/stroul.al9
-rw-r--r--lib/auto/POSIX/strpbrk.al9
-rw-r--r--lib/auto/POSIX/strrchr.al9
-rw-r--r--lib/auto/POSIX/strspn.al9
-rw-r--r--lib/auto/POSIX/strstr.al9
-rw-r--r--lib/auto/POSIX/strtod.al9
-rw-r--r--lib/auto/POSIX/strtok.al9
-rw-r--r--lib/auto/POSIX/strtol.al9
-rw-r--r--lib/auto/POSIX/strxfrm.al9
-rw-r--r--lib/auto/POSIX/sysconf.al9
-rw-r--r--lib/auto/POSIX/system.al9
-rw-r--r--lib/auto/POSIX/tan.al9
-rw-r--r--lib/auto/POSIX/tcdrain.al9
-rw-r--r--lib/auto/POSIX/tcflow.al9
-rw-r--r--lib/auto/POSIX/tcflush.al9
-rw-r--r--lib/auto/POSIX/tcgetattr.al9
-rw-r--r--lib/auto/POSIX/tcgetpgrp.al9
-rw-r--r--lib/auto/POSIX/tcsendbreak.al9
-rw-r--r--lib/auto/POSIX/tcsetattr.al9
-rw-r--r--lib/auto/POSIX/tcsetpgrp.al9
-rw-r--r--lib/auto/POSIX/time.al9
-rw-r--r--lib/auto/POSIX/times.al9
-rw-r--r--lib/auto/POSIX/tmpfile.al9
-rw-r--r--lib/auto/POSIX/tmpnam.al9
-rw-r--r--lib/auto/POSIX/tolower.al9
-rw-r--r--lib/auto/POSIX/toupper.al9
-rw-r--r--lib/auto/POSIX/ttyname.al9
-rw-r--r--lib/auto/POSIX/tzname.al9
-rw-r--r--lib/auto/POSIX/tzset.al9
-rw-r--r--lib/auto/POSIX/umask.al9
-rw-r--r--lib/auto/POSIX/ungetc.al9
-rw-r--r--lib/auto/POSIX/unlink.al9
-rw-r--r--lib/auto/POSIX/utime.al9
-rw-r--r--lib/auto/POSIX/vfprintf.al9
-rw-r--r--lib/auto/POSIX/vprintf.al9
-rw-r--r--lib/auto/POSIX/vsprintf.al9
-rw-r--r--lib/auto/POSIX/wait.al11
-rw-r--r--lib/auto/POSIX/waitpid.al11
-rw-r--r--lib/auto/POSIX/wcstombs.al9
-rw-r--r--lib/auto/POSIX/wctomb.al9
-rw-r--r--lib/auto/POSIX/write.al9
-rwxr-xr-xlib/auto/SDBM_File.sobin0 -> 81920 bytes
-rwxr-xr-xlib/auto/SDBM_File/SDBM_File.sobin0 -> 98304 bytes
-rwxr-xr-xlib/auto/SDBM_File/foobin0 -> 73728 bytes
-rw-r--r--lib/chat2.inter495
-rw-r--r--lib/dumpvar.pl2
229 files changed, 2554 insertions, 94 deletions
diff --git a/lib/Config.pm b/lib/Config.pm
index 5ea45e62f7..20df7e009d 100644
--- a/lib/Config.pm
+++ b/lib/Config.pm
@@ -6,6 +6,7 @@ require Exporter;
$] == 5.000 or die sprintf
"Perl lib version (5.000) doesn't match executable version (%.3f)\n", $];
+
#
# This file was produced by running the Configure script. It holds all the
# definitions figured out by Configure. Should you modify one of these values,
@@ -13,86 +14,83 @@ $] == 5.000 or die sprintf
# instead choose to run each of the .SH files by yourself, or "Configure -S".
#
-# Configuration time: Mon Apr 4 15:17:26 PDT 1994
+# Configuration time: Wed May 4 15:10:39 PDT 1994
# Configured by: lwall
# Target system: sunos scalpel 4.1.3 3 sun4c
-$Config{'extensions'} = 'ext/dbm/NDBM_File.xs
-ext/dbm/ODBM_File.xs
-ext/dbm/GDBM_File.xs
-ext/dbm/SDBM_File.xs
-ext/posix/POSIX.xs';
-$Config{'d_bsd'} = 'define';
+$Config{'extensions'} = ' ext/dbm/NDBM_File.xs ext/dbm/ODBM_File.xs ext/dbm/SDBM_File.xs ext/posix/POSIX.xs';
$Config{'d_eunice'} = undef;
$Config{'d_xenix'} = undef;
$Config{'eunicefix'} = ':';
$Config{'Mcc'} = 'Mcc';
-$Config{'awk'} = 'awk';
+$Config{'awk'} = '/bin/awk';
$Config{'bash'} = '';
-$Config{'bison'} = 'bison';
+$Config{'bison'} = '/usr/local/bin/bison';
$Config{'byacc'} = 'byacc';
-$Config{'cat'} = 'cat';
+$Config{'cat'} = '/bin/cat';
$Config{'chgrp'} = '';
$Config{'chmod'} = '';
$Config{'chown'} = '';
$Config{'compress'} = '';
-$Config{'cp'} = 'cp';
+$Config{'cp'} = '/bin/cp';
$Config{'cpio'} = '';
-$Config{'cpp'} = 'cpp';
-$Config{'csh'} = 'csh';
-$Config{'date'} = 'date';
-$Config{'echo'} = 'echo';
-$Config{'egrep'} = 'egrep';
+$Config{'cpp'} = '/usr/lib/cpp';
+$Config{'csh'} = '/bin/csh';
+$Config{'date'} = '/bin/date';
+$Config{'echo'} = '/bin/echo';
+$Config{'egrep'} = '/bin/egrep';
$Config{'emacs'} = '';
-$Config{'expr'} = 'expr';
-$Config{'find'} = 'find';
+$Config{'expr'} = '/bin/expr';
+$Config{'find'} = '/bin/find';
$Config{'flex'} = '';
$Config{'gcc'} = '';
-$Config{'grep'} = 'grep';
+$Config{'grep'} = '/bin/grep';
$Config{'inews'} = '';
$Config{'ksh'} = '';
$Config{'less'} = '';
-$Config{'line'} = 'line';
+$Config{'line'} = '/bin/line';
$Config{'lint'} = '';
-$Config{'ln'} = '';
+$Config{'ln'} = '/bin/ln';
$Config{'lp'} = '';
$Config{'lpr'} = '';
$Config{'ls'} = '';
$Config{'mail'} = '';
$Config{'mailx'} = '';
$Config{'make'} = '';
-$Config{'mkdir'} = 'mkdir';
+$Config{'mkdir'} = '/bin/mkdir';
$Config{'more'} = '';
-$Config{'mv'} = 'mv';
-$Config{'nroff'} = 'nroff';
-$Config{'perl'} = 'perl';
+$Config{'mv'} = '/bin/mv';
+$Config{'nroff'} = '/bin/nroff';
+$Config{'perl'} = '/home/netlabs1/lwall/pl/perl';
$Config{'pg'} = '';
$Config{'pmake'} = '';
$Config{'pr'} = '';
-$Config{'rm'} = 'rm';
+$Config{'rm'} = '/bin/rm';
$Config{'rmail'} = '';
-$Config{'sed'} = 'sed';
+$Config{'sed'} = '/bin/sed';
$Config{'sendmail'} = '';
$Config{'sh'} = '';
$Config{'shar'} = '';
$Config{'sleep'} = '';
$Config{'smail'} = '';
-$Config{'sort'} = 'sort';
+$Config{'sort'} = '/bin/sort';
$Config{'submit'} = '';
$Config{'tail'} = '';
$Config{'tar'} = '';
$Config{'tbl'} = '';
$Config{'test'} = 'test';
-$Config{'touch'} = '';
-$Config{'tr'} = 'tr';
+$Config{'touch'} = '/bin/touch';
+$Config{'tr'} = '/bin/tr';
$Config{'troff'} = '';
-$Config{'uname'} = 'uname';
-$Config{'uniq'} = 'uniq';
+$Config{'uname'} = '/bin/uname';
+$Config{'uniq'} = '/bin/uniq';
$Config{'uuname'} = '';
$Config{'vi'} = '';
$Config{'zcat'} = '';
$Config{'hint'} = 'recommended';
$Config{'myuname'} = 'sunos scalpel 4.1.3 3 sun4c ';
+$Config{'osname'} = 'sunos';
+$Config{'osvers'} = '4.1.3';
$Config{'Author'} = '';
$Config{'Date'} = '$Date';
$Config{'Header'} = '';
@@ -104,7 +102,7 @@ $Config{'Revision'} = '$Revision';
$Config{'Source'} = '';
$Config{'State'} = '';
$Config{'afs'} = 'false';
-$Config{'alignbytes'} = '8';
+$Config{'memalignbytes'} = '8';
$Config{'bin'} = '/usr/local/bin';
$Config{'binexp'} = '/usr/local/bin';
$Config{'installbin'} = '/usr/local/bin';
@@ -117,12 +115,12 @@ $Config{'ldflags'} = '';
$Config{'lkflags'} = '';
$Config{'optimize'} = '-g';
$Config{'cf_by'} = 'lwall';
-$Config{'cf_time'} = 'Mon Apr 4 15:17:26 PDT 1994';
+$Config{'cf_time'} = 'Wed May 4 15:10:39 PDT 1994';
$Config{'contains'} = 'grep';
$Config{'cpplast'} = '';
$Config{'cppminus'} = '';
-$Config{'cpprun'} = 'cpp';
-$Config{'cppstdin'} = '/tmp_mnt/vol/src/local/lwall/perl5/cppstdin';
+$Config{'cpprun'} = '/usr/lib/cpp';
+$Config{'cppstdin'} = '/tmp_mnt/net/vaccine/export/src/local/lwall/perl5/cppstdin';
$Config{'d_access'} = 'define';
$Config{'d_bcmp'} = 'define';
$Config{'d_bcopy'} = 'define';
@@ -135,7 +133,7 @@ $Config{'d_chsize'} = undef;
$Config{'d_const'} = undef;
$Config{'cryptlib'} = '';
$Config{'d_crypt'} = 'define';
-$Config{'d_csh'} = undef;
+$Config{'d_csh'} = 'define';
$Config{'d_dosuid'} = undef;
$Config{'d_dup2'} = 'define';
$Config{'d_fchmod'} = 'define';
@@ -168,8 +166,11 @@ $Config{'d_msgget'} = 'define';
$Config{'d_msgrcv'} = 'define';
$Config{'d_msgsnd'} = 'define';
$Config{'d_open3'} = 'define';
-$Config{'d_portable'} = 'define';
+$Config{'d_portable'} = undef;
$Config{'d_readdir'} = 'define';
+$Config{'d_rewinddir'} = 'define';
+$Config{'d_seekdir'} = 'define';
+$Config{'d_telldir'} = 'define';
$Config{'d_rename'} = 'define';
$Config{'d_rmdir'} = 'define';
$Config{'d_safebcpy'} = 'define';
@@ -196,6 +197,7 @@ $Config{'d_setruid'} = 'define';
$Config{'d_setsid'} = 'define';
$Config{'d_shm'} = 'define';
$Config{'d_shmat'} = 'define';
+$Config{'d_voidshmat'} = undef;
$Config{'d_shmctl'} = 'define';
$Config{'d_shmdt'} = 'define';
$Config{'d_shmget'} = 'define';
@@ -216,6 +218,8 @@ $Config{'d_syserrlst'} = 'define';
$Config{'d_symlink'} = 'define';
$Config{'d_syscall'} = 'define';
$Config{'d_system'} = 'define';
+$Config{'d_time'} = 'define';
+$Config{'timetype'} = 'long';
$Config{'clocktype'} = 'long';
$Config{'d_times'} = 'define';
$Config{'d_truncate'} = 'define';
@@ -224,7 +228,7 @@ $Config{'i_ndir'} = undef;
$Config{'ndirc'} = '';
$Config{'ndirlib'} = '';
$Config{'ndiro'} = '';
-$Config{'d_vfork'} = 'define';
+$Config{'d_vfork'} = undef;
$Config{'d_voidsig'} = 'define';
$Config{'signal_t'} = 'void';
$Config{'d_volatile'} = undef;
@@ -232,8 +236,13 @@ $Config{'d_charvspr'} = 'define';
$Config{'d_vprintf'} = 'define';
$Config{'d_wait4'} = 'define';
$Config{'d_waitpid'} = 'define';
-$Config{'dlobj'} = 'dl.o';
-$Config{'dlsrc'} = 'dl.c';
+$Config{'cccdlflags'} = '';
+$Config{'ccdlflags'} = '';
+$Config{'dldir'} = 'ext/dl';
+$Config{'dlobj'} = 'dl_sunos.o';
+$Config{'dlsrc'} = 'dl_sunos.c';
+$Config{'lddlflags'} = '';
+$Config{'shlibsuffix'} = '.so';
$Config{'usedl'} = 'define';
$Config{'gidtype'} = 'gid_t';
$Config{'groupstype'} = 'int';
@@ -246,7 +255,9 @@ $Config{'i_dlfcn'} = 'define';
$Config{'i_fcntl'} = undef;
$Config{'i_gdbm'} = undef;
$Config{'i_grp'} = 'define';
+$Config{'i_memory'} = 'define';
$Config{'i_ndbm'} = 'define';
+$Config{'i_neterrno'} = undef;
$Config{'i_niin'} = 'define';
$Config{'i_sysin'} = undef;
$Config{'d_pwage'} = 'define';
@@ -256,6 +267,7 @@ $Config{'d_pwcomment'} = 'define';
$Config{'d_pwexpire'} = undef;
$Config{'d_pwquota'} = undef;
$Config{'i_pwd'} = 'define';
+$Config{'i_sdbm'} = 'define';
$Config{'i_stdarg'} = undef;
$Config{'i_stddef'} = 'define';
$Config{'i_string'} = 'define';
@@ -275,10 +287,11 @@ $Config{'i_systime'} = 'define';
$Config{'i_systimek'} = undef;
$Config{'i_time'} = undef;
$Config{'timeincl'} = '/usr/include/sys/time.h ';
+$Config{'i_unistd'} = 'define';
$Config{'i_utime'} = 'define';
$Config{'i_varargs'} = 'define';
$Config{'i_varhdr'} = 'varargs.h';
-$Config{'i_vfork'} = 'define';
+$Config{'i_vfork'} = undef;
$Config{'intsize'} = '4';
$Config{'lib'} = '/usr/local/lib';
$Config{'libexp'} = '/usr/local/lib';
@@ -287,6 +300,9 @@ $Config{'libpth'} = ' /lib /usr/lib /usr/ucblib /usr/local/lib';
$Config{'plibpth'} = '';
$Config{'xlibpth'} = '/usr/lib/386 /lib/386';
$Config{'libs'} = '-ldbm -ldl -lm -lposix';
+$Config{'lns'} = '/bin/ln -s';
+$Config{'lseektype'} = 'off_t';
+$Config{'d_mymalloc'} = 'define';
$Config{'mallocobj'} = 'malloc.o';
$Config{'mallocsrc'} = 'malloc.c';
$Config{'malloctype'} = 'char *';
@@ -309,12 +325,15 @@ $Config{'n'} = '-n';
$Config{'groupcat'} = '';
$Config{'hostcat'} = 'ypcat hosts';
$Config{'passcat'} = '';
+$Config{'orderlib'} = 'false';
+$Config{'ranlib'} = '/usr/bin/ranlib';
$Config{'package'} = 'perl';
$Config{'spackage'} = '';
$Config{'installprivlib'} = '/usr/local/lib/perl';
$Config{'privlib'} = '/usr/local/lib/perl';
$Config{'privlibexp'} = '/usr/local/lib/perl';
$Config{'prototype'} = undef;
+$Config{'ptrsize'} = '4';
$Config{'randbits'} = '31';
$Config{'installscript'} = '/usr/local/bin';
$Config{'scriptdir'} = '/usr/local/bin';
@@ -339,4 +358,5 @@ $Config{'voidflags'} = '15';
$Config{'yacc'} = 'yacc';
$Config{'yaccflags'} = '';
$Config{'PATCHLEVEL'} = 0;
-$Config{'CONFIG'} = true
+$Config{'CONFIG'} = 'true';
+1;
diff --git a/lib/English.pm b/lib/English.pm
index ba89b164b5..79cceee53c 100644
--- a/lib/English.pm
+++ b/lib/English.pm
@@ -120,6 +120,7 @@ require Exporter;
# Internals.
*PERL_VERSION = \$] ;
+ *ACCUMULATOR = \$^A ;
*DEBUGGING = \$^D ;
*SYSTEM_FD_MAX = \$^F ;
*INPLACE_EDIT = \$^I ;
diff --git a/lib/Hostname.pm b/lib/Hostname.pm
index 4a59695094..f61592eebe 100644
--- a/lib/Hostname.pm
+++ b/lib/Hostname.pm
@@ -22,14 +22,14 @@ sub hostname {
syscall(&SYS_gethostname, $host, 65) == 0;
}
- # method 3 - sysV uname command
+ # method 3 - trusty old hostname command
|| eval {
- $host = `uname -n 2>/dev/null`; ## sysVish
+ $host = `hostname 2>/dev/null`; # bsdish
}
- # method 4 - trusty old hostname command
+ # method 4 - sysV uname command (may truncate)
|| eval {
- $host = `hostname 2>/dev/null`; # bsdish
+ $host = `uname -n 2>/dev/null`; ## sysVish
}
# method 5 - Apollo pre-SR10
diff --git a/lib/NDBM_File.pm b/lib/NDBM_File.pm
new file mode 100644
index 0000000000..637001f71c
--- /dev/null
+++ b/lib/NDBM_File.pm
@@ -0,0 +1,9 @@
+package NDBM_File;
+
+require Exporter;
+@ISA = (Exporter, DynamicLoader);
+@EXPORT = split(' ', 'new fetch store delete firstkey nextkey error clearerr');
+
+bootstrap NDBM_File;
+
+1;
diff --git a/lib/POSIX.pm b/lib/POSIX.pm
index 4d08f25e5c..e2ccbccac0 100644
--- a/lib/POSIX.pm
+++ b/lib/POSIX.pm
@@ -521,8 +521,8 @@ sub remove {
}
sub rename {
- unimpl "rename(xxx)", caller if @_ != 123;
- rename($_[0]);
+ usage "rename(oldfilename, newfilename)", caller if @_ != 2;
+ rename($_[0], $_[1]);
}
sub rewind {
@@ -707,7 +707,7 @@ sub stroul {
}
sub system {
- unimpl "system(xxx)", caller if @_ != 123;
+ usage "system(command)", caller if @_ != 1;
system($_[0]);
}
@@ -832,18 +832,22 @@ sub strxfrm {
}
sub chmod {
- unimpl "chmod(xxx)", caller if @_ != 123;
- chmod($_[0]);
+ usage "chmod(filename, mode)", caller if @_ != 2;
+ chmod($_[0], $_[1]);
}
sub fstat {
- unimpl "fstat(xxx)", caller if @_ != 123;
- fstat($_[0]);
+ usage "fstat(fd)", caller if @_ != 1;
+ local(*TMP);
+ open(TMP, "<&$_[0]"); # Gross.
+ local(@l) = stat(TMP);
+ close(TMP);
+ @l;
}
sub mkdir {
- unimpl "mkdir(xxx)", caller if @_ != 123;
- mkdir($_[0]);
+ usage "mkdir(directoryname, mode)", caller if @_ != 2;
+ mkdir($_[0], $_[1]);
}
sub mkfifo {
@@ -852,28 +856,32 @@ sub mkfifo {
}
sub stat {
- unimpl "stat(xxx)", caller if @_ != 123;
+ usage "stat(filename)", caller if @_ != 1;
stat($_[0]);
}
sub umask {
- unimpl "umask(xxx)", caller if @_ != 123;
+ usage "umask(mask)", caller if @_ != 1;
umask($_[0]);
}
sub times {
- unimpl "times(xxx)", caller if @_ != 123;
- times($_[0]);
+ usage "times()", caller if @_ != 0;
+ times();
}
sub wait {
- unimpl "wait(xxx)", caller if @_ != 123;
- wait($_[0]);
+ usage "wait(statusvariable)", caller if @_ != 1;
+ local $result = wait();
+ $_[0] = $?;
+ $result;
}
sub waitpid {
- unimpl "waitpid(xxx)", caller if @_ != 123;
- waitpid($_[0]);
+ usage "waitpid(pid, statusvariable, options)", caller if @_ != 3;
+ local $result = waitpid($_[0], $_[2]);
+ $_[1] = $?;
+ $result;
}
sub cfgetispeed {
@@ -1002,8 +1010,8 @@ sub chdir {
}
sub chown {
- unimpl "chown(xxx)", caller if @_ != 123;
- chown($_[0]);
+ usage "chown(filename, uid, gid)", caller if @_ != 3;
+ chown($_[0], $_[1], $_[2]);
}
sub close {
@@ -1077,32 +1085,33 @@ sub getcwd {
}
sub getegid {
- unimpl "getegid(xxx)", caller if @_ != 123;
- getegid($_[0]);
+ usage "getegid()", caller if @_ != 0;
+ $) + 0;
}
sub geteuid {
- unimpl "geteuid(xxx)", caller if @_ != 123;
- geteuid($_[0]);
+ usage "geteuid()", caller if @_ != 0;
+ $> + 0;
}
sub getgid {
- unimpl "getgid(xxx)", caller if @_ != 123;
- getgid($_[0]);
+ usage "getgid()", caller if @_ != 0;
+ $( + 0;
}
sub getgroups {
- unimpl "getgroups(xxx)", caller if @_ != 123;
- getgroups($_[0]);
+ usage "getgroups()", caller if @_ != 0;
+ local(%seen) = ();
+ grep(!%seen{$_}++, split(' ', $) ));
}
sub getlogin {
- unimpl "getlogin(xxx)", caller if @_ != 123;
- getlogin($_[0]);
+ usage "getlogin(xxx)", caller if @_ != 0;
+ getlogin();
}
sub getpgrp {
- unimpl "getpgrp(xxx)", caller if @_ != 123;
+ usage "getpgrp()", caller if @_ != 0;
getpgrp($_[0]);
}
@@ -1117,8 +1126,8 @@ sub getppid {
}
sub getuid {
- unimpl "getuid(xxx)", caller if @_ != 123;
- getuid($_[0]);
+ usage "getuid()", caller if @_ != 0;
+ $<;
}
sub isatty {
@@ -1127,8 +1136,8 @@ sub isatty {
}
sub link {
- unimpl "link(xxx)", caller if @_ != 123;
- link($_[0]);
+ usage "link(oldfilename, newfilename)", caller if @_ != 2;
+ link($_[0], $_[1]);
}
sub lseek {
@@ -1157,7 +1166,7 @@ sub read {
}
sub rmdir {
- unimpl "rmdir(xxx)", caller if @_ != 123;
+ usage "rmdir(directoryname)", caller if @_ != 1;
rmdir($_[0]);
}
@@ -1207,7 +1216,7 @@ sub ttyname {
}
sub unlink {
- unimpl "unlink(xxx)", caller if @_ != 123;
+ usage "unlink(filename)", caller if @_ != 1;
unlink($_[0]);
}
@@ -1217,7 +1226,7 @@ sub write {
}
sub utime {
- unimpl "utime(xxx)", caller if @_ != 123;
- utime($_[0]);
+ usage "utime(filename, atime, mtime)", caller if @_ != 3;
+ utime($_[1], $_[2], $_[0]);
}
diff --git a/lib/SDBM_File.pm b/lib/SDBM_File.pm
index 470d891279..544f66f237 100644
--- a/lib/SDBM_File.pm
+++ b/lib/SDBM_File.pm
@@ -2,7 +2,7 @@ package SDBM_File;
require Exporter;
@ISA = (Exporter, DynamicLoader);
-@EXPORT = split(' ', 'new fetch store delete firstkey nextkey error clearerr');
+@EXPORT = qw(new fetch store delete firstkey nextkey error clearerr);
bootstrap SDBM_File;
diff --git a/lib/termcap.pl b/lib/Termcap.pm
index 22c18179d8..da4c7ce2bc 100644
--- a/lib/termcap.pl
+++ b/lib/Termcap.pm
@@ -1,10 +1,19 @@
-;# $RCSfile: termcap.pl,v $$Revision: 4.1 $$Date: 92/08/07 18:24:16 $
+package Termcap;
+
+require 5.000;
+require Exporter;
+@ISA = (Exporter);
+@EXPORT = qw(&Tgetent $ispeed $ospeed &Tputs %TC &Tgoto);
+
+
+;# Termcap.pm
;#
;# Usage:
;# require 'ioctl.pl';
+;# require Termcap;
+;# import Termcap;
;# ioctl(TTY,$TIOCGETP,$foo);
;# ($ispeed,$ospeed) = unpack('cc',$foo);
-;# require 'termcap.pl';
;# &Tgetent('vt100'); # sets $TC{'cm'}, etc.
;# &Tputs(&Tgoto($TC{'cm'},$col,$row), 0, 'FILEHANDLE');
;# &Tputs($TC{'dl'},$affcnt,'FILEHANDLE');
@@ -14,7 +23,7 @@ sub Tgetent {
local($TERMCAP,$_,$entry,$loop,$field);
warn "Tgetent: no ospeed set" unless $ospeed;
- foreach $key (keys(TC)) {
+ foreach $key (keys(%TC)) {
delete $TC{$key};
}
$TERM = $ENV{'TERM'} unless $TERM;
@@ -56,7 +65,7 @@ sub Tgetent {
$TC{$field} = 1;
}
elsif ($field =~ /^(\w\w)#(.*)/) {
- $TC{$1} = $2 if $TC{$1} eq '';
+ $TC{$1} = $2 unless defined $TC{$1};
}
elsif ($field =~ /^(\w\w)=(.*)/) {
$entry = $1;
@@ -73,11 +82,11 @@ sub Tgetent {
s/\^(.)/pack('c',ord($1) & 31)/eg;
s/\\(.)/$1/g;
s/\377/^/g;
- $TC{$entry} = $_ if $TC{$entry} eq '';
+ $TC{$entry} = $_ unless defined $TC{$entry};
}
}
- $TC{'pc'} = "\0" if $TC{'pc'} eq '';
- $TC{'bc'} = "\b" if $TC{'bc'} eq '';
+ $TC{'pc'} = "\0" unless defined $TC{'pc'};
+ $TC{'bc'} = "\b" unless defined $TC{'bc'};
}
@Tputs = (0,200,133.3,90.9,74.3,66.7,50,33.3,16.7,8.3,5.5,4.1,2,1,.5,.2);
diff --git a/lib/auto/NDBM_File.so b/lib/auto/NDBM_File.so
new file mode 100755
index 0000000000..af2b0d3476
--- /dev/null
+++ b/lib/auto/NDBM_File.so
Binary files differ
diff --git a/lib/auto/NDBM_File/NDBM_File.so b/lib/auto/NDBM_File/NDBM_File.so
new file mode 100755
index 0000000000..49c04e6858
--- /dev/null
+++ b/lib/auto/NDBM_File/NDBM_File.so
Binary files differ
diff --git a/lib/auto/ODBM_File.so b/lib/auto/ODBM_File.so
new file mode 100755
index 0000000000..5044c8a1ab
--- /dev/null
+++ b/lib/auto/ODBM_File.so
Binary files differ
diff --git a/lib/auto/ODBM_File/ODBM_File.so b/lib/auto/ODBM_File/ODBM_File.so
new file mode 100755
index 0000000000..f61231f38e
--- /dev/null
+++ b/lib/auto/ODBM_File/ODBM_File.so
Binary files differ
diff --git a/lib/auto/POSIX.so b/lib/auto/POSIX.so
new file mode 100755
index 0000000000..7065a09cf1
--- /dev/null
+++ b/lib/auto/POSIX.so
Binary files differ
diff --git a/lib/auto/POSIX/POSIX.so b/lib/auto/POSIX/POSIX.so
new file mode 100755
index 0000000000..17560bd798
--- /dev/null
+++ b/lib/auto/POSIX/POSIX.so
Binary files differ
diff --git a/lib/auto/POSIX/_exit.al b/lib/auto/POSIX/_exit.al
new file mode 100644
index 0000000000..7666cebe6e
--- /dev/null
+++ b/lib/auto/POSIX/_exit.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub _exit {
+ unimpl "_exit(xxx)", caller if @_ != 123;
+ _exit($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/abort.al b/lib/auto/POSIX/abort.al
new file mode 100644
index 0000000000..58e7ce915b
--- /dev/null
+++ b/lib/auto/POSIX/abort.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub abort {
+ unimpl "abort(xxx)", caller if @_ != 123;
+ abort($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/abs.al b/lib/auto/POSIX/abs.al
new file mode 100644
index 0000000000..4a832b40d5
--- /dev/null
+++ b/lib/auto/POSIX/abs.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub abs {
+ usage "abs(x)", caller if @_ != 1;
+ abs($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/access.al b/lib/auto/POSIX/access.al
new file mode 100644
index 0000000000..89bbfb043a
--- /dev/null
+++ b/lib/auto/POSIX/access.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub access {
+ unimpl "access(xxx)", caller if @_ != 123;
+ access($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/alarm.al b/lib/auto/POSIX/alarm.al
new file mode 100644
index 0000000000..183b6d965e
--- /dev/null
+++ b/lib/auto/POSIX/alarm.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub alarm {
+ unimpl "alarm(xxx)", caller if @_ != 123;
+ alarm($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/asctime.al b/lib/auto/POSIX/asctime.al
new file mode 100644
index 0000000000..067e0f4211
--- /dev/null
+++ b/lib/auto/POSIX/asctime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub asctime {
+ unimpl "asctime(xxx)", caller if @_ != 123;
+ asctime($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/assert.al b/lib/auto/POSIX/assert.al
new file mode 100644
index 0000000000..f32a8537ed
--- /dev/null
+++ b/lib/auto/POSIX/assert.al
@@ -0,0 +1,12 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub assert {
+ usage "assert(expr)", caller if @_ != 1;
+ if (!$_[0]) {
+ local ($pack,$file,$line) = caller;
+ die "Assertion failed at $file line $line\n";
+ }
+}
+
+1;
diff --git a/lib/auto/POSIX/atan2.al b/lib/auto/POSIX/atan2.al
new file mode 100644
index 0000000000..1b2e23a533
--- /dev/null
+++ b/lib/auto/POSIX/atan2.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub atan2 {
+ usage "atan2(x,y)", caller if @_ != 2;
+ atan2($_[0], $_[1]);
+}
+
+1;
diff --git a/lib/auto/POSIX/atexit.al b/lib/auto/POSIX/atexit.al
new file mode 100644
index 0000000000..054d8da133
--- /dev/null
+++ b/lib/auto/POSIX/atexit.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub atexit {
+ unimpl "atexit() is C-specific: use END {} instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/atof.al b/lib/auto/POSIX/atof.al
new file mode 100644
index 0000000000..0875991941
--- /dev/null
+++ b/lib/auto/POSIX/atof.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub atof {
+ unimpl "atof() is C-specific, stopped", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/atoi.al b/lib/auto/POSIX/atoi.al
new file mode 100644
index 0000000000..6f18387899
--- /dev/null
+++ b/lib/auto/POSIX/atoi.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub atoi {
+ unimpl "atoi() is C-specific, stopped", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/atol.al b/lib/auto/POSIX/atol.al
new file mode 100644
index 0000000000..9393d21333
--- /dev/null
+++ b/lib/auto/POSIX/atol.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub atol {
+ unimpl "atol() is C-specific, stopped", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/bsearch.al b/lib/auto/POSIX/bsearch.al
new file mode 100644
index 0000000000..ed104adf41
--- /dev/null
+++ b/lib/auto/POSIX/bsearch.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub bsearch {
+ unimpl "bsearch(xxx)", caller if @_ != 123;
+ bsearch($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/calloc.al b/lib/auto/POSIX/calloc.al
new file mode 100644
index 0000000000..d53352385c
--- /dev/null
+++ b/lib/auto/POSIX/calloc.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub calloc {
+ unimpl "calloc(xxx)", caller if @_ != 123;
+ calloc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/cfgetispeed.al b/lib/auto/POSIX/cfgetispeed.al
new file mode 100644
index 0000000000..a95efd6f54
--- /dev/null
+++ b/lib/auto/POSIX/cfgetispeed.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub cfgetispeed {
+ unimpl "cfgetispeed(xxx)", caller if @_ != 123;
+ cfgetispeed($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/cfgetospeed.al b/lib/auto/POSIX/cfgetospeed.al
new file mode 100644
index 0000000000..69e66ad76c
--- /dev/null
+++ b/lib/auto/POSIX/cfgetospeed.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub cfgetospeed {
+ unimpl "cfgetospeed(xxx)", caller if @_ != 123;
+ cfgetospeed($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/cfsetispeed.al b/lib/auto/POSIX/cfsetispeed.al
new file mode 100644
index 0000000000..cbcc646b1e
--- /dev/null
+++ b/lib/auto/POSIX/cfsetispeed.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub cfsetispeed {
+ unimpl "cfsetispeed(xxx)", caller if @_ != 123;
+ cfsetispeed($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/cfsetospeed.al b/lib/auto/POSIX/cfsetospeed.al
new file mode 100644
index 0000000000..7dae85c36a
--- /dev/null
+++ b/lib/auto/POSIX/cfsetospeed.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub cfsetospeed {
+ unimpl "cfsetospeed(xxx)", caller if @_ != 123;
+ cfsetospeed($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/chdir.al b/lib/auto/POSIX/chdir.al
new file mode 100644
index 0000000000..9e1f685dc9
--- /dev/null
+++ b/lib/auto/POSIX/chdir.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub chdir {
+ unimpl "chdir(xxx)", caller if @_ != 123;
+ chdir($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/chmod.al b/lib/auto/POSIX/chmod.al
new file mode 100644
index 0000000000..24fe4c5ab1
--- /dev/null
+++ b/lib/auto/POSIX/chmod.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub chmod {
+ usage "chmod(filename, mode)", caller if @_ != 2;
+ chmod($_[0], $_[1]);
+}
+
+1;
diff --git a/lib/auto/POSIX/chown.al b/lib/auto/POSIX/chown.al
new file mode 100644
index 0000000000..127d89861c
--- /dev/null
+++ b/lib/auto/POSIX/chown.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub chown {
+ usage "chown(filename, uid, gid)", caller if @_ != 3;
+ chown($_[0], $_[1], $_[2]);
+}
+
+1;
diff --git a/lib/auto/POSIX/clearerr.al b/lib/auto/POSIX/clearerr.al
new file mode 100644
index 0000000000..412f521938
--- /dev/null
+++ b/lib/auto/POSIX/clearerr.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub clearerr {
+ usage "clearerr(filehandle)", caller if @_ != 1;
+ seek($_[0], 0, 1);
+}
+
+1;
diff --git a/lib/auto/POSIX/clock.al b/lib/auto/POSIX/clock.al
new file mode 100644
index 0000000000..7fae255378
--- /dev/null
+++ b/lib/auto/POSIX/clock.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub clock {
+ unimpl "clock(xxx)", caller if @_ != 123;
+ clock($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/close.al b/lib/auto/POSIX/close.al
new file mode 100644
index 0000000000..ce471881d0
--- /dev/null
+++ b/lib/auto/POSIX/close.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub close {
+ unimpl "close(xxx)", caller if @_ != 123;
+ close($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/closedir.al b/lib/auto/POSIX/closedir.al
new file mode 100644
index 0000000000..bb12a2608d
--- /dev/null
+++ b/lib/auto/POSIX/closedir.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub closedir {
+ usage "closedir(dirhandle)", caller if @_ != 1;
+ closedir($_[0]);
+ ungensym($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/cos.al b/lib/auto/POSIX/cos.al
new file mode 100644
index 0000000000..4ea59dfb32
--- /dev/null
+++ b/lib/auto/POSIX/cos.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub cos {
+ usage "cos(x)", caller if @_ != 1;
+ cos($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/creat.al b/lib/auto/POSIX/creat.al
new file mode 100644
index 0000000000..74656e7dd0
--- /dev/null
+++ b/lib/auto/POSIX/creat.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub creat {
+ usage "creat(filename, mode)", caller if @_ != 2;
+ &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[2]);
+}
+
+1;
diff --git a/lib/auto/POSIX/ctermid.al b/lib/auto/POSIX/ctermid.al
new file mode 100644
index 0000000000..37a8f71a14
--- /dev/null
+++ b/lib/auto/POSIX/ctermid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub ctermid {
+ unimpl "ctermid(xxx)", caller if @_ != 123;
+ ctermid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/ctime.al b/lib/auto/POSIX/ctime.al
new file mode 100644
index 0000000000..d12aa4e64c
--- /dev/null
+++ b/lib/auto/POSIX/ctime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub ctime {
+ unimpl "ctime(xxx)", caller if @_ != 123;
+ ctime($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/cuserid.al b/lib/auto/POSIX/cuserid.al
new file mode 100644
index 0000000000..546c3091fa
--- /dev/null
+++ b/lib/auto/POSIX/cuserid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub cuserid {
+ unimpl "cuserid(xxx)", caller if @_ != 123;
+ cuserid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/difftime.al b/lib/auto/POSIX/difftime.al
new file mode 100644
index 0000000000..dd4b3db5db
--- /dev/null
+++ b/lib/auto/POSIX/difftime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub difftime {
+ unimpl "difftime(xxx)", caller if @_ != 123;
+ difftime($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/div.al b/lib/auto/POSIX/div.al
new file mode 100644
index 0000000000..0102b32fc9
--- /dev/null
+++ b/lib/auto/POSIX/div.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub div {
+ unimpl "div(xxx)", caller if @_ != 123;
+ div($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/dup.al b/lib/auto/POSIX/dup.al
new file mode 100644
index 0000000000..393119e5e0
--- /dev/null
+++ b/lib/auto/POSIX/dup.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub dup {
+ unimpl "dup(xxx)", caller if @_ != 123;
+ dup($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/dup2.al b/lib/auto/POSIX/dup2.al
new file mode 100644
index 0000000000..c85f16e9d5
--- /dev/null
+++ b/lib/auto/POSIX/dup2.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub dup2 {
+ unimpl "dup2(xxx)", caller if @_ != 123;
+ dup2($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/errno.al b/lib/auto/POSIX/errno.al
new file mode 100644
index 0000000000..971b7e8241
--- /dev/null
+++ b/lib/auto/POSIX/errno.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub errno {
+ usage "errno()", caller if @_ != 0;
+ $! + 0;
+}
+
+1;
diff --git a/lib/auto/POSIX/execl.al b/lib/auto/POSIX/execl.al
new file mode 100644
index 0000000000..c89c6fd8c0
--- /dev/null
+++ b/lib/auto/POSIX/execl.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub execl {
+ unimpl "execl(xxx)", caller if @_ != 123;
+ execl($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/execle.al b/lib/auto/POSIX/execle.al
new file mode 100644
index 0000000000..530ac768dc
--- /dev/null
+++ b/lib/auto/POSIX/execle.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub execle {
+ unimpl "execle(xxx)", caller if @_ != 123;
+ execle($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/execlp.al b/lib/auto/POSIX/execlp.al
new file mode 100644
index 0000000000..ea78975435
--- /dev/null
+++ b/lib/auto/POSIX/execlp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub execlp {
+ unimpl "execlp(xxx)", caller if @_ != 123;
+ execlp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/execv.al b/lib/auto/POSIX/execv.al
new file mode 100644
index 0000000000..382ec7dde6
--- /dev/null
+++ b/lib/auto/POSIX/execv.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub execv {
+ unimpl "execv(xxx)", caller if @_ != 123;
+ execv($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/execve.al b/lib/auto/POSIX/execve.al
new file mode 100644
index 0000000000..9f5790a0f1
--- /dev/null
+++ b/lib/auto/POSIX/execve.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub execve {
+ unimpl "execve(xxx)", caller if @_ != 123;
+ execve($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/execvp.al b/lib/auto/POSIX/execvp.al
new file mode 100644
index 0000000000..38677d8b7d
--- /dev/null
+++ b/lib/auto/POSIX/execvp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub execvp {
+ unimpl "execvp(xxx)", caller if @_ != 123;
+ execvp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/exit.al b/lib/auto/POSIX/exit.al
new file mode 100644
index 0000000000..fc46de2cb8
--- /dev/null
+++ b/lib/auto/POSIX/exit.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub exit {
+ unimpl "exit(xxx)", caller if @_ != 123;
+ exit($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/exp.al b/lib/auto/POSIX/exp.al
new file mode 100644
index 0000000000..70683e072f
--- /dev/null
+++ b/lib/auto/POSIX/exp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub exp {
+ usage "exp(x)", caller if @_ != 1;
+ exp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fabs.al b/lib/auto/POSIX/fabs.al
new file mode 100644
index 0000000000..5683d66ca5
--- /dev/null
+++ b/lib/auto/POSIX/fabs.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fabs {
+ usage "fabs(x)", caller if @_ != 1;
+ abs($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fclose.al b/lib/auto/POSIX/fclose.al
new file mode 100644
index 0000000000..493b964561
--- /dev/null
+++ b/lib/auto/POSIX/fclose.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fclose {
+ unimpl "fclose() is C-specific--use close instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/fcntl.al b/lib/auto/POSIX/fcntl.al
new file mode 100644
index 0000000000..8108a00fc6
--- /dev/null
+++ b/lib/auto/POSIX/fcntl.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fcntl {
+ usage "fcntl(filehandle, cmd, arg)", caller if @_ != 3;
+ fcntl($_[0], $_[1], $_[2]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fdopen.al b/lib/auto/POSIX/fdopen.al
new file mode 100644
index 0000000000..23487cabdc
--- /dev/null
+++ b/lib/auto/POSIX/fdopen.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fdopen {
+ unimpl "fdopen(xxx)", caller if @_ != 123;
+ fdopen($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/feof.al b/lib/auto/POSIX/feof.al
new file mode 100644
index 0000000000..895d58b7f0
--- /dev/null
+++ b/lib/auto/POSIX/feof.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub feof {
+ usage "feof(filehandle)", caller if @_ != 1;
+ eof($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/ferror.al b/lib/auto/POSIX/ferror.al
new file mode 100644
index 0000000000..0588424f06
--- /dev/null
+++ b/lib/auto/POSIX/ferror.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub ferror {
+ unimpl "ferror(xxx)", caller if @_ != 123;
+ ferror($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fflush.al b/lib/auto/POSIX/fflush.al
new file mode 100644
index 0000000000..b7b767680c
--- /dev/null
+++ b/lib/auto/POSIX/fflush.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fflush {
+ unimpl "fflush(xxx)", caller if @_ != 123;
+ fflush($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fgetc.al b/lib/auto/POSIX/fgetc.al
new file mode 100644
index 0000000000..41cd70f593
--- /dev/null
+++ b/lib/auto/POSIX/fgetc.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fgetc {
+ usage "fgetc(filehandle)", caller if @_ != 1;
+ getc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fgetpos.al b/lib/auto/POSIX/fgetpos.al
new file mode 100644
index 0000000000..679fcd50dd
--- /dev/null
+++ b/lib/auto/POSIX/fgetpos.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fgetpos {
+ unimpl "fgetpos(xxx)", caller if @_ != 123;
+ fgetpos($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fgets.al b/lib/auto/POSIX/fgets.al
new file mode 100644
index 0000000000..7a475b3778
--- /dev/null
+++ b/lib/auto/POSIX/fgets.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fgets {
+ usage "fgets(filehandle)", caller if @_ != 1;
+ local($handle) = @_;
+ scalar <$handle>;
+}
+
+1;
diff --git a/lib/auto/POSIX/fileno.al b/lib/auto/POSIX/fileno.al
new file mode 100644
index 0000000000..62c7c0aff8
--- /dev/null
+++ b/lib/auto/POSIX/fileno.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fileno {
+ usage "fileno(filehandle)", caller if @_ != 1;
+ fileno($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fopen.al b/lib/auto/POSIX/fopen.al
new file mode 100644
index 0000000000..f4394ad6cb
--- /dev/null
+++ b/lib/auto/POSIX/fopen.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fopen {
+ unimpl "fopen() is C-specific--use open instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/fork.al b/lib/auto/POSIX/fork.al
new file mode 100644
index 0000000000..06466157e5
--- /dev/null
+++ b/lib/auto/POSIX/fork.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fork {
+ usage "fork()", caller if @_ != 0;
+ fork;
+}
+
+1;
diff --git a/lib/auto/POSIX/fpathconf.al b/lib/auto/POSIX/fpathconf.al
new file mode 100644
index 0000000000..533f906395
--- /dev/null
+++ b/lib/auto/POSIX/fpathconf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fpathconf {
+ unimpl "fpathconf(xxx)", caller if @_ != 123;
+ fpathconf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fprintf.al b/lib/auto/POSIX/fprintf.al
new file mode 100644
index 0000000000..b577f9ad35
--- /dev/null
+++ b/lib/auto/POSIX/fprintf.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fprintf {
+ unimpl "fprintf() is C-specific--use printf instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/fputc.al b/lib/auto/POSIX/fputc.al
new file mode 100644
index 0000000000..0cdf82c5a3
--- /dev/null
+++ b/lib/auto/POSIX/fputc.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fputc {
+ unimpl "fputc() is C-specific--use print instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/fputs.al b/lib/auto/POSIX/fputs.al
new file mode 100644
index 0000000000..208eea6ba9
--- /dev/null
+++ b/lib/auto/POSIX/fputs.al
@@ -0,0 +1,11 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fputs {
+ unimpl "fputs() is C-specific--use print instead", caller;
+ usage "fputs(string, handle)", caller if @_ != 2;
+ local($handle) = pop;
+ print $handle @_;
+}
+
+1;
diff --git a/lib/auto/POSIX/fread.al b/lib/auto/POSIX/fread.al
new file mode 100644
index 0000000000..5b5c0c5fd7
--- /dev/null
+++ b/lib/auto/POSIX/fread.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fread {
+ unimpl "fread() is C-specific--use read instead", caller;
+ unimpl "fread(xxx)", caller if @_ != 123;
+ fread($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/free.al b/lib/auto/POSIX/free.al
new file mode 100644
index 0000000000..319a76d5a9
--- /dev/null
+++ b/lib/auto/POSIX/free.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub free {
+ unimpl "free(xxx)", caller if @_ != 123;
+ free($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/freopen.al b/lib/auto/POSIX/freopen.al
new file mode 100644
index 0000000000..ed4eca6d67
--- /dev/null
+++ b/lib/auto/POSIX/freopen.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub freopen {
+ unimpl "freopen() is C-specific--use open instead", caller;
+ unimpl "freopen(xxx)", caller if @_ != 123;
+ freopen($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fscanf.al b/lib/auto/POSIX/fscanf.al
new file mode 100644
index 0000000000..80a8e61454
--- /dev/null
+++ b/lib/auto/POSIX/fscanf.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fscanf {
+ unimpl "fscanf() is C-specific--use <> and regular expressions instead", caller;
+ unimpl "fscanf(xxx)", caller if @_ != 123;
+ fscanf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fseek.al b/lib/auto/POSIX/fseek.al
new file mode 100644
index 0000000000..55da72a549
--- /dev/null
+++ b/lib/auto/POSIX/fseek.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fseek {
+ unimpl "fseek() is C-specific--use seek instead", caller;
+ unimpl "fseek(xxx)", caller if @_ != 123;
+ fseek($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fsetpos.al b/lib/auto/POSIX/fsetpos.al
new file mode 100644
index 0000000000..9b59546e40
--- /dev/null
+++ b/lib/auto/POSIX/fsetpos.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fsetpos {
+ unimpl "fsetpos() is C-specific--use seek instead", caller;
+ unimpl "fsetpos(xxx)", caller if @_ != 123;
+ fsetpos($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fstat.al b/lib/auto/POSIX/fstat.al
new file mode 100644
index 0000000000..64ac1b6dad
--- /dev/null
+++ b/lib/auto/POSIX/fstat.al
@@ -0,0 +1,13 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fstat {
+ usage "fstat(fd)", caller if @_ != 1;
+ local(*TMP);
+ open(TMP, "<&$_[0]"); # Gross.
+ local(@l) = stat(TMP);
+ close(TMP);
+ @l;
+}
+
+1;
diff --git a/lib/auto/POSIX/ftell.al b/lib/auto/POSIX/ftell.al
new file mode 100644
index 0000000000..aa922c69b1
--- /dev/null
+++ b/lib/auto/POSIX/ftell.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub ftell {
+ unimpl "ftell() is C-specific--use tell instead", caller;
+ unimpl "ftell(xxx)", caller if @_ != 123;
+ ftell($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/fwrite.al b/lib/auto/POSIX/fwrite.al
new file mode 100644
index 0000000000..09d8e7db55
--- /dev/null
+++ b/lib/auto/POSIX/fwrite.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub fwrite {
+ unimpl "fwrite() is C-specific--use print instead", caller;
+ unimpl "fwrite(xxx)", caller if @_ != 123;
+ fwrite($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/getc.al b/lib/auto/POSIX/getc.al
new file mode 100644
index 0000000000..5919395af1
--- /dev/null
+++ b/lib/auto/POSIX/getc.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getc {
+ usage "getc(handle)", caller if @_ != 1;
+ getc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/getchar.al b/lib/auto/POSIX/getchar.al
new file mode 100644
index 0000000000..08e5111b60
--- /dev/null
+++ b/lib/auto/POSIX/getchar.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getchar {
+ usage "getchar()", caller if @_ != 0;
+ getc(STDIN);
+}
+
+1;
diff --git a/lib/auto/POSIX/getcwd.al b/lib/auto/POSIX/getcwd.al
new file mode 100644
index 0000000000..1e1ec7c688
--- /dev/null
+++ b/lib/auto/POSIX/getcwd.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getcwd {
+ unimpl "getcwd(xxx)", caller if @_ != 123;
+ getcwd($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/getegid.al b/lib/auto/POSIX/getegid.al
new file mode 100644
index 0000000000..6f3719cc44
--- /dev/null
+++ b/lib/auto/POSIX/getegid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getegid {
+ usage "getegid()", caller if @_ != 0;
+ $) + 0;
+}
+
+1;
diff --git a/lib/auto/POSIX/getenv.al b/lib/auto/POSIX/getenv.al
new file mode 100644
index 0000000000..04fc148f23
--- /dev/null
+++ b/lib/auto/POSIX/getenv.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getenv {
+ unimpl "getenv(xxx)", caller if @_ != 123;
+ getenv($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/geteuid.al b/lib/auto/POSIX/geteuid.al
new file mode 100644
index 0000000000..74b10ff30f
--- /dev/null
+++ b/lib/auto/POSIX/geteuid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub geteuid {
+ usage "geteuid()", caller if @_ != 0;
+ $> + 0;
+}
+
+1;
diff --git a/lib/auto/POSIX/getgid.al b/lib/auto/POSIX/getgid.al
new file mode 100644
index 0000000000..a106618fff
--- /dev/null
+++ b/lib/auto/POSIX/getgid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getgid {
+ usage "getgid()", caller if @_ != 0;
+ $( + 0;
+}
+
+1;
diff --git a/lib/auto/POSIX/getgrgid.al b/lib/auto/POSIX/getgrgid.al
new file mode 100644
index 0000000000..485ed2b04c
--- /dev/null
+++ b/lib/auto/POSIX/getgrgid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getgrgid {
+ usage "getgrgid(gid)", caller if @_ != 1;
+ getgrgid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/getgrnam.al b/lib/auto/POSIX/getgrnam.al
new file mode 100644
index 0000000000..1dcbc69850
--- /dev/null
+++ b/lib/auto/POSIX/getgrnam.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getgrnam {
+ usage "getgrnam(name)", caller if @_ != 1;
+ getgrnam($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/getgroups.al b/lib/auto/POSIX/getgroups.al
new file mode 100644
index 0000000000..34ae5e87cd
--- /dev/null
+++ b/lib/auto/POSIX/getgroups.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getgroups {
+ usage "getgroups()", caller if @_ != 0;
+ local(%seen) = ();
+ grep(!%seen{$_}++, split(' ', $) ));
+}
+
+1;
diff --git a/lib/auto/POSIX/getlogin.al b/lib/auto/POSIX/getlogin.al
new file mode 100644
index 0000000000..8f61cb24f2
--- /dev/null
+++ b/lib/auto/POSIX/getlogin.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getlogin {
+ usage "getlogin(xxx)", caller if @_ != 0;
+ getlogin();
+}
+
+1;
diff --git a/lib/auto/POSIX/getpgrp.al b/lib/auto/POSIX/getpgrp.al
new file mode 100644
index 0000000000..0364706e53
--- /dev/null
+++ b/lib/auto/POSIX/getpgrp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getpgrp {
+ usage "getpgrp()", caller if @_ != 0;
+ getpgrp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/getpid.al b/lib/auto/POSIX/getpid.al
new file mode 100644
index 0000000000..51deea44db
--- /dev/null
+++ b/lib/auto/POSIX/getpid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getpid {
+ usage "getpid()", caller if @_ != 0;
+ $$;
+}
+
+1;
diff --git a/lib/auto/POSIX/getppid.al b/lib/auto/POSIX/getppid.al
new file mode 100644
index 0000000000..95450e95ee
--- /dev/null
+++ b/lib/auto/POSIX/getppid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getppid {
+ usage "getppid()", caller if @_ != 0;
+ getppid;
+}
+
+1;
diff --git a/lib/auto/POSIX/getpwnam.al b/lib/auto/POSIX/getpwnam.al
new file mode 100644
index 0000000000..d4cbc8d766
--- /dev/null
+++ b/lib/auto/POSIX/getpwnam.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getpwnam {
+ usage "getpwnam(name)", caller if @_ != 1;
+ getpwnam($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/getpwuid.al b/lib/auto/POSIX/getpwuid.al
new file mode 100644
index 0000000000..cfb1265761
--- /dev/null
+++ b/lib/auto/POSIX/getpwuid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getpwuid {
+ usage "getpwuid(uid)", caller if @_ != 1;
+ getpwuid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/gets.al b/lib/auto/POSIX/gets.al
new file mode 100644
index 0000000000..d989692172
--- /dev/null
+++ b/lib/auto/POSIX/gets.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub gets {
+ usage "gets(handle)", caller if @_ != 1;
+ local($handle) = shift;
+ scalar <$handle>;
+}
+
+1;
diff --git a/lib/auto/POSIX/getuid.al b/lib/auto/POSIX/getuid.al
new file mode 100644
index 0000000000..6b97d4889f
--- /dev/null
+++ b/lib/auto/POSIX/getuid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub getuid {
+ usage "getuid()", caller if @_ != 0;
+ $<;
+}
+
+1;
diff --git a/lib/auto/POSIX/gmtime.al b/lib/auto/POSIX/gmtime.al
new file mode 100644
index 0000000000..520d2dadc5
--- /dev/null
+++ b/lib/auto/POSIX/gmtime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub gmtime {
+ unimpl "gmtime(xxx)", caller if @_ != 123;
+ gmtime($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/isatty.al b/lib/auto/POSIX/isatty.al
new file mode 100644
index 0000000000..dfc50f4d63
--- /dev/null
+++ b/lib/auto/POSIX/isatty.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub isatty {
+ unimpl "isatty(xxx)", caller if @_ != 123;
+ isatty($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/kill.al b/lib/auto/POSIX/kill.al
new file mode 100644
index 0000000000..138a6d72f4
--- /dev/null
+++ b/lib/auto/POSIX/kill.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub kill {
+ usage "kill(pid, sig)", caller if @_ != 2;
+ kill $_[1], $_[0];
+}
+
+1;
diff --git a/lib/auto/POSIX/labs.al b/lib/auto/POSIX/labs.al
new file mode 100644
index 0000000000..90426e8298
--- /dev/null
+++ b/lib/auto/POSIX/labs.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub labs {
+ unimpl "labs(xxx)", caller if @_ != 123;
+ labs($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/ldiv.al b/lib/auto/POSIX/ldiv.al
new file mode 100644
index 0000000000..788fb3219e
--- /dev/null
+++ b/lib/auto/POSIX/ldiv.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub ldiv {
+ unimpl "ldiv(xxx)", caller if @_ != 123;
+ ldiv($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/link.al b/lib/auto/POSIX/link.al
new file mode 100644
index 0000000000..662ad9d41e
--- /dev/null
+++ b/lib/auto/POSIX/link.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub link {
+ usage "link(oldfilename, newfilename)", caller if @_ != 2;
+ link($_[0], $_[1]);
+}
+
+1;
diff --git a/lib/auto/POSIX/localtime.al b/lib/auto/POSIX/localtime.al
new file mode 100644
index 0000000000..5e4d61a940
--- /dev/null
+++ b/lib/auto/POSIX/localtime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub localtime {
+ unimpl "localtime(xxx)", caller if @_ != 123;
+ localtime($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/log.al b/lib/auto/POSIX/log.al
new file mode 100644
index 0000000000..2ba36f20cc
--- /dev/null
+++ b/lib/auto/POSIX/log.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub log {
+ usage "log(x)", caller if @_ != 1;
+ log($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/longjmp.al b/lib/auto/POSIX/longjmp.al
new file mode 100644
index 0000000000..d403d46bc5
--- /dev/null
+++ b/lib/auto/POSIX/longjmp.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub longjmp {
+ unimpl "longjmp() is C-specific: use die instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/lseek.al b/lib/auto/POSIX/lseek.al
new file mode 100644
index 0000000000..ded754a642
--- /dev/null
+++ b/lib/auto/POSIX/lseek.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub lseek {
+ unimpl "lseek(xxx)", caller if @_ != 123;
+ lseek($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/malloc.al b/lib/auto/POSIX/malloc.al
new file mode 100644
index 0000000000..e860639b0d
--- /dev/null
+++ b/lib/auto/POSIX/malloc.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub malloc {
+ unimpl "malloc(xxx)", caller if @_ != 123;
+ malloc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/mblen.al b/lib/auto/POSIX/mblen.al
new file mode 100644
index 0000000000..1a7b7f3428
--- /dev/null
+++ b/lib/auto/POSIX/mblen.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub mblen {
+ unimpl "mblen(xxx)", caller if @_ != 123;
+ mblen($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/mbstowcs.al b/lib/auto/POSIX/mbstowcs.al
new file mode 100644
index 0000000000..8f15fe306e
--- /dev/null
+++ b/lib/auto/POSIX/mbstowcs.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub mbstowcs {
+ unimpl "mbstowcs(xxx)", caller if @_ != 123;
+ mbstowcs($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/mbtowc.al b/lib/auto/POSIX/mbtowc.al
new file mode 100644
index 0000000000..695dcb98f4
--- /dev/null
+++ b/lib/auto/POSIX/mbtowc.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub mbtowc {
+ unimpl "mbtowc(xxx)", caller if @_ != 123;
+ mbtowc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/memchr.al b/lib/auto/POSIX/memchr.al
new file mode 100644
index 0000000000..28b0c1255b
--- /dev/null
+++ b/lib/auto/POSIX/memchr.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub memchr {
+ unimpl "memchr(xxx)", caller if @_ != 123;
+ memchr($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/memcmp.al b/lib/auto/POSIX/memcmp.al
new file mode 100644
index 0000000000..8406f28ed9
--- /dev/null
+++ b/lib/auto/POSIX/memcmp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub memcmp {
+ unimpl "memcmp(xxx)", caller if @_ != 123;
+ memcmp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/memcpy.al b/lib/auto/POSIX/memcpy.al
new file mode 100644
index 0000000000..eee2dd61fd
--- /dev/null
+++ b/lib/auto/POSIX/memcpy.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub memcpy {
+ unimpl "memcpy(xxx)", caller if @_ != 123;
+ memcpy($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/memmove.al b/lib/auto/POSIX/memmove.al
new file mode 100644
index 0000000000..c926d78fa0
--- /dev/null
+++ b/lib/auto/POSIX/memmove.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub memmove {
+ unimpl "memmove(xxx)", caller if @_ != 123;
+ memmove($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/memset.al b/lib/auto/POSIX/memset.al
new file mode 100644
index 0000000000..369930e346
--- /dev/null
+++ b/lib/auto/POSIX/memset.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub memset {
+ unimpl "memset(xxx)", caller if @_ != 123;
+ memset($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/mkdir.al b/lib/auto/POSIX/mkdir.al
new file mode 100644
index 0000000000..0b1088271e
--- /dev/null
+++ b/lib/auto/POSIX/mkdir.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub mkdir {
+ usage "mkdir(directoryname, mode)", caller if @_ != 2;
+ mkdir($_[0], $_[1]);
+}
+
+1;
diff --git a/lib/auto/POSIX/mkfifo.al b/lib/auto/POSIX/mkfifo.al
new file mode 100644
index 0000000000..8b6ad724f1
--- /dev/null
+++ b/lib/auto/POSIX/mkfifo.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub mkfifo {
+ unimpl "mkfifo(xxx)", caller if @_ != 123;
+ mkfifo($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/mktime.al b/lib/auto/POSIX/mktime.al
new file mode 100644
index 0000000000..df7e3556fd
--- /dev/null
+++ b/lib/auto/POSIX/mktime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub mktime {
+ unimpl "mktime(xxx)", caller if @_ != 123;
+ mktime($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/offsetof.al b/lib/auto/POSIX/offsetof.al
new file mode 100644
index 0000000000..fb5ecfb819
--- /dev/null
+++ b/lib/auto/POSIX/offsetof.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub offsetof {
+ unimpl "offsetof() is C-specific, stopped", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/opendir.al b/lib/auto/POSIX/opendir.al
new file mode 100644
index 0000000000..7c264d4770
--- /dev/null
+++ b/lib/auto/POSIX/opendir.al
@@ -0,0 +1,12 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub opendir {
+ usage "opendir(directory)", caller if @_ != 1;
+ local($dirhandle) = &gensym;
+ opendir($dirhandle, $_[0])
+ ? $dirhandle
+ : (ungensym($dirhandle), undef);
+}
+
+1;
diff --git a/lib/auto/POSIX/pathconf.al b/lib/auto/POSIX/pathconf.al
new file mode 100644
index 0000000000..4a66189185
--- /dev/null
+++ b/lib/auto/POSIX/pathconf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub pathconf {
+ unimpl "pathconf(xxx)", caller if @_ != 123;
+ pathconf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/pause.al b/lib/auto/POSIX/pause.al
new file mode 100644
index 0000000000..41fcea6c23
--- /dev/null
+++ b/lib/auto/POSIX/pause.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub pause {
+ unimpl "pause(xxx)", caller if @_ != 123;
+ pause($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/perror.al b/lib/auto/POSIX/perror.al
new file mode 100644
index 0000000000..36ae11e4c7
--- /dev/null
+++ b/lib/auto/POSIX/perror.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub perror {
+ unimpl "perror() is C-specific--print $! instead", caller;
+ unimpl "perror(xxx)", caller if @_ != 123;
+ perror($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/pipe.al b/lib/auto/POSIX/pipe.al
new file mode 100644
index 0000000000..d65b5ec885
--- /dev/null
+++ b/lib/auto/POSIX/pipe.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub pipe {
+ unimpl "pipe(xxx)", caller if @_ != 123;
+ pipe($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/pow.al b/lib/auto/POSIX/pow.al
new file mode 100644
index 0000000000..0893b2260e
--- /dev/null
+++ b/lib/auto/POSIX/pow.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub pow {
+ usage "pow(x,exponent)", caller if @_ != 2;
+ $_[0] ** $_[1];
+}
+
+1;
diff --git a/lib/auto/POSIX/printf.al b/lib/auto/POSIX/printf.al
new file mode 100644
index 0000000000..f911780072
--- /dev/null
+++ b/lib/auto/POSIX/printf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub printf {
+ usage "printf(pattern, args...)", caller if @_ < 1;
+ printf STDOUT @_;
+}
+
+1;
diff --git a/lib/auto/POSIX/putc.al b/lib/auto/POSIX/putc.al
new file mode 100644
index 0000000000..59eaca87a3
--- /dev/null
+++ b/lib/auto/POSIX/putc.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub putc {
+ unimpl "putc() is C-specific--use print instead", caller;
+ unimpl "putc(xxx)", caller if @_ != 123;
+ putc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/putchar.al b/lib/auto/POSIX/putchar.al
new file mode 100644
index 0000000000..1d6016c08d
--- /dev/null
+++ b/lib/auto/POSIX/putchar.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub putchar {
+ unimpl "putchar() is C-specific--use print instead", caller;
+ unimpl "putchar(xxx)", caller if @_ != 123;
+ putchar($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/puts.al b/lib/auto/POSIX/puts.al
new file mode 100644
index 0000000000..84d3d8072a
--- /dev/null
+++ b/lib/auto/POSIX/puts.al
@@ -0,0 +1,10 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub puts {
+ unimpl "puts() is C-specific--use print instead", caller;
+ unimpl "puts(xxx)", caller if @_ != 123;
+ puts($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/qsort.al b/lib/auto/POSIX/qsort.al
new file mode 100644
index 0000000000..93eb12496c
--- /dev/null
+++ b/lib/auto/POSIX/qsort.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub qsort {
+ unimpl "qsort(xxx)", caller if @_ != 123;
+ qsort($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/raise.al b/lib/auto/POSIX/raise.al
new file mode 100644
index 0000000000..de43d2a29e
--- /dev/null
+++ b/lib/auto/POSIX/raise.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub raise {
+ usage "raise(sig)", caller if @_ != 1;
+ kill $$, $_[0]; # Is this good enough?
+}
+
+1;
diff --git a/lib/auto/POSIX/rand.al b/lib/auto/POSIX/rand.al
new file mode 100644
index 0000000000..08c3a1bfc7
--- /dev/null
+++ b/lib/auto/POSIX/rand.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub rand {
+ unimpl "rand(xxx)", caller if @_ != 123;
+ rand($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/read.al b/lib/auto/POSIX/read.al
new file mode 100644
index 0000000000..50363afd41
--- /dev/null
+++ b/lib/auto/POSIX/read.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub read {
+ unimpl "read(xxx)", caller if @_ != 123;
+ read($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/readdir.al b/lib/auto/POSIX/readdir.al
new file mode 100644
index 0000000000..84792b0c41
--- /dev/null
+++ b/lib/auto/POSIX/readdir.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub readdir {
+ usage "readdir(dirhandle)", caller if @_ != 1;
+ readdir($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/realloc.al b/lib/auto/POSIX/realloc.al
new file mode 100644
index 0000000000..4899b059c2
--- /dev/null
+++ b/lib/auto/POSIX/realloc.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub realloc {
+ unimpl "realloc(xxx)", caller if @_ != 123;
+ realloc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/remove.al b/lib/auto/POSIX/remove.al
new file mode 100644
index 0000000000..83d2b8aa79
--- /dev/null
+++ b/lib/auto/POSIX/remove.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub remove {
+ unimpl "remove(xxx)", caller if @_ != 123;
+ remove($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/rename.al b/lib/auto/POSIX/rename.al
new file mode 100644
index 0000000000..b657c5a39d
--- /dev/null
+++ b/lib/auto/POSIX/rename.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub rename {
+ usage "rename(oldfilename, newfilename)", caller if @_ != 2;
+ rename($_[0], $_[1]);
+}
+
+1;
diff --git a/lib/auto/POSIX/rewind.al b/lib/auto/POSIX/rewind.al
new file mode 100644
index 0000000000..0bbcc845a6
--- /dev/null
+++ b/lib/auto/POSIX/rewind.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub rewind {
+ unimpl "rewind(xxx)", caller if @_ != 123;
+ rewind($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/rewinddir.al b/lib/auto/POSIX/rewinddir.al
new file mode 100644
index 0000000000..610f45818d
--- /dev/null
+++ b/lib/auto/POSIX/rewinddir.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub rewinddir {
+ usage "rewinddir(dirhandle)", caller if @_ != 1;
+ rewinddir($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/rmdir.al b/lib/auto/POSIX/rmdir.al
new file mode 100644
index 0000000000..a439aa6f93
--- /dev/null
+++ b/lib/auto/POSIX/rmdir.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub rmdir {
+ usage "rmdir(directoryname)", caller if @_ != 1;
+ rmdir($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/scanf.al b/lib/auto/POSIX/scanf.al
new file mode 100644
index 0000000000..f15440924d
--- /dev/null
+++ b/lib/auto/POSIX/scanf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub scanf {
+ unimpl "scanf(xxx)", caller if @_ != 123;
+ scanf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/setbuf.al b/lib/auto/POSIX/setbuf.al
new file mode 100644
index 0000000000..96f2e976dd
--- /dev/null
+++ b/lib/auto/POSIX/setbuf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub setbuf {
+ unimpl "setbuf(xxx)", caller if @_ != 123;
+ setbuf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/setgid.al b/lib/auto/POSIX/setgid.al
new file mode 100644
index 0000000000..fcbb8b6f79
--- /dev/null
+++ b/lib/auto/POSIX/setgid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub setgid {
+ unimpl "setgid(xxx)", caller if @_ != 123;
+ setgid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/setjmp.al b/lib/auto/POSIX/setjmp.al
new file mode 100644
index 0000000000..93e614a32e
--- /dev/null
+++ b/lib/auto/POSIX/setjmp.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub setjmp {
+ unimpl "setjmp() is C-specific: use eval {} instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/setpgid.al b/lib/auto/POSIX/setpgid.al
new file mode 100644
index 0000000000..948e79a977
--- /dev/null
+++ b/lib/auto/POSIX/setpgid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub setpgid {
+ unimpl "setpgid(xxx)", caller if @_ != 123;
+ setpgid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/setsid.al b/lib/auto/POSIX/setsid.al
new file mode 100644
index 0000000000..7edc965f05
--- /dev/null
+++ b/lib/auto/POSIX/setsid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub setsid {
+ unimpl "setsid(xxx)", caller if @_ != 123;
+ setsid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/setuid.al b/lib/auto/POSIX/setuid.al
new file mode 100644
index 0000000000..02da7d3ab6
--- /dev/null
+++ b/lib/auto/POSIX/setuid.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub setuid {
+ unimpl "setuid(xxx)", caller if @_ != 123;
+ setuid($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/setvbuf.al b/lib/auto/POSIX/setvbuf.al
new file mode 100644
index 0000000000..5303581077
--- /dev/null
+++ b/lib/auto/POSIX/setvbuf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub setvbuf {
+ unimpl "setvbuf(xxx)", caller if @_ != 123;
+ setvbuf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigaction.al b/lib/auto/POSIX/sigaction.al
new file mode 100644
index 0000000000..c2b83002b6
--- /dev/null
+++ b/lib/auto/POSIX/sigaction.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigaction {
+ unimpl "sigaction(xxx)", caller if @_ != 123;
+ sigaction($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigaddset.al b/lib/auto/POSIX/sigaddset.al
new file mode 100644
index 0000000000..9a0ea675f7
--- /dev/null
+++ b/lib/auto/POSIX/sigaddset.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigaddset {
+ unimpl "sigaddset(xxx)", caller if @_ != 123;
+ sigaddset($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigdelset.al b/lib/auto/POSIX/sigdelset.al
new file mode 100644
index 0000000000..c252f9f876
--- /dev/null
+++ b/lib/auto/POSIX/sigdelset.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigdelset {
+ unimpl "sigdelset(xxx)", caller if @_ != 123;
+ sigdelset($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigemptyset.al b/lib/auto/POSIX/sigemptyset.al
new file mode 100644
index 0000000000..f665f624e6
--- /dev/null
+++ b/lib/auto/POSIX/sigemptyset.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigemptyset {
+ unimpl "sigemptyset(xxx)", caller if @_ != 123;
+ sigemptyset($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigfillset.al b/lib/auto/POSIX/sigfillset.al
new file mode 100644
index 0000000000..b685797815
--- /dev/null
+++ b/lib/auto/POSIX/sigfillset.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigfillset {
+ unimpl "sigfillset(xxx)", caller if @_ != 123;
+ sigfillset($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigismember.al b/lib/auto/POSIX/sigismember.al
new file mode 100644
index 0000000000..67c9d98eb5
--- /dev/null
+++ b/lib/auto/POSIX/sigismember.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigismember {
+ unimpl "sigismember(xxx)", caller if @_ != 123;
+ sigismember($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/siglongjmp.al b/lib/auto/POSIX/siglongjmp.al
new file mode 100644
index 0000000000..48ab95ed26
--- /dev/null
+++ b/lib/auto/POSIX/siglongjmp.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub siglongjmp {
+ unimpl "siglongjmp() is C-specific: use die instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/signal.al b/lib/auto/POSIX/signal.al
new file mode 100644
index 0000000000..2471bd302c
--- /dev/null
+++ b/lib/auto/POSIX/signal.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub signal {
+ unimpl "signal(xxx)", caller if @_ != 123;
+ signal($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigpending.al b/lib/auto/POSIX/sigpending.al
new file mode 100644
index 0000000000..bb2c76de5d
--- /dev/null
+++ b/lib/auto/POSIX/sigpending.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigpending {
+ unimpl "sigpending(xxx)", caller if @_ != 123;
+ sigpending($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigprocmask.al b/lib/auto/POSIX/sigprocmask.al
new file mode 100644
index 0000000000..a6d42a2d43
--- /dev/null
+++ b/lib/auto/POSIX/sigprocmask.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigprocmask {
+ unimpl "sigprocmask(xxx)", caller if @_ != 123;
+ sigprocmask($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sigsetjmp.al b/lib/auto/POSIX/sigsetjmp.al
new file mode 100644
index 0000000000..b737259b1a
--- /dev/null
+++ b/lib/auto/POSIX/sigsetjmp.al
@@ -0,0 +1,8 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigsetjmp {
+ unimpl "sigsetjmp() is C-specific: use eval {} instead", caller;
+}
+
+1;
diff --git a/lib/auto/POSIX/sigsuspend.al b/lib/auto/POSIX/sigsuspend.al
new file mode 100644
index 0000000000..159f1d5aa6
--- /dev/null
+++ b/lib/auto/POSIX/sigsuspend.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sigsuspend {
+ unimpl "sigsuspend(xxx)", caller if @_ != 123;
+ sigsuspend($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sin.al b/lib/auto/POSIX/sin.al
new file mode 100644
index 0000000000..90681ff8d9
--- /dev/null
+++ b/lib/auto/POSIX/sin.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sin {
+ usage "sin(x)", caller if @_ != 1;
+ sin($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sleep.al b/lib/auto/POSIX/sleep.al
new file mode 100644
index 0000000000..ac326e8882
--- /dev/null
+++ b/lib/auto/POSIX/sleep.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sleep {
+ unimpl "sleep(xxx)", caller if @_ != 123;
+ sleep($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sprintf.al b/lib/auto/POSIX/sprintf.al
new file mode 100644
index 0000000000..5a61a83dd9
--- /dev/null
+++ b/lib/auto/POSIX/sprintf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sprintf {
+ unimpl "sprintf(xxx)", caller if @_ != 123;
+ sprintf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sqrt.al b/lib/auto/POSIX/sqrt.al
new file mode 100644
index 0000000000..f2efe5d76d
--- /dev/null
+++ b/lib/auto/POSIX/sqrt.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sqrt {
+ usage "sqrt(x)", caller if @_ != 1;
+ sqrt($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/srand.al b/lib/auto/POSIX/srand.al
new file mode 100644
index 0000000000..563757dcd1
--- /dev/null
+++ b/lib/auto/POSIX/srand.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub srand {
+ unimpl "srand(xxx)", caller if @_ != 123;
+ srand($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sscanf.al b/lib/auto/POSIX/sscanf.al
new file mode 100644
index 0000000000..05701419d7
--- /dev/null
+++ b/lib/auto/POSIX/sscanf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sscanf {
+ unimpl "sscanf(xxx)", caller if @_ != 123;
+ sscanf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/stat.al b/lib/auto/POSIX/stat.al
new file mode 100644
index 0000000000..636607eb33
--- /dev/null
+++ b/lib/auto/POSIX/stat.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub stat {
+ usage "stat(filename)", caller if @_ != 1;
+ stat($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strcat.al b/lib/auto/POSIX/strcat.al
new file mode 100644
index 0000000000..b80dd70529
--- /dev/null
+++ b/lib/auto/POSIX/strcat.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strcat {
+ unimpl "strcat(xxx)", caller if @_ != 123;
+ strcat($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strchr.al b/lib/auto/POSIX/strchr.al
new file mode 100644
index 0000000000..9dbea2e1ec
--- /dev/null
+++ b/lib/auto/POSIX/strchr.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strchr {
+ unimpl "strchr(xxx)", caller if @_ != 123;
+ strchr($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strcmp.al b/lib/auto/POSIX/strcmp.al
new file mode 100644
index 0000000000..72f53043a8
--- /dev/null
+++ b/lib/auto/POSIX/strcmp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strcmp {
+ unimpl "strcmp(xxx)", caller if @_ != 123;
+ strcmp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strcoll.al b/lib/auto/POSIX/strcoll.al
new file mode 100644
index 0000000000..a904097e3f
--- /dev/null
+++ b/lib/auto/POSIX/strcoll.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strcoll {
+ unimpl "strcoll(xxx)", caller if @_ != 123;
+ strcoll($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strcpy.al b/lib/auto/POSIX/strcpy.al
new file mode 100644
index 0000000000..aa3e05d713
--- /dev/null
+++ b/lib/auto/POSIX/strcpy.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strcpy {
+ unimpl "strcpy(xxx)", caller if @_ != 123;
+ strcpy($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strcspn.al b/lib/auto/POSIX/strcspn.al
new file mode 100644
index 0000000000..00a5c1a968
--- /dev/null
+++ b/lib/auto/POSIX/strcspn.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strcspn {
+ unimpl "strcspn(xxx)", caller if @_ != 123;
+ strcspn($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strerror.al b/lib/auto/POSIX/strerror.al
new file mode 100644
index 0000000000..d4dbd7eeb9
--- /dev/null
+++ b/lib/auto/POSIX/strerror.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strerror {
+ unimpl "strerror(xxx)", caller if @_ != 123;
+ strerror($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strftime.al b/lib/auto/POSIX/strftime.al
new file mode 100644
index 0000000000..578b3245c2
--- /dev/null
+++ b/lib/auto/POSIX/strftime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strftime {
+ unimpl "strftime(xxx)", caller if @_ != 123;
+ strftime($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strlen.al b/lib/auto/POSIX/strlen.al
new file mode 100644
index 0000000000..afb3a7e025
--- /dev/null
+++ b/lib/auto/POSIX/strlen.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strlen {
+ unimpl "strlen(xxx)", caller if @_ != 123;
+ strlen($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strncat.al b/lib/auto/POSIX/strncat.al
new file mode 100644
index 0000000000..d5694bdddd
--- /dev/null
+++ b/lib/auto/POSIX/strncat.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strncat {
+ unimpl "strncat(xxx)", caller if @_ != 123;
+ strncat($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strncmp.al b/lib/auto/POSIX/strncmp.al
new file mode 100644
index 0000000000..d85972c0a2
--- /dev/null
+++ b/lib/auto/POSIX/strncmp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strncmp {
+ unimpl "strncmp(xxx)", caller if @_ != 123;
+ strncmp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strncpy.al b/lib/auto/POSIX/strncpy.al
new file mode 100644
index 0000000000..1ebe12dd5a
--- /dev/null
+++ b/lib/auto/POSIX/strncpy.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strncpy {
+ unimpl "strncpy(xxx)", caller if @_ != 123;
+ strncpy($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/stroul.al b/lib/auto/POSIX/stroul.al
new file mode 100644
index 0000000000..bbdb71e2ec
--- /dev/null
+++ b/lib/auto/POSIX/stroul.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub stroul {
+ unimpl "stroul(xxx)", caller if @_ != 123;
+ stroul($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strpbrk.al b/lib/auto/POSIX/strpbrk.al
new file mode 100644
index 0000000000..ee8bef9a27
--- /dev/null
+++ b/lib/auto/POSIX/strpbrk.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strpbrk {
+ unimpl "strpbrk(xxx)", caller if @_ != 123;
+ strpbrk($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strrchr.al b/lib/auto/POSIX/strrchr.al
new file mode 100644
index 0000000000..175f3265e3
--- /dev/null
+++ b/lib/auto/POSIX/strrchr.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strrchr {
+ unimpl "strrchr(xxx)", caller if @_ != 123;
+ strrchr($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strspn.al b/lib/auto/POSIX/strspn.al
new file mode 100644
index 0000000000..1856caea4e
--- /dev/null
+++ b/lib/auto/POSIX/strspn.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strspn {
+ unimpl "strspn(xxx)", caller if @_ != 123;
+ strspn($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strstr.al b/lib/auto/POSIX/strstr.al
new file mode 100644
index 0000000000..c9ef04aa80
--- /dev/null
+++ b/lib/auto/POSIX/strstr.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strstr {
+ unimpl "strstr(xxx)", caller if @_ != 123;
+ strstr($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strtod.al b/lib/auto/POSIX/strtod.al
new file mode 100644
index 0000000000..44ada12c08
--- /dev/null
+++ b/lib/auto/POSIX/strtod.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strtod {
+ unimpl "strtod(xxx)", caller if @_ != 123;
+ strtod($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strtok.al b/lib/auto/POSIX/strtok.al
new file mode 100644
index 0000000000..47825149b0
--- /dev/null
+++ b/lib/auto/POSIX/strtok.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strtok {
+ unimpl "strtok(xxx)", caller if @_ != 123;
+ strtok($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strtol.al b/lib/auto/POSIX/strtol.al
new file mode 100644
index 0000000000..4a40dffa0b
--- /dev/null
+++ b/lib/auto/POSIX/strtol.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strtol {
+ unimpl "strtol(xxx)", caller if @_ != 123;
+ strtol($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/strxfrm.al b/lib/auto/POSIX/strxfrm.al
new file mode 100644
index 0000000000..9ad22f1efa
--- /dev/null
+++ b/lib/auto/POSIX/strxfrm.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub strxfrm {
+ unimpl "strxfrm(xxx)", caller if @_ != 123;
+ strxfrm($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/sysconf.al b/lib/auto/POSIX/sysconf.al
new file mode 100644
index 0000000000..5dfeab8e9d
--- /dev/null
+++ b/lib/auto/POSIX/sysconf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub sysconf {
+ unimpl "sysconf(xxx)", caller if @_ != 123;
+ sysconf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/system.al b/lib/auto/POSIX/system.al
new file mode 100644
index 0000000000..c143ca1e23
--- /dev/null
+++ b/lib/auto/POSIX/system.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub system {
+ usage "system(command)", caller if @_ != 1;
+ system($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tan.al b/lib/auto/POSIX/tan.al
new file mode 100644
index 0000000000..a86b877f3f
--- /dev/null
+++ b/lib/auto/POSIX/tan.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tan {
+ usage "tan(x)", caller if @_ != 1;
+ tan($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcdrain.al b/lib/auto/POSIX/tcdrain.al
new file mode 100644
index 0000000000..97ea14f0ab
--- /dev/null
+++ b/lib/auto/POSIX/tcdrain.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcdrain {
+ unimpl "tcdrain(xxx)", caller if @_ != 123;
+ tcdrain($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcflow.al b/lib/auto/POSIX/tcflow.al
new file mode 100644
index 0000000000..690587aa46
--- /dev/null
+++ b/lib/auto/POSIX/tcflow.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcflow {
+ unimpl "tcflow(xxx)", caller if @_ != 123;
+ tcflow($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcflush.al b/lib/auto/POSIX/tcflush.al
new file mode 100644
index 0000000000..733ab16425
--- /dev/null
+++ b/lib/auto/POSIX/tcflush.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcflush {
+ unimpl "tcflush(xxx)", caller if @_ != 123;
+ tcflush($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcgetattr.al b/lib/auto/POSIX/tcgetattr.al
new file mode 100644
index 0000000000..c8a5e09b6e
--- /dev/null
+++ b/lib/auto/POSIX/tcgetattr.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcgetattr {
+ unimpl "tcgetattr(xxx)", caller if @_ != 123;
+ tcgetattr($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcgetpgrp.al b/lib/auto/POSIX/tcgetpgrp.al
new file mode 100644
index 0000000000..8b6f884f2b
--- /dev/null
+++ b/lib/auto/POSIX/tcgetpgrp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcgetpgrp {
+ unimpl "tcgetpgrp(xxx)", caller if @_ != 123;
+ tcgetpgrp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcsendbreak.al b/lib/auto/POSIX/tcsendbreak.al
new file mode 100644
index 0000000000..e90b7fabd3
--- /dev/null
+++ b/lib/auto/POSIX/tcsendbreak.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcsendbreak {
+ unimpl "tcsendbreak(xxx)", caller if @_ != 123;
+ tcsendbreak($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcsetattr.al b/lib/auto/POSIX/tcsetattr.al
new file mode 100644
index 0000000000..1735cf6862
--- /dev/null
+++ b/lib/auto/POSIX/tcsetattr.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcsetattr {
+ unimpl "tcsetattr(xxx)", caller if @_ != 123;
+ tcsetattr($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tcsetpgrp.al b/lib/auto/POSIX/tcsetpgrp.al
new file mode 100644
index 0000000000..9dcff24b8c
--- /dev/null
+++ b/lib/auto/POSIX/tcsetpgrp.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tcsetpgrp {
+ unimpl "tcsetpgrp(xxx)", caller if @_ != 123;
+ tcsetpgrp($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/time.al b/lib/auto/POSIX/time.al
new file mode 100644
index 0000000000..d750d24e90
--- /dev/null
+++ b/lib/auto/POSIX/time.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub time {
+ unimpl "time(xxx)", caller if @_ != 123;
+ time($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/times.al b/lib/auto/POSIX/times.al
new file mode 100644
index 0000000000..d8f588ad63
--- /dev/null
+++ b/lib/auto/POSIX/times.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub times {
+ usage "times()", caller if @_ != 0;
+ times();
+}
+
+1;
diff --git a/lib/auto/POSIX/tmpfile.al b/lib/auto/POSIX/tmpfile.al
new file mode 100644
index 0000000000..7adb01fb9b
--- /dev/null
+++ b/lib/auto/POSIX/tmpfile.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tmpfile {
+ unimpl "tmpfile(xxx)", caller if @_ != 123;
+ tmpfile($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tmpnam.al b/lib/auto/POSIX/tmpnam.al
new file mode 100644
index 0000000000..23e7dfb11b
--- /dev/null
+++ b/lib/auto/POSIX/tmpnam.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tmpnam {
+ unimpl "tmpnam(xxx)", caller if @_ != 123;
+ tmpnam($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tolower.al b/lib/auto/POSIX/tolower.al
new file mode 100644
index 0000000000..8bcbb8494a
--- /dev/null
+++ b/lib/auto/POSIX/tolower.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tolower {
+ usage "tolower(string)", caller if @_ != 1;
+ lc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/toupper.al b/lib/auto/POSIX/toupper.al
new file mode 100644
index 0000000000..e8b4c0b4ff
--- /dev/null
+++ b/lib/auto/POSIX/toupper.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub toupper {
+ usage "toupper(string)", caller if @_ != 1;
+ uc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/ttyname.al b/lib/auto/POSIX/ttyname.al
new file mode 100644
index 0000000000..60f39dc5f4
--- /dev/null
+++ b/lib/auto/POSIX/ttyname.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub ttyname {
+ unimpl "ttyname(xxx)", caller if @_ != 123;
+ ttyname($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tzname.al b/lib/auto/POSIX/tzname.al
new file mode 100644
index 0000000000..86e7019547
--- /dev/null
+++ b/lib/auto/POSIX/tzname.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tzname {
+ unimpl "tzname(xxx)", caller if @_ != 123;
+ tzname($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/tzset.al b/lib/auto/POSIX/tzset.al
new file mode 100644
index 0000000000..44b5b0a878
--- /dev/null
+++ b/lib/auto/POSIX/tzset.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub tzset {
+ unimpl "tzset(xxx)", caller if @_ != 123;
+ tzset($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/umask.al b/lib/auto/POSIX/umask.al
new file mode 100644
index 0000000000..e7c7fc71d3
--- /dev/null
+++ b/lib/auto/POSIX/umask.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub umask {
+ usage "umask(mask)", caller if @_ != 1;
+ umask($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/ungetc.al b/lib/auto/POSIX/ungetc.al
new file mode 100644
index 0000000000..76c426e72e
--- /dev/null
+++ b/lib/auto/POSIX/ungetc.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub ungetc {
+ unimpl "ungetc(xxx)", caller if @_ != 123;
+ ungetc($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/unlink.al b/lib/auto/POSIX/unlink.al
new file mode 100644
index 0000000000..798ce431d8
--- /dev/null
+++ b/lib/auto/POSIX/unlink.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub unlink {
+ usage "unlink(filename)", caller if @_ != 1;
+ unlink($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/utime.al b/lib/auto/POSIX/utime.al
new file mode 100644
index 0000000000..fff416df89
--- /dev/null
+++ b/lib/auto/POSIX/utime.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub utime {
+ usage "utime(filename, atime, mtime)", caller if @_ != 3;
+ utime($_[1], $_[2], $_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/vfprintf.al b/lib/auto/POSIX/vfprintf.al
new file mode 100644
index 0000000000..b18f42fd85
--- /dev/null
+++ b/lib/auto/POSIX/vfprintf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub vfprintf {
+ unimpl "vfprintf(xxx)", caller if @_ != 123;
+ vfprintf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/vprintf.al b/lib/auto/POSIX/vprintf.al
new file mode 100644
index 0000000000..f295a99906
--- /dev/null
+++ b/lib/auto/POSIX/vprintf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub vprintf {
+ unimpl "vprintf(xxx)", caller if @_ != 123;
+ vprintf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/vsprintf.al b/lib/auto/POSIX/vsprintf.al
new file mode 100644
index 0000000000..c8e00c7803
--- /dev/null
+++ b/lib/auto/POSIX/vsprintf.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub vsprintf {
+ unimpl "vsprintf(xxx)", caller if @_ != 123;
+ vsprintf($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/wait.al b/lib/auto/POSIX/wait.al
new file mode 100644
index 0000000000..489b1e3b07
--- /dev/null
+++ b/lib/auto/POSIX/wait.al
@@ -0,0 +1,11 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub wait {
+ usage "wait(statusvariable)", caller if @_ != 1;
+ local $result = wait();
+ $_[0] = $?;
+ $result;
+}
+
+1;
diff --git a/lib/auto/POSIX/waitpid.al b/lib/auto/POSIX/waitpid.al
new file mode 100644
index 0000000000..a7706a7243
--- /dev/null
+++ b/lib/auto/POSIX/waitpid.al
@@ -0,0 +1,11 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub waitpid {
+ usage "waitpid(pid, statusvariable, options)", caller if @_ != 3;
+ local $result = waitpid($_[0], $_[2]);
+ $_[1] = $?;
+ $result;
+}
+
+1;
diff --git a/lib/auto/POSIX/wcstombs.al b/lib/auto/POSIX/wcstombs.al
new file mode 100644
index 0000000000..1f8782b9d6
--- /dev/null
+++ b/lib/auto/POSIX/wcstombs.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub wcstombs {
+ unimpl "wcstombs(xxx)", caller if @_ != 123;
+ wcstombs($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/wctomb.al b/lib/auto/POSIX/wctomb.al
new file mode 100644
index 0000000000..e4ccf87cb9
--- /dev/null
+++ b/lib/auto/POSIX/wctomb.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub wctomb {
+ unimpl "wctomb(xxx)", caller if @_ != 123;
+ wctomb($_[0]);
+}
+
+1;
diff --git a/lib/auto/POSIX/write.al b/lib/auto/POSIX/write.al
new file mode 100644
index 0000000000..2306b69a01
--- /dev/null
+++ b/lib/auto/POSIX/write.al
@@ -0,0 +1,9 @@
+# NOTE: Derived from POSIX.pm. Changes made here will be lost.
+package POSIX;
+
+sub write {
+ unimpl "write(xxx)", caller if @_ != 123;
+ write($_[0]);
+}
+
+1;
diff --git a/lib/auto/SDBM_File.so b/lib/auto/SDBM_File.so
new file mode 100755
index 0000000000..8414d44a5e
--- /dev/null
+++ b/lib/auto/SDBM_File.so
Binary files differ
diff --git a/lib/auto/SDBM_File/SDBM_File.so b/lib/auto/SDBM_File/SDBM_File.so
new file mode 100755
index 0000000000..362042ccc0
--- /dev/null
+++ b/lib/auto/SDBM_File/SDBM_File.so
Binary files differ
diff --git a/lib/auto/SDBM_File/foo b/lib/auto/SDBM_File/foo
new file mode 100755
index 0000000000..193c50caba
--- /dev/null
+++ b/lib/auto/SDBM_File/foo
Binary files differ
diff --git a/lib/chat2.inter b/lib/chat2.inter
new file mode 100644
index 0000000000..6934f1cc28
--- /dev/null
+++ b/lib/chat2.inter
@@ -0,0 +1,495 @@
+Article 20992 of comp.lang.perl:
+Path: netlabs!news.cerf.net!mvb.saic.com!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!cs.utexas.edu!swrinde!ihnp4.ucsd.edu!ames!koriel!male.EBay.Sun.COM!jethro.Corp.Sun.COM!eric
+From: eric.arnold@sun.com (Eric Arnold)
+Newsgroups: comp.lang.perl
+Subject: Re: Need a bidirectional filter for interactive Unix applications
+Date: 15 Apr 94 21:24:03 GMT
+Organization: Sun Microsystems
+Lines: 478
+Sender: news@sun.com
+Message-ID: <ERIC.94Apr15212403@sun.com>
+References: <dgfCo9F2J.Jzw@netcom.com> <1994Apr15.110134.4581@chemabs.uucp>
+NNTP-Posting-Host: animus.corp.sun.com
+X-Newsreader: prn Ver 1.09
+In-reply-to: btf64@cas.org's message of Fri, 15 Apr 1994 11:01:34 GMT
+
+In article <1994Apr15.110134.4581@chemabs.uucp>
+ btf64@cas.org (Bernard T. French) writes:
+
+>In article <dgfCo9F2J.Jzw@netcom.com> dgf@netcom.com (David Feldman) writes:
+>>I need to write a bidirectional filter that would (ideally) sit between a
+..
+>>program's stdin & stdout to point to a pty pair known to perl. The perl app-
+>>lication would talk to the user's crt/keyboard, translate (application-specific)
+>>the input & output streams, and pass these as appropriate to/from the pty pair,
+..
+>
+> I'm afraid I can't offer you a perl solution, but err..... there is a
+>Tcl solution. There is a Tcl extension called "expect" that is designed to
+
+There *is* an old, established Perl solution: "chat2.pl" which does
+everything (well, basically) "expect" does but you get it in the
+expressive Perl environment. "chat2.pl" is delivered with the Perl
+source.
+
+Randal: "interact()" still hasn't made it into Perl5alpha8
+"chat2.pl", so I've included a version which does.
+
+-Eric
+
+
+## chat.pl: chat with a server
+## V2.01.alpha.7 91/06/16
+## Randal L. Schwartz
+
+package chat;
+
+$sockaddr = 'S n a4 x8';
+chop($thishost = `hostname`); $thisaddr = (gethostbyname($thishost))[4];
+$thisproc = pack($sockaddr, 2, 0, $thisaddr);
+
+# *S = symbol for current I/O, gets assigned *chatsymbol....
+$next = "chatsymbol000000"; # next one
+$nextpat = "^chatsymbol"; # patterns that match next++, ++, ++, ++
+
+
+## $handle = &chat'open_port("server.address",$port_number);
+## opens a named or numbered TCP server
+
+sub open_port { ## public
+ local($server, $port) = @_;
+
+ local($serveraddr,$serverproc);
+
+ *S = ++$next;
+ if ($server =~ /^(\d+)+\.(\d+)\.(\d+)\.(\d+)$/) {
+ $serveraddr = pack('C4', $1, $2, $3, $4);
+ } else {
+ local(@x) = gethostbyname($server);
+ return undef unless @x;
+ $serveraddr = $x[4];
+ }
+ $serverproc = pack($sockaddr, 2, $port, $serveraddr);
+ unless (socket(S, 2, 1, 6)) {
+ # XXX hardwired $AF_SOCKET, $SOCK_STREAM, 'tcp'
+ # but who the heck would change these anyway? (:-)
+ ($!) = ($!, close(S)); # close S while saving $!
+ return undef;
+ }
+ unless (bind(S, $thisproc)) {
+ ($!) = ($!, close(S)); # close S while saving $!
+ return undef;
+ }
+ unless (connect(S, $serverproc)) {
+ ($!) = ($!, close(S)); # close S while saving $!
+ return undef;
+ }
+ select((select(S), $| = 1)[0]);
+ $next; # return symbol for switcharound
+}
+
+## ($host, $port, $handle) = &chat'open_listen([$port_number]);
+## opens a TCP port on the current machine, ready to be listened to
+## if $port_number is absent or zero, pick a default port number
+## process must be uid 0 to listen to a low port number
+
+sub open_listen { ## public
+
+ *S = ++$next;
+ local($thisport) = shift || 0;
+ local($thisproc_local) = pack($sockaddr, 2, $thisport, $thisaddr);
+ local(*NS) = "__" . time;
+ unless (socket(NS, 2, 1, 6)) {
+ # XXX hardwired $AF_SOCKET, $SOCK_STREAM, 'tcp'
+ # but who the heck would change these anyway? (:-)
+ ($!) = ($!, close(NS));
+ return undef;
+ }
+ unless (bind(NS, $thisproc_local)) {
+ ($!) = ($!, close(NS));
+ return undef;
+ }
+ unless (listen(NS, 1)) {
+ ($!) = ($!, close(NS));
+ return undef;
+ }
+ select((select(NS), $| = 1)[0]);
+ local($family, $port, @myaddr) =
+ unpack("S n C C C C x8", getsockname(NS));
+ $S{"needs_accept"} = *NS; # so expect will open it
+ (@myaddr, $port, $next); # returning this
+}
+
+## $handle = &chat'open_proc("command","arg1","arg2",...);
+## opens a /bin/sh on a pseudo-tty
+
+sub open_proc { ## public
+ local(@cmd) = @_;
+
+ *S = ++$next;
+ local(*TTY) = "__TTY" . time;
+ local($pty,$tty,$pty_handle) = &_getpty(S,TTY);
+
+ #local($pty,$tty,$pty_handle) = &getpty(S,TTY);
+ #$Tty = $tty;
+
+ die "Cannot find a new pty" unless defined $pty;
+ local($pid) = fork;
+ die "Cannot fork: $!" unless defined $pid;
+ unless ($pid) {
+ close STDIN; close STDOUT; close STDERR;
+ #close($pty_handle);
+ setpgrp(0,$$);
+ if (open(DEVTTY, "/dev/tty")) {
+ ioctl(DEVTTY,0x20007471,0); # XXX s/b &TIOCNOTTY
+ close DEVTTY;
+ }
+ open(STDIN,"<&TTY");
+ open(STDOUT,">&TTY");
+ open(STDERR,">&STDOUT");
+ die "Oops" unless fileno(STDERR) == 2; # sanity
+ close(S);
+
+ exec @cmd;
+ die "Cannot exec @cmd: $!";
+ }
+ close(TTY);
+ $PID{$next} = $pid;
+ $next; # return symbol for switcharound
+
+}
+
+# $S is the read-ahead buffer
+
+## $return = &chat'expect([$handle,] $timeout_time,
+## $pat1, $body1, $pat2, $body2, ... )
+## $handle is from previous &chat'open_*().
+## $timeout_time is the time (either relative to the current time, or
+## absolute, ala time(2)) at which a timeout event occurs.
+## $pat1, $pat2, and so on are regexs which are matched against the input
+## stream. If a match is found, the entire matched string is consumed,
+## and the corresponding body eval string is evaled.
+##
+## Each pat is a regular-expression (probably enclosed in single-quotes
+## in the invocation). ^ and $ will work, respecting the current value of $*.
+## If pat is 'TIMEOUT', the body is executed if the timeout is exceeded.
+## If pat is 'EOF', the body is executed if the process exits before
+## the other patterns are seen.
+##
+## Pats are scanned in the order given, so later pats can contain
+## general defaults that won't be examined unless the earlier pats
+## have failed.
+##
+## The result of eval'ing body is returned as the result of
+## the invocation. Recursive invocations are not thought
+## through, and may work only accidentally. :-)
+##
+## undef is returned if either a timeout or an eof occurs and no
+## corresponding body has been defined.
+## I/O errors of any sort are treated as eof.
+
+$nextsubname = "expectloop000000"; # used for subroutines
+
+sub expect { ## public
+ if ($_[0] =~ /$nextpat/) {
+ *S = shift;
+ }
+ local($endtime) = shift;
+
+ local($timeout,$eof) = (1,1);
+ local($caller) = caller;
+ local($rmask, $nfound, $timeleft, $thisbuf);
+ local($cases, $pattern, $action, $subname);
+ $endtime += time if $endtime < 600_000_000;
+
+ if (defined $S{"needs_accept"}) { # is it a listen socket?
+ local(*NS) = $S{"needs_accept"};
+ delete $S{"needs_accept"};
+ $S{"needs_close"} = *NS;
+ unless(accept(S,NS)) {
+ ($!) = ($!, close(S), close(NS));
+ return undef;
+ }
+ select((select(S), $| = 1)[0]);
+ }
+
+ # now see whether we need to create a new sub:
+
+ unless ($subname = $expect_subname{$caller,@_}) {
+ # nope. make a new one:
+ $expect_subname{$caller,@_} = $subname = $nextsubname++;
+
+ $cases .= <<"EDQ"; # header is funny to make everything elsif's
+sub $subname {
+ LOOP: {
+ if (0) { ; }
+EDQ
+ while (@_) {
+ ($pattern,$action) = splice(@_,0,2);
+ if ($pattern =~ /^eof$/i) {
+ $cases .= <<"EDQ";
+ elsif (\$eof) {
+ package $caller;
+ $action;
+ }
+EDQ
+ $eof = 0;
+ } elsif ($pattern =~ /^timeout$/i) {
+ $cases .= <<"EDQ";
+ elsif (\$timeout) {
+ package $caller;
+ $action;
+ }
+EDQ
+ $timeout = 0;
+ } else {
+ $pattern =~ s#/#\\/#g;
+ $cases .= <<"EDQ";
+ elsif (\$S =~ /$pattern/) {
+ \$S = \$';
+ package $caller;
+ $action;
+ }
+EDQ
+ }
+ }
+ $cases .= <<"EDQ" if $eof;
+ elsif (\$eof) {
+ undef;
+ }
+EDQ
+ $cases .= <<"EDQ" if $timeout;
+ elsif (\$timeout) {
+ undef;
+ }
+EDQ
+ $cases .= <<'ESQ';
+ else {
+ $rmask = "";
+ vec($rmask,fileno(S),1) = 1;
+ ($nfound, $rmask) =
+ select($rmask, undef, undef, $endtime - time);
+ if ($nfound) {
+ $nread = sysread(S, $thisbuf, 1024);
+ if ($nread > 0) {
+ $S .= $thisbuf;
+ } else {
+ $eof++, redo LOOP; # any error is also eof
+ }
+ } else {
+ $timeout++, redo LOOP; # timeout
+ }
+ redo LOOP;
+ }
+ }
+}
+ESQ
+ eval $cases; die "$cases:\n$@" if $@;
+ }
+ $eof = $timeout = 0;
+ do $subname();
+}
+
+## &chat'print([$handle,] @data)
+## $handle is from previous &chat'open().
+## like print $handle @data
+
+sub print { ## public
+ if ($_[0] =~ /$nextpat/) {
+ *S = shift;
+ }
+ print S @_;
+}
+
+## &chat'close([$handle,])
+## $handle is from previous &chat'open().
+## like close $handle
+
+sub close { ## public
+ local($pid);
+ if ($_[0] =~ /$nextpat/) {
+ $pid = $PID{$_[0]};
+ *S = shift;
+ } else {
+ $pid = $PID{$next};
+ }
+ close(S);
+ waitpid($pid,0);
+ if (defined $S{"needs_close"}) { # is it a listen socket?
+ local(*NS) = $S{"needs_close"};
+ delete $S{"needs_close"};
+ close(NS);
+ }
+}
+
+## @ready_handles = &chat'select($timeout, @handles)
+## select()'s the handles with a timeout value of $timeout seconds.
+## Returns an array of handles that are ready for I/O.
+## Both user handles and chat handles are supported (but beware of
+## stdio's buffering for user handles).
+
+sub select { ## public
+ local($timeout) = shift;
+ local(@handles) = @_;
+ local(%handlename) = ();
+ local(%ready) = ();
+ local($caller) = caller;
+ local($rmask) = "";
+ for (@handles) {
+ if (/$nextpat/o) { # one of ours... see if ready
+ local(*SYM) = $_;
+ if (length($SYM)) {
+ $timeout = 0; # we have a winner
+ $ready{$_}++;
+ }
+ $handlename{fileno($_)} = $_;
+ } else {
+ $handlename{fileno(/'/ ? $_ : "$caller\'$_")} = $_;
+ }
+ }
+ for (sort keys %handlename) {
+ vec($rmask, $_, 1) = 1;
+ }
+ select($rmask, undef, undef, $timeout);
+ for (sort keys %handlename) {
+ $ready{$handlename{$_}}++ if vec($rmask,$_,1);
+ }
+ sort keys %ready;
+}
+
+# ($pty,$tty) = $chat'_getpty(PTY,TTY):
+# internal procedure to get the next available pty.
+# opens pty on handle PTY, and matching tty on handle TTY.
+# returns undef if can't find a pty.
+
+sub _getpty { ## private
+ local($_PTY,$_TTY) = @_;
+ $_PTY =~ s/^([^']+)$/(caller)[$[]."'".$1/e;
+ $_TTY =~ s/^([^']+)$/(caller)[$[]."'".$1/e;
+ local($pty,$tty);
+ for $bank (112..127) {
+ next unless -e sprintf("/dev/pty%c0", $bank);
+ for $unit (48..57) {
+ $pty = sprintf("/dev/pty%c%c", $bank, $unit);
+ open($_PTY,"+>$pty") || next;
+ select((select($_PTY), $| = 1)[0]);
+ ($tty = $pty) =~ s/pty/tty/;
+ open($_TTY,"+>$tty") || next;
+ select((select($_TTY), $| = 1)[0]);
+ system "stty nl>$tty";
+ return ($pty,$tty,$_PTY);
+ }
+ }
+ undef;
+}
+
+
+sub getpty {
+ local( $pty_handle, $tty_handle ) = @_;
+
+print "--------in getpty----------\n";
+ $pty_handle =~ s/^([^']+)$/(caller)[$[]."'".$1/e;
+ $pty_handle =~ s/^([^']+)$/(caller)[$[]."'".$1/e;
+
+ #$pty_handle = ++$next_handle;
+ chop( @ptys = `ls /dev/pty*` );
+
+ for $pty ( @ptys )
+ {
+ open($pty_handle,"+>$pty") || next;
+ select((select($pty_handle), $| = 1)[0]);
+ ($tty = $pty) =~ s/pty/tty/;
+
+ open($tty_handle,"+>$tty") || next;
+ select((select($tty_handle), $| = 1)[0]);
+ ($tty = $pty) =~ s/pty/tty/;
+
+ return ($pty, $tty, $pty_handle );
+ }
+ return undef;
+}
+
+
+
+# from: Randal L. Schwartz
+
+# Usage:
+#
+# ($chathandle = &chat'open_proc("/bin/sh")) || die "cannot open shell";
+# system("stty cbreak raw -echo >/dev/tty\n");
+# &chat'interact($chathandle);
+# &chat'close($chathandle);
+# system("stty -cbreak -raw echo >/dev/tty\n");
+
+sub interact
+{
+ local( $chathandle ) = @_;
+
+ &chat'print($chathandle, "stty sane\n");
+ select(STDOUT) ; $| = 1; # unbuffer STDOUT
+
+ #print "tty=$Tty,whoami=",`whoami`,"\n";
+ #&change_utmp( "", $Tty, "eric", "", time() );
+
+ {
+ @ready = &chat'select(30, STDIN,$chathandle);
+ print "after select, ready=",join(",",@ready),"\n";
+ #(warn "[waiting]"), redo unless @ready;
+ if (grep($_ eq $chathandle, @ready)) {
+ print "checking $chathandle\n";
+ last unless $text = &chat'expect($chathandle,0,'[\s\S]+','$&');
+ print "$chathandle OK\n";
+ print "got=($text)";
+ #print $text;
+ }
+ if (grep($_ eq STDIN, @ready)) {
+ print "checking STDIN\n";
+ last unless sysread(STDIN,$buf,1024) > 0;
+ print "STDIN OK\n";
+ &chat'print($chathandle,$buf);
+ }
+ redo;
+ }
+ #&change_utmp( $Tty, "$Tty", "", "", 0 );
+ print "leaving interact, \$!=$!\n";
+}
+
+## $handle = &chat'open_duphandle(handle);
+## duplicates an input file handle to conform to chat format
+
+sub open_duphandle { ## public
+ *S = ++$next;
+ open(S,"<&$_[0]");
+ $next; # return symbol for switcharound
+}
+
+#Here is an example which uses this routine.
+#
+# # The following lines makes stdin unbuffered
+#
+# $BSD = -f '/vmunix';
+#
+# if ($BSD) {
+# system "stty cbreak </dev/tty >/dev/tty 2>&1";
+# }
+# else {
+# system "stty", '-icanon';
+# system "stty", 'eol', '^A';
+# }
+#
+# require 'mychat2.pl';
+#
+# &chat'open_duphandle(STDIN);
+#
+# print
+# &chat'expect(3,
+# '[A-Z]', '" :-)"',
+# '.', '" :-("',
+# TIMEOUT, '"-o-"',
+# EOF, '"\$\$"'),
+# "\n";
+
+
+1;
+
+
diff --git a/lib/dumpvar.pl b/lib/dumpvar.pl
index 5427494485..03dbbcd8fe 100644
--- a/lib/dumpvar.pl
+++ b/lib/dumpvar.pl
@@ -8,7 +8,7 @@ sub unctrl {
}
sub main'dumpvar {
($package,@vars) = @_;
- local(*stab) = eval("*_$package");
+ local(*stab) = *{"::_$package"};
while (($key,$val) = each(%stab)) {
{
next if @vars && !grep($key eq $_,@vars);