[interchange-cvs] interchange - heins modified lib/Vend/Interpolate.pm

interchange-core@icdevgroup.org interchange-core@icdevgroup.org
Sun Dec 1 11:29:00 2002


User:      heins
Date:      2002-12-01 16:28:45 GMT
Modified:  lib/Vend Interpolate.pm
Log:
* Make sure JavaScript image callouts are not escaped if in pieces -- an
  image should never begin with a single-quote anyway.

* Stop re-escaping already-escaped form args in escape_form().

Revision  Changes    Path
2.137     +14 -16    interchange/lib/Vend/Interpolate.pm


rev 2.137, prev_rev 2.136
Index: Interpolate.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Interpolate.pm,v
retrieving revision 2.136
retrieving revision 2.137
diff -u -r2.136 -r2.137
--- Interpolate.pm	28 Nov 2002 17:12:22 -0000	2.136
+++ Interpolate.pm	1 Dec 2002 16:28:45 -0000	2.137
@@ -1,6 +1,6 @@
 # Vend::Interpolate - Interpret Interchange tags
 # 
-# $Id: Interpolate.pm,v 2.136 2002/11/28 17:12:22 kwalsh Exp $
+# $Id: Interpolate.pm,v 2.137 2002/12/01 16:28:45 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.136 $, 10);
+$VERSION = substr(q$Revision: 2.137 $, 10);
 
 @EXPORT = qw (
 
@@ -468,11 +468,11 @@
 			$Vend::Cfg->{ImageDir};
 
 		if ($dir) {
-			$$text =~ s#(<i\w+\s+[^>]*?src=")(?!\w+:)([^/][^"]+)#
+			$$text =~ s#(<i\w+\s+[^>]*?src=")(?!\w+:)([^/'][^"]+)#
 						$1 . $dir . $2#ige;
-	        $$text =~ s#(<body\s+[^>]*?background=")(?!\w+:)([^/][^"]+)#
+	        $$text =~ s#(<body\s+[^>]*?background=")(?!\w+:)([^/'][^"]+)#
 						$1 . $dir . $2#ige;
-	        $$text =~ s#(<t(?:[dhr]|able)\s+[^>]*?background=")(?!\w+:)([^/][^"]+)#
+	        $$text =~ s#(<t(?:[dhr]|able)\s+[^>]*?background=")(?!\w+:)([^/'][^"]+)#
 						$1 . $dir . $2#ige;
 		}
 	}
@@ -3065,17 +3065,15 @@
 	$val =~ s/^\s+//mg;
 	$val =~ s/\s+$//mg;
 	my @args;
-	if($val =~ /^\S+=\S+=\S*$/) {
-		$val = Vend::Util::unhexify($val);
-		@args = split $Global::UrlSplittor, $val;
-	}
-	else {
-		$val =~ s/^\s+//mg;
-		$val =~ s/\s+$//mg;
-		@args = split /\n+/, $val;
-		for(@args) {
-			s/^(.*?=)(.+)/$1 . Vend::Util::unhexify($2)/ge;
-		}
+
+	## Already escaped, return
+	return $val if $val =~ /^\S+=\S+=\S*$/;
+
+	$val =~ s/^\s+//mg;
+	$val =~ s/\s+$//mg;
+	@args = split /\n+/, $val;
+	for(@args) {
+		s/^(.*?=)(.+)/$1 . Vend::Util::unhexify($2)/ge;
 	}
 
 	for(@args) {