--- loncom/xml/lonxml.pm 2001/06/08 20:01:45 1.88 +++ loncom/xml/lonxml.pm 2001/06/13 20:02:28 1.93 @@ -9,7 +9,8 @@ # 5/10 Scott Harrison # 5/26 Gerd Kortemeyer # 5/27 H. K. Ng -# 6/2,6/3,6/8 Gerd Kortemeyer +# 6/2,6/3,6/8,6/9 Gerd Kortemeyer +# 6/12,6/13 H. K. Ng package Apache::lonxml; use vars @@ -19,6 +20,7 @@ use HTML::TokeParser; use Safe; use Safe::Hole; use Math::Cephes qw(:trigs :hypers :bessels erf erfc); +use Math::Random qw(:all); use Opcode; sub register { @@ -153,6 +155,9 @@ ENDPARM menu.currentStale=1; menu.switchbutton (3,1,'reload.gif','return','location','go(currentURL)'); + menu.clearbut(7,1); + menu.clearbut(7,2); + menu.clearbut(7,3); menu.menucltim=menu.setTimeout( 'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);', 2000); @@ -211,7 +216,6 @@ sub printalltags { } sub xmlparse { - my ($target,$content_file_string,$safeinit,%style_for_target) = @_; if ($target eq 'meta') { $Apache::lonxml::redirection = 0; @@ -413,11 +417,6 @@ sub callsub { { my $sub1; no strict 'refs'; - if ($target eq 'edit' && $token->[0] eq 'S') { - $currentstring = &Apache::edit::tag_start($target,$token,$tagstack, - $parstack,$parser, - $safeeval,$style); - } my $tag=$token->[1]; my $space=$Apache::lonxml::alltags{$tag}; if (!$space) { @@ -492,10 +491,31 @@ sub init_safespace { $safehole->wrap(\&Math::Cephes::y1,$safeeval,'&y1'); $safehole->wrap(\&Math::Cephes::yn,$safeeval,'&yn'); $safehole->wrap(\&Math::Cephes::yv,$safeeval,'&yv'); - + $safehole->wrap(\&Math::Random::random_beta,$safeeval,'&math_random_beta'); + $safehole->wrap(\&Math::Random::random_chi_square,$safeeval,'&math_random_chi_square'); + $safehole->wrap(\&Math::Random::random_exponential,$safeeval,'&math_random_exponential'); + $safehole->wrap(\&Math::Random::random_f,$safeeval,'&math_random_f'); + $safehole->wrap(\&Math::Random::random_gamma,$safeeval,'&math_random_gamma'); + $safehole->wrap(\&Math::Random::random_multivariate_normal,$safeeval,'&math_random_multivariate_normal'); + $safehole->wrap(\&Math::Random::random_multinomial,$safeeval,'&math_random_multinomial'); + $safehole->wrap(\&Math::Random::random_noncentral_chi_square,$safeeval,'&math_random_noncentral_chi_square'); + $safehole->wrap(\&Math::Random::random_noncentral_f,$safeeval,'&math_random_noncentral_f'); + $safehole->wrap(\&Math::Random::random_normal,$safeeval,'&math_random_normal'); + $safehole->wrap(\&Math::Random::random_permutation,$safeeval,'&math_random_permutation'); + $safehole->wrap(\&Math::Random::random_permuted_index,$safeeval,'&math_random_permuted_index'); + $safehole->wrap(\&Math::Random::random_uniform,$safeeval,'&math_random_uniform'); + $safehole->wrap(\&Math::Random::random_poisson,$safeeval,'&math_random_poisson'); + $safehole->wrap(\&Math::Random::random_uniform_integer,$safeeval,'&math_random_uniform_integer'); + $safehole->wrap(\&Math::Random::random_negative_binomial,$safeeval,'&math_random_negative_binomial'); + $safehole->wrap(\&Math::Random::random_binomial,$safeeval,'&math_random_binomial'); + $safehole->wrap(\&Math::Random::random_seed_from_phrase,$safeeval,'&random_seed_from_phrase'); + $safehole->wrap(\&Math::Random::random_set_seed_from_phrase,$safeeval,'&random_set_seed_from_phrase'); + $safehole->wrap(\&Math::Random::random_get_seed,$safeeval,'&random_get_seed'); + $safehole->wrap(\&Math::Random::random_set_seed,$safeeval,'&random_set_seed'); + #need to inspect this class of ops # $safeeval->deny(":base_orig"); - $safeinit .= ';$external::target='.$target.';'; + $safeinit .= ';$external::target="'.$target.'";'; $safeinit .= ';$external::randomseed='.&Apache::lonnet::rndseed().';'; &Apache::run::run($safeinit,$safeeval); } @@ -830,11 +850,13 @@ sub register_insert { my $line = $data[$i]; if ( $line =~ /^\#/ || $line =~ /^\s*\n/) { next; } if ( $line =~ /TABLE/ ) { last; } - my ($tag,$descrip,$function,$show) = split(/,/, $line); + my ($tag,$descrip,$color,$function,$show) = split(/,/, $line); $insertlist{"$tagnum.tag"} = $tag; $insertlist{"$tagnum.description"} = $descrip; + $insertlist{"$tagnum.color"} = $color; $insertlist{"$tagnum.function"} = $function; $insertlist{"$tagnum.show"}= $show; + $insertlist{"$tag.num"}=$tagnum; $tagnum++; } $i++; #skipping TABLE line