summaryrefslogtreecommitdiff
path: root/modules/TemplateParser.pm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/TemplateParser.pm')
-rw-r--r--modules/TemplateParser.pm16
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');