version 1.25, 2008/08/21 12:08:32
|
version 1.33, 2017/03/06 17:01:59
|
Line 51 sub maximareply {
|
Line 51 sub maximareply {
|
print $socket &escape($cmd)."\n"; |
print $socket &escape($cmd)."\n"; |
my $reply=<$socket>; |
my $reply=<$socket>; |
chomp($reply); |
chomp($reply); |
if ($reply=~/^Incorrect/) { $reply='Error: '.$reply; } |
if ($reply=~/^Incorrect/i) { $reply='Error: '.$reply; } |
return &unescape($reply); |
return &unescape($reply); |
} else { |
} else { |
return 'Error: no connection.'; |
return 'Error: no connection.'; |
Line 61 sub maximareply {
|
Line 61 sub maximareply {
|
sub blacklisted { |
sub blacklisted { |
my ($cmd)=@_; |
my ($cmd)=@_; |
foreach my $forbidden ( |
foreach my $forbidden ( |
'\? ','\?','%i','%o','batch','block' |
'\? ','\?','%i\d+','%o','batch','block' |
,'compil','concat','describe','display2d','file','inchar' |
,'compil','concat','describe','display2d','file','inchar' |
,'includ','lisp','load','outchar','plot','quit' |
,'includ','lisp','load','outchar','plot','quit' |
,'read','reset','save','stin','stout','stringout' |
,'read','reset','save','stin','stout','stringout' |
Line 117 sub runscript {
|
Line 117 sub runscript {
|
|
|
sub maxima_cas_formula_fix { |
sub maxima_cas_formula_fix { |
my ($expression)=@_; |
my ($expression)=@_; |
return &Apache::response::implicit_multiplication($expression); |
$expression=&Apache::response::implicit_multiplication($expression); |
|
$expression=~s/([^\w\%])pi/$1\%pi/gs; |
|
return $expression; |
} |
} |
|
|
sub maxima_run { |
sub maxima_run { |
Line 153 sub maxima_eval {
|
Line 155 sub maxima_eval {
|
|
|
sub compareterms { |
sub compareterms { |
my ($socket,$terma,$termb)=@_; |
my ($socket,$terma,$termb)=@_; |
|
if ($terma =~ m{[.*^/\s]+(|\(\s*\((|[^(]+))$}) { |
|
return 'Error: blacklisted'; |
|
} |
my $difference=$terma.'-('.$termb.')'; |
my $difference=$terma.'-('.$termb.')'; |
if (&blacklisted($difference)) { return 'Error: blacklisted'; } |
if (&blacklisted($difference)) { return 'Error: blacklisted'; } |
my $reply=&maximareply($socket,'trigsimp(trigreduce('.$difference.'));'); |
my $reply=&maximareply($socket,'trigsimp(trigreduce('.$difference.'));'); |