[LON-CAPA-cvs] cvs: loncom /interface/spreadsheet Spreadsheet.pm assesscalc.pm

albertel lon-capa-cvs@mail.lon-capa.org
Tue, 23 Jan 2007 01:36:26 -0000


albertel		Mon Jan 22 20:36:26 2007 EDT

  Modified files:              
    /loncom/interface/spreadsheet	Spreadsheet.pm assesscalc.pm 
  Log:
  - allow [&EXPANDSUM()] to span lines
  
  
Index: loncom/interface/spreadsheet/Spreadsheet.pm
diff -u loncom/interface/spreadsheet/Spreadsheet.pm:1.73 loncom/interface/spreadsheet/Spreadsheet.pm:1.74
--- loncom/interface/spreadsheet/Spreadsheet.pm:1.73	Mon Jan 22 20:29:15 2007
+++ loncom/interface/spreadsheet/Spreadsheet.pm	Mon Jan 22 20:36:26 2007
@@ -1,5 +1,5 @@
 #
-# $Id: Spreadsheet.pm,v 1.73 2007/01/23 01:29:15 albertel Exp $
+# $Id: Spreadsheet.pm,v 1.74 2007/01/23 01:36:26 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -805,7 +805,7 @@
     my $self = shift;
     my $expression=shift;
     if ($expression=~/^\&/) {
-	my ($func,$var,$formula)=($expression=~/^\&(\w+)\(([^\;]+)\;(.*)\)/);
+	my ($func,$var,$formula)=($expression=~/^\&(\w+)\(([^\;]+)\;(.*)\)/s);
 	my @vars=split(/\W+/,$formula);
 	# make the list uniq
 	@vars = keys(%{{ map { $_ => 1 } @vars }});
@@ -892,7 +892,7 @@
             # Replace 'A0' with the value from 'A0'
             $t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g;
             # Replace parameters
-            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge;
+            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge;
         }
     }
     #
@@ -904,7 +904,7 @@
             $t{$cell}=$formula;
             $t{$cell}=~s/\.\.+/\,/g;
             $t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g;
-            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge;
+            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge;
         } elsif  ( $col  =~ /^[A-Z]$/  ) {
             if ($formula !~ /^\!/ && exists($self->{'constants'}->{$cell})
 		&& $self->{'constants'}->{$cell} ne '') {
@@ -915,7 +915,7 @@
             $t{$cell}=$formula;
             $t{$cell}=~s/\.\.+/\,/g;
             $t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g;
-            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge;
+            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge;
         }
     }
     %{$self->{'safe'}->varglob('t')}=%t;
Index: loncom/interface/spreadsheet/assesscalc.pm
diff -u loncom/interface/spreadsheet/assesscalc.pm:1.57 loncom/interface/spreadsheet/assesscalc.pm:1.58
--- loncom/interface/spreadsheet/assesscalc.pm:1.57	Wed Dec 20 21:54:19 2006
+++ loncom/interface/spreadsheet/assesscalc.pm	Mon Jan 22 20:36:26 2007
@@ -1,5 +1,5 @@
 #
-# $Id: assesscalc.pm,v 1.57 2006/12/21 02:54:19 albertel Exp $
+# $Id: assesscalc.pm,v 1.58 2007/01/23 01:36:26 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -852,7 +852,7 @@
             # Replace 'A0' with the value from 'A0'
             $t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g;
             # Replace parameters
-            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge;
+            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge;
         }
     }
     #
@@ -871,7 +871,7 @@
             $t{$cell}=$formula;
             $t{$cell}=~s/\.\.+/\,/g;
             $t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g;
-            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge;
+            $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge;
         }
     }
     # Put %t into the safe space