--- loncom/interface/loncommon.pm 2004/10/21 09:53:44 1.221 +++ loncom/interface/loncommon.pm 2004/10/23 00:38:01 1.223 @@ -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.223 2004/10/23 00:38:01 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3732,31 +3732,31 @@ sub connection_aborted { return $c->aborted(); } -# # Escapes strings that may have embedded 's that will be put into -# javascript 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 -# and must also be escaped. -# Parameters: -# input - The string to escape. -# Returns: -# The escaped string (' replaced by \' and \ replaced by \\). -# -sub javascript_escape { +# strings as 'strings'. +sub escape_single { 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; # Escape the \'s..(must be first)> $input =~ s/\'/\\\'/g; # Esacpe the 's.... - return $input; } - +# Same as escape_single, but escape's "'s This +# can be used for "strings" +sub escape_double { + my ($input) = @_; + $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. +sub escape_url { + my ($url) = @_; + my @urlslices = split(/\//, $url); + my $lastitem = &Apache::lonnet::escape(pop(@urlslices)); + return join('/',@urlslices).'/'.$lastitem; +} =pod =back