local($reply) = "";
local $finalQMark = $query =~ s/\?+\s*$//;
$finalQMark += $query =~ s/\?\s*$//;
+ $query =~ s/^\s+|\s+$//g;
if (!defined $query or $query =~ /^\s*$/) {
&FIXME("doQ: query == NULL");
return '';
}
- my $origQuery = $query;
-
+ my $origQuery = $query;
my $questionWord = "";
if (!$addressed) {
}
# convert to canonical reference form
- $query = &normquery($query);
- $query = &switchPerson($query);
+ my $x;
+ my @query;
+
+ push(@query, $query); # 1: push original.
+
+ $x = &normquery($query);
+ push(@query, $x) if ($x ne $query);
+ $query = $x;
+
+ $x = &switchPerson($query);
+ push(@query, $x) if ($x ne $query);
+ $query = $x;
$query =~ s/\s+at\s*(\?*)$/$1/; # where is x at?
$query =~ s/^explain\s*(\?*)/$1/i; # explain x
$questionWord = "where";
}
- $query =~ s/^\s+|\s+$//g;
-
# valid factoid.
- my @query;
- push(@query, $query);
if ($query =~ s/[\!\.]$//) {
&DEBUG("Question: Pushing query without trailing symbols.");
push(@query,$query);
}
- foreach $query (@query) {
+ for (my$i=0; $i<scalar(@query); $i++) {
+ $query = $query[$i];
$result = &getReply($query);
next if ($result eq "");
$result = $newr if ($newr ne "");
}
+ if ($i != 0) {
+ &DEBUG("Question: guessed factoid correctly ($i) => '$query'.");
+ }
+
return $result;
}
$result = &Freshmeat::showPackage($query);
return $result unless ($result eq $noreply);
}
- &DEBUG("Question: hrm... result => '$result' for '$query'.");
+
+ ### TODO: Use &Forker(); move function to Debian.pl
+ if (&IsParam("debianForFactoid")) {
+ &loadMyModule($myModules{'debian'});
+ $result = &Debian::DebianFind($query); # ???
+ ### TODO: debian module should tell, through shm, that it went
+ ### ok or not.
+### return $result unless ($result eq $noreply);
+ }
if ($questionWord ne "" or $finalQMark) {
# if it has not been explicitly marked as a question