--- loncom/xml/lontexconvert.pm 2003/03/17 16:52:28 1.15.2.1 +++ loncom/xml/lontexconvert.pm 2003/02/27 21:01:39 1.19 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # TeX Conversion Module # -# $Id: lontexconvert.pm,v 1.15.2.1 2003/03/17 16:52:28 albertel Exp $ +# $Id: lontexconvert.pm,v 1.19 2003/02/27 21:01:39 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -44,8 +44,10 @@ package Apache::lontexconvert; use strict; use tth; use vars qw($errorstring); +use Apache(); use Apache::lonmsg; use Apache::lonxml; +use Apache::lonmenu; # ====================================================================== Header @@ -70,18 +72,22 @@ sub header { return &Apache::lonxml::xmlbegin(). &Apache::lonxml::fontsettings(). "\n\n". - &Apache::lonxml::registerurl(undef,'tex'). + &Apache::lonmenu::registerurl(undef,'tex'). "\n\n"; } # ================================================================== Conversion +$Apache::lontexconvert::messedup=0; sub converted { my $texstring=shift; my $xmlstring='[UNDISPLAYABLE]'; + if ($Apache::lontexconvert::messedup) { + return '[Uncoverted Due To Previous Errors]'; + } eval(<<'ENDCONV'); - { - local $SIG{SEGV}=sub { die; }; + { + local $SIG{SEGV}=sub { $Apache::lontexconvert::messedup=1; die; }; if ($ENV{'browser.mathml'}) { $xmlstring=&tth::ttm($$texstring); $xmlstring=~s/\/\/g; @@ -94,6 +100,12 @@ sub converted { } } ENDCONV + if ($Apache::lontexconvert::messedup || &tth::tthmessedup()) { + &Apache::lonnet::logthis("Trying to kill myself"); + $Apache::lontexconvert::messedup=1; + my $request=Apache->request(); + $request->child_terminate(); + } return $xmlstring; } @@ -123,6 +135,7 @@ sub to_convert { sub msgtexconverted { my $message=shift; + $errorstring=''; if ($ENV{'browser.mathml'}) { &tth::ttminit(); if ($ENV{'browser.unicode'}) {