--- loncom/homework/edit.pm	2005/03/10 02:33:30	1.90
+++ loncom/homework/edit.pm	2005/06/07 01:33:19	1.93
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # edit mode helpers
 #
-# $Id: edit.pm,v 1.90 2005/03/10 02:33:30 www Exp $
+# $Id: edit.pm,v 1.93 2005/06/07 01:33:19 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -29,7 +29,7 @@
 package Apache::edit; 
 
 use strict;
-use Apache::lonnet();
+use Apache::lonnet;
 use HTML::Entities();
 use Apache::lonlocal;
 
@@ -147,7 +147,7 @@ sub deletelist {
 }
 
 sub handle_delete {
-    if (!$ENV{"form.delete_$Apache::lonxml::curdepth"}) { return ''; }
+    if (!$env{"form.delete_$Apache::lonxml::curdepth"}) { return ''; }
     my ($space,$target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result=0;
     if ($space) {
@@ -222,9 +222,9 @@ sub innerinsertlist {
 }
 
 sub handle_insert {
-    if ($ENV{"form.insert_$Apache::lonxml::curdepth"} eq '') { return ''; }
+    if ($env{"form.insert_$Apache::lonxml::curdepth"} eq '') { return ''; }
     my $result;
-    my $tagnum = $ENV{"form.insert_$Apache::lonxml::curdepth"};
+    my $tagnum = $env{"form.insert_$Apache::lonxml::curdepth"};
     my $func=$Apache::lonxml::insertlist{"$tagnum.function"};
     if ($func eq 'default') {
 	my $newtag=$Apache::lonxml::insertlist{"$tagnum.tag"};
@@ -239,7 +239,7 @@ sub handle_insert {
 	    }
 	} else {
 	    my $newtag=$Apache::lonxml::insertlist{"$tagnum.tag"};
-	    &Apache::lonxml::error("Unable to insert tag $newtag, $func was not defined.");
+	    &Apache::lonxml::error("Unable to insert tag ".$Apache::lonxml::curdepth." ($tagnum) $newtag, func was not defined.");
 	}
     }
     return $result;
@@ -247,10 +247,10 @@ sub handle_insert {
 
 sub handle_insertafter {
     my $tagname=shift;
-    if ($ENV{"form.insert_after_$tagname\_$Apache::lonxml::curdepth"} eq '')
+    if ($env{"form.insert_after_$tagname\_$Apache::lonxml::curdepth"} eq '')
     { return ''; }
     my $result;
-    my $tagnum =$ENV{"form.insert_after_$tagname\_$Apache::lonxml::curdepth"};
+    my $tagnum =$env{"form.insert_after_$tagname\_$Apache::lonxml::curdepth"};
     my $func=$Apache::lonxml::insertlist{"$tagnum.function"};
     if ($func eq 'default') {
 	my $newtag=$Apache::lonxml::insertlist{"$tagnum.tag"};
@@ -520,7 +520,7 @@ sub editfield {
 	push @Apache::lonxml::htmlareafields,'homework_edit_'.
 	    $Apache::lonxml::curdepth;
     }
-    return $description."\n".'&nbsp;&nbsp;&nbsp;<textarea rows="'.$rows.
+    return $description."\n".'&nbsp;&nbsp;&nbsp;<textarea style="width:100%" rows="'.$rows.
 	'" cols="'.$cols.'" name="homework_edit_'.
 	$Apache::lonxml::curdepth.'" id="homework_edit_'.
 	$Apache::lonxml::curdepth.'">'.
@@ -532,12 +532,12 @@ sub editfield {
 sub modifiedfield {
     my ($endtag,$parser) = @_;
     my $result;
-#  foreach my $envkey (sort keys %ENV) {
-#    &Apache::lonxml::debug("$envkey ---- $ENV{$envkey}");
+#  foreach my $envkey (sort keys %env) {
+#    &Apache::lonxml::debug("$envkey ---- $env{$envkey}");
 #  }
 #  &Apache::lonxml::debug("I want homework_edit_$Apache::lonxml::curdepth");
-#  &Apache::lonxml::debug($ENV{"form.homework_edit_$Apache::lonxml::curdepth"});
-    $result=$ENV{"form.homework_edit_$Apache::lonxml::curdepth"};
+#  &Apache::lonxml::debug($env{"form.homework_edit_$Apache::lonxml::curdepth"});
+    $result=$env{"form.homework_edit_$Apache::lonxml::curdepth"};
     my $bodytext=&Apache::lonxml::get_all_text($endtag,$parser);
     # textareas throw away intial \n 
     if ($bodytext=~/^\n/) { $result="\n".$result; }
@@ -553,7 +553,7 @@ sub get_new_args {
 	#just want the string that it was set to
 	my $value=$token->[2]->{$arg};
 	my $element=&html_element_name($arg);
-	my $newvalue=$ENV{"form.$element"};
+	my $newvalue=$env{"form.$element"};
 	&Apache::lonxml::debug("for:$arg: cur is :$value: new is :$newvalue:");
 	if (defined($newvalue) && $value ne $newvalue) {
 	    if (ref($newvalue) eq 'ARRAY') {
@@ -654,12 +654,12 @@ sub select_arg {
     foreach my $option (@$list) {
 	my ($text,$value);
 	if ( ref($option) eq 'ARRAY') {
-	    $value='value="'.$$option[0].'"';
+	    $value='value="'.&HTML::Entities::encode($$option[0]).'"';
 	    $text=$$option[1];
 	    $option=$$option[0];
 	} else {
 	    $text=$option;
-	    $value='value="'.$option.'"';
+	    $value='value="'.&HTML::Entities::encode($option,'\'"&<>').'"';
 	}
 	if ( $selected eq $option ) {
 	    $optionlist.="<option $value selected=\"selected\">$text</option>\n";
@@ -683,12 +683,12 @@ sub select_or_text_arg {
     foreach my $option (@$list) {
 	my ($text,$value);
 	if ( ref($option) eq 'ARRAY') {
-	    $value='value="'.$$option[0].'"';
+	    $value='value="'.&HTML::Entities::encode($$option[0]).'"';
 	    $text=$$option[1];
 	    $option=$$option[0];
 	} else {
 	    $text=$option;
-	    $value='value="'.$option.'"';
+	    $value='value="'.&HTML::Entities::encode($option,'\'"&<>').'"';
 	}
 	if ( $selected eq $option ) {
 	    $optionlist.="<option $value selected=\"selected\">$text</option>\n";