summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/ext/Errno/Errno_pm.PL
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/ext/Errno/Errno_pm.PL')
-rw-r--r--contrib/perl5/ext/Errno/Errno_pm.PL361
1 files changed, 0 insertions, 361 deletions
diff --git a/contrib/perl5/ext/Errno/Errno_pm.PL b/contrib/perl5/ext/Errno/Errno_pm.PL
deleted file mode 100644
index 3f2f3e0..0000000
--- a/contrib/perl5/ext/Errno/Errno_pm.PL
+++ /dev/null
@@ -1,361 +0,0 @@
-use ExtUtils::MakeMaker;
-use Config;
-use strict;
-
-use vars qw($VERSION);
-
-$VERSION = "1.111";
-
-my %err = ();
-
-unlink "Errno.pm" if -f "Errno.pm";
-open OUT, ">Errno.pm" or die "Cannot open Errno.pm: $!";
-select OUT;
-my $file;
-foreach $file (get_files()) {
- process_file($file);
-}
-write_errno_pm();
-unlink "errno.c" if -f "errno.c";
-
-sub process_file {
- my($file) = @_;
-
- return unless defined $file and -f $file;
-
- local *FH;
- if (($^O eq 'VMS') && ($Config{vms_cc_type} ne 'gnuc')) {
- unless(open(FH," LIBRARY/EXTRACT=ERRNO/OUTPUT=SYS\$OUTPUT $file |")) {
- warn "Cannot open '$file'";
- return;
- }
- } elsif ($Config{gccversion} ne '') {
- # With the -dM option, gcc outputs every #define it finds
- my $ccopts = "-E -dM ";
- $ccopts .= "-traditional-cpp " if $^O eq 'darwin';
- unless(open(FH,"$Config{cc} $ccopts $file |")) {
- warn "Cannot open '$file'";
- return;
- }
- } else {
- unless(open(FH,"< $file")) {
- # This file could be a temporary file created by cppstdin
- # so only warn under -w, and return
- warn "Cannot open '$file'" if $^W;
- return;
- }
- }
-
- if ($^O eq 'MacOS') {
- while(<FH>) {
- $err{$1} = $2
- if /^\s*#\s*define\s+(E\w+)\s+(\d+)/;
- }
- } else {
- while(<FH>) {
- $err{$1} = 1
- if /^\s*#\s*define\s+(E\w+)\s+/;
- }
- }
- close(FH);
-}
-
-my $cppstdin;
-
-sub default_cpp {
- unless (defined $cppstdin) {
- use File::Spec;
- $cppstdin = $Config{cppstdin};
- my $upup_cppstdin = File::Spec->catfile(File::Spec->updir,
- File::Spec->updir,
- "cppstdin");
- my $cppstdin_is_wrapper =
- ($cppstdin eq 'cppstdin'
- and -f $upup_cppstdin
- and -x $upup_cppstdin);
- $cppstdin = $upup_cppstdin if $cppstdin_is_wrapper;
- }
- return "$cppstdin $Config{cppflags} $Config{cppminus}";
-}
-
-sub get_files {
- my %file = ();
- # VMS keeps its include files in system libraries (well, except for Gcc)
- if ($^O eq 'VMS') {
- if ($Config{vms_cc_type} eq 'decc') {
- $file{'Sys$Library:DECC$RTLDEF.TLB'} = 1;
- } elsif ($Config{vms_cc_type} eq 'vaxc') {
- $file{'Sys$Library:vaxcdef.tlb'} = 1;
- } elsif ($Config{vms_cc_type} eq 'gcc') {
- $file{'gnu_cc_include:[000000]errno.h'} = 1;
- }
- } elsif ($^O eq 'os390') {
- # OS/390 C compiler doesn't generate #file or #line directives
- $file{'/usr/include/errno.h'} = 1;
- } elsif ($^O eq 'vmesa') {
- # OS/390 C compiler doesn't generate #file or #line directives
- $file{'../../vmesa/errno.h'} = 1;
- } elsif ($Config{archname} eq 'epoc') {
- # Watch out for cross compiling for EPOC (usually done on linux)
- $file{'/usr/local/epoc/include/libc/sys/errno.h'} = 1;
- } elsif ($^O eq 'linux') {
- # Some Linuxes have weird errno.hs which generate
- # no #file or #line directives
- $file{'/usr/include/errno.h'} = 1;
- } elsif ($^O eq 'MacOS') {
- # note that we are only getting the GUSI errno's here ...
- # we might miss out on compiler-specific ones
- $file{"$ENV{GUSI}include:sys:errno.h"} = 1;
-
- } else {
- open(CPPI,"> errno.c") or
- die "Cannot open errno.c";
-
- print CPPI "#include <errno.h>\n";
-
- close(CPPI);
-
- # invoke CPP and read the output
- if ($^O eq 'MSWin32') {
- open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or
- die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'";
- } else {
- my $cpp = default_cpp();
- open(CPPO,"$cpp < errno.c |") or
- die "Cannot exec $cpp";
- }
-
- my $pat;
- if ($^O eq 'MSWin32' and $Config{cc} =~ /^bcc/i) {
- $pat = '^/\*\s+(.+)\s+\d+\s*:\s+\*/';
- }
- else {
- $pat = '^#\s*(?:line)?\s*\d+\s+"([^"]+)"';
- }
- while(<CPPO>) {
- if ($^O eq 'os2' or $^O eq 'MSWin32') {
- if (/$pat/o) {
- my $f = $1;
- $f =~ s,\\\\,/,g;
- $file{$f} = 1;
- }
- }
- else {
- $file{$1} = 1 if /$pat/o;
- }
- }
- close(CPPO);
- }
- return keys %file;
-}
-
-sub write_errno_pm {
- my $err;
-
- # quick sanity check
-
- die "No error definitions found" unless keys %err;
-
- # create the CPP input
-
- open(CPPI,"> errno.c") or
- die "Cannot open errno.c";
-
- print CPPI "#include <errno.h>\n";
-
- foreach $err (keys %err) {
- print CPPI '"',$err,'" [[',$err,']]',"\n";
- }
-
- close(CPPI);
-
- unless ($^O eq 'MacOS') { # trust what we have
- # invoke CPP and read the output
-
- if ($^O eq 'VMS') {
- my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}";
- $cpp =~ s/sys\$input//i;
- open(CPPO,"$cpp errno.c |") or
- die "Cannot exec $Config{cppstdin}";
- } elsif ($^O eq 'MSWin32') {
- open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or
- die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'";
- } else {
- my $cpp = default_cpp();
- open(CPPO,"$cpp < errno.c |")
- or die "Cannot exec $cpp";
- }
-
- %err = ();
-
- while(<CPPO>) {
- my($name,$expr);
- next unless ($name, $expr) = /"(.*?)"\s*\[\s*\[\s*(.*?)\s*\]\s*\]/;
- next if $name eq $expr;
- $err{$name} = eval $expr;
- }
- close(CPPO);
- }
-
- # Write Errno.pm
-
- print <<"EDQ";
-#
-# This file is auto-generated. ***ANY*** changes here will be lost
-#
-
-package Errno;
-use vars qw(\@EXPORT_OK \%EXPORT_TAGS \@ISA \$VERSION \%errno \$AUTOLOAD);
-use Exporter ();
-use Config;
-use strict;
-
-"\$Config{'archname'}-\$Config{'osvers'}" eq
-"$Config{'archname'}-$Config{'osvers'}" or
- die "Errno architecture ($Config{'archname'}-$Config{'osvers'}) does not match executable architecture (\$Config{'archname'}-\$Config{'osvers'})";
-
-\$VERSION = "$VERSION";
-\@ISA = qw(Exporter);
-
-EDQ
-
- my $len = 0;
- my @err = sort { $err{$a} <=> $err{$b} } keys %err;
- map { $len = length if length > $len } @err;
-
- my $j = "\@EXPORT_OK = qw(" . join(" ",keys %err) . ");\n";
- $j =~ s/(.{50,70})\s/$1\n\t/g;
- print $j,"\n";
-
-print <<'ESQ';
-%EXPORT_TAGS = (
- POSIX => [qw(
-ESQ
-
- my $k = join(" ", grep { exists $err{$_} }
- 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));
-
- $k =~ s/(.{50,70})\s/$1\n\t/g;
- print "\t",$k,"\n )]\n);\n\n";
-
- foreach $err (@err) {
- printf "sub %s () { %d }\n",,$err,$err{$err};
- }
-
- print <<'ESQ';
-
-sub TIEHASH { bless [] }
-
-sub FETCH {
- my ($self, $errname) = @_;
- my $proto = prototype("Errno::$errname");
- my $errno = "";
- if (defined($proto) && $proto eq "") {
- no strict 'refs';
- $errno = &$errname;
- $errno = 0 unless $! == $errno;
- }
- return $errno;
-}
-
-sub STORE {
- require Carp;
- Carp::confess("ERRNO hash is read only!");
-}
-
-*CLEAR = \&STORE;
-*DELETE = \&STORE;
-
-sub NEXTKEY {
- my($k,$v);
- while(($k,$v) = each %Errno::) {
- my $proto = prototype("Errno::$k");
- last if (defined($proto) && $proto eq "");
- }
- $k
-}
-
-sub FIRSTKEY {
- my $s = scalar keys %Errno::; # initialize iterator
- goto &NEXTKEY;
-}
-
-sub EXISTS {
- my ($self, $errname) = @_;
- my $proto = prototype($errname);
- defined($proto) && $proto eq "";
-}
-
-tie %!, __PACKAGE__;
-
-1;
-__END__
-
-=head1 NAME
-
-Errno - System errno constants
-
-=head1 SYNOPSIS
-
- use Errno qw(EINTR EIO :POSIX);
-
-=head1 DESCRIPTION
-
-C<Errno> defines and conditionally exports all the error constants
-defined in your system C<errno.h> include file. It has a single export
-tag, C<:POSIX>, which will export all POSIX defined error numbers.
-
-C<Errno> also makes C<%!> magic such that each element of C<%!> has a
-non-zero value only if C<$!> is set to that value. For example:
-
- use Errno;
-
- unless (open(FH, "/fangorn/spouse")) {
- if ($!{ENOENT}) {
- warn "Get a wife!\n";
- } else {
- warn "This path is barred: $!";
- }
- }
-
-If a specified constant C<EFOO> does not exist on the system, C<$!{EFOO}>
-returns C<"">. You may use C<exists $!{EFOO}> to check whether the
-constant is available on the system.
-
-=head1 CAVEATS
-
-Importing a particular constant may not be very portable, because the
-import will fail on platforms that do not have that constant. A more
-portable way to set C<$!> to a valid value is to use:
-
- if (exists &Errno::EFOO) {
- $! = &Errno::EFOO;
- }
-
-=head1 AUTHOR
-
-Graham Barr <gbarr@pobox.com>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-8 Graham Barr. All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-ESQ
-
-}
OpenPOWER on IntegriCloud