]> jfr.im git - irc/quakenet/newserv.git/blobdiff - newsearch/ns-any.c
LUA: add function for channel chanop notice
[irc/quakenet/newserv.git] / newsearch / ns-any.c
index 20513c35170ce78593c467b96430f1abbf59863f..289b9589f299423cc7795abb29b90ba2f8fc5108 100644 (file)
@@ -18,7 +18,7 @@ struct any_localdata {
   int hitlimit;
 };
 
-struct searchNode *any_parse(searchCtx *ctx, int type, int argc, char **argv) {
+struct searchNode *any_parse(searchCtx *ctx, int argc, char **argv) {
   searchNode *thenode;
   struct any_localdata *localdata;
   
@@ -34,12 +34,12 @@ struct searchNode *any_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 any_free(searchCtx *ctx, struct searchNode *thenode) {
   struct any_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 *any_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput) {
   struct any_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 *any_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput) {
       return (void *)1;
   }
   
-  localdata->hitlimit = 1;
+  localdata->hitlimit++;
   return (void *)0;
 }