Load cups into easysw/current.
[thirdparty/cups.git] / scripting / perl / CUPS.pm
1 package CUPS;
2
3 use 5.006;
4 use strict;
5 use warnings;
6 use Carp;
7
8 require Exporter;
9 require DynaLoader;
10 use AutoLoader;
11
12 our @ISA = qw(Exporter DynaLoader);
13
14 # Items to export into callers namespace by default. Note: do not export
15 # names by default without a very good reason. Use EXPORT_OK instead.
16 # Do not simply export all your public functions/methods/constants.
17
18 # This allows declaration       use CUPS ':all';
19 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
20 # will save memory.
21 our %EXPORT_TAGS = ( 'all' => [ qw(
22         CUPS_DATE_ANY
23         CUPS_VERSION
24         HTTP_MAX_BUFFER
25         HTTP_MAX_HOST
26         HTTP_MAX_URI
27         HTTP_MAX_VALUE
28         IPP_MAX_NAME
29         IPP_MAX_VALUES
30         IPP_PORT
31         PPD_MAX_LINE
32         PPD_MAX_NAME
33         PPD_MAX_TEXT
34         PPD_VERSION
35 ) ] );
36
37 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
38
39 our @EXPORT = qw(
40         CUPS_DATE_ANY
41         CUPS_VERSION
42         HTTP_MAX_BUFFER
43         HTTP_MAX_HOST
44         HTTP_MAX_URI
45         HTTP_MAX_VALUE
46         IPP_MAX_NAME
47         IPP_MAX_VALUES
48         IPP_PORT
49         PPD_MAX_LINE
50         PPD_MAX_NAME
51         PPD_MAX_TEXT
52         PPD_VERSION
53 );
54 our $VERSION = '1.2';
55
56 sub AUTOLOAD {
57     # This AUTOLOAD is used to 'autoload' constants from the constant()
58     # XS function.  If a constant is not found then control is passed
59     # to the AUTOLOAD in AutoLoader.
60
61     my $constname;
62     our $AUTOLOAD;
63     ($constname = $AUTOLOAD) =~ s/.*:://;
64     croak "& not defined" if $constname eq 'constant';
65     my $val = constant($constname, @_ ? $_[0] : 0);
66     if ($! != 0) {
67         if ($! =~ /Invalid/ || $!{EINVAL}) {
68             $AutoLoader::AUTOLOAD = $AUTOLOAD;
69             goto &AutoLoader::AUTOLOAD;
70         }
71         else {
72             croak "Your vendor has not defined CUPS macro $constname";
73         }
74     }
75     {
76         no strict 'refs';
77         # Fixed between 5.005_53 and 5.005_61
78         if ($] >= 5.00561) {
79             *$AUTOLOAD = sub () { $val };
80         }
81         else {
82             *$AUTOLOAD = sub { $val };
83         }
84     }
85     goto &$AUTOLOAD;
86 }
87
88 bootstrap CUPS $VERSION;
89
90 # Preloaded methods go here.
91
92 # Autoload methods go after =cut, and are processed by the autosplit program.
93
94 1;
95 __END__
96 # Below is stub documentation for your module. You better edit it!
97
98 =head1 NAME
99
100 CUPS - Perl extension for blah blah blah
101
102 =head1 SYNOPSIS
103
104   use CUPS;
105   blah blah blah
106
107 =head1 DESCRIPTION
108
109 Stub documentation for CUPS, created by h2xs. It looks like the
110 author of the extension was negligent enough to leave the stub
111 unedited.
112
113 Blah blah blah.
114
115 =head2 EXPORT
116
117 None by default.
118
119 =head2 Exportable constants
120
121   CUPS_DATE_ANY
122   CUPS_VERSION
123   HTTP_MAX_BUFFER
124   HTTP_MAX_HOST
125   HTTP_MAX_URI
126   HTTP_MAX_VALUE
127   IPP_MAX_NAME
128   IPP_MAX_VALUES
129   IPP_PORT
130   PPD_MAX_LINE
131   PPD_MAX_NAME
132   PPD_MAX_TEXT
133   PPD_VERSION
134
135
136 =head1 AUTHOR
137
138 A. U. Thor, E<lt>a.u.thor@a.galaxy.far.far.awayE<gt>
139
140 =head1 SEE ALSO
141
142 L<perl>.
143
144 =cut