]>
jfr.im git - irc/quakenet/newserv.git/blob - patriciasearch/newsearch_ast.c
1 #include "../lib/sstring.h"
2 #include "../lib/strlfunc.h"
3 #include "../lib/stringbuf.h"
6 #include "patriciasearch.h"
8 int ast_nodesearch(searchASTExpr
*tree
, replyFunc reply
, void *sender
, wallFunc wall
, NodeDisplayFunc display
, HeaderFunc header
, void *headerarg
, int limit
) {
14 newsearch_ctxinit(&ctx
, search_astparse
, reply
, wall
, &cache
, reg_nodesearch
, sender
, display
, limit
);
16 memset(&cache
, 0, sizeof(cache
));
20 reply(sender
, "Parsing: %s", ast_printtree(buf
, sizeof(buf
), tree
, reg_nodesearch
));
21 search
= ctx
.parser(&ctx
, (char *)tree
);
23 reply(sender
, "Parse error: %s", parseError
);
27 reply(sender
, "Executing...");
29 header(sender
, headerarg
);
30 pnodesearch_exe(search
, &ctx
, iptree
->head
);
32 (search
->free
)(&ctx
, search
);