Commit | Line | Data |
d3a7d8c7 |
1 | package warnings::register ; |
2 | |
4755096e |
3 | =pod |
4 | |
5 | =head1 NAME |
6 | |
7 | warnings::register - warnings import function |
8 | |
9 | =cut |
10 | |
d3a7d8c7 |
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 ; |