diff options
Diffstat (limited to 'modules/TemplateParser.pm')
-rw-r--r-- | modules/TemplateParser.pm | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/TemplateParser.pm b/modules/TemplateParser.pm index 723e524a..39f9762e 100644 --- a/modules/TemplateParser.pm +++ b/modules/TemplateParser.pm @@ -92,6 +92,7 @@ my %keywords = ('if' => 0, 'deref' => 0, 'set' => 0, 'is_relative' => $get_type|$doif_type|$get_combined_type, + 'extension' => $get_type, ); my %target_type_vars = ('type_is_static' => 1, @@ -388,7 +389,7 @@ sub get_value { if (!defined $value && $name =~ /^(.*)\->(\w+)/) { my $pre = $1; my $post = $2; - my $base = $self->get_value($pre); + my $base = $self->get_value($pre); if (defined $base) { $value = $self->{'prjc'}->get_special_value( @@ -2014,6 +2015,19 @@ sub handle_is_relative { } +sub get_extension { + my($self, $name) = @_; + my $val = $self->get_value_with_default($name); + return ($val =~ /(\.[^\.]+)$/ ? $1 : ''); +} + + +sub handle_extension { + my($self, $name) = @_; + $self->append_current($self->get_extension($name)); +} + + sub prepare_parameters { my($self, $prefix) = @_; my $input = $self->get_value($prefix . '->input_file'); |