more efficient Text::Abbrev (from M.E. O'Neill <oneill@cs.sfu.ca>)
[p5sagit/p5-mst-13.2.git] / lib / warnings / register.pm
1 package warnings::register ;
2
3 require warnings ;
4
5 sub mkMask
6 {
7     my ($bit) = @_ ;
8     my $mask = "" ;
9
10     vec($mask, $bit, 1) = 1 ;
11     return $mask ;
12 }
13
14 sub import
15 {
16     shift ;
17     my $package = (caller(0))[0] ;
18     if (! defined $warnings::Bits{$package}) {
19         $warnings::Bits{$package}     = mkMask($warnings::LAST_BIT) ;
20         vec($warnings::Bits{'all'}, $warnings::LAST_BIT, 1) = 1 ;
21         $warnings::Offsets{$package}  = $warnings::LAST_BIT ++ ;
22         foreach my $k (keys %warnings::Bits) {
23             vec($warnings::Bits{$k}, $warnings::LAST_BIT, 1) = 0 ;
24         }
25         $warnings::DeadBits{$package} = mkMask($warnings::LAST_BIT);
26         vec($warnings::DeadBits{'all'}, $warnings::LAST_BIT++, 1) = 1 ;
27     }
28 }
29
30 1 ;