Merge remote branch 'kc/new/enh/bug_5917' into kcmaster

This commit is contained in:
Chris Cormack 2011-04-19 16:21:40 +12:00
commit ad37f3e5e7
3 changed files with 6 additions and 4 deletions

View File

@ -39,7 +39,7 @@ sub build_tokens{
$self->{filename} = $filename;
$self->handler(start => "start", "self, line, tagname, attr, text"); #signature is start( self, linenumber, tagname, hash of attributes, origional text )
$self->handler(text => "text", "self, line, text, is_cdata"); #signature is text( self, linenumber, origional text, is_cdata )
$self->handler(end => "end", "self, line, tag, attr, text"); #signature is end( self, linenumber, tagename, origional text )
# $self->handler(end => "end", "self, line, tag, attr, text"); #signature is end( self, linenumber, tagename, origional text )
$self->handler(declaration => "declaration", "self, line, text, is_cdata"); # declaration
# $self->handler(comment => "comment", "self, line, text, is_cdata"); # comments
# $self->handler(default => "default", "self, line, text, is_cdata"); # anything else
@ -55,7 +55,6 @@ sub text{
my $line = shift;
my $work = shift; # original text
my $is_cdata = shift;
while($work){
# if there is a template_toolkit tag
if( $work =~ m/\[%.*?\]/ ){
@ -74,6 +73,7 @@ sub text{
} else {
# If there is some left over work, treat it as text token
my $t = TmplToken->new( $work, ($is_cdata? TmplTokenType::CDATA : TmplTokenType::TEXT), $line, $self->{filename} );
push @tokens, $t;
last;
}

View File

@ -324,7 +324,8 @@ sub next_token {
if( $next->type == TmplTokenType::TEXT ){
push @parts, $next;
}
elsif( $next->type == TmplTokenType::DIRECTIVE && $next->string =~ m/\[%\s*\w+\s*%\]/ ){
# elsif( $next->type == TmplTokenType::DIRECTIVE && $next->string =~ m/\[%\s*\w+\s*%\]/ ){
elsif( $next->type == TmplTokenType::DIRECTIVE ){
push @parts, $next;
}
elsif ( $next->type == TmplTokenType::CDATA){

View File

@ -174,7 +174,8 @@ EOF
my $fmt = TmplTokenizer::_formalize( $param );
$fmt =~ s/^%/%$n\$/;
if ($type == TmplTokenType::DIRECTIVE) {
$type = $param->string =~ /(TMPL_[A-Z]+)+/is? $1: 'ERROR';
$type = "Template::Toolkit Directive";
# $type = $param->string =~ /[%()+/is? $1: 'ERROR';
my $name = $param->string =~ /\bname=(["']?)([^\s"']+)\1/is?
$2: undef;
printf OUTPUT "#. %s: %s\n", $fmt,