]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Misc.pl
* support more dictionaries [dpkg specific]
[infobot.git] / src / Misc.pl
index 30222f406a7c2ffff6e7fd151342114b7a92959a..bf95b602216638c250c00dae377f83a13fe2f12d 100644 (file)
@@ -117,8 +117,8 @@ sub timedelta {
 sub formListReply {
     my($rand, $prefix, @list) = @_;
     my $total  = scalar @list;
-    my $maxshow = &getChanConfDefault('maxListReplyCount', 15);
-    my $maxlen = &getChanConfDefault('maxListReplyLength', 400);
+    my $maxshow = &getChanConfDefault('maxListReplyCount', 15, $chan);
+    my $maxlen = &getChanConfDefault('maxListReplyLength', 400, $chan);
     my $reply;
 
     # remove irc overhead
@@ -134,7 +134,11 @@ sub formListReply {
            push(@rand, $list[$_]);
            last if (scalar @rand == $maxshow);
        }
-       @list = sort @rand;
+       if ($total > $maxshow) {
+           @list = sort @rand;
+       } else {
+           @list = @rand;
+       }
     } elsif ($total > $maxshow) {
        &status("formListReply: truncating list.");
 
@@ -142,6 +146,7 @@ sub formListReply {
     }
 
     # form the reply.
+    # FIXME: should grow and exit when full, not discard any that are oversize
     while () {
        $reply  = $prefix ."(\002". scalar(@list). "\002";
        $reply .= " of \002$total\002" if ($total != scalar @list);
@@ -585,10 +590,10 @@ sub hasProfanity {
     return $profanity;
 }
 
-sub hasParam {
+sub IsChanConfOrWarn {
     my ($param) = @_;
 
-    if (&IsChanConf($param) or &IsParam($param)) {
+    if (&IsChanConf($param) > 0) {
        return 1;
     } else {
        ### TODO: specific reason why it failed.
@@ -613,7 +618,7 @@ sub Forker {
 
        select(undef, undef, undef, 0.2);
 #      &status("fork starting for '$label', PID == $$.");
-       &status("--- fork starting for '$label', PID == $$ ---");
+       &status("--- fork starting for '$label', PID == $$, bot_pid == $bot_pid ---");
        &shmWrite($shm,"SET FORKPID $label $$");
 
        sleep 1;