--- loncom/interface/loncommon.pm 2004/10/21 09:53:44 1.221 +++ loncom/interface/loncommon.pm 2004/10/21 11:17:00 1.222 @@ -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 @@ sub connection_aborted { # # 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 @@ sub connection_aborted { # 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 @@ sub javascript_escape { 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