--- loncom/xml/lonxml.pm 2001/05/13 21:40:32 1.75 +++ loncom/xml/lonxml.pm 2001/05/15 20:50:03 1.76 @@ -10,7 +10,7 @@ package Apache::lonxml; use vars -qw(@pwd @outputstack $redirection $import @extlinks $metamode $evaluate %insertlist); +qw(@pwd @outputstack $redirection $import @extlinks $metamode $evaluate %insertlist @namespace); use strict; use HTML::TokeParser; use Safe; @@ -60,6 +60,9 @@ $evaluate = 1; # data structure for eidt mode, determines what tags can go into what other tags %insertlist=(); +#stores the list of active tag namespaces +@namespace=(); + sub xmlbegin { my $output=''; if ($ENV{'browser.mathml'}) { @@ -376,6 +379,7 @@ sub callsub { } elsif ($target eq 'modified') { if ($token->[0] eq 'S') { $currentstring = $token->[4]; + $currentstring.=&Apache::edit::handle_insert(); } else { $currentstring = $token->[2]; } @@ -642,54 +646,36 @@ sub warning { } } -#Should allow multiple definitions of the same tag name -sub register_insert2 { - my @data = split /\n/, &Apache::lonnet::getfile('/home/httpd/lonTabs/insertlist.tab'); - my $i; - my @order; - for ($i=0;$i < $#data; $i++) { - my $line = $data[$i]; - if ( $line =~ /^\#/ || $line =~ /^\s*\n/) { next; } - if ( $line =~ /TABLE/ ) { last; } - my ($tag,$descrip,$function,$show) = split(/,/, $line); - if ($show eq 'no') { next; } - $insertlist{"$i.tag"} = $tag; - $insertlist{"$i.description"} = $descrip; - $insertlist{"$i.function"} = $function; - } - for (;$i < $#data;$i++) { - my $line = $data[$i]; - my ($tag,@which) = split(/ +/,$line); - for (my $j=0;$j <$#which;$j++) { - if ( $which[$j] eq 'Y' ) { - push(@{ $insertlist{"$tag.which"} },$j); - } - } - } -} - sub register_insert { my @data = split /\n/, &Apache::lonnet::getfile('/home/httpd/lonTabs/insertlist.tab'); my $i; + my $tagnum=0; my @order; for ($i=0;$i < $#data; $i++) { my $line = $data[$i]; if ( $line =~ /^\#/ || $line =~ /^\s*\n/) { next; } if ( $line =~ /TABLE/ ) { last; } my ($tag,$descrip,$function,$show) = split(/,/, $line); - if ($show eq 'no') { next; } - $insertlist{"$tag.description"} = $descrip; - $insertlist{"$tag.function"} = $function; - push (@order,$tag); + $insertlist{"$tagnum.tag"} = $tag; + $insertlist{"$tagnum.description"} = $descrip; + $insertlist{"$tagnum.function"} = $function; + $insertlist{"$tagnum.show"}= $show; + $tagnum++; } + $i++; #skipping TABLE line + $tagnum = 0; for (;$i < $#data;$i++) { my $line = $data[$i]; - my ($tag,@which) = split(/ +/,$line); + my ($mnemonic,@which) = split(/ +/,$line); + my $tag = $insertlist{"$tagnum.tag"}; for (my $j=0;$j <$#which;$j++) { if ( $which[$j] eq 'Y' ) { - push(@{ $insertlist{"$tag.which"} },$order[$j]); + if ($insertlist{"$j.show"} ne 'no') { + push(@{ $insertlist{"$tag.which"} },$j); + } } } + $tagnum++; } } 1;