[LON-CAPA-cvs] cvs: loncom /interface lonspreadsheet.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Mon, 29 Apr 2002 21:06:30 -0000
matthew Mon Apr 29 17:06:30 2002 EDT
Modified files:
/loncom/interface lonspreadsheet.pm
Log:
Added ability in &expandnamed to use [ModuleWeight] instead of
[parameter_0_ModuleWeights]. Added a few comments to &sett.
Index: loncom/interface/lonspreadsheet.pm
diff -u loncom/interface/lonspreadsheet.pm:1.87 loncom/interface/lonspreadsheet.pm:1.88
--- loncom/interface/lonspreadsheet.pm:1.87 Thu Apr 18 16:21:38 2002
+++ loncom/interface/lonspreadsheet.pm Mon Apr 29 17:06:30 2002
@@ -1,5 +1,5 @@
#
-# $Id: lonspreadsheet.pm,v 1.87 2002/04/18 20:21:38 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.88 2002/04/29 21:06:30 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -742,7 +742,25 @@
return 0;
}
} else {
- return '$c{\''.$expression.'\'}';
+ # it is not a function, so it is a parameter name
+ # We should do the following:
+ # 1. Take the list of parameter names
+ # 2. look through the list for ones that match the parameter we want
+ # 3. If there are no collisions, return the one that matches
+ # 4. If there is a collision, return 'bad parameter name error'
+ my $returnvalue = '';
+ my @matches = ();
+ $#matches = -1;
+ study $expression;
+ foreach $parameter (keys(%c)) {
+ push @matches,$parameter if ($parameter =~ /$expression/);
+ }
+ if ($#matches == 0) {
+ $returnvalue = '$c{\''.$matches[0].'\'}';
+ } else {
+ $returnvalue = "'bad parameter name : $expression'";
+ }
+ return $returnvalue;
}
}
@@ -762,11 +780,17 @@
if ($_=~/A(\d+)/) {
my $trow=$1;
if ($trow) {
+ # Get the name of this cell
my $lb=$col.$trow;
+ # Grab the template declaration
$t{$lb}=$f{'template_'.$col};
+ # Replace '#' with the row number
$t{$lb}=~s/\#/$trow/g;
+ # Replace '....' with ','
$t{$lb}=~s/\.\.+/\,/g;
+ # Replace 'A0' with the value from 'A0'
$t{$lb}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g;
+ # Replace parameters
$t{$lb}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.&expandnamed($2)/ge;
}
}
@@ -789,6 +813,8 @@
}
}
}
+ # For some reason 'A0' gets special treatment... This seems superfluous
+ # but I imagine it is here for a reason.
$t{'A0'}=$f{'A0'};
$t{'A0'}=~s/\.\.+/\,/g;
$t{'A0'}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g;