[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm
foxr
lon-capa-cvs@mail.lon-capa.org
Thu, 21 Oct 2004 11:17:01 -0000
foxr Thu Oct 21 07:17:01 2004 EDT
Modified files:
/loncom/interface loncommon.pm
Log:
- Renamed javascript_escape to escape_single
- Added escape_double to escape double quotes.
- Added escape_url to escape the last element of a url using
Apache::lonnet::escape on the split up URL.
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.221 loncom/interface/loncommon.pm:1.222
--- loncom/interface/loncommon.pm:1.221 Thu Oct 21 05:53:44 2004
+++ loncom/interface/loncommon.pm Thu Oct 21 07:17:00 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.221 2004/10/21 09:53:44 foxr Exp $
+# $Id: loncommon.pm,v 1.222 2004/10/21 11:17:00 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -3734,7 +3734,7 @@
#
# Escapes strings that may have embedded 's that will be put into
-# javascript strings as 'strings'.
+# strings as 'strings'.
# The assumptions are:
# There has been no effort to escape ' with \'
# Any \'s in the string are intended to be there as part of the URL
@@ -3744,7 +3744,7 @@
# Returns:
# The escaped string (' replaced by \' and \ replaced by \\).
#
-sub javascript_escape {
+sub escape_single {
my ($input) = @_;
# I imagine a regexp wizard could combine the two expressions below.
@@ -3755,8 +3755,48 @@
return $input;
}
+# Same as escape_single, but escape's "'s This
+# can be used for "strings"
+#
+# Parameters:
+# input - The string to escape.
+# Returns:
+# The escaped string (" replaced by \" and \ replaced by \\).
+#
+sub escape_double {
+ my ($input) = @_;
+
+ # I imagine a regexp wizard could combine the two expressions below.
+ # If you do you might want to comment the result.
+
+ $input =~ s/\\/\\\\/g; # Escape the /'s..(must be first)>
+ $input =~ s/\"/\\\"/g; # Esacpe the "s....
+ return $input;
+}
+#
+# Escapes the last element of a full URL.
+#
+# Parameters:
+# url - The url to escape.
+# Returns:
+# The url with the last element escaped via lonnet::escape.
+#
+sub escape_url {
+ my ($url) = @_;
+ my @urlslices = split(/\//, $url);
+ my $lastitem = $urlslices[scalar(@urlslices) -1];
+ $lastitem = &Apache::lonnet::escape($lastitem);
+
+ my $escaped_url;
+ for (my $i = 0; $i < scalar(@urlslices) -1; $i++) {
+ $escaped_url .= $urlslices[$i] .'/';
+ }
+ $escaped_url .= $lastitem ;
+
+ return $escaped_url;
+}
=pod
=back