Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | # NOTE: Derived from blib/lib/Inline.pm. |
2 | # Changes made here will be lost when autosplit is run again. | |
3 | # See AutoSplit.pm. | |
4 | package Inline; | |
5 | ||
6 | #line 659 "blib/lib/Inline.pm (autosplit into blib/lib/auto/Inline/check_config_file.al)" | |
7 | #============================================================================== | |
8 | # Read the cached config file from the Inline directory. This will indicate | |
9 | # whether the Language code is valid or not. | |
10 | #============================================================================== | |
11 | sub check_config_file { | |
12 | my ($DIRECTORY, %config); | |
13 | my $o = shift; | |
14 | ||
15 | croak M14_usage_Config() if defined %main::Inline::Config::; | |
16 | croak M63_no_source($o->{API}{pkg}) | |
17 | if $o->{INLINE}{md5} eq $o->{API}{code}; | |
18 | ||
19 | # First make sure we have the DIRECTORY | |
20 | if ($o->{CONFIG}{_INSTALL_}) { | |
21 | croak M15_usage_install_directory() | |
22 | if $o->{CONFIG}{DIRECTORY}; | |
23 | my $cwd = Cwd::cwd(); | |
24 | $DIRECTORY = | |
25 | $o->{INLINE}{DIRECTORY} = File::Spec->catdir($cwd,"_Inline"); | |
26 | if (not -d $DIRECTORY) { | |
27 | _mkdir($DIRECTORY, 0777) | |
28 | or croak M16_DIRECTORY_mkdir_failed($DIRECTORY); | |
29 | } | |
30 | } | |
31 | else { | |
32 | $DIRECTORY = $o->{INLINE}{DIRECTORY} = | |
33 | $o->{CONFIG}{DIRECTORY} || $o->find_temp_dir; | |
34 | } | |
35 | ||
36 | $o->create_config_file($DIRECTORY) | |
37 | if not -e File::Spec->catfile($DIRECTORY,"config"); | |
38 | ||
39 | open CONFIG, "< ".File::Spec->catfile($DIRECTORY,"config") | |
40 | or croak M17_config_open_failed($DIRECTORY); | |
41 | my $config = join '', <CONFIG>; | |
42 | close CONFIG; | |
43 | ||
44 | croak M62_invalid_config_file(File::Spec->catfile($DIRECTORY,"config")) | |
45 | unless $config =~ /^version :/; | |
46 | ($config) = $config =~ /(.*)/s if UNTAINT; | |
47 | ||
48 | %config = Inline::denter->new()->undent($config); | |
49 | $Inline::languages = $config{languages}; | |
50 | ||
51 | croak M18_error_old_version($config{version}, $DIRECTORY) | |
52 | unless (defined $config{version} and | |
53 | $config{version} =~ /TRIAL/ or | |
54 | $config{version} >= 0.40); | |
55 | croak M19_usage_language($o->{API}{language_id}, $DIRECTORY) | |
56 | unless defined $config{languages}->{$o->{API}{language_id}}; | |
57 | $o->{API}{language} = $config{languages}->{$o->{API}{language_id}}; | |
58 | if ($o->{API}{language} ne $o->{API}{language_id}) { | |
59 | if (defined $o->{$o->{API}{language_id}}) { | |
60 | $o->{$o->{API}{language}} = $o->{$o->{API}{language_id}}; | |
61 | delete $o->{$o->{API}{language_id}}; | |
62 | } | |
63 | } | |
64 | ||
65 | $o->{INLINE}{ILSM_type} = $config{types}->{$o->{API}{language}}; | |
66 | $o->{INLINE}{ILSM_module} = $config{modules}->{$o->{API}{language}}; | |
67 | $o->{INLINE}{ILSM_suffix} = $config{suffixes}->{$o->{API}{language}}; | |
68 | } | |
69 | ||
70 | # end of Inline::check_config_file | |
71 | 1; |