From 1c8ccce4e9bfc04651ef758e4b497196e14ceeea Mon Sep 17 00:00:00 2001 From: pk910 Date: Sun, 18 Dec 2011 17:34:26 +0100 Subject: [PATCH] added cmd_search onchan criteria --- src/cmd_neonserv_search.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cmd_neonserv_search.c b/src/cmd_neonserv_search.c index 2101cd2..0585c8a 100644 --- a/src/cmd_neonserv_search.c +++ b/src/cmd_neonserv_search.c @@ -32,6 +32,7 @@ struct neonserv_cmd_search_criteria { char *name; char *registrar; + char *onchan; unsigned int flags : 16; unsigned int unvisited; unsigned int registered; @@ -58,6 +59,7 @@ CMD_BIND(neonserv_cmd_search) { } if(!stricmp(argv[i], "name")) criteria->name = argv[i+1]; else if(!stricmp(argv[i], "registrar")) criteria->registrar = argv[i+1]; + else if(!stricmp(argv[i], "onchan")) criteria->onchan = argv[i+1]; else if(!stricmp(argv[i], "unvisited")) criteria->unvisited = strToTime(user, argv[i+1]); else if(!stricmp(argv[i], "registered")) criteria->registered = strToTime(user, argv[i+1]); else if(!stricmp(argv[i], "flags")) { @@ -137,8 +139,16 @@ CMD_BIND(neonserv_cmd_search) { if((criteria->flags & CMD_SEARCH_FLAG_NOT_NODELETE) && strcmp(row[3], "0")) continue; if((criteria->flags & CMD_SEARCH_FLAG_HAS_SUSPENDED) && strcmp(row[4], "1")) continue; if((criteria->flags & CMD_SEARCH_FLAG_NOT_SUSPENDED) && strcmp(row[4], "0")) continue; - if(criteria->flags & CMD_SEARCH_FLAG_STATES) { + if((criteria->flags & CMD_SEARCH_FLAG_STATES) || criteria->onchan) { struct ChanNode *channel = getChanByName(row[0]); + if(criteria->onchan) { + if(!channel) continue; + struct ChanUser *chanuser = NULL; + for(chanuser = getChannelUsers(channel, NULL); chanuser; chanuser = getChannelUsers(channel, chanuser)) { + if(!match(criteria->onchan, chanuser->user->nick)) break; + } + if(!chanuser) continue; + } if((criteria->flags & CMD_SEARCH_FLAG_IS_JOINED) && !channel) continue; if((criteria->flags & CMD_SEARCH_FLAG_NOT_JOINED) && channel) continue; if(channel && (criteria->flags & (CMD_SEARCH_FLAG_IS_OPPED | CMD_SEARCH_FLAG_NOT_OPPED | CMD_SEARCH_FLAG_IS_VOICED | CMD_SEARCH_FLAG_NOT_VOICED))) { -- 2.20.1