CONFIG
view release on metacpan or search on metacpan
my $key;
foreach $key (keys(%CONFIG::Plain::already_open_configs)) {
if (defined $CONFIG::Plain::already_open_configs{$key}) {
push @list, $key;
}
}
return @list;
}
sub config_type($) {
my ($file) = @_;
return $CONFIG::Plain::already_open_configs{$file}->{'_CODE_TYPE'};
}
sub file_last_changed($) {
my ($self) = @_;
return $self->{COMMON}->{FILETIME};
}
sub file_last_read($) {
my ($self) = @_;
return $self->{COMMON}->{LASTREAD};
}
sub file_size($) {
my ($self) = @_;
return $self->{COMMON}->{FILEBYTES};
}
sub file_lines($) {
my ($self) = @_;
return $self->{COMMON}->{FILELINES};
}
sub cache_size($) {
my ($self) = @_;
return $self->{COMMON}->{CACHEBYTES};
}
sub cache_lines($) {
my ($self) = @_;
return $self->{COMMON}->{CACHELINES};
}
sub file_read($) {
my ($self) = @_;
return $self->{COMMON}->{USED};
}
sub file_config($) {
my ($self) = @_;
my %hash;
%hash = %{$self->{COMMON}->{CONFIG}};
# remove internal stuff
delete $hash{COMMENT_FUNCTIONS};
return \%hash;
}
$self->{COMMON}->{FILEBYTES} = $file_bytes;
$self->{COMMON}->{CACHEBYTES} = length($self->{COMMON}->{PLAINFILE});
$self->{COMMON}->{CACHELINES} = $#{$self->{COMMON}->{LINESFILE}}+1;
$self->{COMMON}->{READS}++;
$self->{COMMON}->{_CODE_TYPE} = 'Plain';
$self->parse_file;
}
sub check_for_include($$$) {
my ($self, $line, $linenr) = @_;
my ($before, $filename, $after);
my ($file, $pwd, $error, $src_line, $src_file);
my $cursor;
my $hlp;
$cursor = $#{$self->{COMMON}->{LINESFILE}}+1;
$type = $style;
$parameters = '';
}
if (defined $CONFIG::Plain::comment_style->{$type}) {
push (@{$COMMENT_FUNCTIONS{$type}}, $parameters);
}
}
return \%COMMENT_FUNCTIONS;
}
sub getline_unparsed($$) {
my ($self, $linenr) = @_;
return $self->{COMMON}->{LINESFILE_unparsed}->[$linenr];
}
#####################################################################
# get_errors
#
# returns a scalar holding a preformated string with all error
# messages occured while parsing the file.
# NOTE: this method uses the api, so the CURSORS are resettet
# after this method
#
# Include support: Full
#
sub get_errors($) {
my ($self) = @_;
my $outtext = '';
my ($line, $error, $filename);
$self->getline_reset();
# global errors
while (defined ($error = $self->getline_error)) {
$outtext .= $error . "\n";
}
print <<END_OF_HTML;
<hr>
<table width=100%><tr>
<td align=left>[ <a href="config.pl?MODE=LIST">List</A> | <a href="config.pl?MODE=OPEN">Open File</A> | <a href="http://www.fatalmind.com/download.html">CONFIG:: home</A> ]</td>
<td align=right>© 1999, 2000 by <a href="mailto:mws\@fatalmind.com">mws</a>
</tr></table></BODY></HTML>
END_OF_HTML
sub close_file($) {
my ($query) = @_;
undef $CONFIG::Plain::already_open_configs{$query->param('FILE')};
list_open_configs($query);
return "";
}
sub do_open ($) {
my ($query) = @_;
$CONFIG{ESCAPE} = $query->param('CONFIG_ESCAPE');
if ($query->param("MODULE") eq "Hash") {
$v = CONFIG::Hash->new($query->param("FILE"),\%CONFIG);
} else {
$v = CONFIG::Plain->new($query->param("FILE"),\%CONFIG);
}
return file_info($query);
}
sub show_open_form() {
return <<"END_OF_HTML";
<div align=center>
<form action="config.pl" method="get">
<table>
<tr><th align=right>Filename: </th><td><input name="FILE"></td></tr>
<tr><th align=right>Module: </th><td>
<input type=radio name=MODULE value=Plain checked>Plain<br>
<input type=radio name=MODULE value=Hash>Hash</td></tr>
<tr><th align=right>Hash regular expressioen (Hash):</th><td><input name=CONFIG_HASHREGEXP value="\\s+(.*)\$"></td></tr>
<tr><th align=right>Substitue New Line (Hash):</th><td><input name=CONFIG_SUBSTITUTENEWLINE value="\\n"></td></tr>
<tr><td colspan=2 align=center><input type=submit value="Open"> <input type=reset value="Reset"></td></tr>
</table>
<input type=hidden name=MODE value=OPEN>
</form>
</div>
END_OF_HTML
}
sub show_file($) {
my ($query) = @_;
my $filename = $query->param('FILE');
my $pwd;
my $file;
my $outtext;
my $line;
my $i;
if ($filename !~ /^\//) {
$pwd = getcwd;
$outtext .= "</pre></td></tr></table>";
} else {
$outtext .="<p><font color=red>File not loaded</font><br>\n";
}
return $outtext;
}
sub show_line($) {
my ($query) = @_;
my $filename = $query->param('FILE');
my $src_file = $query->param('SRCFILE');
my $src_line = $query->param('SRCLINE');
my $outtext;
my $pwd;
my $file;
my $line;
my $i;
my $filelines;
encode_entities($file->getline_unparsed($i)));
}
} else {
$outtext .="<p><font color=red>File not loaded</font><br>\n";
}
return $outtext;
}
sub list_open_configs($) {
my ($query) = @_;
my $file;
my @configs;
my $i = 0;
@configs = CONFIG::Plain::open_configs;
foreach $file (@configs) {
$i++;
print("$i.) <A HREF=\"".$query->url."?MODE=INFO&FILE=$file\">$file</A>".
" [ <a HREF=\"".$query->url."?MODE=CLOSE&FILE=$file\">Close</A> ] (".CONFIG::Plain::config_type($file).")<br>");
}
if ($i == 0) {
printf("<B> No Files Open</B><br>");
}
}
sub is_open($) {
my ($filename) = @_;
my @configs;
@configs = CONFIG::Plain::open_configs;
return in_list($filename, @configs);
}
sub file_info($) {
my ($query) = @_;
my $file = $query->param('FILE');
my $type ="";
my $outtext;
my $object;
my $error;
my $line;
my $pwd;
if ($file !~ /^\//) {
$outtext .= '<p><a href="'.$query->url."?MODE=SHOW&FILE=$file\">Show File</A>";
} else {
$outtext .="<p><font color=red>File not loaded</font><br>\n";
}
return $outtext;
}
sub show_errors_statistic($) {
my ($file) = @_;
my ($err_cnt, $lin_cnt) = (0, 0);
$file->getline_reset;
while (defined ($file->getline)) {
if (defined( $file->getline_error)) {
$lin_cnt++;
do {
$err_cnt++;
} while (defined ($file->getline_error));
}
}
return sprintf("%d errors in %d lines", $err_cnt, $lin_cnt);
}
sub show_errors_plain($) {
my ($query) = @_;
my ($line, $outtext, $error, $filename);
my $file;
my $filename = $query->param('FILE');
my $inc_name;
my $pwd;
my ($srcfile, $srcline);
if ($filename !~ /^\//) {
$pwd = getcwd;
$file->getline_number);
}
}
}
} else {
$outtext .="<p><font color=red>File not loaded</font><br>\n";
}
return $outtext;
}
sub statistics_plain($) {
my ($object) = @_;
return "<TABLE>".
"<TR><TD ALING=RIGHT>File modification time: </TD><TD>".
scalar localtime($object->file_last_changed)."</TD></TR>".
"<TR><TD ALIGN=RIGHT>File in cache since: </TD><TD>".
scalar localtime($object->file_last_read).
"</TD></TR>".
"<TR><TD ALIGN=RIGHT>File size: </TD><TD>".
$object->cache_lines. " lines (".
$object->cache_size." bytes)</TD></TR>".
"<TR><TD ALIGN=RIGHT>Cached reads: </TD><TD>".
$object->file_read. "</TD></TR>".
"</TABLE>";
}
sub show_config($) {
my ($object) = @_;
my $key;
my $outtext;
my %hash;
$outtext = "<TABLE>\n";
%hash = %{$object->file_config};
foreach $key (keys %hash) {
( run in 0.712 second using v1.01-cache-2.11-cpan-65fba6d93b7 )