package xm::code::read;
use xm::o;
use xm::code::vars;
use xm::code::func;
use xm::code::ada;
use xm::code::awk;
use xm::code::c;
use xm::code::cxx;
use xm::code::groff;
use xm::code::html;
use xm::code::java;
use xm::code::javascript;
use xm::code::m4;
use xm::code::make;
use xm::code::pascal;
use xm::code::perl;
use xm::code::povray;
use xm::code::ruby;
use xm::code::sql;
use xm::code::plain;
"
highlight sourcecode - automatic mode
"}
sub detect {
my ($code_ref, $filename) = @_;
my $lang;
for $lang (keys %LANGUAGE)
{
if ( (($LANGUAGE{$lang}->{'filename'} ne '') &&
($filename =~ m/$LANGUAGE{$lang}->{filename}/)) ||
(($LANGUAGE{$lang}->{'regex'} ne '') &&
($$code_ref =~ m/$LANGUAGE{$lang}->{regex}/ )) )
{
return $lang;
};
};
return undef;
}
sub DO {
my $F;
my $code;
my $lang;
my $out;
for $F (@{@_[0]})
{
open F, "<$F" or next;
$code = join ('',<F>); close F;
$lang = detect (\$code, $F);
$lang = "plain" if not defined $lang; $out .= "<file name=\"".$F."\" type=\"".$lang."\">";
$out .= xm::code::func::DO($code,$LANGUAGE{$lang}{patterns});
$out .= "</file>\n\n";
}
return $out;
}
return xm::o::args_command(@_, DESC); }
return DO(xm::o::args_command(@_, DESC)); }
1;