## doStatement --
##
## decide if $in is a statement, and if so,
-## - update the dbm
+## - update the db
## - return feedback statement
##
## otherwise return
## - null for confused.
##
-if (&IsParam("useStrict")) { use strict; }
+# use strict; # TODO
sub doStatement {
my($in) = @_;
if ($in =~ /(^|\s)(is|are)(\s|$)/i) {
my($lhs, $mhs, $rhs) = ($`, $&, $');
- $lhs =~ tr/A-Z/a-z/;
- $lhs =~ s/^(the|da|an?)\s+//i; # discard article
+ # allows factoid arguments to be updated. -lear.
+ $lhs =~ s/^(CMD: )?(.*)/$1||"" . lc $2/e;
+
+ # discard article.
+ $lhs =~ s/^(the|da|an?)\s+//i;
# remove excessive initial and final whitespaces.
$lhs =~ s/^\s+|\s+$//g;
# break if either lhs or rhs is NULL.
if ($lhs eq "" or $rhs eq "") {
- return;
+ return "NOT-A-STATEMENT";
}
# lets check if it failed.
if (&validFactoid($lhs,$rhs) == 0) {
if ($addressed) {
&status("IGNORE statement: <$who> $message");
- &performReply( &getRandom(keys %{$lang{'confused'}}) );
+ &performReply( &getRandom(keys %{ $lang{'confused'} }) );
}
return;
}
}
}
- if (&update($lhs, $mhs, $rhs)) {
- return; # success.
- }
+ # success.
+ return if (&update($lhs, $mhs, $rhs));
}
return "CONTINUE";