]> jfr.im git - irc/quakenet/newserv.git/blobdiff - newsearch/ns-all.c
LUA: add function for channel chanop notice
[irc/quakenet/newserv.git] / newsearch / ns-all.c
index 75b5bae4633dafe4037a97d9c967bf07786b4f45..3206d9aca591de4a4cbc6a958fcd34acca647e62 100644 (file)
@@ -18,7 +18,7 @@ struct all_localdata {
   int hitlimit;
 };
 
-struct searchNode *all_parse(searchCtx *ctx, int type, int argc, char **argv) {
+struct searchNode *all_parse(searchCtx *ctx, int argc, char **argv) {
   searchNode *thenode;
   struct all_localdata *localdata;
   
@@ -34,12 +34,12 @@ struct searchNode *all_parse(searchCtx *ctx, int type, int argc, char **argv) {
 
   localdata->hitlimit = 0;
 
-  if(!(localdata->genfn=ctx->parser(ctx, type, argv[0]))) {
+  if(!(localdata->genfn=ctx->parser(ctx, argv[0]))) {
     free(localdata);
     return NULL;
   }
 
-  localdata->lambdafn = ctx->parser(ctx, type, argv[1]);
+  localdata->lambdafn = ctx->parser(ctx, argv[1]);
   if(!(localdata->lambdafn = coerceNode(ctx, localdata->lambdafn, RETURNTYPE_BOOL))) {
     (localdata->genfn->free)(ctx, localdata->genfn);
     free(localdata);
@@ -66,7 +66,7 @@ void all_free(searchCtx *ctx, struct searchNode *thenode) {
   struct all_localdata *localdata = thenode->localdata;
   
   if(localdata->hitlimit)
-    ctx->reply(senderNSExtern, "Warning: your expression hit the maximum iteration count and was terminated early.");
+    ctx->reply(senderNSExtern, "Warning: your expression was terminated for %d nicks as it hit the maximum iteration count.", localdata->hitlimit);
   
   (localdata->genfn->free)(ctx, localdata->genfn);
   (localdata->lambdafn->free)(ctx, localdata->lambdafn);
@@ -79,8 +79,9 @@ void *all_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput) {
   struct all_localdata *localdata = thenode->localdata;
   int i;
 
-  if(localdata->hitlimit)
+/*  if(localdata->hitlimit)
     return (void *)0;
+*/
 
   for(i=0;i<MAX_ITERATIONS;i++) {
     if(!(localdata->genfn->exe)(ctx, localdata->genfn, theinput))
@@ -90,6 +91,6 @@ void *all_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput) {
       return (void *)0;
   }
   
-  localdata->hitlimit = 1;
+  localdata->hitlimit++;
   return (void *)0;
 }