]> jfr.im git - irc/quakenet/newserv.git/blobdiff - newsearch/ns-cumodes.c
TRUSTS: require sqlite
[irc/quakenet/newserv.git] / newsearch / ns-cumodes.c
index 152e07175100f28a8404838f031ce378db8b7161..811445fdaed9faae79c68aa8823b8b72493d7400 100644 (file)
@@ -29,9 +29,10 @@ void cumodes_free(searchCtx *ctx, struct searchNode *thenode);
 
 struct searchNode *cumodes_parse(searchCtx *ctx, int argc, char **argv) {
   struct cumodes_localdata *localdata;
-  struct searchNode *thenode;
+  struct searchNode *thenode, *flagstr;
   flag_t fset, fclear;
-
+  char *p;
+  
   if (argc!=2) {
     parseError="cumodes: usage: cumodes (string) (mode string)";
     return NULL;
@@ -56,9 +57,15 @@ struct searchNode *cumodes_parse(searchCtx *ctx, int argc, char **argv) {
   fset=0;
   fclear=~0;
   
-  setflags(&(fset), CU_ALL, argv[1], cumodelist, REJECT_NONE);
-  setflags(&(fclear), CU_ALL, argv[1], cumodelist, REJECT_NONE);
-
+  if (!(flagstr=argtoconststr("cumodes", ctx, argv[1], &p))) {
+    localdata->xnode->free(ctx, localdata->xnode);
+    free(localdata);
+    return NULL;
+  }
+  setflags(&(fset), CU_ALL, p, cumodelist, REJECT_NONE);
+  setflags(&(fclear), CU_ALL, p, cumodelist, REJECT_NONE);
+  flagstr->free(ctx, flagstr);
+  
   localdata->setmodes=0;
   localdata->clearmodes=~0;