Use Errno magic.
[p5sagit/p5-mst-13.2.git] / lib / warnings / register.pm
1 package warnings::register ;
2
3 =pod
4
5 =head1 NAME
6
7 warnings::register - warnings import function
8
9 =cut
10
11 require warnings ;
12
13 sub mkMask
14 {
15     my ($bit) = @_ ;
16     my $mask = "" ;
17
18     vec($mask, $bit, 1) = 1 ;
19     return $mask ;
20 }
21
22 sub import
23 {
24     shift ;
25     my $package = (caller(0))[0] ;
26     if (! defined $warnings::Bits{$package}) {
27         $warnings::Bits{$package}     = mkMask($warnings::LAST_BIT) ;
28         vec($warnings::Bits{'all'}, $warnings::LAST_BIT, 1) = 1 ;
29         $warnings::Offsets{$package}  = $warnings::LAST_BIT ++ ;
30         foreach my $k (keys %warnings::Bits) {
31             vec($warnings::Bits{$k}, $warnings::LAST_BIT, 1) = 0 ;
32         }
33         $warnings::DeadBits{$package} = mkMask($warnings::LAST_BIT);
34         vec($warnings::DeadBits{'all'}, $warnings::LAST_BIT++, 1) = 1 ;
35     }
36 }
37
38 1 ;