[interchange-cvs] interchange - heins modified lib/Vend/Interpolate.pm
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Tue Dec 24 11:44:00 2002
User: heins
Date: 2002-12-24 16:43:12 GMT
Modified: lib/Vend Interpolate.pm
Log:
* Allow % in filter arguments. This could conceivably be a problem for
someone who had a filter ".%s" or something, but I doubt there will
be many problems.
I wish I had come up with a better method for passing args, but
sometimes ITL doesn't make it easy.
Revision Changes Path
2.139 +15 -4 interchange/lib/Vend/Interpolate.pm
rev 2.139, prev_rev 2.138
Index: Interpolate.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Interpolate.pm,v
retrieving revision 2.138
retrieving revision 2.139
diff -u -r2.138 -r2.139
--- Interpolate.pm 8 Dec 2002 06:21:40 -0000 2.138
+++ Interpolate.pm 24 Dec 2002 16:43:12 -0000 2.139
@@ -1,6 +1,6 @@
# Vend::Interpolate - Interpret Interchange tags
#
-# $Id: Interpolate.pm,v 2.138 2002/12/08 06:21:40 mheins Exp $
+# $Id: Interpolate.pm,v 2.139 2002/12/24 16:43:12 mheins Exp $
#
# Copyright (C) 1996-2002 Red Hat, Inc. <interchange@redhat.com>
#
@@ -27,7 +27,7 @@
require Exporter;
@ISA = qw(Exporter);
-$VERSION = substr(q$Revision: 2.138 $, 10);
+$VERSION = substr(q$Revision: 2.139 $, 10);
@EXPORT = qw (
@@ -674,7 +674,7 @@
for (@filters) {
next unless length($_);
@args = @passed_args;
- if(/%/) {
+ if(/^[^.]*%/) {
$value = sprintf($_, $value);
next;
}
@@ -1167,7 +1167,18 @@
return $_[0];
},
'strftime' => sub {
- return scalar localtime(shift);
+ my $time = shift(@_);
+ shift(@_);
+ my $fmt = shift(@_);
+ while(my $add = shift(@_)) {
+ $fmt .= " $add";
+ }
+ if($fmt) {
+ return POSIX::strftime($fmt, localtime($time));
+ }
+ else {
+ return scalar localtime($time);
+ }
},
'encode_entities' => sub {
return HTML::Entities::encode(shift, $ESCAPE_CHARS::std);