summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/ext/POSIX
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/ext/POSIX')
-rw-r--r--contrib/perl5/ext/POSIX/Makefile.PL14
-rw-r--r--contrib/perl5/ext/POSIX/POSIX.pm940
-rw-r--r--contrib/perl5/ext/POSIX/POSIX.pod1984
-rw-r--r--contrib/perl5/ext/POSIX/POSIX.xs3967
-rw-r--r--contrib/perl5/ext/POSIX/hints/bsdos.pl3
-rw-r--r--contrib/perl5/ext/POSIX/hints/dynixptx.pl4
-rw-r--r--contrib/perl5/ext/POSIX/hints/freebsd.pl3
-rw-r--r--contrib/perl5/ext/POSIX/hints/linux.pl5
-rw-r--r--contrib/perl5/ext/POSIX/hints/mint.pl2
-rw-r--r--contrib/perl5/ext/POSIX/hints/netbsd.pl3
-rw-r--r--contrib/perl5/ext/POSIX/hints/next_3.pl5
-rw-r--r--contrib/perl5/ext/POSIX/hints/openbsd.pl3
-rw-r--r--contrib/perl5/ext/POSIX/hints/sunos_4.pl10
-rw-r--r--contrib/perl5/ext/POSIX/hints/svr4.pl12
-rw-r--r--contrib/perl5/ext/POSIX/typemap15
15 files changed, 0 insertions, 6970 deletions
diff --git a/contrib/perl5/ext/POSIX/Makefile.PL b/contrib/perl5/ext/POSIX/Makefile.PL
deleted file mode 100644
index 5127b4d..0000000
--- a/contrib/perl5/ext/POSIX/Makefile.PL
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-use ExtUtils::MakeMaker;
-use Config;
-my @libs;
-if ($^O ne 'MSWin32') {
- @libs = ('LIBS' => ["-lm -lposix -lcposix"]);
-}
-WriteMakefile(
- NAME => 'POSIX',
- @libs,
- MAN3PODS => {}, # Pods will be built by installman.
- XSPROTOARG => '-noprototypes', # XXX remove later?
- VERSION_FROM => 'POSIX.pm',
-);
diff --git a/contrib/perl5/ext/POSIX/POSIX.pm b/contrib/perl5/ext/POSIX/POSIX.pm
deleted file mode 100644
index 252e5bb..0000000
--- a/contrib/perl5/ext/POSIX/POSIX.pm
+++ /dev/null
@@ -1,940 +0,0 @@
-package POSIX;
-
-our(@ISA, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD) = ();
-
-use AutoLoader;
-
-use XSLoader ();
-
-our $VERSION = "1.03" ;
-
-# Grandfather old foo_h form to new :foo_h form
-my $loaded;
-
-sub import {
- load_imports() unless $loaded++;
- my $this = shift;
- my @list = map { m/^\w+_h$/ ? ":$_" : $_ } @_;
- local $Exporter::ExportLevel = 1;
- Exporter::import($this,@list);
-}
-
-sub croak { require Carp; goto &Carp::croak }
-
-XSLoader::load 'POSIX', $VERSION;
-
-my $EINVAL = constant("EINVAL", 0);
-my $EAGAIN = constant("EAGAIN", 0);
-
-sub AUTOLOAD {
- if ($AUTOLOAD =~ /::(_?[a-z])/) {
- # require AutoLoader;
- $AutoLoader::AUTOLOAD = $AUTOLOAD;
- goto &AutoLoader::AUTOLOAD
- }
- local $! = 0;
- my $constname = $AUTOLOAD;
- $constname =~ s/.*:://;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! == 0) {
- *$AUTOLOAD = sub { $val };
- }
- elsif ($! == $EAGAIN) { # Not really a constant, so always call.
- *$AUTOLOAD = sub { constant($constname, $_[0]) };
- }
- elsif ($! == $EINVAL) {
- croak "$constname is not a valid POSIX macro";
- }
- else {
- croak "Your vendor has not defined POSIX macro $constname, used";
- }
-
- goto &$AUTOLOAD;
-}
-
-sub usage {
- my ($mess) = @_;
- croak "Usage: POSIX::$mess";
-}
-
-sub redef {
- my ($mess) = @_;
- croak "Use method $mess instead";
-}
-
-sub unimpl {
- my ($mess) = @_;
- $mess =~ s/xxx//;
- croak "Unimplemented: POSIX::$mess";
-}
-
-############################
-package POSIX::SigAction;
-
-sub new {
- bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0}, $_[0];
-}
-
-############################
-package POSIX; # return to package POSIX so AutoSplit is happy
-1;
-__END__
-
-sub assert {
- usage "assert(expr)" if @_ != 1;
- if (!$_[0]) {
- croak "Assertion failed";
- }
-}
-
-sub tolower {
- usage "tolower(string)" if @_ != 1;
- lc($_[0]);
-}
-
-sub toupper {
- usage "toupper(string)" if @_ != 1;
- uc($_[0]);
-}
-
-sub closedir {
- usage "closedir(dirhandle)" if @_ != 1;
- CORE::closedir($_[0]);
-}
-
-sub opendir {
- usage "opendir(directory)" if @_ != 1;
- my $dirhandle;
- CORE::opendir($dirhandle, $_[0])
- ? $dirhandle
- : undef;
-}
-
-sub readdir {
- usage "readdir(dirhandle)" if @_ != 1;
- CORE::readdir($_[0]);
-}
-
-sub rewinddir {
- usage "rewinddir(dirhandle)" if @_ != 1;
- CORE::rewinddir($_[0]);
-}
-
-sub errno {
- usage "errno()" if @_ != 0;
- $! + 0;
-}
-
-sub creat {
- usage "creat(filename, mode)" if @_ != 2;
- &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1]);
-}
-
-sub fcntl {
- usage "fcntl(filehandle, cmd, arg)" if @_ != 3;
- CORE::fcntl($_[0], $_[1], $_[2]);
-}
-
-sub getgrgid {
- usage "getgrgid(gid)" if @_ != 1;
- CORE::getgrgid($_[0]);
-}
-
-sub getgrnam {
- usage "getgrnam(name)" if @_ != 1;
- CORE::getgrnam($_[0]);
-}
-
-sub atan2 {
- usage "atan2(x,y)" if @_ != 2;
- CORE::atan2($_[0], $_[1]);
-}
-
-sub cos {
- usage "cos(x)" if @_ != 1;
- CORE::cos($_[0]);
-}
-
-sub exp {
- usage "exp(x)" if @_ != 1;
- CORE::exp($_[0]);
-}
-
-sub fabs {
- usage "fabs(x)" if @_ != 1;
- CORE::abs($_[0]);
-}
-
-sub log {
- usage "log(x)" if @_ != 1;
- CORE::log($_[0]);
-}
-
-sub pow {
- usage "pow(x,exponent)" if @_ != 2;
- $_[0] ** $_[1];
-}
-
-sub sin {
- usage "sin(x)" if @_ != 1;
- CORE::sin($_[0]);
-}
-
-sub sqrt {
- usage "sqrt(x)" if @_ != 1;
- CORE::sqrt($_[0]);
-}
-
-sub getpwnam {
- usage "getpwnam(name)" if @_ != 1;
- CORE::getpwnam($_[0]);
-}
-
-sub getpwuid {
- usage "getpwuid(uid)" if @_ != 1;
- CORE::getpwuid($_[0]);
-}
-
-sub longjmp {
- unimpl "longjmp() is C-specific: use die instead";
-}
-
-sub setjmp {
- unimpl "setjmp() is C-specific: use eval {} instead";
-}
-
-sub siglongjmp {
- unimpl "siglongjmp() is C-specific: use die instead";
-}
-
-sub sigsetjmp {
- unimpl "sigsetjmp() is C-specific: use eval {} instead";
-}
-
-sub kill {
- usage "kill(pid, sig)" if @_ != 2;
- CORE::kill $_[1], $_[0];
-}
-
-sub raise {
- usage "raise(sig)" if @_ != 1;
- CORE::kill $_[0], $$; # Is this good enough?
-}
-
-sub offsetof {
- unimpl "offsetof() is C-specific, stopped";
-}
-
-sub clearerr {
- redef "IO::Handle::clearerr()";
-}
-
-sub fclose {
- redef "IO::Handle::close()";
-}
-
-sub fdopen {
- redef "IO::Handle::new_from_fd()";
-}
-
-sub feof {
- redef "IO::Handle::eof()";
-}
-
-sub fgetc {
- redef "IO::Handle::getc()";
-}
-
-sub fgets {
- redef "IO::Handle::gets()";
-}
-
-sub fileno {
- redef "IO::Handle::fileno()";
-}
-
-sub fopen {
- redef "IO::File::open()";
-}
-
-sub fprintf {
- unimpl "fprintf() is C-specific--use printf instead";
-}
-
-sub fputc {
- unimpl "fputc() is C-specific--use print instead";
-}
-
-sub fputs {
- unimpl "fputs() is C-specific--use print instead";
-}
-
-sub fread {
- unimpl "fread() is C-specific--use read instead";
-}
-
-sub freopen {
- unimpl "freopen() is C-specific--use open instead";
-}
-
-sub fscanf {
- unimpl "fscanf() is C-specific--use <> and regular expressions instead";
-}
-
-sub fseek {
- redef "IO::Seekable::seek()";
-}
-
-sub ferror {
- redef "IO::Handle::error()";
-}
-
-sub fflush {
- redef "IO::Handle::flush()";
-}
-
-sub fgetpos {
- redef "IO::Seekable::getpos()";
-}
-
-sub fsetpos {
- redef "IO::Seekable::setpos()";
-}
-
-sub ftell {
- redef "IO::Seekable::tell()";
-}
-
-sub fwrite {
- unimpl "fwrite() is C-specific--use print instead";
-}
-
-sub getc {
- usage "getc(handle)" if @_ != 1;
- CORE::getc($_[0]);
-}
-
-sub getchar {
- usage "getchar()" if @_ != 0;
- CORE::getc(STDIN);
-}
-
-sub gets {
- usage "gets()" if @_ != 0;
- scalar <STDIN>;
-}
-
-sub perror {
- print STDERR "@_: " if @_;
- print STDERR $!,"\n";
-}
-
-sub printf {
- usage "printf(pattern, args...)" if @_ < 1;
- CORE::printf STDOUT @_;
-}
-
-sub putc {
- unimpl "putc() is C-specific--use print instead";
-}
-
-sub putchar {
- unimpl "putchar() is C-specific--use print instead";
-}
-
-sub puts {
- unimpl "puts() is C-specific--use print instead";
-}
-
-sub remove {
- usage "remove(filename)" if @_ != 1;
- CORE::unlink($_[0]);
-}
-
-sub rename {
- usage "rename(oldfilename, newfilename)" if @_ != 2;
- CORE::rename($_[0], $_[1]);
-}
-
-sub rewind {
- usage "rewind(filehandle)" if @_ != 1;
- CORE::seek($_[0],0,0);
-}
-
-sub scanf {
- unimpl "scanf() is C-specific--use <> and regular expressions instead";
-}
-
-sub sprintf {
- usage "sprintf(pattern,args)" if @_ == 0;
- CORE::sprintf(shift,@_);
-}
-
-sub sscanf {
- unimpl "sscanf() is C-specific--use regular expressions instead";
-}
-
-sub tmpfile {
- redef "IO::File::new_tmpfile()";
-}
-
-sub ungetc {
- redef "IO::Handle::ungetc()";
-}
-
-sub vfprintf {
- unimpl "vfprintf() is C-specific";
-}
-
-sub vprintf {
- unimpl "vprintf() is C-specific";
-}
-
-sub vsprintf {
- unimpl "vsprintf() is C-specific";
-}
-
-sub abs {
- usage "abs(x)" if @_ != 1;
- CORE::abs($_[0]);
-}
-
-sub atexit {
- unimpl "atexit() is C-specific: use END {} instead";
-}
-
-sub atof {
- unimpl "atof() is C-specific, stopped";
-}
-
-sub atoi {
- unimpl "atoi() is C-specific, stopped";
-}
-
-sub atol {
- unimpl "atol() is C-specific, stopped";
-}
-
-sub bsearch {
- unimpl "bsearch() not supplied";
-}
-
-sub calloc {
- unimpl "calloc() is C-specific, stopped";
-}
-
-sub div {
- unimpl "div() is C-specific, stopped";
-}
-
-sub exit {
- usage "exit(status)" if @_ != 1;
- CORE::exit($_[0]);
-}
-
-sub free {
- unimpl "free() is C-specific, stopped";
-}
-
-sub getenv {
- usage "getenv(name)" if @_ != 1;
- $ENV{$_[0]};
-}
-
-sub labs {
- unimpl "labs() is C-specific, use abs instead";
-}
-
-sub ldiv {
- unimpl "ldiv() is C-specific, use / and int instead";
-}
-
-sub malloc {
- unimpl "malloc() is C-specific, stopped";
-}
-
-sub qsort {
- unimpl "qsort() is C-specific, use sort instead";
-}
-
-sub rand {
- unimpl "rand() is non-portable, use Perl's rand instead";
-}
-
-sub realloc {
- unimpl "realloc() is C-specific, stopped";
-}
-
-sub srand {
- unimpl "srand()";
-}
-
-sub system {
- usage "system(command)" if @_ != 1;
- CORE::system($_[0]);
-}
-
-sub memchr {
- unimpl "memchr() is C-specific, use index() instead";
-}
-
-sub memcmp {
- unimpl "memcmp() is C-specific, use eq instead";
-}
-
-sub memcpy {
- unimpl "memcpy() is C-specific, use = instead";
-}
-
-sub memmove {
- unimpl "memmove() is C-specific, use = instead";
-}
-
-sub memset {
- unimpl "memset() is C-specific, use x instead";
-}
-
-sub strcat {
- unimpl "strcat() is C-specific, use .= instead";
-}
-
-sub strchr {
- unimpl "strchr() is C-specific, use index() instead";
-}
-
-sub strcmp {
- unimpl "strcmp() is C-specific, use eq instead";
-}
-
-sub strcpy {
- unimpl "strcpy() is C-specific, use = instead";
-}
-
-sub strcspn {
- unimpl "strcspn() is C-specific, use regular expressions instead";
-}
-
-sub strerror {
- usage "strerror(errno)" if @_ != 1;
- local $! = $_[0];
- $! . "";
-}
-
-sub strlen {
- unimpl "strlen() is C-specific, use length instead";
-}
-
-sub strncat {
- unimpl "strncat() is C-specific, use .= instead";
-}
-
-sub strncmp {
- unimpl "strncmp() is C-specific, use eq instead";
-}
-
-sub strncpy {
- unimpl "strncpy() is C-specific, use = instead";
-}
-
-sub strpbrk {
- unimpl "strpbrk() is C-specific, stopped";
-}
-
-sub strrchr {
- unimpl "strrchr() is C-specific, use rindex() instead";
-}
-
-sub strspn {
- unimpl "strspn() is C-specific, stopped";
-}
-
-sub strstr {
- usage "strstr(big, little)" if @_ != 2;
- CORE::index($_[0], $_[1]);
-}
-
-sub strtok {
- unimpl "strtok() is C-specific, stopped";
-}
-
-sub chmod {
- usage "chmod(mode, filename)" if @_ != 2;
- CORE::chmod($_[0], $_[1]);
-}
-
-sub fstat {
- usage "fstat(fd)" if @_ != 1;
- local *TMP;
- CORE::open(TMP, "<&$_[0]"); # Gross.
- my @l = CORE::stat(TMP);
- CORE::close(TMP);
- @l;
-}
-
-sub mkdir {
- usage "mkdir(directoryname, mode)" if @_ != 2;
- CORE::mkdir($_[0], $_[1]);
-}
-
-sub stat {
- usage "stat(filename)" if @_ != 1;
- CORE::stat($_[0]);
-}
-
-sub umask {
- usage "umask(mask)" if @_ != 1;
- CORE::umask($_[0]);
-}
-
-sub wait {
- usage "wait()" if @_ != 0;
- CORE::wait();
-}
-
-sub waitpid {
- usage "waitpid(pid, options)" if @_ != 2;
- CORE::waitpid($_[0], $_[1]);
-}
-
-sub gmtime {
- usage "gmtime(time)" if @_ != 1;
- CORE::gmtime($_[0]);
-}
-
-sub localtime {
- usage "localtime(time)" if @_ != 1;
- CORE::localtime($_[0]);
-}
-
-sub time {
- usage "time()" if @_ != 0;
- CORE::time;
-}
-
-sub alarm {
- usage "alarm(seconds)" if @_ != 1;
- CORE::alarm($_[0]);
-}
-
-sub chdir {
- usage "chdir(directory)" if @_ != 1;
- CORE::chdir($_[0]);
-}
-
-sub chown {
- usage "chown(filename, uid, gid)" if @_ != 3;
- CORE::chown($_[0], $_[1], $_[2]);
-}
-
-sub execl {
- unimpl "execl() is C-specific, stopped";
-}
-
-sub execle {
- unimpl "execle() is C-specific, stopped";
-}
-
-sub execlp {
- unimpl "execlp() is C-specific, stopped";
-}
-
-sub execv {
- unimpl "execv() is C-specific, stopped";
-}
-
-sub execve {
- unimpl "execve() is C-specific, stopped";
-}
-
-sub execvp {
- unimpl "execvp() is C-specific, stopped";
-}
-
-sub fork {
- usage "fork()" if @_ != 0;
- CORE::fork;
-}
-
-sub getcwd
-{
- usage "getcwd()" if @_ != 0;
- if ($^O eq 'MSWin32') {
- # this perhaps applies to everyone else also?
- require Cwd;
- $cwd = &Cwd::cwd;
- }
- else {
- chop($cwd = `pwd`);
- }
- $cwd;
-}
-
-sub getegid {
- usage "getegid()" if @_ != 0;
- $) + 0;
-}
-
-sub geteuid {
- usage "geteuid()" if @_ != 0;
- $> + 0;
-}
-
-sub getgid {
- usage "getgid()" if @_ != 0;
- $( + 0;
-}
-
-sub getgroups {
- usage "getgroups()" if @_ != 0;
- my %seen;
- grep(!$seen{$_}++, split(' ', $) ));
-}
-
-sub getlogin {
- usage "getlogin()" if @_ != 0;
- CORE::getlogin();
-}
-
-sub getpgrp {
- usage "getpgrp()" if @_ != 0;
- CORE::getpgrp;
-}
-
-sub getpid {
- usage "getpid()" if @_ != 0;
- $$;
-}
-
-sub getppid {
- usage "getppid()" if @_ != 0;
- CORE::getppid;
-}
-
-sub getuid {
- usage "getuid()" if @_ != 0;
- $<;
-}
-
-sub isatty {
- usage "isatty(filehandle)" if @_ != 1;
- -t $_[0];
-}
-
-sub link {
- usage "link(oldfilename, newfilename)" if @_ != 2;
- CORE::link($_[0], $_[1]);
-}
-
-sub rmdir {
- usage "rmdir(directoryname)" if @_ != 1;
- CORE::rmdir($_[0]);
-}
-
-sub setbuf {
- redef "IO::Handle::setbuf()";
-}
-
-sub setgid {
- usage "setgid(gid)" if @_ != 1;
- $( = $_[0];
-}
-
-sub setuid {
- usage "setuid(uid)" if @_ != 1;
- $< = $_[0];
-}
-
-sub setvbuf {
- redef "IO::Handle::setvbuf()";
-}
-
-sub sleep {
- usage "sleep(seconds)" if @_ != 1;
- CORE::sleep($_[0]);
-}
-
-sub unlink {
- usage "unlink(filename)" if @_ != 1;
- CORE::unlink($_[0]);
-}
-
-sub utime {
- usage "utime(filename, atime, mtime)" if @_ != 3;
- CORE::utime($_[1], $_[2], $_[0]);
-}
-
-sub load_imports {
-%EXPORT_TAGS = (
-
- assert_h => [qw(assert NDEBUG)],
-
- ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower
- isprint ispunct isspace isupper isxdigit tolower toupper)],
-
- dirent_h => [qw()],
-
- errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT
- EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED
- ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT
- EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS
- EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK
- EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH
- ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM
- ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
- ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM
- EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE
- ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT
- ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY
- EUSERS EWOULDBLOCK EXDEV errno)],
-
- fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK
- F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK
- O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK
- O_RDONLY O_RDWR O_TRUNC O_WRONLY
- creat
- SEEK_CUR SEEK_END SEEK_SET
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID
- S_IWGRP S_IWOTH S_IWUSR)],
-
- float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG
- DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP
- DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP
- FLT_DIG FLT_EPSILON FLT_MANT_DIG
- FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP
- FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP
- FLT_RADIX FLT_ROUNDS
- LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG
- LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP
- LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)],
-
- grp_h => [qw()],
-
- limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX
- INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON
- MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX
- PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN
- SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX
- ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX
- _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT
- _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX
- _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX
- _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)],
-
- locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC
- LC_TIME NULL localeconv setlocale)],
-
- math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
- frexp ldexp log10 modf pow sinh tan tanh)],
-
- pwd_h => [qw()],
-
- setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)],
-
- signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK
- SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM
- SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL
- SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN
- SIGTTOU SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR
- SIG_IGN SIG_SETMASK SIG_UNBLOCK raise sigaction signal
- sigpending sigprocmask sigsuspend)],
-
- stdarg_h => [qw()],
-
- stddef_h => [qw(NULL offsetof)],
-
- stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid
- L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET
- STREAM_MAX TMP_MAX stderr stdin stdout
- clearerr fclose fdopen feof ferror fflush fgetc fgetpos
- fgets fopen fprintf fputc fputs fread freopen
- fscanf fseek fsetpos ftell fwrite getchar gets
- perror putc putchar puts remove rewind
- scanf setbuf setvbuf sscanf tmpfile tmpnam
- ungetc vfprintf vprintf vsprintf)],
-
- stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX
- abort atexit atof atoi atol bsearch calloc div
- free getenv labs ldiv malloc mblen mbstowcs mbtowc
- qsort realloc strtod strtol strtoul wcstombs wctomb)],
-
- string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat
- strchr strcmp strcoll strcpy strcspn strerror strlen
- strncat strncmp strncpy strpbrk strrchr strspn strstr
- strtok strxfrm)],
-
- sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
- S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
- fstat mkfifo)],
-
- sys_times_h => [qw()],
-
- sys_types_h => [qw()],
-
- sys_utsname_h => [qw(uname)],
-
- sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED
- WNOHANG WSTOPSIG WTERMSIG WUNTRACED)],
-
- termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400
- B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL
- CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK
- ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR
- INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST
- PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION
- TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
- TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART
- VSTOP VSUSP VTIME
- cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain
- tcflow tcflush tcgetattr tcsendbreak tcsetattr )],
-
- time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime
- difftime mktime strftime tzset tzname)],
-
- unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK
- _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON
- _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX
- _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED
- _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS
- _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX
- _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL
- _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_SAVED_IDS
- _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
- _exit access ctermid cuserid
- dup2 dup execl execle execlp execv execve execvp
- fpathconf getcwd getegid geteuid getgid getgroups
- getpid getuid isatty lseek pathconf pause setgid setpgid
- setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)],
-
- utime_h => [qw()],
-
-);
-
-# Exporter::export_tags();
-for (values %EXPORT_TAGS) {
- push @EXPORT, @$_;
-}
-
-@EXPORT_OK = qw(
- closedir opendir readdir rewinddir
- fcntl open
- getgrgid getgrnam
- atan2 cos exp log sin sqrt
- getpwnam getpwuid
- kill
- fileno getc printf rename sprintf
- abs exit rand srand system
- chmod mkdir stat umask
- times
- wait waitpid
- gmtime localtime time
- alarm chdir chown close fork getlogin getppid getpgrp link
- pipe read rmdir sleep unlink write
- utime
- nice
-);
-
-require Exporter;
-}
diff --git a/contrib/perl5/ext/POSIX/POSIX.pod b/contrib/perl5/ext/POSIX/POSIX.pod
deleted file mode 100644
index 4976135..0000000
--- a/contrib/perl5/ext/POSIX/POSIX.pod
+++ /dev/null
@@ -1,1984 +0,0 @@
-=head1 NAME
-
-POSIX - Perl interface to IEEE Std 1003.1
-
-=head1 SYNOPSIS
-
- use POSIX;
- use POSIX qw(setsid);
- use POSIX qw(:errno_h :fcntl_h);
-
- printf "EINTR is %d\n", EINTR;
-
- $sess_id = POSIX::setsid();
-
- $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
- # note: that's a filedescriptor, *NOT* a filehandle
-
-=head1 DESCRIPTION
-
-The POSIX module permits you to access all (or nearly all) the standard
-POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish
-interfaces. Things which are C<#defines> in C, like EINTR or O_NDELAY, are
-automatically exported into your namespace. All functions are only exported
-if you ask for them explicitly. Most likely people will prefer to use the
-fully-qualified function names.
-
-This document gives a condensed list of the features available in the POSIX
-module. Consult your operating system's manpages for general information on
-most features. Consult L<perlfunc> for functions which are noted as being
-identical to Perl's builtin functions.
-
-The first section describes POSIX functions from the 1003.1 specification.
-The second section describes some classes for signal objects, TTY objects,
-and other miscellaneous objects. The remaining sections list various
-constants and macros in an organization which roughly follows IEEE Std
-1003.1b-1993.
-
-=head1 NOTE
-
-The POSIX module is probably the most complex Perl module supplied with
-the standard distribution. It incorporates autoloading, namespace games,
-and dynamic loading of code that's in Perl, C, or both. It's a great
-source of wisdom.
-
-=head1 CAVEATS
-
-A few functions are not implemented because they are C specific. If you
-attempt to call these, they will print a message telling you that they
-aren't implemented, and suggest using the Perl equivalent should one
-exist. For example, trying to access the setjmp() call will elicit the
-message "setjmp() is C-specific: use eval {} instead".
-
-Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
-are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
-For example, one vendor may not define EDEADLK, or the semantics of the
-errno values set by open(2) might not be quite right. Perl does not
-attempt to verify POSIX compliance. That means you can currently
-successfully say "use POSIX", and then later in your program you find
-that your vendor has been lax and there's no usable ICANON macro after
-all. This could be construed to be a bug.
-
-=head1 FUNCTIONS
-
-=over 8
-
-=item _exit
-
-This is identical to the C function C<_exit()>. It exits the program
-immediately which means among other things buffered I/O is B<not> flushed.
-
-=item abort
-
-This is identical to the C function C<abort()>. It terminates the
-process with a C<SIGABRT> signal unless caught by a signal handler or
-if the handler does not return normally (it e.g. does a C<longjmp>).
-
-=item abs
-
-This is identical to Perl's builtin C<abs()> function, returning
-the absolute value of its numerical argument.
-
-=item access
-
-Determines the accessibility of a file.
-
- if( POSIX::access( "/", &POSIX::R_OK ) ){
- print "have read permission\n";
- }
-
-Returns C<undef> on failure. Note: do not use C<access()> for
-security purposes. Between the C<access()> call and the operation
-you are preparing for the permissions might change: a classic
-I<race condition>.
-
-=item acos
-
-This is identical to the C function C<acos()>, returning
-the arcus cosine of its numerical argument. See also L<Math::Trig>.
-
-=item alarm
-
-This is identical to Perl's builtin C<alarm()> function,
-either for arming or disarming the C<SIGARLM> timer.
-
-=item asctime
-
-This is identical to the C function C<asctime()>. It returns
-a string of the form
-
- "Fri Jun 2 18:22:13 2000\n\0"
-
-and it is called thusly
-
- $asctime = asctime($sec, $min, $hour, $mday, $mon, $year,
- $wday, $yday, $isdst);
-
-The C<$mon> is zero-based: January equals C<0>. The C<$year> is
-1900-based: 2001 equals C<101>. The C<$wday>, C<$yday>, and C<$isdst>
-default to zero (and the first two are usually ignored anyway).
-
-=item asin
-
-This is identical to the C function C<asin()>, returning
-the arcus sine of its numerical argument. See also L<Math::Trig>.
-
-=item assert
-
-Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
-to achieve similar things.
-
-=item atan
-
-This is identical to the C function C<atan()>, returning the
-arcus tangent of its numerical argument. See also L<Math::Trig>.
-
-=item atan2
-
-This is identical to Perl's builtin C<atan2()> function, returning
-the arcus tangent defined by its two numerical arguments, the I<y>
-coordinate and the I<x> coordinate. See also L<Math::Trig>.
-
-=item atexit
-
-atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
-
-=item atof
-
-atof() is C-specific. Perl converts strings to numbers transparently.
-If you need to force a scalar to a number, add a zero to it.
-
-=item atoi
-
-atoi() is C-specific. Perl converts strings to numbers transparently.
-If you need to force a scalar to a number, add a zero to it.
-If you need to have just the integer part, see L<perlfunc/int>.
-
-=item atol
-
-atol() is C-specific. Perl converts strings to numbers transparently.
-If you need to force a scalar to a number, add a zero to it.
-If you need to have just the integer part, see L<perlfunc/int>.
-
-=item bsearch
-
-bsearch() not supplied. For doing binary search on wordlists,
-see L<Search::Dict>.
-
-=item calloc
-
-calloc() is C-specific. Perl does memory management transparently.
-
-=item ceil
-
-This is identical to the C function C<ceil()>, returning the smallest
-integer value greater than or equal to the given numerical argument.
-
-=item chdir
-
-This is identical to Perl's builtin C<chdir()> function, allowing
-one to change the working (default) directory, see L<perlfunc/chdir>.
-
-=item chmod
-
-This is identical to Perl's builtin C<chmod()> function, allowing
-one to change file and directory permissions, see L<perlfunc/chmod>.
-
-=item chown
-
-This is identical to Perl's builtin C<chown()> function, allowing one
-to change file and directory owners and groups, see L<perlfunc/chown>.
-
-=item clearerr
-
-Use the method L<IO::Handle::clearerr()> instead, to reset the error
-state (if any) and EOF state (if any) of the given stream.
-
-=item clock
-
-This is identical to the C function C<clock()>, returning the
-amount of spent processor time in microseconds.
-
-=item close
-
-Close the file. This uses file descriptors such as those obtained by calling
-C<POSIX::open>.
-
- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
- POSIX::close( $fd );
-
-Returns C<undef> on failure.
-
-See also L<perlfunc/close>.
-
-=item closedir
-
-This is identical to Perl's builtin C<closedir()> function for closing
-a directory handle, see L<perlfunc/closedir>.
-
-=item cos
-
-This is identical to Perl's builtin C<cos()> function, for returning
-the cosine of its numerical argument, see L<perlfunc/cos>.
-See also L<Math::Trig>.
-
-=item cosh
-
-This is identical to the C function C<cosh()>, for returning
-the hyperbolic cosine of its numeric argument. See also L<Math::Trig>.
-
-=item creat
-
-Create a new file. This returns a file descriptor like the ones returned by
-C<POSIX::open>. Use C<POSIX::close> to close the file.
-
- $fd = POSIX::creat( "foo", 0611 );
- POSIX::close( $fd );
-
-See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
-
-=item ctermid
-
-Generates the path name for the controlling terminal.
-
- $path = POSIX::ctermid();
-
-=item ctime
-
-This is identical to the C function C<ctime()> and equivalent
-to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
-
-=item cuserid
-
-Get the login name of the owner of the current process.
-
- $name = POSIX::cuserid();
-
-=item difftime
-
-This is identical to the C function C<difftime()>, for returning
-the time difference (in seconds) between two times (as returned
-by C<time()>), see L</time>.
-
-=item div
-
-div() is C-specific, use L<perlfunc/int> on the usual C</> division and
-the modulus C<%>.
-
-=item dup
-
-This is similar to the C function C<dup()>, for duplicating a file
-descriptor.
-
-This uses file descriptors such as those obtained by calling
-C<POSIX::open>.
-
-Returns C<undef> on failure.
-
-=item dup2
-
-This is similar to the C function C<dup2()>, for duplicating a file
-descriptor to an another known file descriptor.
-
-This uses file descriptors such as those obtained by calling
-C<POSIX::open>.
-
-Returns C<undef> on failure.
-
-=item errno
-
-Returns the value of errno.
-
- $errno = POSIX::errno();
-
-This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
-
-=item execl
-
-execl() is C-specific, see L<perlfunc/exec>.
-
-=item execle
-
-execle() is C-specific, see L<perlfunc/exec>.
-
-=item execlp
-
-execlp() is C-specific, see L<perlfunc/exec>.
-
-=item execv
-
-execv() is C-specific, see L<perlfunc/exec>.
-
-=item execve
-
-execve() is C-specific, see L<perlfunc/exec>.
-
-=item execvp
-
-execvp() is C-specific, see L<perlfunc/exec>.
-
-=item exit
-
-This is identical to Perl's builtin C<exit()> function for exiting the
-program, see L<perlfunc/exit>.
-
-=item exp
-
-This is identical to Perl's builtin C<exp()> function for
-returning the exponent (I<e>-based) of the numerical argument,
-see L<perlfunc/exp>.
-
-=item fabs
-
-This is identical to Perl's builtin C<abs()> function for returning
-the absolute value of the numerical argument, see L<perlfunc/abs>.
-
-=item fclose
-
-Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
-
-=item fcntl
-
-This is identical to Perl's builtin C<fcntl()> function,
-see L<perlfunc/fcntl>.
-
-=item fdopen
-
-Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
-
-=item feof
-
-Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
-
-=item ferror
-
-Use method C<IO::Handle::error()> instead.
-
-=item fflush
-
-Use method C<IO::Handle::flush()> instead.
-See also L<perlvar/$OUTPUT_AUTOFLUSH>.
-
-=item fgetc
-
-Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
-
-=item fgetpos
-
-Use method C<IO::Seekable::getpos()> instead, or see L<L/seek>.
-
-=item fgets
-
-Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known
-as L<perlfunc/readline>.
-
-=item fileno
-
-Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
-
-=item floor
-
-This is identical to the C function C<floor()>, returning the largest
-integer value less than or equal to the numerical argument.
-
-=item fmod
-
-This is identical to the C function C<fmod()>.
-
- $r = modf($x, $y);
-
-It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
-The C<$r> has the same sign as C<$x> and magnitude (absolute value)
-less than the magnitude of C<$y>.
-
-=item fopen
-
-Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
-
-=item fork
-
-This is identical to Perl's builtin C<fork()> function
-for duplicating the current process, see L<perlfunc/fork>
-and L<perlfork> if you are in Windows.
-
-=item fpathconf
-
-Retrieves the value of a configurable limit on a file or directory. This
-uses file descriptors such as those obtained by calling C<POSIX::open>.
-
-The following will determine the maximum length of the longest allowable
-pathname on the filesystem which holds C</tmp/foo>.
-
- $fd = POSIX::open( "/tmp/foo", &POSIX::O_RDONLY );
- $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );
-
-Returns C<undef> on failure.
-
-=item fprintf
-
-fprintf() is C-specific, see L<perlfunc/printf> instead.
-
-=item fputc
-
-fputc() is C-specific, see L<perlfunc/print> instead.
-
-=item fputs
-
-fputs() is C-specific, see L<perlfunc/print> instead.
-
-=item fread
-
-fread() is C-specific, see L<perlfunc/read> instead.
-
-=item free
-
-free() is C-specific. Perl does memory management transparently.
-
-=item freopen
-
-freopen() is C-specific, see L<perlfunc/open> instead.
-
-=item frexp
-
-Return the mantissa and exponent of a floating-point number.
-
- ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
-
-=item fscanf
-
-fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead.
-
-=item fseek
-
-Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
-
-=item fsetpos
-
-Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
-
-=item fstat
-
-Get file status. This uses file descriptors such as those obtained by
-calling C<POSIX::open>. The data returned is identical to the data from
-Perl's builtin C<stat> function.
-
- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
- @stats = POSIX::fstat( $fd );
-
-=item ftell
-
-Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
-
-=item fwrite
-
-fwrite() is C-specific, see L<perlfunc/print> instead.
-
-=item getc
-
-This is identical to Perl's builtin C<getc()> function,
-see L<perlfunc/getc>.
-
-=item getchar
-
-Returns one character from STDIN. Identical to Perl's C<getc()>,
-see L<perlfunc/getc>.
-
-=item getcwd
-
-Returns the name of the current working directory.
-See also L<Cwd>.
-
-=item getegid
-
-Returns the effective group identifier. Similar to Perl' s builtin
-variable C<$(>, see L<perlvar/$EGID>.
-
-=item getenv
-
-Returns the value of the specified enironment variable.
-The same information is available through the C<%ENV> array.
-
-=item geteuid
-
-Returns the effective user identifier. Identical to Perl's builtin C<$E<gt>>
-variable, see L<perlvar/$EUID>.
-
-=item getgid
-
-Returns the user's real group identifier. Similar to Perl's builtin
-variable C<$)>, see L<perlvar/$GID>.
-
-=item getgrgid
-
-This is identical to Perl's builtin C<getgrgid()> function for
-returning group entries by group identifiers, see
-L<perlfunc/getgrgid>.
-
-=item getgrnam
-
-This is identical to Perl's builtin C<getgrnam()> function for
-returning group entries by group names, see L<perlfunc/getgrnam>.
-
-=item getgroups
-
-Returns the ids of the user's supplementary groups. Similar to Perl's
-builtin variable C<$)>, see L<perlvar/$GID>.
-
-=item getlogin
-
-This is identical to Perl's builtin C<getlogin()> function for
-returning the user name associated with the current session, see
-L<perlfunc/getlogin>.
-
-=item getpgrp
-
-This is identical to Perl's builtin C<getpgrp()> function for
-returning the prcess group identifier of the current process, see
-L<perlfunc/getpgrp>.
-
-=item getpid
-
-Returns the process identifier. Identical to Perl's builtin
-variable C<$$>, see L<perlvar/$PID>.
-
-=item getppid
-
-This is identical to Perl's builtin C<getppid()> function for
-returning the process identifier of the parent process of the current
-process , see L<perlfunc/getppid>.
-
-=item getpwnam
-
-This is identical to Perl's builtin C<getpwnam()> function for
-returning user entries by user names, see L<perlfunc/getpwnam>.
-
-=item getpwuid
-
-This is identical to Perl's builtin C<getpwuid()> function for
-returning user entries by user identifiers, see L<perlfunc/getpwuid>.
-
-=item gets
-
-Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
-as the C<readline()> function, see L<perlfunc/readline>.
-
-B<NOTE>: if you have C programs that still use C<gets()>, be very
-afraid. The C<gets()> function is a source of endless grief because
-it has no buffer overrun checks. It should B<never> be used. The
-C<fgets()> function should be preferred instead.
-
-=item getuid
-
-Returns the user's identifier. Identical to Perl's builtin C<$E<lt>> variable,
-see L<perlvar/$UID>.
-
-=item gmtime
-
-This is identical to Perl's builtin C<gmtime()> function for
-converting seconds since the epoch to a date in Greenwich Mean Time,
-see L<perlfunc/gmtime>.
-
-=item isalnum
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isalnum:]]/> construct instead, or possibly the C</\w/> construct.
-
-=item isalpha
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isalpha:]]/> construct instead.
-
-=item isatty
-
-Returns a boolean indicating whether the specified filehandle is connected
-to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>.
-
-=item iscntrl
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:iscntrl:]]/> construct instead.
-
-=item isdigit
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isdigit:]]/> construct instead, or the C</\d/> construct.
-
-=item isgraph
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isgraph:]]/> construct instead.
-
-=item islower
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:islower:]]/> construct instead. Do B<not> use C</a-z/>.
-
-=item isprint
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isprint:]]/> construct instead.
-
-=item ispunct
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:ispunct:]]/> construct instead.
-
-=item isspace
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isspace:]]/> construct instead, or the C</\s/> construct.
-
-=item isupper
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isupper:]]/> construct instead. Do B<not> use C</A-Z/>.
-
-=item isxdigit
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using regular expressions and the
-C</[[:isxdigit:]]/> construct instead, or simply C</[0-9a-f]/i>.
-
-=item kill
-
-This is identical to Perl's builtin C<kill()> function for sending
-signals to processes (often to terminate them), see L<perlfunc/kill>.
-
-=item labs
-
-(For returning absolute values of long integers.)
-labs() is C-specific, see L<perlfunc/abs> instead.
-
-=item ldexp
-
-This is identical to the C function C<ldexp()>
-for multiplying floating point numbers with powers of two.
-
- $x_quadrupled = POSIX::ldexp($x, 2);
-
-=item ldiv
-
-(For computing dividends of long integers.)
-ldiv() is C-specific, use C</> and C<int()> instead.
-
-=item link
-
-This is identical to Perl's builtin C<link()> function
-for creating hard links into files, see L<perlfunc/link>.
-
-=item localeconv
-
-Get numeric formatting information. Returns a reference to a hash
-containing the current locale formatting values.
-
-Here is how to query the database for the B<de> (Deutsch or German) locale.
-
- $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
- print "Locale = $loc\n";
- $lconv = POSIX::localeconv();
- print "decimal_point = ", $lconv->{decimal_point}, "\n";
- print "thousands_sep = ", $lconv->{thousands_sep}, "\n";
- print "grouping = ", $lconv->{grouping}, "\n";
- print "int_curr_symbol = ", $lconv->{int_curr_symbol}, "\n";
- print "currency_symbol = ", $lconv->{currency_symbol}, "\n";
- print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n";
- print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n";
- print "mon_grouping = ", $lconv->{mon_grouping}, "\n";
- print "positive_sign = ", $lconv->{positive_sign}, "\n";
- print "negative_sign = ", $lconv->{negative_sign}, "\n";
- print "int_frac_digits = ", $lconv->{int_frac_digits}, "\n";
- print "frac_digits = ", $lconv->{frac_digits}, "\n";
- print "p_cs_precedes = ", $lconv->{p_cs_precedes}, "\n";
- print "p_sep_by_space = ", $lconv->{p_sep_by_space}, "\n";
- print "n_cs_precedes = ", $lconv->{n_cs_precedes}, "\n";
- print "n_sep_by_space = ", $lconv->{n_sep_by_space}, "\n";
- print "p_sign_posn = ", $lconv->{p_sign_posn}, "\n";
- print "n_sign_posn = ", $lconv->{n_sign_posn}, "\n";
-
-=item localtime
-
-This is identical to Perl's builtin C<localtime()> function for
-converting seconds since the epoch to a date see L<perlfunc/localtime>.
-
-=item log
-
-This is identical to Perl's builtin C<log()> function,
-returning the natural (I<e>-based) logarithm of the numerical argument,
-see L<perlfunc/log>.
-
-=item log10
-
-This is identical to the C function C<log10()>,
-returning the 10-base logarithm of the numerical argument.
-You can also use
-
- sub log10 { log($_[0]) / log(10) }
-
-or
-
- sub log10 { log($_[0]) / 2.30258509299405 }
-
-or
-
- sub log10 { log($_[0]) * 0.434294481903252 }
-
-=item longjmp
-
-longjmp() is C-specific: use L<perlfunc/die> instead.
-
-=item lseek
-
-Move the file's read/write position. This uses file descriptors such as
-those obtained by calling C<POSIX::open>.
-
- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
- $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
-
-Returns C<undef> on failure.
-
-=item malloc
-
-malloc() is C-specific. Perl does memory management transparently.
-
-=item mblen
-
-This is identical to the C function C<mblen()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
-
-=item mbstowcs
-
-This is identical to the C function C<mbstowcs()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
-
-=item mbtowc
-
-This is identical to the C function C<mbtowc()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
-
-=item memchr
-
-memchr() is C-specific, see L<perlfunc/index> instead.
-
-=item memcmp
-
-memcmp() is C-specific, use C<eq> instead, see L<perlop>.
-
-=item memcpy
-
-memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
-
-=item memmove
-
-memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
-
-=item memset
-
-memset() is C-specific, use C<x> instead, see L<perlop>.
-
-=item mkdir
-
-This is identical to Perl's builtin C<mkdir()> function
-for creating directories, see L<perlfunc/mkdir>.
-
-=item mkfifo
-
-This is similar to the C function C<mkfifo()> for creating
-FIFO special files.
-
- if (mkfifo($path, $mode)) { ....
-
-Returns C<undef> on failure. The C<$mode> is similar to the
-mode of C<mkdir()>, see L<perlfunc/mkdir>.
-
-=item mktime
-
-Convert date/time info to a calendar time.
-
-Synopsis:
-
- mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
-
-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
-year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
-year 2001 is 101. Consult your system's C<mktime()> manpage for details
-about these and the other arguments.
-
-Calendar time for December 12, 1995, at 10:30 am.
-
- $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
- print "Date = ", POSIX::ctime($time_t);
-
-Returns C<undef> on failure.
-
-=item modf
-
-Return the integral and fractional parts of a floating-point number.
-
- ($fractional, $integral) = POSIX::modf( 3.14 );
-
-=item nice
-
-This is similar to the C function C<nice()>, for changing
-the scheduling preference of the current process. Positive
-arguments mean more polite process, negative values more
-needy process. Normal user processes can only be more polite.
-
-Returns C<undef> on failure.
-
-=item offsetof
-
-offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
-
-=item open
-
-Open a file for reading for writing. This returns file descriptors, not
-Perl filehandles. Use C<POSIX::close> to close the file.
-
-Open a file read-only with mode 0666.
-
- $fd = POSIX::open( "foo" );
-
-Open a file for read and write.
-
- $fd = POSIX::open( "foo", &POSIX::O_RDWR );
-
-Open a file for write, with truncation.
-
- $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
-
-Create a new file with mode 0640. Set up the file for writing.
-
- $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
-
-Returns C<undef> on failure.
-
-See also L<perlfunc/sysopen>.
-
-=item opendir
-
-Open a directory for reading.
-
- $dir = POSIX::opendir( "/tmp" );
- @files = POSIX::readdir( $dir );
- POSIX::closedir( $dir );
-
-Returns C<undef> on failure.
-
-=item pathconf
-
-Retrieves the value of a configurable limit on a file or directory.
-
-The following will determine the maximum length of the longest allowable
-pathname on the filesystem which holds C</tmp>.
-
- $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX );
-
-Returns C<undef> on failure.
-
-=item pause
-
-This is similar to the C function C<pause()>, which suspends
-the execution of the current process until a signal is received.
-
-Returns C<undef> on failure.
-
-=item perror
-
-This is identical to the C function C<perror()>, which outputs to the
-standard error stream the specified message followed by ": " and the
-current error string. Use the C<warn()> function and the C<$!>
-variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
-
-=item pipe
-
-Create an interprocess channel. This returns file descriptors like those
-returned by C<POSIX::open>.
-
- ($fd0, $fd1) = POSIX::pipe();
- POSIX::write( $fd0, "hello", 5 );
- POSIX::read( $fd1, $buf, 5 );
-
-See also L<perlfunc/pipe>.
-
-=item pow
-
-Computes C<$x> raised to the power C<$exponent>.
-
- $ret = POSIX::pow( $x, $exponent );
-
-You can also use the C<**> operator, see L<perlop>.
-
-=item printf
-
-Formats and prints the specified arguments to STDOUT.
-See also L<perlfunc/printf>.
-
-=item putc
-
-putc() is C-specific, see L<perlfunc/print> instead.
-
-=item putchar
-
-putchar() is C-specific, see L<perlfunc/print> instead.
-
-=item puts
-
-puts() is C-specific, see L<perlfunc/print> instead.
-
-=item qsort
-
-qsort() is C-specific, see L<perlfunc/sort> instead.
-
-=item raise
-
-Sends the specified signal to the current process.
-See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
-
-=item rand
-
-C<rand()> is non-portable, see L<perlfunc/rand> instead.
-
-=item read
-
-Read from a file. This uses file descriptors such as those obtained by
-calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
-read then Perl will extend it to make room for the request.
-
- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
- $bytes = POSIX::read( $fd, $buf, 3 );
-
-Returns C<undef> on failure.
-
-See also L<perlfunc/sysread>.
-
-=item readdir
-
-This is identical to Perl's builtin C<readdir()> function
-for reading directory entries, see L<perlfunc/readdir>.
-
-=item realloc
-
-realloc() is C-specific. Perl does memory management transparently.
-
-=item remove
-
-This is identical to Perl's builtin C<unlink()> function
-for removing files, see L<perlfunc/unlink>.
-
-=item rename
-
-This is identical to Perl's builtin C<rename()> function
-for renaming files, see L<perlfunc/rename>.
-
-=item rewind
-
-Seeks to the beginning of the file.
-
-=item rewinddir
-
-This is identical to Perl's builtin C<rewinddir()> function for
-rewinding directory entry streams, see L<perlfunc/rewinddir>.
-
-=item rmdir
-
-This is identical to Perl's builtin C<rmdir()> function
-for removing (empty) directories, see L<perlfunc/rmdir>.
-
-=item scanf
-
-scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
-see L<perlre>.
-
-=item setgid
-
-Sets the real group identifier for this process.
-Identical to assigning a value to the Perl's builtin C<$)> variable,
-see L<perlvar/$UID>.
-
-=item setjmp
-
-C<setjmp()> is C-specific: use C<eval {}> instead,
-see L<perlfunc/eval>.
-
-=item setlocale
-
-Modifies and queries program's locale. The following examples assume
-
- use POSIX qw(setlocale LC_ALL LC_CTYPE);
-
-has been issued.
-
-The following will set the traditional UNIX system locale behavior
-(the second argument C<"C">).
-
- $loc = setlocale( LC_ALL, "C" );
-
-The following will query the current LC_CTYPE category. (No second
-argument means 'query'.)
-
- $loc = setlocale( LC_CTYPE );
-
-The following will set the LC_CTYPE behaviour according to the locale
-environment variables (the second argument C<"">).
-Please see your systems L<setlocale(3)> documentation for the locale
-environment variables' meaning or consult L<perllocale>.
-
- $loc = setlocale( LC_CTYPE, "" );
-
-The following will set the LC_COLLATE behaviour to Argentinian
-Spanish. B<NOTE>: The naming and availability of locales depends on
-your operating system. Please consult L<perllocale> for how to find
-out which locales are available in your system.
-
- $loc = setlocale( LC_ALL, "es_AR.ISO8859-1" );
-
-=item setpgid
-
-This is similar to the C function C<setpgid()> for
-setting the process group identifier of the current process.
-
-Returns C<undef> on failure.
-
-=item setsid
-
-This is identical to the C function C<setsid()> for
-setting the session identifier of the current process.
-
-=item setuid
-
-Sets the real user identifier for this process.
-Identical to assigning a value to the Perl's builtin C<$E<lt>> variable,
-see L<perlvar/$UID>.
-
-=item sigaction
-
-Detailed signal management. This uses C<POSIX::SigAction> objects for the
-C<action> and C<oldaction> arguments. Consult your system's C<sigaction>
-manpage for details.
-
-Synopsis:
-
- sigaction(sig, action, oldaction = 0)
-
-Returns C<undef> on failure.
-
-=item siglongjmp
-
-siglongjmp() is C-specific: use L<perlfunc/die> instead.
-
-=item sigpending
-
-Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
-objects for the C<sigset> argument. Consult your system's C<sigpending>
-manpage for details.
-
-Synopsis:
-
- sigpending(sigset)
-
-Returns C<undef> on failure.
-
-=item sigprocmask
-
-Change and/or examine calling process's signal mask. This uses
-C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
-Consult your system's C<sigprocmask> manpage for details.
-
-Synopsis:
-
- sigprocmask(how, sigset, oldsigset = 0)
-
-Returns C<undef> on failure.
-
-=item sigsetjmp
-
-C<sigsetjmp()> is C-specific: use C<eval {}> instead,
-see L<perlfunc/eval>.
-
-=item sigsuspend
-
-Install a signal mask and suspend process until signal arrives. This uses
-C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
-system's C<sigsuspend> manpage for details.
-
-Synopsis:
-
- sigsuspend(signal_mask)
-
-Returns C<undef> on failure.
-
-=item sin
-
-This is identical to Perl's builtin C<sin()> function
-for returning the sine of the numerical argument,
-see L<perlfunc/sin>. See also L<Math::Trig>.
-
-=item sinh
-
-This is identical to the C function C<sinh()>
-for returning the hyperbolic sine of the numerical argument.
-See also L<Math::Trig>.
-
-=item sleep
-
-This is identical to Perl's builtin C<sleep()> function
-for suspending the execution of the current for process
-for certain number of seconds, see L<perlfunc/sleep>.
-
-=item sprintf
-
-This is similar to Perl's builtin C<sprintf()> function
-for returning a string that has the arguments formatted as requested,
-see L<perlfunc/sprintf>.
-
-=item sqrt
-
-This is identical to Perl's builtin C<sqrt()> function.
-for returning the square root of the numerical argument,
-see L<perlfunc/sqrt>.
-
-=item srand
-
-Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
-
-=item sscanf
-
-sscanf() is C-specific, use regular expressions instead,
-see L<perlre>.
-
-=item stat
-
-This is identical to Perl's builtin C<stat()> function
-for retutning information about files and directories.
-
-=item strcat
-
-strcat() is C-specific, use C<.=> instead, see L<perlop>.
-
-=item strchr
-
-strchr() is C-specific, see L<perlfunc/index> instead.
-
-=item strcmp
-
-strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
-
-=item strcoll
-
-This is identical to the C function C<strcoll()>
-for collating (comparing) strings transformed using
-the C<strxfrm()> function. Not really needed since
-Perl can do this transparently, see L<perllocale>.
-
-=item strcpy
-
-strcpy() is C-specific, use C<=> instead, see L<perlop>.
-
-=item strcspn
-
-strcspn() is C-specific, use regular expressions instead,
-see L<perlre>.
-
-=item strerror
-
-Returns the error string for the specified errno.
-Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
-
-=item strftime
-
-Convert date and time information to string. Returns the string.
-
-Synopsis:
-
- strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
-
-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
-year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
-year 2001 is 101. Consult your system's C<strftime()> manpage for details
-about these and the other arguments.
-If you want your code to be portable, your format (C<fmt>) argument
-should use only the conversion specifiers defined by the ANSI C
-standard. These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
-The given arguments are made consistent
-as though by calling C<mktime()> before calling your system's
-C<strftime()> function, except that the C<isdst> value is not affected.
-
-The string for Tuesday, December 12, 1995.
-
- $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
- print "$str\n";
-
-=item strlen
-
-strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
-
-=item strncat
-
-strncat() is C-specific, use C<.=> instead, see L<perlop>.
-
-=item strncmp
-
-strncmp() is C-specific, use C<eq> instead, see L<perlop>.
-
-=item strncpy
-
-strncpy() is C-specific, use C<=> instead, see L<perlop>.
-
-=item strpbrk
-
-strpbrk() is C-specific, use regular expressions instead,
-see L<perlre>.
-
-=item strrchr
-
-strrchr() is C-specific, see L<perlfunc/rindex> instead.
-
-=item strspn
-
-strspn() is C-specific, use regular expressions instead,
-see L<perlre>.
-
-=item strstr
-
-This is identical to Perl's builtin C<index()> function,
-see L<perlfunc/index>.
-
-=item strtod
-
-String to double translation. Returns the parsed number and the number
-of characters in the unparsed portion of the string. Truly
-POSIX-compliant systems set $! ($ERRNO) to indicate a translation
-error, so clear $! before calling strtod. However, non-POSIX systems
-may not check for overflow, and therefore will never set $!.
-
-strtod should respect any POSIX I<setlocale()> settings.
-
-To parse a string $str as a floating point number use
-
- $! = 0;
- ($num, $n_unparsed) = POSIX::strtod($str);
-
-The second returned item and $! can be used to check for valid input:
-
- if (($str eq '') || ($n_unparsed != 0) || !$!) {
- die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
- }
-
-When called in a scalar context strtod returns the parsed number.
-
-=item strtok
-
-strtok() is C-specific, use regular expressions instead, see
-L<perlre>, or L<perlfunc/split>.
-
-=item strtol
-
-String to (long) integer translation. Returns the parsed number and
-the number of characters in the unparsed portion of the string. Truly
-POSIX-compliant systems set $! ($ERRNO) to indicate a translation
-error, so clear $! before calling strtol. However, non-POSIX systems
-may not check for overflow, and therefore will never set $!.
-
-strtol should respect any POSIX I<setlocale()> settings.
-
-To parse a string $str as a number in some base $base use
-
- $! = 0;
- ($num, $n_unparsed) = POSIX::strtol($str, $base);
-
-The base should be zero or between 2 and 36, inclusive. When the base
-is zero or omitted strtol will use the string itself to determine the
-base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
-octal; any other leading characters mean decimal. Thus, "1234" is
-parsed as a decimal number, "01234" as an octal number, and "0x1234"
-as a hexadecimal number.
-
-The second returned item and $! can be used to check for valid input:
-
- if (($str eq '') || ($n_unparsed != 0) || !$!) {
- die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
- }
-
-When called in a scalar context strtol returns the parsed number.
-
-=item strtoul
-
-String to unsigned (long) integer translation. strtoul() is identical
-to strtol() except that strtoul() only parses unsigned integers. See
-L</strtol> for details.
-
-Note: Some vendors supply strtod() and strtol() but not strtoul().
-Other vendors that do supply strtoul() parse "-1" as a valid value.
-
-=item strxfrm
-
-String transformation. Returns the transformed string.
-
- $dst = POSIX::strxfrm( $src );
-
-Used in conjunction with the C<strcoll()> function, see L</strcoll>.
-
-Not really needed since Perl can do this transparently, see
-L<perllocale>.
-
-=item sysconf
-
-Retrieves values of system configurable variables.
-
-The following will get the machine's clock speed.
-
- $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
-
-Returns C<undef> on failure.
-
-=item system
-
-This is identical to Perl's builtin C<system()> function, see
-L<perlfunc/system>.
-
-=item tan
-
-This is identical to the C function C<tan()>, returning the
-tangent of the numerical argument. See also L<Math::Trig>.
-
-=item tanh
-
-This is identical to the C function C<tanh()>, returning the
-hyperbolic tangent of the numerical argument. See also L<Math::Trig>.
-
-=item tcdrain
-
-This is similar to the C function C<tcdrain()> for draining
-the output queue of its argument stream.
-
-Returns C<undef> on failure.
-
-=item tcflow
-
-This is similar to the C function C<tcflow()> for controlling
-the flow of its argument stream.
-
-Returns C<undef> on failure.
-
-=item tcflush
-
-This is similar to the C function C<tcflush()> for flushing
-the I/O buffers of its argumeny stream.
-
-Returns C<undef> on failure.
-
-=item tcgetpgrp
-
-This is identical to the C function C<tcgetpgrp()> for returning the
-process group identifier of the foreground process group of the controlling
-terminal.
-
-=item tcsendbreak
-
-This is similar to the C function C<tcsendbreak()> for sending
-a break on its argument stream.
-
-Returns C<undef> on failure.
-
-=item tcsetpgrp
-
-This is similar to the C function C<tcsetpgrp()> for setting the
-process group identifier of the foreground process group of the controlling
-terminal.
-
-Returns C<undef> on failure.
-
-=item time
-
-This is identical to Perl's builtin C<time()> function
-for returning the number of seconds since the epoch
-(whatever it is for the system), see L<perlfunc/time>.
-
-=item times
-
-The times() function returns elapsed realtime since some point in the past
-(such as system startup), user and system times for this process, and user
-and system times used by child processes. All times are returned in clock
-ticks.
-
- ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
-
-Note: Perl's builtin C<times()> function returns four values, measured in
-seconds.
-
-=item tmpfile
-
-Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
-
-=item tmpnam
-
-Returns a name for a temporary file.
-
- $tmpfile = POSIX::tmpnam();
-
-For security reasons, which are probably detailed in your system's
-documentation for the C library tmpnam() function, this interface
-should not be used; instead see L<File::Temp>.
-
-=item tolower
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using the C<lc()> function,
-see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
-strings.
-
-=item toupper
-
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using the C<uc()> function,
-see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
-strings.
-
-=item ttyname
-
-This is identical to the C function C<ttyname()> for returning the
-name of the current terminal.
-
-=item tzname
-
-Retrieves the time conversion information from the C<tzname> variable.
-
- POSIX::tzset();
- ($std, $dst) = POSIX::tzname();
-
-=item tzset
-
-This is identical to the C function C<tzset()> for setting
-the current timezone based on the environment variable C<TZ>,
-to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
-functions.
-
-=item umask
-
-This is identical to Perl's builtin C<umask()> function
-for setting (and querying) the file creation permission mask,
-see L<perlfunc/umask>.
-
-=item uname
-
-Get name of current operating system.
-
- ($sysname, $nodename, $release, $version, $machine) = POSIX::uname();
-
-Note that the actual meanings of the various fields are not
-that well standardized, do not expect any great portability.
-The C<$sysname> might be the name of the operating system,
-the C<$nodename> might be the name of the host, the C<$release>
-might be the (major) release number of the operating system,
-the C<$version> might be the (minor) release number of the
-operating system, and the C<$machine> might be a hardware identifier.
-Maybe.
-
-=item ungetc
-
-Use method C<IO::Handle::ungetc()> instead.
-
-=item unlink
-
-This is identical to Perl's builtin C<unlink()> function
-for removing files, see L<perlfunc/unlink>.
-
-=item utime
-
-This is identical to Perl's builtin C<utime()> function
-for changing the time stamps of files and directories,
-see L<perlfunc/utime>.
-
-=item vfprintf
-
-vfprintf() is C-specific, see L<perlfunc/printf> instead.
-
-=item vprintf
-
-vprintf() is C-specific, see L<perlfunc/printf> instead.
-
-=item vsprintf
-
-vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
-
-=item wait
-
-This is identical to Perl's builtin C<wait()> function,
-see L<perlfunc/wait>.
-
-=item waitpid
-
-Wait for a child process to change state. This is identical to Perl's
-builtin C<waitpid()> function, see L<perlfunc/waitpid>.
-
- $pid = POSIX::waitpid( -1, &POSIX::WNOHANG );
- print "status = ", ($? / 256), "\n";
-
-=item wcstombs
-
-This is identical to the C function C<wcstombs()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
-
-=item wctomb
-
-This is identical to the C function C<wctomb()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
-
-=item write
-
-Write to a file. This uses file descriptors such as those obtained by
-calling C<POSIX::open>.
-
- $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
- $buf = "hello";
- $bytes = POSIX::write( $b, $buf, 5 );
-
-Returns C<undef> on failure.
-
-See also L<perlfunc/syswrite>.
-
-=back
-
-=head1 CLASSES
-
-=head2 POSIX::SigAction
-
-=over 8
-
-=item new
-
-Creates a new C<POSIX::SigAction> object which corresponds to the C
-C<struct sigaction>. This object will be destroyed automatically when it is
-no longer needed. The first parameter is the fully-qualified name of a sub
-which is a signal-handler. The second parameter is a C<POSIX::SigSet>
-object, it defaults to the empty set. The third parameter contains the
-C<sa_flags>, it defaults to 0.
-
- $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
- $sigaction = POSIX::SigAction->new( 'main::handler', $sigset, &POSIX::SA_NOCLDSTOP );
-
-This C<POSIX::SigAction> object should be used with the C<POSIX::sigaction()>
-function.
-
-=back
-
-=head2 POSIX::SigSet
-
-=over 8
-
-=item new
-
-Create a new SigSet object. This object will be destroyed automatically
-when it is no longer needed. Arguments may be supplied to initialize the
-set.
-
-Create an empty set.
-
- $sigset = POSIX::SigSet->new;
-
-Create a set with SIGUSR1.
-
- $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
-
-=item addset
-
-Add a signal to a SigSet object.
-
- $sigset->addset( &POSIX::SIGUSR2 );
-
-Returns C<undef> on failure.
-
-=item delset
-
-Remove a signal from the SigSet object.
-
- $sigset->delset( &POSIX::SIGUSR2 );
-
-Returns C<undef> on failure.
-
-=item emptyset
-
-Initialize the SigSet object to be empty.
-
- $sigset->emptyset();
-
-Returns C<undef> on failure.
-
-=item fillset
-
-Initialize the SigSet object to include all signals.
-
- $sigset->fillset();
-
-Returns C<undef> on failure.
-
-=item ismember
-
-Tests the SigSet object to see if it contains a specific signal.
-
- if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
- print "contains SIGUSR1\n";
- }
-
-=back
-
-=head2 POSIX::Termios
-
-=over 8
-
-=item new
-
-Create a new Termios object. This object will be destroyed automatically
-when it is no longer needed. A Termios object corresponds to the termios
-C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
-and setattr() sets a file descriptor's parameters to match Termios' contents.
-
- $termios = POSIX::Termios->new;
-
-=item getattr
-
-Get terminal control attributes.
-
-Obtain the attributes for stdin.
-
- $termios->getattr()
-
-Obtain the attributes for stdout.
-
- $termios->getattr( 1 )
-
-Returns C<undef> on failure.
-
-=item getcc
-
-Retrieve a value from the c_cc field of a termios object. The c_cc field is
-an array so an index must be specified.
-
- $c_cc[1] = $termios->getcc(1);
-
-=item getcflag
-
-Retrieve the c_cflag field of a termios object.
-
- $c_cflag = $termios->getcflag;
-
-=item getiflag
-
-Retrieve the c_iflag field of a termios object.
-
- $c_iflag = $termios->getiflag;
-
-=item getispeed
-
-Retrieve the input baud rate.
-
- $ispeed = $termios->getispeed;
-
-=item getlflag
-
-Retrieve the c_lflag field of a termios object.
-
- $c_lflag = $termios->getlflag;
-
-=item getoflag
-
-Retrieve the c_oflag field of a termios object.
-
- $c_oflag = $termios->getoflag;
-
-=item getospeed
-
-Retrieve the output baud rate.
-
- $ospeed = $termios->getospeed;
-
-=item setattr
-
-Set terminal control attributes.
-
-Set attributes immediately for stdout.
-
- $termios->setattr( 1, &POSIX::TCSANOW );
-
-Returns C<undef> on failure.
-
-=item setcc
-
-Set a value in the c_cc field of a termios object. The c_cc field is an
-array so an index must be specified.
-
- $termios->setcc( &POSIX::VEOF, 1 );
-
-=item setcflag
-
-Set the c_cflag field of a termios object.
-
- $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
-
-=item setiflag
-
-Set the c_iflag field of a termios object.
-
- $termios->setiflag( $c_iflag | &POSIX::BRKINT );
-
-=item setispeed
-
-Set the input baud rate.
-
- $termios->setispeed( &POSIX::B9600 );
-
-Returns C<undef> on failure.
-
-=item setlflag
-
-Set the c_lflag field of a termios object.
-
- $termios->setlflag( $c_lflag | &POSIX::ECHO );
-
-=item setoflag
-
-Set the c_oflag field of a termios object.
-
- $termios->setoflag( $c_oflag | &POSIX::OPOST );
-
-=item setospeed
-
-Set the output baud rate.
-
- $termios->setospeed( &POSIX::B9600 );
-
-Returns C<undef> on failure.
-
-=item Baud rate values
-
-B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
-
-=item Terminal interface values
-
-TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
-
-=item c_cc field values
-
-VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
-
-=item c_cflag field values
-
-CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
-
-=item c_iflag field values
-
-BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
-
-=item c_lflag field values
-
-ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
-
-=item c_oflag field values
-
-OPOST
-
-=back
-
-=head1 PATHNAME CONSTANTS
-
-=over 8
-
-=item Constants
-
-_PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
-
-=back
-
-=head1 POSIX CONSTANTS
-
-=over 8
-
-=item Constants
-
-_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
-
-=back
-
-=head1 SYSTEM CONFIGURATION
-
-=over 8
-
-=item Constants
-
-_SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
-
-=back
-
-=head1 ERRNO
-
-=over 8
-
-=item Constants
-
-E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
-EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
-EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
-EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
-ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
-ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
-ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
-EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
-ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
-ETXTBSY EUSERS EWOULDBLOCK EXDEV
-
-=back
-
-=head1 FCNTL
-
-=over 8
-
-=item Constants
-
-FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY
-
-=back
-
-=head1 FLOAT
-
-=over 8
-
-=item Constants
-
-DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
-
-=back
-
-=head1 LIMITS
-
-=over 8
-
-=item Constants
-
-ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
-
-=back
-
-=head1 LOCALE
-
-=over 8
-
-=item Constants
-
-LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
-
-=back
-
-=head1 MATH
-
-=over 8
-
-=item Constants
-
-HUGE_VAL
-
-=back
-
-=head1 SIGNAL
-
-=over 8
-
-=item Constants
-
-SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
-SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
-SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
-SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
-SIG_UNBLOCK
-
-=back
-
-=head1 STAT
-
-=over 8
-
-=item Constants
-
-S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
-
-=item Macros
-
-S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
-
-=back
-
-=head1 STDLIB
-
-=over 8
-
-=item Constants
-
-EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
-
-=back
-
-=head1 STDIO
-
-=over 8
-
-=item Constants
-
-BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
-
-=back
-
-=head1 TIME
-
-=over 8
-
-=item Constants
-
-CLK_TCK CLOCKS_PER_SEC
-
-=back
-
-=head1 UNISTD
-
-=over 8
-
-=item Constants
-
-R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
-
-=back
-
-=head1 WAIT
-
-=over 8
-
-=item Constants
-
-WNOHANG WUNTRACED
-
-=item Macros
-
-WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
-
-=back
-
diff --git a/contrib/perl5/ext/POSIX/POSIX.xs b/contrib/perl5/ext/POSIX/POSIX.xs
deleted file mode 100644
index ef7d78a..0000000
--- a/contrib/perl5/ext/POSIX/POSIX.xs
+++ /dev/null
@@ -1,3967 +0,0 @@
-/* $FreeBSD$ */
-#ifdef WIN32
-#define _POSIX_
-#endif
-
-#define PERL_NO_GET_CONTEXT
-
-#include "EXTERN.h"
-#define PERLIO_NOT_STDIO 1
-#include "perl.h"
-#include "XSUB.h"
-#if defined(PERL_OBJECT) || defined(PERL_CAPI) || defined(PERL_IMPLICIT_SYS)
-# undef signal
-# undef open
-# undef setmode
-# define open PerlLIO_open3
-#endif
-#include <ctype.h>
-#ifdef I_DIRENT /* XXX maybe better to just rely on perl.h? */
-#include <dirent.h>
-#endif
-#include <errno.h>
-#ifdef I_FLOAT
-#include <float.h>
-#endif
-#ifdef I_LIMITS
-#include <limits.h>
-#endif
-#include <locale.h>
-#include <math.h>
-#ifdef I_PWD
-#include <pwd.h>
-#endif
-#include <setjmp.h>
-#include <signal.h>
-#include <stdarg.h>
-
-#ifdef I_STDDEF
-#include <stddef.h>
-#endif
-
-/* XXX This comment is just to make I_TERMIO and I_SGTTY visible to
- metaconfig for future extension writers. We don't use them in POSIX.
- (This is really sneaky :-) --AD
-*/
-#if defined(I_TERMIOS)
-#include <termios.h>
-#endif
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <time.h>
-#ifdef I_UNISTD
-#include <unistd.h>
-#endif
-#ifdef MACOS_TRADITIONAL
-#undef fdopen
-#endif
-#include <fcntl.h>
-
-#if defined(__VMS) && !defined(__POSIX_SOURCE)
-# include <libdef.h> /* LIB$_INVARG constant */
-# include <lib$routines.h> /* prototype for lib$ediv() */
-# include <starlet.h> /* prototype for sys$gettim() */
-# if DECC_VERSION < 50000000
-# define pid_t int /* old versions of DECC miss this in types.h */
-# endif
-
-# undef mkfifo
-# define mkfifo(a,b) (not_here("mkfifo"),-1)
-# define tzset() not_here("tzset")
-
-#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
-# define HAS_TZNAME /* shows up in VMS 7.0 or Dec C 5.6 */
-# include <utsname.h>
-# endif /* __VMS_VER >= 70000000 or Dec C 5.6 */
-
- /* The POSIX notion of ttyname() is better served by getname() under VMS */
- static char ttnambuf[64];
-# define ttyname(fd) (isatty(fd) > 0 ? getname(fd,ttnambuf,0) : NULL)
-
- /* The non-POSIX CRTL times() has void return type, so we just get the
- current time directly */
- clock_t vms_times(struct tms *bufptr) {
- dTHX;
- clock_t retval;
- /* Get wall time and convert to 10 ms intervals to
- * produce the return value that the POSIX standard expects */
-# if defined(__DECC) && defined (__ALPHA)
-# include <ints.h>
- uint64 vmstime;
- _ckvmssts(sys$gettim(&vmstime));
- vmstime /= 100000;
- retval = vmstime & 0x7fffffff;
-# else
- /* (Older hw or ccs don't have an atomic 64-bit type, so we
- * juggle 32-bit ints (and a float) to produce a time_t result
- * with minimal loss of information.) */
- long int vmstime[2],remainder,divisor = 100000;
- _ckvmssts(sys$gettim((unsigned long int *)vmstime));
- vmstime[1] &= 0x7fff; /* prevent overflow in EDIV */
- _ckvmssts(lib$ediv(&divisor,vmstime,(long int *)&retval,&remainder));
-# endif
- /* Fill in the struct tms using the CRTL routine . . .*/
- times((tbuffer_t *)bufptr);
- return (clock_t) retval;
- }
-# define times(t) vms_times(t)
-#else
-#if defined (__CYGWIN__)
-# define tzname _tzname
-#endif
-#if defined (WIN32)
-# undef mkfifo
-# define mkfifo(a,b) not_here("mkfifo")
-# define ttyname(a) (char*)not_here("ttyname")
-# define sigset_t long
-# define pid_t long
-# ifdef __BORLANDC__
-# define tzname _tzname
-# endif
-# ifdef _MSC_VER
-# define mode_t short
-# endif
-# ifdef __MINGW32__
-# define mode_t short
-# ifndef tzset
-# define tzset() not_here("tzset")
-# endif
-# ifndef _POSIX_OPEN_MAX
-# define _POSIX_OPEN_MAX FOPEN_MAX /* XXX bogus ? */
-# endif
-# endif
-# define sigaction(a,b,c) not_here("sigaction")
-# define sigpending(a) not_here("sigpending")
-# define sigprocmask(a,b,c) not_here("sigprocmask")
-# define sigsuspend(a) not_here("sigsuspend")
-# define sigemptyset(a) not_here("sigemptyset")
-# define sigaddset(a,b) not_here("sigaddset")
-# define sigdelset(a,b) not_here("sigdelset")
-# define sigfillset(a) not_here("sigfillset")
-# define sigismember(a,b) not_here("sigismember")
-# define setuid(a) not_here("setuid")
-# define setgid(a) not_here("setgid")
-#else
-
-# ifndef HAS_MKFIFO
-# if defined(OS2) || defined(MACOS_TRADITIONAL)
-# define mkfifo(a,b) not_here("mkfifo")
-# else /* !( defined OS2 ) */
-# ifndef mkfifo
-# define mkfifo(path, mode) (mknod((path), (mode) | S_IFIFO, 0))
-# endif
-# endif
-# endif /* !HAS_MKFIFO */
-
-# ifdef MACOS_TRADITIONAL
-# define ttyname(a) (char*)not_here("ttyname")
-# define tzset() not_here("tzset")
-# else
-# include <grp.h>
-# include <sys/times.h>
-# ifdef HAS_UNAME
-# include <sys/utsname.h>
-# endif
-# include <sys/wait.h>
-# endif
-# ifdef I_UTIME
-# include <utime.h>
-# endif
-#endif /* WIN32 */
-#endif /* __VMS */
-
-typedef int SysRet;
-typedef long SysRetLong;
-typedef sigset_t* POSIX__SigSet;
-typedef HV* POSIX__SigAction;
-#ifdef I_TERMIOS
-typedef struct termios* POSIX__Termios;
-#else /* Define termios types to int, and call not_here for the functions.*/
-#define POSIX__Termios int
-#define speed_t int
-#define tcflag_t int
-#define cc_t int
-#define cfgetispeed(x) not_here("cfgetispeed")
-#define cfgetospeed(x) not_here("cfgetospeed")
-#define tcdrain(x) not_here("tcdrain")
-#define tcflush(x,y) not_here("tcflush")
-#define tcsendbreak(x,y) not_here("tcsendbreak")
-#define cfsetispeed(x,y) not_here("cfsetispeed")
-#define cfsetospeed(x,y) not_here("cfsetospeed")
-#define ctermid(x) (char *) not_here("ctermid")
-#define tcflow(x,y) not_here("tcflow")
-#define tcgetattr(x,y) not_here("tcgetattr")
-#define tcsetattr(x,y,z) not_here("tcsetattr")
-#endif
-
-/* Possibly needed prototypes */
-char *cuserid (char *);
-double strtod (const char *, char **);
-long strtol (const char *, char **, int);
-unsigned long strtoul (const char *, char **, int);
-
-#ifndef HAS_CUSERID
-#define cuserid(a) (char *) not_here("cuserid")
-#endif
-#ifndef HAS_DIFFTIME
-#ifndef difftime
-#define difftime(a,b) not_here("difftime")
-#endif
-#endif
-#ifndef HAS_FPATHCONF
-#define fpathconf(f,n) (SysRetLong) not_here("fpathconf")
-#endif
-#ifndef HAS_MKTIME
-#define mktime(a) not_here("mktime")
-#endif
-#ifndef HAS_NICE
-#define nice(a) not_here("nice")
-#endif
-#ifndef HAS_PATHCONF
-#define pathconf(f,n) (SysRetLong) not_here("pathconf")
-#endif
-#ifndef HAS_SYSCONF
-#define sysconf(n) (SysRetLong) not_here("sysconf")
-#endif
-#ifndef HAS_READLINK
-#define readlink(a,b,c) not_here("readlink")
-#endif
-#ifndef HAS_SETPGID
-#define setpgid(a,b) not_here("setpgid")
-#endif
-#ifndef HAS_SETSID
-#define setsid() not_here("setsid")
-#endif
-#ifndef HAS_STRCOLL
-#define strcoll(s1,s2) not_here("strcoll")
-#endif
-#ifndef HAS_STRTOD
-#define strtod(s1,s2) not_here("strtod")
-#endif
-#ifndef HAS_STRTOL
-#define strtol(s1,s2,b) not_here("strtol")
-#endif
-#ifndef HAS_STRTOUL
-#define strtoul(s1,s2,b) not_here("strtoul")
-#endif
-#ifndef HAS_STRXFRM
-#define strxfrm(s1,s2,n) not_here("strxfrm")
-#endif
-#ifndef HAS_TCGETPGRP
-#define tcgetpgrp(a) not_here("tcgetpgrp")
-#endif
-#ifndef HAS_TCSETPGRP
-#define tcsetpgrp(a,b) not_here("tcsetpgrp")
-#endif
-#ifndef HAS_TIMES
-#define times(a) not_here("times")
-#endif
-#ifndef HAS_UNAME
-#define uname(a) not_here("uname")
-#endif
-#ifndef HAS_WAITPID
-#define waitpid(a,b,c) not_here("waitpid")
-#endif
-
-#ifndef HAS_MBLEN
-#ifndef mblen
-#define mblen(a,b) not_here("mblen")
-#endif
-#endif
-#ifndef HAS_MBSTOWCS
-#define mbstowcs(s, pwcs, n) not_here("mbstowcs")
-#endif
-#ifndef HAS_MBTOWC
-#define mbtowc(pwc, s, n) not_here("mbtowc")
-#endif
-#ifndef HAS_WCSTOMBS
-#define wcstombs(s, pwcs, n) not_here("wcstombs")
-#endif
-#ifndef HAS_WCTOMB
-#define wctomb(s, wchar) not_here("wcstombs")
-#endif
-#if !defined(HAS_MBLEN) && !defined(HAS_MBSTOWCS) && !defined(HAS_MBTOWC) && !defined(HAS_WCSTOMBS) && !defined(HAS_WCTOMB)
-/* If we don't have these functions, then we wouldn't have gotten a typedef
- for wchar_t, the wide character type. Defining wchar_t allows the
- functions referencing it to compile. Its actual type is then meaningless,
- since without the above functions, all sections using it end up calling
- not_here() and croak. --Kaveh Ghazi (ghazi@noc.rutgers.edu) 9/18/94. */
-#ifndef wchar_t
-#define wchar_t char
-#endif
-#endif
-
-#ifndef HAS_LOCALECONV
-#define localeconv() not_here("localeconv")
-#endif
-
-#ifdef HAS_TZNAME
-# if !defined(WIN32) && !defined(__CYGWIN__)
-extern char *tzname[];
-# endif
-#else
-#if !defined(WIN32) || (defined(__MINGW32__) && !defined(tzname))
-char *tzname[] = { "" , "" };
-#endif
-#endif
-
-/* XXX struct tm on some systems (SunOS4/BSD) contains extra (non POSIX)
- * fields for which we don't have Configure support yet:
- * char *tm_zone; -- abbreviation of timezone name
- * long tm_gmtoff; -- offset from GMT in seconds
- * To workaround core dumps from the uninitialised tm_zone we get the
- * system to give us a reasonable struct to copy. This fix means that
- * strftime uses the tm_zone and tm_gmtoff values returned by
- * localtime(time()). That should give the desired result most of the
- * time. But probably not always!
- *
- * This is a temporary workaround to be removed once Configure
- * support is added and NETaa14816 is considered in full.
- * It does not address tzname aspects of NETaa14816.
- */
-#ifdef HAS_GNULIBC
-# ifndef STRUCT_TM_HASZONE
-# define STRUCT_TM_HASZONE
-# endif
-#endif
-
-#ifdef STRUCT_TM_HASZONE
-static void
-init_tm(struct tm *ptm) /* see mktime, strftime and asctime */
-{
- Time_t now;
- (void)time(&now);
- Copy(localtime(&now), ptm, 1, struct tm);
-}
-
-#else
-# define init_tm(ptm)
-#endif
-
-/*
- * mini_mktime - normalise struct tm values without the localtime()
- * semantics (and overhead) of mktime().
- */
-static void
-mini_mktime(struct tm *ptm)
-{
- int yearday;
- int secs;
- int month, mday, year, jday;
- int odd_cent, odd_year;
-
-#define DAYS_PER_YEAR 365
-#define DAYS_PER_QYEAR (4*DAYS_PER_YEAR+1)
-#define DAYS_PER_CENT (25*DAYS_PER_QYEAR-1)
-#define DAYS_PER_QCENT (4*DAYS_PER_CENT+1)
-#define SECS_PER_HOUR (60*60)
-#define SECS_PER_DAY (24*SECS_PER_HOUR)
-/* parentheses deliberately absent on these two, otherwise they don't work */
-#define MONTH_TO_DAYS 153/5
-#define DAYS_TO_MONTH 5/153
-/* offset to bias by March (month 4) 1st between month/mday & year finding */
-#define YEAR_ADJUST (4*MONTH_TO_DAYS+1)
-/* as used here, the algorithm leaves Sunday as day 1 unless we adjust it */
-#define WEEKDAY_BIAS 6 /* (1+6)%7 makes Sunday 0 again */
-
-/*
- * Year/day algorithm notes:
- *
- * With a suitable offset for numeric value of the month, one can find
- * an offset into the year by considering months to have 30.6 (153/5) days,
- * using integer arithmetic (i.e., with truncation). To avoid too much
- * messing about with leap days, we consider January and February to be
- * the 13th and 14th month of the previous year. After that transformation,
- * we need the month index we use to be high by 1 from 'normal human' usage,
- * so the month index values we use run from 4 through 15.
- *
- * Given that, and the rules for the Gregorian calendar (leap years are those
- * divisible by 4 unless also divisible by 100, when they must be divisible
- * by 400 instead), we can simply calculate the number of days since some
- * arbitrary 'beginning of time' by futzing with the (adjusted) year number,
- * the days we derive from our month index, and adding in the day of the
- * month. The value used here is not adjusted for the actual origin which
- * it normally would use (1 January A.D. 1), since we're not exposing it.
- * We're only building the value so we can turn around and get the
- * normalised values for the year, month, day-of-month, and day-of-year.
- *
- * For going backward, we need to bias the value we're using so that we find
- * the right year value. (Basically, we don't want the contribution of
- * March 1st to the number to apply while deriving the year). Having done
- * that, we 'count up' the contribution to the year number by accounting for
- * full quadracenturies (400-year periods) with their extra leap days, plus
- * the contribution from full centuries (to avoid counting in the lost leap
- * days), plus the contribution from full quad-years (to count in the normal
- * leap days), plus the leftover contribution from any non-leap years.
- * At this point, if we were working with an actual leap day, we'll have 0
- * days left over. This is also true for March 1st, however. So, we have
- * to special-case that result, and (earlier) keep track of the 'odd'
- * century and year contributions. If we got 4 extra centuries in a qcent,
- * or 4 extra years in a qyear, then it's a leap day and we call it 29 Feb.
- * Otherwise, we add back in the earlier bias we removed (the 123 from
- * figuring in March 1st), find the month index (integer division by 30.6),
- * and the remainder is the day-of-month. We then have to convert back to
- * 'real' months (including fixing January and February from being 14/15 in
- * the previous year to being in the proper year). After that, to get
- * tm_yday, we work with the normalised year and get a new yearday value for
- * January 1st, which we subtract from the yearday value we had earlier,
- * representing the date we've re-built. This is done from January 1
- * because tm_yday is 0-origin.
- *
- * Since POSIX time routines are only guaranteed to work for times since the
- * UNIX epoch (00:00:00 1 Jan 1970 UTC), the fact that this algorithm
- * applies Gregorian calendar rules even to dates before the 16th century
- * doesn't bother me. Besides, you'd need cultural context for a given
- * date to know whether it was Julian or Gregorian calendar, and that's
- * outside the scope for this routine. Since we convert back based on the
- * same rules we used to build the yearday, you'll only get strange results
- * for input which needed normalising, or for the 'odd' century years which
- * were leap years in the Julian calander but not in the Gregorian one.
- * I can live with that.
- *
- * This algorithm also fails to handle years before A.D. 1 gracefully, but
- * that's still outside the scope for POSIX time manipulation, so I don't
- * care.
- */
-
- year = 1900 + ptm->tm_year;
- month = ptm->tm_mon;
- mday = ptm->tm_mday;
- /* allow given yday with no month & mday to dominate the result */
- if (ptm->tm_yday >= 0 && mday <= 0 && month <= 0) {
- month = 0;
- mday = 0;
- jday = 1 + ptm->tm_yday;
- }
- else {
- jday = 0;
- }
- if (month >= 2)
- month+=2;
- else
- month+=14, year--;
- yearday = DAYS_PER_YEAR * year + year/4 - year/100 + year/400;
- yearday += month*MONTH_TO_DAYS + mday + jday;
- /*
- * Note that we don't know when leap-seconds were or will be,
- * so we have to trust the user if we get something which looks
- * like a sensible leap-second. Wild values for seconds will
- * be rationalised, however.
- */
- if ((unsigned) ptm->tm_sec <= 60) {
- secs = 0;
- }
- else {
- secs = ptm->tm_sec;
- ptm->tm_sec = 0;
- }
- secs += 60 * ptm->tm_min;
- secs += SECS_PER_HOUR * ptm->tm_hour;
- if (secs < 0) {
- if (secs-(secs/SECS_PER_DAY*SECS_PER_DAY) < 0) {
- /* got negative remainder, but need positive time */
- /* back off an extra day to compensate */
- yearday += (secs/SECS_PER_DAY)-1;
- secs -= SECS_PER_DAY * (secs/SECS_PER_DAY - 1);
- }
- else {
- yearday += (secs/SECS_PER_DAY);
- secs -= SECS_PER_DAY * (secs/SECS_PER_DAY);
- }
- }
- else if (secs >= SECS_PER_DAY) {
- yearday += (secs/SECS_PER_DAY);
- secs %= SECS_PER_DAY;
- }
- ptm->tm_hour = secs/SECS_PER_HOUR;
- secs %= SECS_PER_HOUR;
- ptm->tm_min = secs/60;
- secs %= 60;
- ptm->tm_sec += secs;
- /* done with time of day effects */
- /*
- * The algorithm for yearday has (so far) left it high by 428.
- * To avoid mistaking a legitimate Feb 29 as Mar 1, we need to
- * bias it by 123 while trying to figure out what year it
- * really represents. Even with this tweak, the reverse
- * translation fails for years before A.D. 0001.
- * It would still fail for Feb 29, but we catch that one below.
- */
- jday = yearday; /* save for later fixup vis-a-vis Jan 1 */
- yearday -= YEAR_ADJUST;
- year = (yearday / DAYS_PER_QCENT) * 400;
- yearday %= DAYS_PER_QCENT;
- odd_cent = yearday / DAYS_PER_CENT;
- year += odd_cent * 100;
- yearday %= DAYS_PER_CENT;
- year += (yearday / DAYS_PER_QYEAR) * 4;
- yearday %= DAYS_PER_QYEAR;
- odd_year = yearday / DAYS_PER_YEAR;
- year += odd_year;
- yearday %= DAYS_PER_YEAR;
- if (!yearday && (odd_cent==4 || odd_year==4)) { /* catch Feb 29 */
- month = 1;
- yearday = 29;
- }
- else {
- yearday += YEAR_ADJUST; /* recover March 1st crock */
- month = yearday*DAYS_TO_MONTH;
- yearday -= month*MONTH_TO_DAYS;
- /* recover other leap-year adjustment */
- if (month > 13) {
- month-=14;
- year++;
- }
- else {
- month-=2;
- }
- }
- ptm->tm_year = year - 1900;
- if (yearday) {
- ptm->tm_mday = yearday;
- ptm->tm_mon = month;
- }
- else {
- ptm->tm_mday = 31;
- ptm->tm_mon = month - 1;
- }
- /* re-build yearday based on Jan 1 to get tm_yday */
- year--;
- yearday = year*DAYS_PER_YEAR + year/4 - year/100 + year/400;
- yearday += 14*MONTH_TO_DAYS + 1;
- ptm->tm_yday = jday - yearday;
- /* fix tm_wday if not overridden by caller */
- if ((unsigned)ptm->tm_wday > 6)
- ptm->tm_wday = (jday + WEEKDAY_BIAS) % 7;
-}
-
-#ifdef HAS_LONG_DOUBLE
-# if LONG_DOUBLESIZE > NVSIZE
-# undef HAS_LONG_DOUBLE /* XXX until we figure out how to use them */
-# endif
-#endif
-
-#ifndef HAS_LONG_DOUBLE
-#ifdef LDBL_MAX
-#undef LDBL_MAX
-#endif
-#ifdef LDBL_MIN
-#undef LDBL_MIN
-#endif
-#ifdef LDBL_EPSILON
-#undef LDBL_EPSILON
-#endif
-#endif
-
-static int
-not_here(char *s)
-{
- croak("POSIX::%s not implemented on this architecture", s);
- return -1;
-}
-
-static
-NV
-constant(char *name, int arg)
-{
- errno = 0;
- switch (*name) {
- case 'A':
- if (strEQ(name, "ARG_MAX"))
-#ifdef ARG_MAX
- return ARG_MAX;
-#else
- goto not_there;
-#endif
- break;
- case 'B':
- if (strEQ(name, "BUFSIZ"))
-#ifdef BUFSIZ
- return BUFSIZ;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "BRKINT"))
-#ifdef BRKINT
- return BRKINT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B9600"))
-#ifdef B9600
- return B9600;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B19200"))
-#ifdef B19200
- return B19200;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B38400"))
-#ifdef B38400
- return B38400;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B0"))
-#ifdef B0
- return B0;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B110"))
-#ifdef B110
- return B110;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B1200"))
-#ifdef B1200
- return B1200;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B134"))
-#ifdef B134
- return B134;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B150"))
-#ifdef B150
- return B150;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B1800"))
-#ifdef B1800
- return B1800;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B200"))
-#ifdef B200
- return B200;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B2400"))
-#ifdef B2400
- return B2400;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B300"))
-#ifdef B300
- return B300;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B4800"))
-#ifdef B4800
- return B4800;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B50"))
-#ifdef B50
- return B50;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B600"))
-#ifdef B600
- return B600;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "B75"))
-#ifdef B75
- return B75;
-#else
- goto not_there;
-#endif
- break;
- case 'C':
- if (strEQ(name, "CHAR_BIT"))
-#ifdef CHAR_BIT
- return CHAR_BIT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CHAR_MAX"))
-#ifdef CHAR_MAX
- return CHAR_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CHAR_MIN"))
-#ifdef CHAR_MIN
- return CHAR_MIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CHILD_MAX"))
-#ifdef CHILD_MAX
- return CHILD_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CLK_TCK"))
-#ifdef CLK_TCK
- return CLK_TCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CLOCAL"))
-#ifdef CLOCAL
- return CLOCAL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CLOCKS_PER_SEC"))
-#ifdef CLOCKS_PER_SEC
- return CLOCKS_PER_SEC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CREAD"))
-#ifdef CREAD
- return CREAD;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CS5"))
-#ifdef CS5
- return CS5;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CS6"))
-#ifdef CS6
- return CS6;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CS7"))
-#ifdef CS7
- return CS7;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CS8"))
-#ifdef CS8
- return CS8;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CSIZE"))
-#ifdef CSIZE
- return CSIZE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "CSTOPB"))
-#ifdef CSTOPB
- return CSTOPB;
-#else
- goto not_there;
-#endif
- break;
- case 'D':
- if (strEQ(name, "DBL_MAX"))
-#ifdef DBL_MAX
- return DBL_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_MIN"))
-#ifdef DBL_MIN
- return DBL_MIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_DIG"))
-#ifdef DBL_DIG
- return DBL_DIG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_EPSILON"))
-#ifdef DBL_EPSILON
- return DBL_EPSILON;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_MANT_DIG"))
-#ifdef DBL_MANT_DIG
- return DBL_MANT_DIG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_MAX_10_EXP"))
-#ifdef DBL_MAX_10_EXP
- return DBL_MAX_10_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_MAX_EXP"))
-#ifdef DBL_MAX_EXP
- return DBL_MAX_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_MIN_10_EXP"))
-#ifdef DBL_MIN_10_EXP
- return DBL_MIN_10_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "DBL_MIN_EXP"))
-#ifdef DBL_MIN_EXP
- return DBL_MIN_EXP;
-#else
- goto not_there;
-#endif
- break;
- case 'E':
- switch (name[1]) {
- case 'A':
- if (strEQ(name, "EACCES"))
-#ifdef EACCES
- return EACCES;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EADDRINUSE"))
-#ifdef EADDRINUSE
- return EADDRINUSE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EADDRNOTAVAIL"))
-#ifdef EADDRNOTAVAIL
- return EADDRNOTAVAIL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EAFNOSUPPORT"))
-#ifdef EAFNOSUPPORT
- return EAFNOSUPPORT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EAGAIN"))
-#ifdef EAGAIN
- return EAGAIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EALREADY"))
-#ifdef EALREADY
- return EALREADY;
-#else
- goto not_there;
-#endif
- break;
- case 'B':
- if (strEQ(name, "EBADF"))
-#ifdef EBADF
- return EBADF;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EBUSY"))
-#ifdef EBUSY
- return EBUSY;
-#else
- goto not_there;
-#endif
- break;
- case 'C':
- if (strEQ(name, "ECHILD"))
-#ifdef ECHILD
- return ECHILD;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ECHO"))
-#ifdef ECHO
- return ECHO;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ECHOE"))
-#ifdef ECHOE
- return ECHOE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ECHOK"))
-#ifdef ECHOK
- return ECHOK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ECHONL"))
-#ifdef ECHONL
- return ECHONL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ECONNABORTED"))
-#ifdef ECONNABORTED
- return ECONNABORTED;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ECONNREFUSED"))
-#ifdef ECONNREFUSED
- return ECONNREFUSED;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ECONNRESET"))
-#ifdef ECONNRESET
- return ECONNRESET;
-#else
- goto not_there;
-#endif
- break;
- case 'D':
- if (strEQ(name, "EDEADLK"))
-#ifdef EDEADLK
- return EDEADLK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EDESTADDRREQ"))
-#ifdef EDESTADDRREQ
- return EDESTADDRREQ;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EDOM"))
-#ifdef EDOM
- return EDOM;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EDQUOT"))
-#ifdef EDQUOT
- return EDQUOT;
-#else
- goto not_there;
-#endif
- break;
- case 'E':
- if (strEQ(name, "EEXIST"))
-#ifdef EEXIST
- return EEXIST;
-#else
- goto not_there;
-#endif
- break;
- case 'F':
- if (strEQ(name, "EFAULT"))
-#ifdef EFAULT
- return EFAULT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EFBIG"))
-#ifdef EFBIG
- return EFBIG;
-#else
- goto not_there;
-#endif
- break;
- case 'H':
- if (strEQ(name, "EHOSTDOWN"))
-#ifdef EHOSTDOWN
- return EHOSTDOWN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EHOSTUNREACH"))
-#ifdef EHOSTUNREACH
- return EHOSTUNREACH;
-#else
- goto not_there;
-#endif
- break;
- case 'I':
- if (strEQ(name, "EINPROGRESS"))
-#ifdef EINPROGRESS
- return EINPROGRESS;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EINTR"))
-#ifdef EINTR
- return EINTR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EINVAL"))
-#ifdef EINVAL
- return EINVAL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EIO"))
-#ifdef EIO
- return EIO;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EISCONN"))
-#ifdef EISCONN
- return EISCONN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EISDIR"))
-#ifdef EISDIR
- return EISDIR;
-#else
- goto not_there;
-#endif
- break;
- case 'L':
- if (strEQ(name, "ELOOP"))
-#ifdef ELOOP
- return ELOOP;
-#else
- goto not_there;
-#endif
- break;
- case 'M':
- if (strEQ(name, "EMFILE"))
-#ifdef EMFILE
- return EMFILE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EMLINK"))
-#ifdef EMLINK
- return EMLINK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EMSGSIZE"))
-#ifdef EMSGSIZE
- return EMSGSIZE;
-#else
- goto not_there;
-#endif
- break;
- case 'N':
- if (strEQ(name, "ENETDOWN"))
-#ifdef ENETDOWN
- return ENETDOWN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENETRESET"))
-#ifdef ENETRESET
- return ENETRESET;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENETUNREACH"))
-#ifdef ENETUNREACH
- return ENETUNREACH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOBUFS"))
-#ifdef ENOBUFS
- return ENOBUFS;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOEXEC"))
-#ifdef ENOEXEC
- return ENOEXEC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOMEM"))
-#ifdef ENOMEM
- return ENOMEM;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOPROTOOPT"))
-#ifdef ENOPROTOOPT
- return ENOPROTOOPT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOSPC"))
-#ifdef ENOSPC
- return ENOSPC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOTBLK"))
-#ifdef ENOTBLK
- return ENOTBLK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOTCONN"))
-#ifdef ENOTCONN
- return ENOTCONN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOTDIR"))
-#ifdef ENOTDIR
- return ENOTDIR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOTEMPTY"))
-#ifdef ENOTEMPTY
- return ENOTEMPTY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOTSOCK"))
-#ifdef ENOTSOCK
- return ENOTSOCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOTTY"))
-#ifdef ENOTTY
- return ENOTTY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENFILE"))
-#ifdef ENFILE
- return ENFILE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENODEV"))
-#ifdef ENODEV
- return ENODEV;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOENT"))
-#ifdef ENOENT
- return ENOENT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOLCK"))
-#ifdef ENOLCK
- return ENOLCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENOSYS"))
-#ifdef ENOSYS
- return ENOSYS;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENXIO"))
-#ifdef ENXIO
- return ENXIO;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ENAMETOOLONG"))
-#ifdef ENAMETOOLONG
- return ENAMETOOLONG;
-#else
- goto not_there;
-#endif
- break;
- case 'O':
- if (strEQ(name, "EOF"))
-#ifdef EOF
- return EOF;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EOPNOTSUPP"))
-#ifdef EOPNOTSUPP
- return EOPNOTSUPP;
-#else
- goto not_there;
-#endif
- break;
- case 'P':
- if (strEQ(name, "EPERM"))
-#ifdef EPERM
- return EPERM;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EPFNOSUPPORT"))
-#ifdef EPFNOSUPPORT
- return EPFNOSUPPORT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EPIPE"))
-#ifdef EPIPE
- return EPIPE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EPROCLIM"))
-#ifdef EPROCLIM
- return EPROCLIM;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EPROTONOSUPPORT"))
-#ifdef EPROTONOSUPPORT
- return EPROTONOSUPPORT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EPROTOTYPE"))
-#ifdef EPROTOTYPE
- return EPROTOTYPE;
-#else
- goto not_there;
-#endif
- break;
- case 'R':
- if (strEQ(name, "ERANGE"))
-#ifdef ERANGE
- return ERANGE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EREMOTE"))
-#ifdef EREMOTE
- return EREMOTE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ERESTART"))
-#ifdef ERESTART
- return ERESTART;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "EROFS"))
-#ifdef EROFS
- return EROFS;
-#else
- goto not_there;
-#endif
- break;
- case 'S':
- if (strEQ(name, "ESHUTDOWN"))
-#ifdef ESHUTDOWN
- return ESHUTDOWN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ESOCKTNOSUPPORT"))
-#ifdef ESOCKTNOSUPPORT
- return ESOCKTNOSUPPORT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ESPIPE"))
-#ifdef ESPIPE
- return ESPIPE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ESRCH"))
-#ifdef ESRCH
- return ESRCH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ESTALE"))
-#ifdef ESTALE
- return ESTALE;
-#else
- goto not_there;
-#endif
- break;
- case 'T':
- if (strEQ(name, "ETIMEDOUT"))
-#ifdef ETIMEDOUT
- return ETIMEDOUT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ETOOMANYREFS"))
-#ifdef ETOOMANYREFS
- return ETOOMANYREFS;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ETXTBSY"))
-#ifdef ETXTBSY
- return ETXTBSY;
-#else
- goto not_there;
-#endif
- break;
- case 'U':
- if (strEQ(name, "EUSERS"))
-#ifdef EUSERS
- return EUSERS;
-#else
- goto not_there;
-#endif
- break;
- case 'W':
- if (strEQ(name, "EWOULDBLOCK"))
-#ifdef EWOULDBLOCK
- return EWOULDBLOCK;
-#else
- goto not_there;
-#endif
- break;
- case 'X':
- if (strEQ(name, "EXIT_FAILURE"))
-#ifdef EXIT_FAILURE
- return EXIT_FAILURE;
-#else
- return 1;
-#endif
- if (strEQ(name, "EXIT_SUCCESS"))
-#ifdef EXIT_SUCCESS
- return EXIT_SUCCESS;
-#else
- return 0;
-#endif
- if (strEQ(name, "EXDEV"))
-#ifdef EXDEV
- return EXDEV;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strEQ(name, "E2BIG"))
-#ifdef E2BIG
- return E2BIG;
-#else
- goto not_there;
-#endif
- break;
- case 'F':
- if (strnEQ(name, "FLT_", 4)) {
- if (strEQ(name, "FLT_MAX"))
-#ifdef FLT_MAX
- return FLT_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_MIN"))
-#ifdef FLT_MIN
- return FLT_MIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_ROUNDS"))
-#ifdef FLT_ROUNDS
- return FLT_ROUNDS;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_DIG"))
-#ifdef FLT_DIG
- return FLT_DIG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_EPSILON"))
-#ifdef FLT_EPSILON
- return FLT_EPSILON;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_MANT_DIG"))
-#ifdef FLT_MANT_DIG
- return FLT_MANT_DIG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_MAX_10_EXP"))
-#ifdef FLT_MAX_10_EXP
- return FLT_MAX_10_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_MAX_EXP"))
-#ifdef FLT_MAX_EXP
- return FLT_MAX_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_MIN_10_EXP"))
-#ifdef FLT_MIN_10_EXP
- return FLT_MIN_10_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_MIN_EXP"))
-#ifdef FLT_MIN_EXP
- return FLT_MIN_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FLT_RADIX"))
-#ifdef FLT_RADIX
- return FLT_RADIX;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strnEQ(name, "F_", 2)) {
- if (strEQ(name, "F_DUPFD"))
-#ifdef F_DUPFD
- return F_DUPFD;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_GETFD"))
-#ifdef F_GETFD
- return F_GETFD;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_GETFL"))
-#ifdef F_GETFL
- return F_GETFL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_GETLK"))
-#ifdef F_GETLK
- return F_GETLK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_OK"))
-#ifdef F_OK
- return F_OK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_RDLCK"))
-#ifdef F_RDLCK
- return F_RDLCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_SETFD"))
-#ifdef F_SETFD
- return F_SETFD;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_SETFL"))
-#ifdef F_SETFL
- return F_SETFL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_SETLK"))
-#ifdef F_SETLK
- return F_SETLK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_SETLKW"))
-#ifdef F_SETLKW
- return F_SETLKW;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_UNLCK"))
-#ifdef F_UNLCK
- return F_UNLCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "F_WRLCK"))
-#ifdef F_WRLCK
- return F_WRLCK;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strEQ(name, "FD_CLOEXEC"))
-#ifdef FD_CLOEXEC
- return FD_CLOEXEC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "FILENAME_MAX"))
-#ifdef FILENAME_MAX
- return FILENAME_MAX;
-#else
- goto not_there;
-#endif
- break;
- case 'H':
- if (strEQ(name, "HUGE_VAL"))
-#if defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)
- /* HUGE_VALL is admittedly non-POSIX but if we are using long doubles
- * we might as well use long doubles. --jhi */
- return HUGE_VALL;
-#endif
-#ifdef HUGE_VAL
- return HUGE_VAL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "HUPCL"))
-#ifdef HUPCL
- return HUPCL;
-#else
- goto not_there;
-#endif
- break;
- case 'I':
- if (strEQ(name, "INT_MAX"))
-#ifdef INT_MAX
- return INT_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "INT_MIN"))
-#ifdef INT_MIN
- return INT_MIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ICANON"))
-#ifdef ICANON
- return ICANON;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ICRNL"))
-#ifdef ICRNL
- return ICRNL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "IEXTEN"))
-#ifdef IEXTEN
- return IEXTEN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "IGNBRK"))
-#ifdef IGNBRK
- return IGNBRK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "IGNCR"))
-#ifdef IGNCR
- return IGNCR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "IGNPAR"))
-#ifdef IGNPAR
- return IGNPAR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "INLCR"))
-#ifdef INLCR
- return INLCR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "INPCK"))
-#ifdef INPCK
- return INPCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ISIG"))
-#ifdef ISIG
- return ISIG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ISTRIP"))
-#ifdef ISTRIP
- return ISTRIP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "IXOFF"))
-#ifdef IXOFF
- return IXOFF;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "IXON"))
-#ifdef IXON
- return IXON;
-#else
- goto not_there;
-#endif
- break;
- case 'L':
- if (strnEQ(name, "LC_", 3)) {
- if (strEQ(name, "LC_ALL"))
-#ifdef LC_ALL
- return LC_ALL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LC_COLLATE"))
-#ifdef LC_COLLATE
- return LC_COLLATE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LC_CTYPE"))
-#ifdef LC_CTYPE
- return LC_CTYPE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LC_MONETARY"))
-#ifdef LC_MONETARY
- return LC_MONETARY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LC_NUMERIC"))
-#ifdef LC_NUMERIC
- return LC_NUMERIC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LC_TIME"))
-#ifdef LC_TIME
- return LC_TIME;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strnEQ(name, "LDBL_", 5)) {
- if (strEQ(name, "LDBL_MAX"))
-#ifdef LDBL_MAX
- return LDBL_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_MIN"))
-#ifdef LDBL_MIN
- return LDBL_MIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_DIG"))
-#ifdef LDBL_DIG
- return LDBL_DIG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_EPSILON"))
-#ifdef LDBL_EPSILON
- return LDBL_EPSILON;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_MANT_DIG"))
-#ifdef LDBL_MANT_DIG
- return LDBL_MANT_DIG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_MAX_10_EXP"))
-#ifdef LDBL_MAX_10_EXP
- return LDBL_MAX_10_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_MAX_EXP"))
-#ifdef LDBL_MAX_EXP
- return LDBL_MAX_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_MIN_10_EXP"))
-#ifdef LDBL_MIN_10_EXP
- return LDBL_MIN_10_EXP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LDBL_MIN_EXP"))
-#ifdef LDBL_MIN_EXP
- return LDBL_MIN_EXP;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strnEQ(name, "L_", 2)) {
- if (strEQ(name, "L_ctermid"))
-#ifdef L_ctermid
- return L_ctermid;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "L_cuserid"))
-#ifdef L_cuserid
- return L_cuserid;
-#else
- goto not_there;
-#endif
- /* L_tmpnam[e] was a typo--retained for compatibility */
- if (strEQ(name, "L_tmpname") || strEQ(name, "L_tmpnam"))
-#ifdef L_tmpnam
- return L_tmpnam;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strEQ(name, "LONG_MAX"))
-#ifdef LONG_MAX
- return LONG_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LONG_MIN"))
-#ifdef LONG_MIN
- return LONG_MIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "LINK_MAX"))
-#ifdef LINK_MAX
- return LINK_MAX;
-#else
- goto not_there;
-#endif
- break;
- case 'M':
- if (strEQ(name, "MAX_CANON"))
-#ifdef MAX_CANON
- return MAX_CANON;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "MAX_INPUT"))
-#ifdef MAX_INPUT
- return MAX_INPUT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "MB_CUR_MAX"))
-#ifdef MB_CUR_MAX
- return MB_CUR_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "MB_LEN_MAX"))
-#ifdef MB_LEN_MAX
- return MB_LEN_MAX;
-#else
- goto not_there;
-#endif
- break;
- case 'N':
- if (strEQ(name, "NULL")) return 0;
- if (strEQ(name, "NAME_MAX"))
-#ifdef NAME_MAX
- return NAME_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "NCCS"))
-#ifdef NCCS
- return NCCS;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "NGROUPS_MAX"))
-#ifdef NGROUPS_MAX
- return NGROUPS_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "NOFLSH"))
-#ifdef NOFLSH
- return NOFLSH;
-#else
- goto not_there;
-#endif
- break;
- case 'O':
- if (strnEQ(name, "O_", 2)) {
- if (strEQ(name, "O_APPEND"))
-#ifdef O_APPEND
- return O_APPEND;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_CREAT"))
-#ifdef O_CREAT
- return O_CREAT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_TRUNC"))
-#ifdef O_TRUNC
- return O_TRUNC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_RDONLY"))
-#ifdef O_RDONLY
- return O_RDONLY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_RDWR"))
-#ifdef O_RDWR
- return O_RDWR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_WRONLY"))
-#ifdef O_WRONLY
- return O_WRONLY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_EXCL"))
-#ifdef O_EXCL
- return O_EXCL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_NOCTTY"))
-#ifdef O_NOCTTY
- return O_NOCTTY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_NONBLOCK"))
-#ifdef O_NONBLOCK
- return O_NONBLOCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_ACCMODE"))
-#ifdef O_ACCMODE
- return O_ACCMODE;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strEQ(name, "OPEN_MAX"))
-#ifdef OPEN_MAX
- return OPEN_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "OPOST"))
-#ifdef OPOST
- return OPOST;
-#else
- goto not_there;
-#endif
- break;
- case 'P':
- if (strEQ(name, "PATH_MAX"))
-#ifdef PATH_MAX
- return PATH_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "PARENB"))
-#ifdef PARENB
- return PARENB;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "PARMRK"))
-#ifdef PARMRK
- return PARMRK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "PARODD"))
-#ifdef PARODD
- return PARODD;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "PIPE_BUF"))
-#ifdef PIPE_BUF
- return PIPE_BUF;
-#else
- goto not_there;
-#endif
- break;
- case 'R':
- if (strEQ(name, "RAND_MAX"))
-#ifdef RAND_MAX
- return RAND_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "R_OK"))
-#ifdef R_OK
- return R_OK;
-#else
- goto not_there;
-#endif
- break;
- case 'S':
- if (strnEQ(name, "SIG", 3)) {
- if (name[3] == '_') {
- if (strEQ(name, "SIG_BLOCK"))
-#ifdef SIG_BLOCK
- return SIG_BLOCK;
-#else
- goto not_there;
-#endif
-#ifdef SIG_DFL
- if (strEQ(name, "SIG_DFL")) return (IV)SIG_DFL;
-#endif
-#ifdef SIG_ERR
- if (strEQ(name, "SIG_ERR")) return (IV)SIG_ERR;
-#endif
-#ifdef SIG_IGN
- if (strEQ(name, "SIG_IGN")) return (IV)SIG_IGN;
-#endif
- if (strEQ(name, "SIG_SETMASK"))
-#ifdef SIG_SETMASK
- return SIG_SETMASK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIG_UNBLOCK"))
-#ifdef SIG_UNBLOCK
- return SIG_UNBLOCK;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strEQ(name, "SIGABRT"))
-#ifdef SIGABRT
- return SIGABRT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGALRM"))
-#ifdef SIGALRM
- return SIGALRM;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGCHLD"))
-#ifdef SIGCHLD
- return SIGCHLD;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGCONT"))
-#ifdef SIGCONT
- return SIGCONT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGFPE"))
-#ifdef SIGFPE
- return SIGFPE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGHUP"))
-#ifdef SIGHUP
- return SIGHUP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGILL"))
-#ifdef SIGILL
- return SIGILL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGINT"))
-#ifdef SIGINT
- return SIGINT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGKILL"))
-#ifdef SIGKILL
- return SIGKILL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGPIPE"))
-#ifdef SIGPIPE
- return SIGPIPE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGQUIT"))
-#ifdef SIGQUIT
- return SIGQUIT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGSEGV"))
-#ifdef SIGSEGV
- return SIGSEGV;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGSTOP"))
-#ifdef SIGSTOP
- return SIGSTOP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGTERM"))
-#ifdef SIGTERM
- return SIGTERM;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGTSTP"))
-#ifdef SIGTSTP
- return SIGTSTP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGTTIN"))
-#ifdef SIGTTIN
- return SIGTTIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGTTOU"))
-#ifdef SIGTTOU
- return SIGTTOU;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGUSR1"))
-#ifdef SIGUSR1
- return SIGUSR1;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SIGUSR2"))
-#ifdef SIGUSR2
- return SIGUSR2;
-#else
- goto not_there;
-#endif
- break;
- }
- if (name[1] == '_') {
- if (strEQ(name, "S_ISGID"))
-#ifdef S_ISGID
- return S_ISGID;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_ISUID"))
-#ifdef S_ISUID
- return S_ISUID;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IRGRP"))
-#ifdef S_IRGRP
- return S_IRGRP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IROTH"))
-#ifdef S_IROTH
- return S_IROTH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IRUSR"))
-#ifdef S_IRUSR
- return S_IRUSR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IRWXG"))
-#ifdef S_IRWXG
- return S_IRWXG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IRWXO"))
-#ifdef S_IRWXO
- return S_IRWXO;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IRWXU"))
-#ifdef S_IRWXU
- return S_IRWXU;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IWGRP"))
-#ifdef S_IWGRP
- return S_IWGRP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IWOTH"))
-#ifdef S_IWOTH
- return S_IWOTH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IWUSR"))
-#ifdef S_IWUSR
- return S_IWUSR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IXGRP"))
-#ifdef S_IXGRP
- return S_IXGRP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IXOTH"))
-#ifdef S_IXOTH
- return S_IXOTH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "S_IXUSR"))
-#ifdef S_IXUSR
- return S_IXUSR;
-#else
- goto not_there;
-#endif
- errno = EAGAIN; /* the following aren't constants */
-#ifdef S_ISBLK
- if (strEQ(name, "S_ISBLK")) return S_ISBLK(arg);
-#endif
-#ifdef S_ISCHR
- if (strEQ(name, "S_ISCHR")) return S_ISCHR(arg);
-#endif
-#ifdef S_ISDIR
- if (strEQ(name, "S_ISDIR")) return S_ISDIR(arg);
-#endif
-#ifdef S_ISFIFO
- if (strEQ(name, "S_ISFIFO")) return S_ISFIFO(arg);
-#endif
-#ifdef S_ISREG
- if (strEQ(name, "S_ISREG")) return S_ISREG(arg);
-#endif
- break;
- }
- if (strEQ(name, "SEEK_CUR"))
-#ifdef SEEK_CUR
- return SEEK_CUR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SEEK_END"))
-#ifdef SEEK_END
- return SEEK_END;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SEEK_SET"))
-#ifdef SEEK_SET
- return SEEK_SET;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "STREAM_MAX"))
-#ifdef STREAM_MAX
- return STREAM_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SHRT_MAX"))
-#ifdef SHRT_MAX
- return SHRT_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SHRT_MIN"))
-#ifdef SHRT_MIN
- return SHRT_MIN;
-#else
- goto not_there;
-#endif
- if (strnEQ(name, "SA_", 3)) {
- if (strEQ(name, "SA_NOCLDSTOP"))
-#ifdef SA_NOCLDSTOP
- return SA_NOCLDSTOP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SA_NOCLDWAIT"))
-#ifdef SA_NOCLDWAIT
- return SA_NOCLDWAIT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SA_NODEFER"))
-#ifdef SA_NODEFER
- return SA_NODEFER;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SA_ONSTACK"))
-#ifdef SA_ONSTACK
- return SA_ONSTACK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SA_RESETHAND"))
-#ifdef SA_RESETHAND
- return SA_RESETHAND;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SA_RESTART"))
-#ifdef SA_RESTART
- return SA_RESTART;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SA_SIGINFO"))
-#ifdef SA_SIGINFO
- return SA_SIGINFO;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strEQ(name, "SCHAR_MAX"))
-#ifdef SCHAR_MAX
- return SCHAR_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SCHAR_MIN"))
-#ifdef SCHAR_MIN
- return SCHAR_MIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "SSIZE_MAX"))
-#ifdef SSIZE_MAX
- return SSIZE_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "STDIN_FILENO"))
-#ifdef STDIN_FILENO
- return STDIN_FILENO;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "STDOUT_FILENO"))
-#ifdef STDOUT_FILENO
- return STDOUT_FILENO;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "STDERR_FILENO"))
-#ifdef STDERR_FILENO
- return STDERR_FILENO;
-#else
- goto not_there;
-#endif
- break;
- case 'T':
- if (strEQ(name, "TCIFLUSH"))
-#ifdef TCIFLUSH
- return TCIFLUSH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCIOFF"))
-#ifdef TCIOFF
- return TCIOFF;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCIOFLUSH"))
-#ifdef TCIOFLUSH
- return TCIOFLUSH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCION"))
-#ifdef TCION
- return TCION;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCOFLUSH"))
-#ifdef TCOFLUSH
- return TCOFLUSH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCOOFF"))
-#ifdef TCOOFF
- return TCOOFF;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCOON"))
-#ifdef TCOON
- return TCOON;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCSADRAIN"))
-#ifdef TCSADRAIN
- return TCSADRAIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCSAFLUSH"))
-#ifdef TCSAFLUSH
- return TCSAFLUSH;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TCSANOW"))
-#ifdef TCSANOW
- return TCSANOW;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TMP_MAX"))
-#ifdef TMP_MAX
- return TMP_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TOSTOP"))
-#ifdef TOSTOP
- return TOSTOP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "TZNAME_MAX"))
-#ifdef TZNAME_MAX
- return TZNAME_MAX;
-#else
- goto not_there;
-#endif
- break;
- case 'U':
- if (strEQ(name, "UCHAR_MAX"))
-#ifdef UCHAR_MAX
- return UCHAR_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "UINT_MAX"))
-#ifdef UINT_MAX
- return UINT_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "ULONG_MAX"))
-#ifdef ULONG_MAX
- return ULONG_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "USHRT_MAX"))
-#ifdef USHRT_MAX
- return USHRT_MAX;
-#else
- goto not_there;
-#endif
- break;
- case 'V':
- if (strEQ(name, "VEOF"))
-#ifdef VEOF
- return VEOF;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VEOL"))
-#ifdef VEOL
- return VEOL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VERASE"))
-#ifdef VERASE
- return VERASE;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VINTR"))
-#ifdef VINTR
- return VINTR;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VKILL"))
-#ifdef VKILL
- return VKILL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VMIN"))
-#ifdef VMIN
- return VMIN;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VQUIT"))
-#ifdef VQUIT
- return VQUIT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VSTART"))
-#ifdef VSTART
- return VSTART;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VSTOP"))
-#ifdef VSTOP
- return VSTOP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VSUSP"))
-#ifdef VSUSP
- return VSUSP;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "VTIME"))
-#ifdef VTIME
- return VTIME;
-#else
- goto not_there;
-#endif
- break;
- case 'W':
- if (strEQ(name, "W_OK"))
-#ifdef W_OK
- return W_OK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "WNOHANG"))
-#ifdef WNOHANG
- return WNOHANG;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "WUNTRACED"))
-#ifdef WUNTRACED
- return WUNTRACED;
-#else
- goto not_there;
-#endif
- errno = EAGAIN; /* the following aren't constants */
-#ifdef WEXITSTATUS
- if (strEQ(name, "WEXITSTATUS")) return WEXITSTATUS(arg);
-#endif
-#ifdef WIFEXITED
- if (strEQ(name, "WIFEXITED")) return WIFEXITED(arg);
-#endif
-#ifdef WIFSIGNALED
- if (strEQ(name, "WIFSIGNALED")) return WIFSIGNALED(arg);
-#endif
-#ifdef WIFSTOPPED
- if (strEQ(name, "WIFSTOPPED")) return WIFSTOPPED(arg);
-#endif
-#ifdef WSTOPSIG
- if (strEQ(name, "WSTOPSIG")) return WSTOPSIG(arg);
-#endif
-#ifdef WTERMSIG
- if (strEQ(name, "WTERMSIG")) return WTERMSIG(arg);
-#endif
- break;
- case 'X':
- if (strEQ(name, "X_OK"))
-#ifdef X_OK
- return X_OK;
-#else
- goto not_there;
-#endif
- break;
- case '_':
- if (strnEQ(name, "_PC_", 4)) {
- if (strEQ(name, "_PC_CHOWN_RESTRICTED"))
-#if defined(_PC_CHOWN_RESTRICTED) || HINT_SC_EXIST
- return _PC_CHOWN_RESTRICTED;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_LINK_MAX"))
-#if defined(_PC_LINK_MAX) || HINT_SC_EXIST
- return _PC_LINK_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_MAX_CANON"))
-#if defined(_PC_MAX_CANON) || HINT_SC_EXIST
- return _PC_MAX_CANON;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_MAX_INPUT"))
-#if defined(_PC_MAX_INPUT) || HINT_SC_EXIST
- return _PC_MAX_INPUT;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_NAME_MAX"))
-#if defined(_PC_NAME_MAX) || HINT_SC_EXIST
- return _PC_NAME_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_NO_TRUNC"))
-#if defined(_PC_NO_TRUNC) || HINT_SC_EXIST
- return _PC_NO_TRUNC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_PATH_MAX"))
-#if defined(_PC_PATH_MAX) || HINT_SC_EXIST
- return _PC_PATH_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_PIPE_BUF"))
-#if defined(_PC_PIPE_BUF) || HINT_SC_EXIST
- return _PC_PIPE_BUF;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_PC_VDISABLE"))
-#if defined(_PC_VDISABLE) || HINT_SC_EXIST
- return _PC_VDISABLE;
-#else
- goto not_there;
-#endif
- break;
- }
- if (strnEQ(name, "_POSIX_", 7)) {
- if (strEQ(name, "_POSIX_ARG_MAX"))
-#ifdef _POSIX_ARG_MAX
- return _POSIX_ARG_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_CHILD_MAX"))
-#ifdef _POSIX_CHILD_MAX
- return _POSIX_CHILD_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_CHOWN_RESTRICTED"))
-#ifdef _POSIX_CHOWN_RESTRICTED
- return _POSIX_CHOWN_RESTRICTED;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_JOB_CONTROL"))
-#ifdef _POSIX_JOB_CONTROL
- return _POSIX_JOB_CONTROL;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_LINK_MAX"))
-#ifdef _POSIX_LINK_MAX
- return _POSIX_LINK_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_MAX_CANON"))
-#ifdef _POSIX_MAX_CANON
- return _POSIX_MAX_CANON;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_MAX_INPUT"))
-#ifdef _POSIX_MAX_INPUT
- return _POSIX_MAX_INPUT;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_NAME_MAX"))
-#ifdef _POSIX_NAME_MAX
- return _POSIX_NAME_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_NGROUPS_MAX"))
-#ifdef _POSIX_NGROUPS_MAX
- return _POSIX_NGROUPS_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_NO_TRUNC"))
-#ifdef _POSIX_NO_TRUNC
- return _POSIX_NO_TRUNC;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_OPEN_MAX"))
-#ifdef _POSIX_OPEN_MAX
- return _POSIX_OPEN_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_PATH_MAX"))
-#ifdef _POSIX_PATH_MAX
- return _POSIX_PATH_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_PIPE_BUF"))
-#ifdef _POSIX_PIPE_BUF
- return _POSIX_PIPE_BUF;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_SAVED_IDS"))
-#ifdef _POSIX_SAVED_IDS
- return _POSIX_SAVED_IDS;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_SSIZE_MAX"))
-#ifdef _POSIX_SSIZE_MAX
- return _POSIX_SSIZE_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_STREAM_MAX"))
-#ifdef _POSIX_STREAM_MAX
- return _POSIX_STREAM_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_TZNAME_MAX"))
-#ifdef _POSIX_TZNAME_MAX
- return _POSIX_TZNAME_MAX;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_VDISABLE"))
-#ifdef _POSIX_VDISABLE
- return _POSIX_VDISABLE;
-#else
- return 0;
-#endif
- if (strEQ(name, "_POSIX_VERSION"))
-#ifdef _POSIX_VERSION
- return _POSIX_VERSION;
-#else
- return 0;
-#endif
- break;
- }
- if (strnEQ(name, "_SC_", 4)) {
- if (strEQ(name, "_SC_ARG_MAX"))
-#if defined(_SC_ARG_MAX) || HINT_SC_EXIST
- return _SC_ARG_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_CHILD_MAX"))
-#if defined(_SC_CHILD_MAX) || HINT_SC_EXIST
- return _SC_CHILD_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_CLK_TCK"))
-#if defined(_SC_CLK_TCK) || HINT_SC_EXIST
- return _SC_CLK_TCK;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_JOB_CONTROL"))
-#if defined(_SC_JOB_CONTROL) || HINT_SC_EXIST
- return _SC_JOB_CONTROL;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_NGROUPS_MAX"))
-#if defined(_SC_NGROUPS_MAX) || HINT_SC_EXIST
- return _SC_NGROUPS_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_OPEN_MAX"))
-#if defined(_SC_OPEN_MAX) || HINT_SC_EXIST
- return _SC_OPEN_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_SAVED_IDS"))
-#if defined(_SC_SAVED_IDS) || HINT_SC_EXIST
- return _SC_SAVED_IDS;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_STREAM_MAX"))
-#if defined(_SC_STREAM_MAX) || HINT_SC_EXIST
- return _SC_STREAM_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_TZNAME_MAX"))
-#if defined(_SC_TZNAME_MAX) || HINT_SC_EXIST
- return _SC_TZNAME_MAX;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "_SC_VERSION"))
-#if defined(_SC_VERSION) || HINT_SC_EXIST
- return _SC_VERSION;
-#else
- goto not_there;
-#endif
- break;
- }
- }
- errno = EINVAL;
- return 0;
-
-not_there:
- errno = ENOENT;
- return 0;
-}
-
-MODULE = SigSet PACKAGE = POSIX::SigSet PREFIX = sig
-
-POSIX::SigSet
-new(packname = "POSIX::SigSet", ...)
- char * packname
- CODE:
- {
- int i;
- New(0, RETVAL, 1, sigset_t);
- sigemptyset(RETVAL);
- for (i = 1; i < items; i++)
- sigaddset(RETVAL, SvIV(ST(i)));
- }
- OUTPUT:
- RETVAL
-
-void
-DESTROY(sigset)
- POSIX::SigSet sigset
- CODE:
- Safefree(sigset);
-
-SysRet
-sigaddset(sigset, sig)
- POSIX::SigSet sigset
- int sig
-
-SysRet
-sigdelset(sigset, sig)
- POSIX::SigSet sigset
- int sig
-
-SysRet
-sigemptyset(sigset)
- POSIX::SigSet sigset
-
-SysRet
-sigfillset(sigset)
- POSIX::SigSet sigset
-
-int
-sigismember(sigset, sig)
- POSIX::SigSet sigset
- int sig
-
-
-MODULE = Termios PACKAGE = POSIX::Termios PREFIX = cf
-
-POSIX::Termios
-new(packname = "POSIX::Termios", ...)
- char * packname
- CODE:
- {
-#ifdef I_TERMIOS
- New(0, RETVAL, 1, struct termios);
-#else
- not_here("termios");
- RETVAL = 0;
-#endif
- }
- OUTPUT:
- RETVAL
-
-void
-DESTROY(termios_ref)
- POSIX::Termios termios_ref
- CODE:
-#ifdef I_TERMIOS
- Safefree(termios_ref);
-#else
- not_here("termios");
-#endif
-
-SysRet
-getattr(termios_ref, fd = 0)
- POSIX::Termios termios_ref
- int fd
- CODE:
- RETVAL = tcgetattr(fd, termios_ref);
- OUTPUT:
- RETVAL
-
-SysRet
-setattr(termios_ref, fd = 0, optional_actions = 0)
- POSIX::Termios termios_ref
- int fd
- int optional_actions
- CODE:
- RETVAL = tcsetattr(fd, optional_actions, termios_ref);
- OUTPUT:
- RETVAL
-
-speed_t
-cfgetispeed(termios_ref)
- POSIX::Termios termios_ref
-
-speed_t
-cfgetospeed(termios_ref)
- POSIX::Termios termios_ref
-
-tcflag_t
-getiflag(termios_ref)
- POSIX::Termios termios_ref
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- RETVAL = termios_ref->c_iflag;
-#else
- not_here("getiflag");
- RETVAL = 0;
-#endif
- OUTPUT:
- RETVAL
-
-tcflag_t
-getoflag(termios_ref)
- POSIX::Termios termios_ref
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- RETVAL = termios_ref->c_oflag;
-#else
- not_here("getoflag");
- RETVAL = 0;
-#endif
- OUTPUT:
- RETVAL
-
-tcflag_t
-getcflag(termios_ref)
- POSIX::Termios termios_ref
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- RETVAL = termios_ref->c_cflag;
-#else
- not_here("getcflag");
- RETVAL = 0;
-#endif
- OUTPUT:
- RETVAL
-
-tcflag_t
-getlflag(termios_ref)
- POSIX::Termios termios_ref
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- RETVAL = termios_ref->c_lflag;
-#else
- not_here("getlflag");
- RETVAL = 0;
-#endif
- OUTPUT:
- RETVAL
-
-cc_t
-getcc(termios_ref, ccix)
- POSIX::Termios termios_ref
- int ccix
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- if (ccix >= NCCS)
- croak("Bad getcc subscript");
- RETVAL = termios_ref->c_cc[ccix];
-#else
- not_here("getcc");
- RETVAL = 0;
-#endif
- OUTPUT:
- RETVAL
-
-SysRet
-cfsetispeed(termios_ref, speed)
- POSIX::Termios termios_ref
- speed_t speed
-
-SysRet
-cfsetospeed(termios_ref, speed)
- POSIX::Termios termios_ref
- speed_t speed
-
-void
-setiflag(termios_ref, iflag)
- POSIX::Termios termios_ref
- tcflag_t iflag
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- termios_ref->c_iflag = iflag;
-#else
- not_here("setiflag");
-#endif
-
-void
-setoflag(termios_ref, oflag)
- POSIX::Termios termios_ref
- tcflag_t oflag
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- termios_ref->c_oflag = oflag;
-#else
- not_here("setoflag");
-#endif
-
-void
-setcflag(termios_ref, cflag)
- POSIX::Termios termios_ref
- tcflag_t cflag
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- termios_ref->c_cflag = cflag;
-#else
- not_here("setcflag");
-#endif
-
-void
-setlflag(termios_ref, lflag)
- POSIX::Termios termios_ref
- tcflag_t lflag
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- termios_ref->c_lflag = lflag;
-#else
- not_here("setlflag");
-#endif
-
-void
-setcc(termios_ref, ccix, cc)
- POSIX::Termios termios_ref
- int ccix
- cc_t cc
- CODE:
-#ifdef I_TERMIOS /* References a termios structure member so ifdef it out. */
- if (ccix >= NCCS)
- croak("Bad setcc subscript");
- termios_ref->c_cc[ccix] = cc;
-#else
- not_here("setcc");
-#endif
-
-
-MODULE = POSIX PACKAGE = POSIX
-
-NV
-constant(name,arg)
- char * name
- int arg
-
-int
-isalnum(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isalnum(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-isalpha(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isalpha(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-iscntrl(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!iscntrl(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-isdigit(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isdigit(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-isgraph(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isgraph(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-islower(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!islower(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-isprint(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isprint(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-ispunct(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!ispunct(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-isspace(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isspace(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-isupper(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isupper(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-int
-isxdigit(charstring)
- unsigned char * charstring
- CODE:
- unsigned char *s = charstring;
- unsigned char *e = s + PL_na; /* "PL_na" set by typemap side effect */
- for (RETVAL = 1; RETVAL && s < e; s++)
- if (!isxdigit(*s))
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-SysRet
-open(filename, flags = O_RDONLY, mode = 0666)
- char * filename
- int flags
- Mode_t mode
- CODE:
- if (flags & (O_APPEND|O_CREAT|O_TRUNC|O_RDWR|O_WRONLY|O_EXCL))
- TAINT_PROPER("open");
- RETVAL = open(filename, flags, mode);
- OUTPUT:
- RETVAL
-
-
-HV *
-localeconv()
- CODE:
-#ifdef HAS_LOCALECONV
- struct lconv *lcbuf;
- RETVAL = newHV();
- if ((lcbuf = localeconv())) {
- /* the strings */
- if (lcbuf->decimal_point && *lcbuf->decimal_point)
- hv_store(RETVAL, "decimal_point", 13,
- newSVpv(lcbuf->decimal_point, 0), 0);
- if (lcbuf->thousands_sep && *lcbuf->thousands_sep)
- hv_store(RETVAL, "thousands_sep", 13,
- newSVpv(lcbuf->thousands_sep, 0), 0);
-#ifndef NO_LOCALECONV_GROUPING
- if (lcbuf->grouping && *lcbuf->grouping)
- hv_store(RETVAL, "grouping", 8,
- newSVpv(lcbuf->grouping, 0), 0);
-#endif
- if (lcbuf->int_curr_symbol && *lcbuf->int_curr_symbol)
- hv_store(RETVAL, "int_curr_symbol", 15,
- newSVpv(lcbuf->int_curr_symbol, 0), 0);
- if (lcbuf->currency_symbol && *lcbuf->currency_symbol)
- hv_store(RETVAL, "currency_symbol", 15,
- newSVpv(lcbuf->currency_symbol, 0), 0);
- if (lcbuf->mon_decimal_point && *lcbuf->mon_decimal_point)
- hv_store(RETVAL, "mon_decimal_point", 17,
- newSVpv(lcbuf->mon_decimal_point, 0), 0);
-#ifndef NO_LOCALECONV_MON_THOUSANDS_SEP
- if (lcbuf->mon_thousands_sep && *lcbuf->mon_thousands_sep)
- hv_store(RETVAL, "mon_thousands_sep", 17,
- newSVpv(lcbuf->mon_thousands_sep, 0), 0);
-#endif
-#ifndef NO_LOCALECONV_MON_GROUPING
- if (lcbuf->mon_grouping && *lcbuf->mon_grouping)
- hv_store(RETVAL, "mon_grouping", 12,
- newSVpv(lcbuf->mon_grouping, 0), 0);
-#endif
- if (lcbuf->positive_sign && *lcbuf->positive_sign)
- hv_store(RETVAL, "positive_sign", 13,
- newSVpv(lcbuf->positive_sign, 0), 0);
- if (lcbuf->negative_sign && *lcbuf->negative_sign)
- hv_store(RETVAL, "negative_sign", 13,
- newSVpv(lcbuf->negative_sign, 0), 0);
- /* the integers */
- if (lcbuf->int_frac_digits != CHAR_MAX)
- hv_store(RETVAL, "int_frac_digits", 15,
- newSViv(lcbuf->int_frac_digits), 0);
- if (lcbuf->frac_digits != CHAR_MAX)
- hv_store(RETVAL, "frac_digits", 11,
- newSViv(lcbuf->frac_digits), 0);
- if (lcbuf->p_cs_precedes != CHAR_MAX)
- hv_store(RETVAL, "p_cs_precedes", 13,
- newSViv(lcbuf->p_cs_precedes), 0);
- if (lcbuf->p_sep_by_space != CHAR_MAX)
- hv_store(RETVAL, "p_sep_by_space", 14,
- newSViv(lcbuf->p_sep_by_space), 0);
- if (lcbuf->n_cs_precedes != CHAR_MAX)
- hv_store(RETVAL, "n_cs_precedes", 13,
- newSViv(lcbuf->n_cs_precedes), 0);
- if (lcbuf->n_sep_by_space != CHAR_MAX)
- hv_store(RETVAL, "n_sep_by_space", 14,
- newSViv(lcbuf->n_sep_by_space), 0);
- if (lcbuf->p_sign_posn != CHAR_MAX)
- hv_store(RETVAL, "p_sign_posn", 11,
- newSViv(lcbuf->p_sign_posn), 0);
- if (lcbuf->n_sign_posn != CHAR_MAX)
- hv_store(RETVAL, "n_sign_posn", 11,
- newSViv(lcbuf->n_sign_posn), 0);
- }
-#else
- localeconv(); /* A stub to call not_here(). */
-#endif
- OUTPUT:
- RETVAL
-
-char *
-setlocale(category, locale = 0)
- int category
- char * locale
- CODE:
- RETVAL = setlocale(category, locale);
- if (RETVAL) {
-#ifdef USE_LOCALE_CTYPE
- if (category == LC_CTYPE
-#ifdef LC_ALL
- || category == LC_ALL
-#endif
- )
- {
- char *newctype;
-#ifdef LC_ALL
- if (category == LC_ALL)
- newctype = setlocale(LC_CTYPE, NULL);
- else
-#endif
- newctype = RETVAL;
- new_ctype(newctype);
- }
-#endif /* USE_LOCALE_CTYPE */
-#ifdef USE_LOCALE_COLLATE
- if (category == LC_COLLATE
-#ifdef LC_ALL
- || category == LC_ALL
-#endif
- )
- {
- char *newcoll;
-#ifdef LC_ALL
- if (category == LC_ALL)
- newcoll = setlocale(LC_COLLATE, NULL);
- else
-#endif
- newcoll = RETVAL;
- new_collate(newcoll);
- }
-#endif /* USE_LOCALE_COLLATE */
-#ifdef USE_LOCALE_NUMERIC
- if (category == LC_NUMERIC
-#ifdef LC_ALL
- || category == LC_ALL
-#endif
- )
- {
- char *newnum;
-#ifdef LC_ALL
- if (category == LC_ALL)
- newnum = setlocale(LC_NUMERIC, NULL);
- else
-#endif
- newnum = RETVAL;
- new_numeric(newnum);
- }
-#endif /* USE_LOCALE_NUMERIC */
- }
- OUTPUT:
- RETVAL
-
-
-NV
-acos(x)
- NV x
-
-NV
-asin(x)
- NV x
-
-NV
-atan(x)
- NV x
-
-NV
-ceil(x)
- NV x
-
-NV
-cosh(x)
- NV x
-
-NV
-floor(x)
- NV x
-
-NV
-fmod(x,y)
- NV x
- NV y
-
-void
-frexp(x)
- NV x
- PPCODE:
- int expvar;
- /* (We already know stack is long enough.) */
- PUSHs(sv_2mortal(newSVnv(frexp(x,&expvar))));
- PUSHs(sv_2mortal(newSViv(expvar)));
-
-NV
-ldexp(x,exp)
- NV x
- int exp
-
-NV
-log10(x)
- NV x
-
-void
-modf(x)
- NV x
- PPCODE:
- NV intvar;
- /* (We already know stack is long enough.) */
- PUSHs(sv_2mortal(newSVnv(Perl_modf(x,&intvar))));
- PUSHs(sv_2mortal(newSVnv(intvar)));
-
-NV
-sinh(x)
- NV x
-
-NV
-tan(x)
- NV x
-
-NV
-tanh(x)
- NV x
-
-SysRet
-sigaction(sig, action, oldaction = 0)
- int sig
- POSIX::SigAction action
- POSIX::SigAction oldaction
- CODE:
-#ifdef WIN32
- RETVAL = not_here("sigaction");
-#else
-# This code is really grody because we're trying to make the signal
-# interface look beautiful, which is hard.
-
- {
- GV *siggv = gv_fetchpv("SIG", TRUE, SVt_PVHV);
- struct sigaction act;
- struct sigaction oact;
- POSIX__SigSet sigset;
- SV** svp;
- SV** sigsvp = hv_fetch(GvHVn(siggv),
- PL_sig_name[sig],
- strlen(PL_sig_name[sig]),
- TRUE);
- STRLEN n_a;
-
- /* Remember old handler name if desired. */
- if (oldaction) {
- char *hand = SvPVx(*sigsvp, n_a);
- svp = hv_fetch(oldaction, "HANDLER", 7, TRUE);
- sv_setpv(*svp, *hand ? hand : "DEFAULT");
- }
-
- if (action) {
- /* Vector new handler through %SIG. (We always use sighandler
- for the C signal handler, which reads %SIG to dispatch.) */
- svp = hv_fetch(action, "HANDLER", 7, FALSE);
- if (!svp)
- croak("Can't supply an action without a HANDLER");
- sv_setpv(*sigsvp, SvPV(*svp, n_a));
- mg_set(*sigsvp); /* handles DEFAULT and IGNORE */
- act.sa_handler = PL_sighandlerp;
-
- /* Set up any desired mask. */
- svp = hv_fetch(action, "MASK", 4, FALSE);
- if (svp && sv_isa(*svp, "POSIX::SigSet")) {
- IV tmp = SvIV((SV*)SvRV(*svp));
- sigset = INT2PTR(sigset_t*, tmp);
- act.sa_mask = *sigset;
- }
- else
- sigemptyset(& act.sa_mask);
-
- /* Set up any desired flags. */
- svp = hv_fetch(action, "FLAGS", 5, FALSE);
- act.sa_flags = svp ? SvIV(*svp) : 0;
- }
-
- /* Now work around sigaction oddities */
- if (action && oldaction)
- RETVAL = sigaction(sig, & act, & oact);
- else if (action)
- RETVAL = sigaction(sig, & act, (struct sigaction *)0);
- else if (oldaction)
- RETVAL = sigaction(sig, (struct sigaction *)0, & oact);
- else
- RETVAL = -1;
-
- if (oldaction) {
- /* Get back the mask. */
- svp = hv_fetch(oldaction, "MASK", 4, TRUE);
- if (sv_isa(*svp, "POSIX::SigSet")) {
- IV tmp = SvIV((SV*)SvRV(*svp));
- sigset = INT2PTR(sigset_t*, tmp);
- }
- else {
- New(0, sigset, 1, sigset_t);
- sv_setptrobj(*svp, sigset, "POSIX::SigSet");
- }
- *sigset = oact.sa_mask;
-
- /* Get back the flags. */
- svp = hv_fetch(oldaction, "FLAGS", 5, TRUE);
- sv_setiv(*svp, oact.sa_flags);
- }
- }
-#endif
- OUTPUT:
- RETVAL
-
-SysRet
-sigpending(sigset)
- POSIX::SigSet sigset
-
-SysRet
-sigprocmask(how, sigset, oldsigset = 0)
- int how
- POSIX::SigSet sigset
- POSIX::SigSet oldsigset = NO_INIT
-INIT:
- if ( items < 3 ) {
- oldsigset = 0;
- }
- else if (sv_derived_from(ST(2), "POSIX::SigSet")) {
- IV tmp = SvIV((SV*)SvRV(ST(2)));
- oldsigset = INT2PTR(POSIX__SigSet,tmp);
- }
- else {
- New(0, oldsigset, 1, sigset_t);
- sigemptyset(oldsigset);
- sv_setref_pv(ST(2), "POSIX::SigSet", (void*)oldsigset);
- }
-
-SysRet
-sigsuspend(signal_mask)
- POSIX::SigSet signal_mask
-
-void
-_exit(status)
- int status
-
-SysRet
-close(fd)
- int fd
-
-SysRet
-dup(fd)
- int fd
-
-SysRet
-dup2(fd1, fd2)
- int fd1
- int fd2
-
-SysRetLong
-lseek(fd, offset, whence)
- int fd
- Off_t offset
- int whence
-
-SysRet
-nice(incr)
- int incr
-
-void
-pipe()
- PPCODE:
- int fds[2];
- if (pipe(fds) != -1) {
- EXTEND(SP,2);
- PUSHs(sv_2mortal(newSViv(fds[0])));
- PUSHs(sv_2mortal(newSViv(fds[1])));
- }
-
-SysRet
-read(fd, buffer, nbytes)
- PREINIT:
- SV *sv_buffer = SvROK(ST(1)) ? SvRV(ST(1)) : ST(1);
- INPUT:
- int fd
- size_t nbytes
- char * buffer = sv_grow( sv_buffer, nbytes+1 );
- CLEANUP:
- if (RETVAL >= 0) {
- SvCUR(sv_buffer) = RETVAL;
- SvPOK_only(sv_buffer);
- *SvEND(sv_buffer) = '\0';
- SvTAINTED_on(sv_buffer);
- }
-
-SysRet
-setpgid(pid, pgid)
- pid_t pid
- pid_t pgid
-
-pid_t
-setsid()
-
-pid_t
-tcgetpgrp(fd)
- int fd
-
-SysRet
-tcsetpgrp(fd, pgrp_id)
- int fd
- pid_t pgrp_id
-
-void
-uname()
- PPCODE:
-#ifdef HAS_UNAME
- struct utsname buf;
- if (uname(&buf) >= 0) {
- EXTEND(SP, 5);
- PUSHs(sv_2mortal(newSVpv(buf.sysname, 0)));
- PUSHs(sv_2mortal(newSVpv(buf.nodename, 0)));
- PUSHs(sv_2mortal(newSVpv(buf.release, 0)));
- PUSHs(sv_2mortal(newSVpv(buf.version, 0)));
- PUSHs(sv_2mortal(newSVpv(buf.machine, 0)));
- }
-#else
- uname((char *) 0); /* A stub to call not_here(). */
-#endif
-
-SysRet
-write(fd, buffer, nbytes)
- int fd
- char * buffer
- size_t nbytes
-
-SV *
-tmpnam()
- PREINIT:
- STRLEN i;
- int len;
- CODE:
- RETVAL = newSVpvn("", 0);
- SvGROW(RETVAL, L_tmpnam);
- len = strlen(tmpnam(SvPV(RETVAL, i)));
- SvCUR_set(RETVAL, len);
- OUTPUT:
- RETVAL
-
-void
-abort()
-
-int
-mblen(s, n)
- char * s
- size_t n
-
-size_t
-mbstowcs(s, pwcs, n)
- wchar_t * s
- char * pwcs
- size_t n
-
-int
-mbtowc(pwc, s, n)
- wchar_t * pwc
- char * s
- size_t n
-
-int
-wcstombs(s, pwcs, n)
- char * s
- wchar_t * pwcs
- size_t n
-
-int
-wctomb(s, wchar)
- char * s
- wchar_t wchar
-
-int
-strcoll(s1, s2)
- char * s1
- char * s2
-
-void
-strtod(str)
- char * str
- PREINIT:
- double num;
- char *unparsed;
- PPCODE:
- SET_NUMERIC_LOCAL();
- num = strtod(str, &unparsed);
- PUSHs(sv_2mortal(newSVnv(num)));
- if (GIMME == G_ARRAY) {
- EXTEND(SP, 1);
- if (unparsed)
- PUSHs(sv_2mortal(newSViv(strlen(unparsed))));
- else
- PUSHs(&PL_sv_undef);
- }
-
-void
-strtol(str, base = 0)
- char * str
- int base
- PREINIT:
- long num;
- char *unparsed;
- PPCODE:
- num = strtol(str, &unparsed, base);
-#if IVSIZE <= LONGSIZE
- if (num < IV_MIN || num > IV_MAX)
- PUSHs(sv_2mortal(newSVnv((double)num)));
- else
-#endif
- PUSHs(sv_2mortal(newSViv((IV)num)));
- if (GIMME == G_ARRAY) {
- EXTEND(SP, 1);
- if (unparsed)
- PUSHs(sv_2mortal(newSViv(strlen(unparsed))));
- else
- PUSHs(&PL_sv_undef);
- }
-
-void
-strtoul(str, base = 0)
- char * str
- int base
- PREINIT:
- unsigned long num;
- char *unparsed;
- PPCODE:
- num = strtoul(str, &unparsed, base);
- if (num <= IV_MAX)
- PUSHs(sv_2mortal(newSViv((IV)num)));
- else
- PUSHs(sv_2mortal(newSVnv((double)num)));
- if (GIMME == G_ARRAY) {
- EXTEND(SP, 1);
- if (unparsed)
- PUSHs(sv_2mortal(newSViv(strlen(unparsed))));
- else
- PUSHs(&PL_sv_undef);
- }
-
-void
-strxfrm(src)
- SV * src
- CODE:
- {
- STRLEN srclen;
- STRLEN dstlen;
- char *p = SvPV(src,srclen);
- srclen++;
- ST(0) = sv_2mortal(NEWSV(800,srclen));
- dstlen = strxfrm(SvPVX(ST(0)), p, (size_t)srclen);
- if (dstlen > srclen) {
- dstlen++;
- SvGROW(ST(0), dstlen);
- strxfrm(SvPVX(ST(0)), p, (size_t)dstlen);
- dstlen--;
- }
- SvCUR(ST(0)) = dstlen;
- SvPOK_only(ST(0));
- }
-
-SysRet
-mkfifo(filename, mode)
- char * filename
- Mode_t mode
- CODE:
- TAINT_PROPER("mkfifo");
- RETVAL = mkfifo(filename, mode);
- OUTPUT:
- RETVAL
-
-SysRet
-tcdrain(fd)
- int fd
-
-
-SysRet
-tcflow(fd, action)
- int fd
- int action
-
-
-SysRet
-tcflush(fd, queue_selector)
- int fd
- int queue_selector
-
-SysRet
-tcsendbreak(fd, duration)
- int fd
- int duration
-
-char *
-asctime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
- int sec
- int min
- int hour
- int mday
- int mon
- int year
- int wday
- int yday
- int isdst
- CODE:
- {
- struct tm mytm;
- init_tm(&mytm); /* XXX workaround - see init_tm() above */
- mytm.tm_sec = sec;
- mytm.tm_min = min;
- mytm.tm_hour = hour;
- mytm.tm_mday = mday;
- mytm.tm_mon = mon;
- mytm.tm_year = year;
- mytm.tm_wday = wday;
- mytm.tm_yday = yday;
- mytm.tm_isdst = isdst;
- RETVAL = asctime(&mytm);
- }
- OUTPUT:
- RETVAL
-
-long
-clock()
-
-char *
-ctime(time)
- Time_t &time
-
-void
-times()
- PPCODE:
- struct tms tms;
- clock_t realtime;
- realtime = times( &tms );
- EXTEND(SP,5);
- PUSHs( sv_2mortal( newSViv( (IV) realtime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_utime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_stime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_cutime ) ) );
- PUSHs( sv_2mortal( newSViv( (IV) tms.tms_cstime ) ) );
-
-double
-difftime(time1, time2)
- Time_t time1
- Time_t time2
-
-SysRetLong
-mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
- int sec
- int min
- int hour
- int mday
- int mon
- int year
- int wday
- int yday
- int isdst
- CODE:
- {
- struct tm mytm;
- init_tm(&mytm); /* XXX workaround - see init_tm() above */
- mytm.tm_sec = sec;
- mytm.tm_min = min;
- mytm.tm_hour = hour;
- mytm.tm_mday = mday;
- mytm.tm_mon = mon;
- mytm.tm_year = year;
- mytm.tm_wday = wday;
- mytm.tm_yday = yday;
- mytm.tm_isdst = isdst;
- RETVAL = mktime(&mytm);
- }
- OUTPUT:
- RETVAL
-
-#XXX: if $xsubpp::WantOptimize is always the default
-# sv_setpv(TARG, ...) could be used rather than
-# ST(0) = sv_2mortal(newSVpv(...))
-void
-strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
- char * fmt
- int sec
- int min
- int hour
- int mday
- int mon
- int year
- int wday
- int yday
- int isdst
- CODE:
- {
- char tmpbuf[128];
- struct tm mytm;
- int len;
-#ifdef __FreeBSD__
- long sgmtoff;
- int sisdst;
- char *szone;
-#endif
- init_tm(&mytm); /* XXX workaround - see init_tm() above */
- mytm.tm_sec = sec;
- mytm.tm_min = min;
- mytm.tm_hour = hour;
- mytm.tm_mday = mday;
- mytm.tm_mon = mon;
- mytm.tm_year = year;
- mytm.tm_wday = wday;
- mytm.tm_yday = yday;
- mytm.tm_isdst = isdst;
-#ifdef __FreeBSD__
- sgmtoff = mytm.tm_gmtoff;
- sisdst = mytm.tm_isdst;
- szone = mytm.tm_zone;
- /* to prevent mess with shifted hours/days/etc. */
- (void) timegm(&mytm);
- mytm.tm_gmtoff = sgmtoff;
- mytm.tm_isdst = sisdst;
- mytm.tm_zone = szone;
-#else
- mini_mktime(&mytm);
-#endif
- len = strftime(tmpbuf, sizeof tmpbuf, fmt, &mytm);
- /*
- ** The following is needed to handle to the situation where
- ** tmpbuf overflows. Basically we want to allocate a buffer
- ** and try repeatedly. The reason why it is so complicated
- ** is that getting a return value of 0 from strftime can indicate
- ** one of the following:
- ** 1. buffer overflowed,
- ** 2. illegal conversion specifier, or
- ** 3. the format string specifies nothing to be returned(not
- ** an error). This could be because format is an empty string
- ** or it specifies %p that yields an empty string in some locale.
- ** If there is a better way to make it portable, go ahead by
- ** all means.
- */
- if ((len > 0 && len < sizeof(tmpbuf)) || (len == 0 && *fmt == '\0'))
- ST(0) = sv_2mortal(newSVpv(tmpbuf, len));
- else {
- /* Possibly buf overflowed - try again with a bigger buf */
- int fmtlen = strlen(fmt);
- int bufsize = fmtlen + sizeof(tmpbuf);
- char* buf;
- int buflen;
-
- New(0, buf, bufsize, char);
- while (buf) {
- buflen = strftime(buf, bufsize, fmt, &mytm);
- if (buflen > 0 && buflen < bufsize)
- break;
- /* heuristic to prevent out-of-memory errors */
- if (bufsize > 100*fmtlen) {
- Safefree(buf);
- buf = NULL;
- break;
- }
- bufsize *= 2;
- Renew(buf, bufsize, char);
- }
- if (buf) {
- ST(0) = sv_2mortal(newSVpvn(buf, buflen));
- Safefree(buf);
- }
- else
- ST(0) = sv_2mortal(newSVpvn(tmpbuf, len));
- }
- }
-
-void
-tzset()
-
-void
-tzname()
- PPCODE:
- EXTEND(SP,2);
- PUSHs(sv_2mortal(newSVpvn(tzname[0],strlen(tzname[0]))));
- PUSHs(sv_2mortal(newSVpvn(tzname[1],strlen(tzname[1]))));
-
-SysRet
-access(filename, mode)
- char * filename
- Mode_t mode
-
-char *
-ctermid(s = 0)
- char * s = 0;
-
-char *
-cuserid(s = 0)
- char * s = 0;
-
-SysRetLong
-fpathconf(fd, name)
- int fd
- int name
-
-SysRetLong
-pathconf(filename, name)
- char * filename
- int name
-
-SysRet
-pause()
-
-SysRetLong
-sysconf(name)
- int name
-
-char *
-ttyname(fd)
- int fd
diff --git a/contrib/perl5/ext/POSIX/hints/bsdos.pl b/contrib/perl5/ext/POSIX/hints/bsdos.pl
deleted file mode 100644
index 62732ac..0000000
--- a/contrib/perl5/ext/POSIX/hints/bsdos.pl
+++ /dev/null
@@ -1,3 +0,0 @@
-# BSD platforms have extra fields in struct tm that need to be initialized.
-# XXX A Configure test is needed.
-$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
diff --git a/contrib/perl5/ext/POSIX/hints/dynixptx.pl b/contrib/perl5/ext/POSIX/hints/dynixptx.pl
deleted file mode 100644
index 9b63684..0000000
--- a/contrib/perl5/ext/POSIX/hints/dynixptx.pl
+++ /dev/null
@@ -1,4 +0,0 @@
-# Need to add an extra '-lc' to the end to work around a DYNIX/ptx bug
-# PR#227670 - linker error on fpgetround()
-
-$self->{LIBS} = ['-ldb -lm -lc'];
diff --git a/contrib/perl5/ext/POSIX/hints/freebsd.pl b/contrib/perl5/ext/POSIX/hints/freebsd.pl
deleted file mode 100644
index 62732ac..0000000
--- a/contrib/perl5/ext/POSIX/hints/freebsd.pl
+++ /dev/null
@@ -1,3 +0,0 @@
-# BSD platforms have extra fields in struct tm that need to be initialized.
-# XXX A Configure test is needed.
-$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
diff --git a/contrib/perl5/ext/POSIX/hints/linux.pl b/contrib/perl5/ext/POSIX/hints/linux.pl
deleted file mode 100644
index f1d1981..0000000
--- a/contrib/perl5/ext/POSIX/hints/linux.pl
+++ /dev/null
@@ -1,5 +0,0 @@
-# libc6, aka glibc2, seems to need STRUCT_TM_HASZONE defined.
-# Thanks to Bart Schuller <schuller@Lunatech.com>
-# See Message-ID: <19971009002636.50729@tanglefoot>
-# XXX A Configure test is needed.
-$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE -DHINT_SC_EXIST' ;
diff --git a/contrib/perl5/ext/POSIX/hints/mint.pl b/contrib/perl5/ext/POSIX/hints/mint.pl
deleted file mode 100644
index b975cbb..0000000
--- a/contrib/perl5/ext/POSIX/hints/mint.pl
+++ /dev/null
@@ -1,2 +0,0 @@
-$self->{CCFLAGS} = $Config{ccflags} . ' -DNO_LOCALECONV_GROUPING -DNO_LOCALECONV_MON_GROUPING';
-
diff --git a/contrib/perl5/ext/POSIX/hints/netbsd.pl b/contrib/perl5/ext/POSIX/hints/netbsd.pl
deleted file mode 100644
index 62732ac..0000000
--- a/contrib/perl5/ext/POSIX/hints/netbsd.pl
+++ /dev/null
@@ -1,3 +0,0 @@
-# BSD platforms have extra fields in struct tm that need to be initialized.
-# XXX A Configure test is needed.
-$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
diff --git a/contrib/perl5/ext/POSIX/hints/next_3.pl b/contrib/perl5/ext/POSIX/hints/next_3.pl
deleted file mode 100644
index d907783..0000000
--- a/contrib/perl5/ext/POSIX/hints/next_3.pl
+++ /dev/null
@@ -1,5 +0,0 @@
-# NeXT *does* have setpgid when we use the -posix flag, but
-# doesn't when we don't. The main perl sources are compiled
-# without -posix, so the hints/next_3.sh hint file tells Configure
-# that d_setpgid=undef.
-$self->{CCFLAGS} = $Config{ccflags} . ' -posix -DHAS_SETPGID' ;
diff --git a/contrib/perl5/ext/POSIX/hints/openbsd.pl b/contrib/perl5/ext/POSIX/hints/openbsd.pl
deleted file mode 100644
index 62732ac..0000000
--- a/contrib/perl5/ext/POSIX/hints/openbsd.pl
+++ /dev/null
@@ -1,3 +0,0 @@
-# BSD platforms have extra fields in struct tm that need to be initialized.
-# XXX A Configure test is needed.
-$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
diff --git a/contrib/perl5/ext/POSIX/hints/sunos_4.pl b/contrib/perl5/ext/POSIX/hints/sunos_4.pl
deleted file mode 100644
index 32b3558..0000000
--- a/contrib/perl5/ext/POSIX/hints/sunos_4.pl
+++ /dev/null
@@ -1,10 +0,0 @@
-# SunOS 4.1.3 has two extra fields in struct tm. This works around
-# the problem. Other BSD platforms may have similar problems.
-# This state of affairs also persists in glibc2, found
-# on linux systems running libc6.
-# XXX A Configure test is needed.
-
-# Although <unistd.h> is inappropriate in general for SunOS, we need it
-# in POSIX.xs to get the correct prototype for ttyname().
-
-$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE -DI_UNISTD' ;
diff --git a/contrib/perl5/ext/POSIX/hints/svr4.pl b/contrib/perl5/ext/POSIX/hints/svr4.pl
deleted file mode 100644
index 07f2cb0..0000000
--- a/contrib/perl5/ext/POSIX/hints/svr4.pl
+++ /dev/null
@@ -1,12 +0,0 @@
-# NCR MP-RAS. Thanks to Doug Hendricks for this info.
-# Configure sets osname=svr4.0, osvers=3.0, archname='3441-svr4.0'
-# This system needs to explicitly link against -lmw to pull in some
-# symbols such as _mwoflocheckl and possibly others.
-# A. Dougherty Thu Dec 7 11:55:28 EST 2000
-if ($Config{'archname'} =~ /3441-svr4/) {
- $self->{LIBS} = ['-lm -posix -lcposix -lmw'];
-}
-# Not sure what OS this one is.
-elsif ($Config{archname} =~ /RM\d\d\d-svr4/) {
- $self->{LIBS} = ['-lm -lc -lposix -lcposix'];
-}
diff --git a/contrib/perl5/ext/POSIX/typemap b/contrib/perl5/ext/POSIX/typemap
deleted file mode 100644
index baf9bfc..0000000
--- a/contrib/perl5/ext/POSIX/typemap
+++ /dev/null
@@ -1,15 +0,0 @@
-Mode_t T_NV
-pid_t T_NV
-Uid_t T_NV
-Time_t T_NV
-Gid_t T_NV
-Off_t T_NV
-Dev_t T_NV
-NV T_NV
-fd T_IV
-speed_t T_IV
-tcflag_t T_IV
-cc_t T_IV
-POSIX::SigSet T_PTROBJ
-POSIX::Termios T_PTROBJ
-POSIX::SigAction T_HVREF
OpenPOWER on IntegriCloud