--- loncom/xml/lontexconvert.pm 2004/03/09 15:09:14 1.34
+++ loncom/xml/lontexconvert.pm 2004/10/12 22:55:22 1.40
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# TeX Conversion Module
#
-# $Id: lontexconvert.pm,v 1.34 2004/03/09 15:09:14 www Exp $
+# $Id: lontexconvert.pm,v 1.40 2004/10/12 22:55:22 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -76,8 +76,8 @@ sub header {
my $time=time;
&init_tth();
return &Apache::lonxml::xmlbegin().
- &Apache::lonxml::fontsettings().
"\n
\n".
+ &Apache::lonxml::fontsettings().
&Apache::lonmenu::registerurl(undef,'tex').
"\n\n";
}
@@ -85,35 +85,54 @@ sub header {
# ================================================================== Conversion
$Apache::lontexconvert::messedup=0;
+
+# we need this routine because &converted can get called from inside
+# of the safespace (through &xmlparse('stuff') which doesn't
+# allow the opcode for alarm, so we need to compile this before we get
+# into the safe space since opcode checks only occur at compile time
+sub convert_real {
+ my ($texstring)=@_;
+ my ($xmlstring,$errorstring);
+ local $SIG{SEGV}=sub { $Apache::lontexconvert::messedup=1; die; };
+ local $SIG{ALRM}=sub {
+ &Apache::lonnet::logthis("ALRM");
+ $xmlstring='['.&mt("TeX unconverted due to errors").']';
+ $Apache::lontexconvert::messedup=1;
+ die &mt("TeX unconverted due to errors");
+ };
+ alarm($Apache::lonnet::perlvar{'lonScriptTimeout'});
+ if ($ENV{'browser.mathml'}) {
+ $xmlstring=&tth::ttm($$texstring);
+ $xmlstring=~s/\