// // File : libkvistr.cpp // Creation date : Thu Dec 27 2001 17:13:12 GMT by Szymon Stefanek // // This str is part of the KVirc irc client distribution // Copyright (C) 2001 Szymon Stefanek (pragma at kvirc dot net) // // This program is FREE software. You can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your opinion) any later version. // // This program is distributed in the HOPE that it will be USEFUL, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, write to the Free Software Foundation, // Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // #include "kvi_module.h" #include "kvi_locale.h" #include "kvi_string.h" #include "kvi_ircmask.h" /* @doc: tqmask.match @type: function @title: $tqmask.match @short: Matches a tqmask agains a wildcarded one @syntax: $tqmask.match(,) @description: Returns 1 if the matches and 0 otherwise. can obviously contain wildcards ('*' and '?'). @example: [example] [cmd]if[/cmd]($tqmask.match(*!*@*.linux.it,$0)) [cmd]op[/cmd] [fnc]$tqmask.nick[/fnc]($0) [/example] */ static bool tqmask_kvs_fnc_match(KviKvsModuleFunctionCall * c) { TQString wildtqmask,fixedtqmask; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("wildcard tqmask",KVS_PT_STRING,0,wildtqmask) KVSM_PARAMETER("fixed tqmask",KVS_PT_STRING,0,fixedtqmask) KVSM_PARAMETERS_END(c) KviIrcMask mk1(wildtqmask); KviIrcMask mk2(fixedtqmask); c->returnValue()->setBoolean(mk1.matchesFixed(mk2.nick(),mk2.user(),mk2.host())); return true; } /* @doc: tqmask.nick @type: function @title: $tqmask.nick @short: Returns the nick part of an IRC tqmask @syntax: $tqmask.nick() @description: Returns the nickname part of an IRC tqmask. */ static bool tqmask_kvs_fnc_nick(KviKvsModuleFunctionCall * c) { TQString tqmask; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("tqmask",KVS_PT_STRING,0,tqmask) KVSM_PARAMETERS_END(c) KviIrcMask mk(tqmask); c->returnValue()->setString(mk.nick()); return true; } /* @doc: tqmask.user @type: function @title: $tqmask.user @short: Returns the username part of an IRC tqmask @syntax: $tqmask.user() @description: Returns the username part of an IRC tqmask. */ static bool tqmask_kvs_fnc_user(KviKvsModuleFunctionCall * c) { TQString tqmask; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("tqmask",KVS_PT_STRING,0,tqmask) KVSM_PARAMETERS_END(c) KviIrcMask mk(tqmask); c->returnValue()->setString(mk.user()); return true; } /* @doc: tqmask.host @type: function @title: $tqmask.host @short: Returns the hostname part of an IRC tqmask @syntax: $tqmask.host() @description: Returns the hostname part of an IRC tqmask. */ static bool tqmask_kvs_fnc_host(KviKvsModuleFunctionCall * c) { TQString tqmask; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("tqmask",KVS_PT_STRING,0,tqmask) KVSM_PARAMETERS_END(c) KviIrcMask mk(tqmask); c->returnValue()->setString(mk.host()); return true; } /* @doc: tqmask.hasnumerichost @type: function @title: $tqmask.hasNumericHost @short: Checks if a host part of a tqmask is numeric @syntax: $tqmask.hasNumericHost() @description: Returns 1 if the hostname part of the tqmask is numeric (e.g : unresolved IPV4 or IPV6 address) */ static bool tqmask_kvs_fnc_hasnumerichost(KviKvsModuleFunctionCall * c) { TQString tqmask; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("tqmask",KVS_PT_STRING,0,tqmask) KVSM_PARAMETERS_END(c) KviIrcMask mk(tqmask); c->returnValue()->setBoolean(mk.hasNumericHost()); return true; } /*********************************************************************/ // Module stuff /********************************************************************/ static bool tqmask_module_init(KviModule * m) { KVSM_REGISTER_FUNCTION(m,"match",tqmask_kvs_fnc_match); KVSM_REGISTER_FUNCTION(m,"nick",tqmask_kvs_fnc_nick); KVSM_REGISTER_FUNCTION(m,"user",tqmask_kvs_fnc_user); KVSM_REGISTER_FUNCTION(m,"host",tqmask_kvs_fnc_host); KVSM_REGISTER_FUNCTION(m,"hasnumerichost",tqmask_kvs_fnc_hasnumerichost); return true; } static bool tqmask_module_cleanup(KviModule *m) { return true; } KVIRC_MODULE( "File", // module name "1.0.0", // module version "Copyright (C) 2002 Szymon Stefanek (pragma at kvirc dot net)", "Mask manipulation functions", tqmask_module_init, 0, 0, tqmask_module_cleanup )