Rashed Abdel-Tawab | 4db47f4 | 2019-09-06 10:38:22 -0700 | [diff] [blame] | 1 | package lib; |
| 2 | |
| 3 | # THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL. |
| 4 | # ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD. |
| 5 | |
| 6 | use Config; |
| 7 | |
| 8 | use strict; |
| 9 | |
| 10 | my $archname = $Config{archname}; |
| 11 | my $version = $Config{version}; |
| 12 | my @inc_version_list = reverse split / /, $Config{inc_version_list}; |
| 13 | |
| 14 | our @ORIG_INC = @INC; # take a handy copy of 'original' value |
| 15 | our $VERSION = '0.64'; |
| 16 | |
| 17 | sub import { |
| 18 | shift; |
| 19 | |
| 20 | my %names; |
| 21 | foreach (reverse @_) { |
| 22 | my $path = $_; # we'll be modifying it, so break the alias |
| 23 | if ($path eq '') { |
| 24 | require Carp; |
| 25 | Carp::carp("Empty compile time value given to use lib"); |
| 26 | } |
| 27 | |
| 28 | if ($path !~ /\.par$/i && -e $path && ! -d _) { |
| 29 | require Carp; |
| 30 | Carp::carp("Parameter to use lib must be directory, not file"); |
| 31 | } |
| 32 | unshift(@INC, $path); |
| 33 | # Add any previous version directories we found at configure time |
| 34 | foreach my $incver (@inc_version_list) |
| 35 | { |
| 36 | my $dir = "$path/$incver"; |
| 37 | unshift(@INC, $dir) if -d $dir; |
| 38 | } |
| 39 | # Put a corresponding archlib directory in front of $path if it |
| 40 | # looks like $path has an archlib directory below it. |
| 41 | my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir) |
| 42 | = _get_dirs($path); |
| 43 | unshift(@INC, $arch_dir) if -d $arch_auto_dir; |
| 44 | unshift(@INC, $version_dir) if -d $version_dir; |
| 45 | unshift(@INC, $version_arch_dir) if -d $version_arch_dir; |
| 46 | } |
| 47 | |
| 48 | # remove trailing duplicates |
| 49 | @INC = grep { ++$names{$_} == 1 } @INC; |
| 50 | return; |
| 51 | } |
| 52 | |
| 53 | sub unimport { |
| 54 | shift; |
| 55 | |
| 56 | my %names; |
| 57 | foreach my $path (@_) { |
| 58 | my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir) |
| 59 | = _get_dirs($path); |
| 60 | ++$names{$path}; |
| 61 | ++$names{$arch_dir} if -d $arch_auto_dir; |
| 62 | ++$names{$version_dir} if -d $version_dir; |
| 63 | ++$names{$version_arch_dir} if -d $version_arch_dir; |
| 64 | } |
| 65 | |
| 66 | # Remove ALL instances of each named directory. |
| 67 | @INC = grep { !exists $names{$_} } @INC; |
| 68 | return; |
| 69 | } |
| 70 | |
| 71 | sub _get_dirs { |
| 72 | my($dir) = @_; |
| 73 | my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir); |
| 74 | |
| 75 | $arch_auto_dir = "$dir/$archname/auto"; |
| 76 | $arch_dir = "$dir/$archname"; |
| 77 | $version_dir = "$dir/$version"; |
| 78 | $version_arch_dir = "$dir/$version/$archname"; |
| 79 | |
| 80 | return($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir); |
| 81 | } |
| 82 | |
| 83 | 1; |
| 84 | __END__ |
| 85 | |