--- loncom/interface/lonhtmlgateway.pm 2010/04/27 20:29:25 1.3 +++ loncom/interface/lonhtmlgateway.pm 2010/05/04 19:45:05 1.4 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # gateway for html input/output to be properly parsed and handled # -# $Id: lonhtmlgateway.pm,v 1.3 2010/04/27 20:29:25 faziophi Exp $ +# $Id: lonhtmlgateway.pm,v 1.4 2010/05/04 19:45:05 faziophi Exp $ # # Copyright Michigan State University Board of Trustees # @@ -548,7 +548,9 @@ sub process_outgoing_html { if ($self->{target} ne 'tex') { $output .= &Apache::lontexconvert::smiley($token->[1]); } else { - $output .= $token->[1]; + my $t = $token->[1]; + $t =~ s/([^\n\r\t &<>!\#%\(-;=?-~])/num_entity($1)/ge; + $output .= $t; } } elsif ($token->[0] eq 'D' || $token->[0] eq 'C') { $output .= $token->[1]; @@ -565,7 +567,6 @@ sub process_outgoing_html { } } } - return $output; } @@ -637,6 +638,10 @@ sub get_block_level_tags { return \@block; } +sub num_entity { + sprintf "&#x%X;", ord($_[0]); +} + ############################################## ############################################## @@ -735,7 +740,11 @@ sub parse_md_tag { sub parse_m_tag { my $self = shift; my $input = shift; - return &Apache::lontexconvert::to_convert($input, $self->{target}); + if ($self->{target} ne 'tex') { + return &Apache::lontexconvert::to_convert($input, $self->{target}); + } else { + return ''.$input.''; + } } sub parse_chem_tag { @@ -806,7 +815,7 @@ Phil Fazio =head1 VERSION -$Id: lonhtmlgateway.pm,v 1.3 2010/04/27 20:29:25 faziophi Exp $ +$Id: lonhtmlgateway.pm,v 1.4 2010/05/04 19:45:05 faziophi Exp $ =cut