[interchange-cvs] interchange - heins modified lib/Vend/Interpolate.pm
interchange-core@interchange.redhat.com
interchange-core@interchange.redhat.com
Wed Feb 6 17:35:01 2002
User: heins
Date: 2002-02-06 22:34:09 GMT
Modified: lib/Vend Interpolate.pm
Log:
* Simplify form escaping to not use escape_mv, was not working.
* Should make much more efficient as well, we use this a lot.
Revision Changes Path
2.57 +18 -4 interchange/lib/Vend/Interpolate.pm
rev 2.57, prev_rev 2.56
Index: Interpolate.pm
===================================================================
RCS file: /anon_cvs/repository/interchange/lib/Vend/Interpolate.pm,v
retrieving revision 2.56
retrieving revision 2.57
diff -u -r2.56 -r2.57
--- Interpolate.pm 5 Feb 2002 01:33:11 -0000 2.56
+++ Interpolate.pm 6 Feb 2002 22:34:09 -0000 2.57
@@ -1,6 +1,6 @@
# Vend::Interpolate - Interpret Interchange tags
#
-# $Id: Interpolate.pm,v 2.56 2002/02/05 01:33:11 mheins Exp $
+# $Id: Interpolate.pm,v 2.57 2002/02/06 22:34:09 mheins Exp $
#
# Copyright (C) 1996-2001 Red Hat, Inc. <interchange@redhat.com>
#
@@ -27,7 +27,7 @@
require Exporter;
@ISA = qw(Exporter);
-$VERSION = substr(q$Revision: 2.56 $, 10);
+$VERSION = substr(q$Revision: 2.57 $, 10);
@EXPORT = qw (
@@ -2857,6 +2857,21 @@
return join '/', 'scan', escape_mv('/', $scan);
}
+sub escape_form {
+ my $val = shift;
+
+ $val =~ s/^\s+//mg;
+ $val =~ s/\s+$//mg;
+ my @args = split /\n+/, $val;
+
+ for(@args) {
+ s!\0!-_NULL_-!g;
+ s!(\w=)(.*)!$1 . esc($2)!eg
+ or (undef $_, next);
+ }
+ return join $Global::UrlJoiner, grep length($_), @args;
+}
+
sub escape_mv {
my ($joiner, $scan, $not_scan, $esc) = @_;
@@ -2919,8 +2934,7 @@
$arg = '' if ! $arg;
$arg = "mv_arg=$arg\n" if $arg && $arg !~ /\n/;
$extra .= $arg . $opt->{form};
- $extra = escape_mv($Global::UrlJoiner, $extra, 1);
- return $href . '?' . $extra;
+ return $href . '?' . escape_form($extra);
}
PAGELINK: {