]> jfr.im git - irc/quakenet/newserv.git/blobdiff - newsearch/ns-nick.c
TRUSTS: require sqlite
[irc/quakenet/newserv.git] / newsearch / ns-nick.c
index 55538731d90ac8675a178a328e5605e11d18ddbe..e247684ce9325e63fccc7c1c48f401d330169da1 100644 (file)
@@ -24,27 +24,34 @@ struct searchNode *nick_parse(searchCtx *ctx, int argc, char **argv) {
   }
     
   if (ctx->searchcmd == reg_chansearch) {
+    struct searchNode *nickname;
+    char *p;
+    
     if (argc!=1) {
       parseError="nick: usage: (nick target)";
       free(localdata);
       return NULL;
     }
-    if ((localdata->np=getnickbynick(argv[0]))==NULL) {
+    
+    if (!(nickname=argtoconststr("nick", ctx, argv[0], &p))) {
+      free(localdata);
+      return NULL;
+    }
+    
+    localdata->np=getnickbynick(p);
+    (nickname->free)(ctx, nickname);
+    if (localdata->np==NULL) {
       parseError="nick: unknown nickname";
       free(localdata);
       return NULL;
     }
-  } else if (ctx->searchcmd == reg_nicksearch) {
+  } else {
     if (argc) {
       parseError="nick: usage: (match (nick) target)";
       free(localdata);
       return NULL;
     }
     localdata->np = NULL;
-  } else {
-    parseError="nick: invalid search command";
-    free(localdata);
-    return NULL;
   }
 
   if (!(thenode=(struct searchNode *)malloc(sizeof(struct searchNode)))) {