X-Git-Url: https://git.hcoop.net/clinton/bobotpp.git/blobdiff_plain/e171dcce70ed3538130a7d9dabce71675a058798..2169cb1011b535e2ad03995d332c8507808f25e6:/source/ScriptCommands.C?ds=sidebyside diff --git a/source/ScriptCommands.C b/source/ScriptCommands.C index 0562cca..25fa3bb 100644 --- a/source/ScriptCommands.C +++ b/source/ScriptCommands.C @@ -1,6 +1,6 @@ // ScriptCommands.C -*- C++ -*- // Copyright (c) 1998 Etienne BERNARD -// Copyright (C) 2002 Clinton Ebadi +// Copyright (C) 2002,2005,2008 Clinton Ebadi // 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 @@ -14,7 +14,8 @@ // 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +// 02110-1301, USA. #ifdef HAVE_CONFIG_H #include "config.h" @@ -30,22 +31,25 @@ #include "Interp.H" #include "DCCPerson.H" #include "DCCManager.H" +#include "Parser.H" +#include "Commands.H" +#include "Message.H" #include -#define VERIFY_STRING(par) if (!SCM_STRINGP((par))) \ - return scm_long2num(-17) +#define VERIFY_STRING(par) if (!scm_is_string((par))) \ + return scm_from_int(-17) #define VERIFY_NUMBER(par) if (!SCM_NUMBERP((par))) \ - return scm_long2num(-17) + return scm_from_int(-17) SCM ScriptCommands::Action(SCM channel, SCM message) { VERIFY_STRING(channel); VERIFY_STRING(message); - Message m = Commands::Action(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(message)); - return scm_long2num(m.getCode()); + Message m = Commands::Action(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(message)); + return scm_from_int(m.getCode()); } SCM @@ -57,8 +61,8 @@ ScriptCommands::AddUser(SCM who, SCM maskChannel, SCM level, VERIFY_STRING (maskChannel); VERIFY_NUMBER (level); - String wwho = Utils::scm2String (who); - String mask = Utils::scm2String (maskChannel); + String wwho = Utils::scm2str (who); + String mask = Utils::scm2str (maskChannel); String passwd; std::time_t eexpire; @@ -67,26 +71,25 @@ ScriptCommands::AddUser(SCM who, SCM maskChannel, SCM level, else { VERIFY_STRING (password); - passwd = Utils::scm2String (password); + passwd = Utils::scm2str (password); } if (SCM_UNBNDP (expire)) eexpire = -1; else { VERIFY_STRING (expire); - eexpire = Utils::strToTime (Utils::scm2String (expire)); + eexpire = Utils::str2time (Utils::scm2str (expire)); if (!eexpire) eexpire = -1; } - int protect = scm_num2int (prot, SCM_ARG1, "ScriptCommands::AddUser"); - bool aaop = SCM_NFALSEP (aop); - int llevel = scm_num2int (level, SCM_ARG1, - "ScriptCommands::AddUser"); + int protect = scm_to_int (prot); + bool aaop = scm_is_true (aop); + int llevel = scm_to_int (level); Message m = Commands::AddUser (Interp::bot, wwho, mask, llevel, protect, aaop, eexpire, passwd); - return scm_long2num(m.getCode ()); + return scm_from_int(m.getCode ()); } SCM @@ -94,11 +97,11 @@ ScriptCommands::AddServer(SCM servername, SCM port) { int p = 6667; if (SCM_NUMBERP(port)) - p = scm_num2long(port, SCM_ARG1, "ScriptCommands::AddServer"); + p = scm_to_int (port); Message m = Commands::AddServer(Interp::bot, - Utils::scm2String(servername), + Utils::scm2str(servername), p); - return scm_long2num(m.getCode()); + return scm_from_int(m.getCode()); } SCM @@ -109,9 +112,9 @@ ScriptCommands::AddShit(SCM mask, SCM maskChannel, SCM level, VERIFY_STRING (mask); VERIFY_STRING (maskChannel); VERIFY_NUMBER (level); - String mmask = Utils::scm2String (mask); - String mmaskChannel = Utils::scm2String (maskChannel); - int llevel = scm_num2int (level, SCM_ARG1, "ScriptCommands::AddShit"); + String mmask = Utils::scm2str (mask); + String mmaskChannel = Utils::scm2str (maskChannel); + int llevel = scm_to_int (level); std::time_t expire; String rreason; @@ -120,7 +123,7 @@ ScriptCommands::AddShit(SCM mask, SCM maskChannel, SCM level, else { VERIFY_STRING (expiration); - expire = Utils::strToTime (Utils::scm2String (expiration)); + expire = Utils::str2time (Utils::scm2str (expiration)); if (!expire) expire = -1; } if (SCM_UNBNDP (reason)) @@ -128,12 +131,12 @@ ScriptCommands::AddShit(SCM mask, SCM maskChannel, SCM level, else { VERIFY_STRING (reason); - rreason = Utils::scm2String (reason); + rreason = Utils::scm2str (reason); } Message m = Commands::AddShit (Interp::bot, mmask, mmaskChannel, llevel, expire, rreason); - return scm_long2num(m.getCode ()); + return scm_from_int(m.getCode ()); } SCM @@ -141,17 +144,71 @@ ScriptCommands::Ban(SCM channel, SCM who) { VERIFY_STRING(channel); VERIFY_STRING(who); - Message m = Commands::Ban(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who)); - return scm_long2num(m.getCode()); + Message m = Commands::Ban(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who)); + return scm_from_int(m.getCode()); +} + +SCM +ScriptCommands::ChangeCommandLevel(SCM command, SCM level) +{ + VERIFY_STRING (command); + VERIFY_NUMBER (level); + + std::string ccommand = scm_to_locale_string (command); + unsigned int llevel = scm_to_uint (level); + + if (llevel > 4) + return SCM_BOOL_F; + + std::map >::const_iterator uf_iter + = Interp::bot->userFunctions.find (ccommand); + userFunction * f = 0; + + if (uf_iter != Interp::bot->userFunctions.end ()) + f = uf_iter->second; + else + return SCM_BOOL_F; + + f->minLevel = llevel; + return SCM_BOOL_T; +} + +SCM +ScriptCommands::CTCP(SCM to, SCM command , SCM message) +{ + VERIFY_STRING(to); + VERIFY_STRING(command); + VERIFY_STRING(message); + + Commands::CTCP (Interp::bot, Utils::scm2str (to), + Utils::scm2str (command), + Utils::scm2str (message)); + + return SCM_UNSPECIFIED; +} + +SCM +ScriptCommands::CTCPReply (SCM to, SCM command , SCM message) +{ + VERIFY_STRING(to); + VERIFY_STRING(command); + VERIFY_STRING(message); + + Commands::CTCPReply (Interp::bot, Utils::scm2str (to), + Utils::scm2str (command), + Utils::scm2str (message)); + + return SCM_UNSPECIFIED; } SCM ScriptCommands::Cycle(SCM channel) { VERIFY_STRING(channel); - Message m = Commands::Cycle(Interp::bot, Utils::scm2String(channel)); - return scm_long2num(m.getCode()); + Message m = Commands::Cycle(Interp::bot, Utils::scm2str(channel)); + return scm_from_int(m.getCode()); } SCM @@ -159,19 +216,17 @@ ScriptCommands::Deban(SCM channel, SCM who) { VERIFY_STRING(channel); VERIFY_STRING(who); - Message m = Commands::Deban(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who)); - return scm_long2num(m.getCode()); + Message m = Commands::Deban(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::DelServer(SCM number) { VERIFY_NUMBER(number); - Message m = Commands::DelServer(Interp::bot, - scm_num2long(number, SCM_ARG1, - "ScriptCommands::DelServer")); - return scm_long2num(m.getCode()); + Message m = Commands::DelServer(Interp::bot, scm_to_int (number)); + return scm_from_int(m.getCode()); } SCM @@ -179,9 +234,9 @@ ScriptCommands::DelUser(SCM who, SCM maskChannel) { VERIFY_STRING(who); VERIFY_STRING(maskChannel); - Message m = Commands::DelUser(Interp::bot, Utils::scm2String(who), - Utils::scm2String(maskChannel)); - return scm_long2num(m.getCode()); + Message m = Commands::DelUser(Interp::bot, Utils::scm2str(who), + Utils::scm2str(maskChannel)); + return scm_from_int(m.getCode()); } SCM @@ -189,9 +244,9 @@ ScriptCommands::DelShit(SCM who, SCM maskChannel) { VERIFY_STRING(who); VERIFY_STRING(maskChannel); - Message m = Commands::DelShit(Interp::bot, Utils::scm2String(who), - Utils::scm2String(maskChannel)); - return scm_long2num(m.getCode()); + Message m = Commands::DelShit(Interp::bot, Utils::scm2str(who), + Utils::scm2str(maskChannel)); + return scm_from_int(m.getCode()); } SCM @@ -199,27 +254,27 @@ ScriptCommands::Deop(SCM channel, SCM who) { VERIFY_STRING(channel); VERIFY_STRING(who); - Message m = Commands::Deop(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who)); - return scm_long2num(m.getCode()); + Message m = Commands::Deop(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Die(SCM reason) { String r = "Leaving"; - if (SCM_STRINGP(reason)) - r = Utils::scm2String(reason); + if (scm_is_string(reason)) + r = Utils::scm2str(reason); Message m = Commands::Die(Interp::bot, r); - return scm_long2num(m.getCode()); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Do(SCM command) { VERIFY_STRING(command); - Message m = Commands::Do(Interp::bot, Utils::scm2String(command)); - return scm_long2num(m.getCode()); + Message m = Commands::Do(Interp::bot, Utils::scm2str(command)); + return scm_from_int(m.getCode()); } SCM @@ -227,9 +282,9 @@ ScriptCommands::Invite(SCM channel, SCM who) { VERIFY_STRING(channel); VERIFY_STRING(who); - Message m = Commands::Invite(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who)); - return scm_long2num(m.getCode()); + Message m = Commands::Invite(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who)); + return scm_from_int(m.getCode()); } SCM @@ -237,11 +292,11 @@ ScriptCommands::Join(SCM channel, SCM key) { VERIFY_STRING(channel); String k = ""; - if (SCM_STRINGP(key)) - k = Utils::scm2String(key); - Message m = Commands::Join(Interp::bot, Utils::scm2String(channel), + if (scm_is_string(key)) + k = Utils::scm2str(key); + Message m = Commands::Join(Interp::bot, Utils::scm2str(channel), k); - return scm_long2num(m.getCode()); + return scm_from_int(m.getCode()); } SCM @@ -249,9 +304,9 @@ ScriptCommands::Keep(SCM channel, SCM modes) { VERIFY_STRING(channel); VERIFY_STRING(modes); - Message m = Commands::Keep(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(modes)); - return scm_long2num(m.getCode()); + Message m = Commands::Keep(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(modes)); + return scm_from_int(m.getCode()); } SCM @@ -261,12 +316,12 @@ ScriptCommands::Kick(SCM channel, SCM who, SCM reason) VERIFY_STRING(who); String r = ""; - if (SCM_STRINGP(reason)) - r = Utils::scm2String(reason); + if (scm_is_string(reason)) + r = Utils::scm2str(reason); - Message m = Commands::Kick(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who), r); - return scm_long2num(m.getCode()); + Message m = Commands::Kick(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who), r); + return scm_from_int(m.getCode()); } SCM @@ -275,19 +330,19 @@ ScriptCommands::KickBan(SCM channel, SCM who, SCM reason) VERIFY_STRING(channel); VERIFY_STRING(who); String r = ""; - if (SCM_STRINGP(reason)) - r = Utils::scm2String(reason); - Message m = Commands::KickBan(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who), r); - return scm_long2num(m.getCode()); + if (scm_is_string(reason)) + r = Utils::scm2str(reason); + Message m = Commands::KickBan(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who), r); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Lock(SCM channel) { VERIFY_STRING(channel); - Message m = Commands::Lock(Interp::bot, Utils::scm2String(channel)); - return scm_long2num(m.getCode()); + Message m = Commands::Lock(Interp::bot, Utils::scm2str(channel)); + return scm_from_int(m.getCode()); } SCM @@ -301,9 +356,9 @@ ScriptCommands::Mode(SCM channel, SCM mode) { VERIFY_STRING(channel); VERIFY_STRING(mode); - Message m = Commands::Mode(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(mode)); - return scm_long2num(m.getCode()); + Message m = Commands::Mode(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(mode)); + return scm_from_int(m.getCode()); } SCM @@ -311,9 +366,9 @@ ScriptCommands::Msg(SCM nick, SCM message) { VERIFY_STRING(nick); VERIFY_STRING(message); - Message m = Commands::Msg(Interp::bot, Utils::scm2String(nick), - Utils::scm2String(message)); - return scm_long2num(m.getCode()); + Message m = Commands::Msg(Interp::bot, Utils::scm2str(nick), + Utils::scm2str(message)); + return scm_from_int(m.getCode()); } @@ -321,15 +376,28 @@ SCM ScriptCommands::NextServer(void) { Message m = Commands::NextServer(Interp::bot); - return scm_long2num(m.getCode()); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Nick(SCM nick) { VERIFY_STRING(nick); - Message m = Commands::Nick(Interp::bot, Utils::scm2String(nick)); - return scm_long2num(m.getCode()); + Message m = Commands::Nick(Interp::bot, Utils::scm2str(nick)); + return scm_from_int(m.getCode()); +} + +SCM +ScriptCommands::Notice (SCM to, SCM message) +{ + VERIFY_STRING (to); + VERIFY_STRING (message); + + return (scm_from_int + (Commands::Notice (Interp::bot, + Utils::scm2str (to), + Utils::scm2str (message)).getCode ())); + } SCM @@ -337,24 +405,24 @@ ScriptCommands::Op(SCM channel, SCM who) { VERIFY_STRING(channel); VERIFY_STRING(who); - Message m = Commands::Op(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who)); - return scm_long2num(m.getCode()); + Message m = Commands::Op(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Part(SCM channel) { VERIFY_STRING(channel); - Message m = Commands::Part(Interp::bot, Utils::scm2String(channel)); - return scm_long2num(m.getCode()); + Message m = Commands::Part(Interp::bot, Utils::scm2str(channel)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Reconnect(void) { Message m = Commands::Reconnect(Interp::bot); - return scm_long2num(m.getCode()); + return scm_from_int(m.getCode()); } SCM @@ -362,33 +430,32 @@ ScriptCommands::Say(SCM channel, SCM message) { VERIFY_STRING(channel); VERIFY_STRING(message); - Message m = Commands::Say(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(message)); - return scm_long2num(m.getCode()); + Message m = Commands::Say(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(message)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Server(SCM number) { VERIFY_NUMBER(number); - Message m = Commands::Server(Interp::bot, gh_scm2long(number)); - return scm_long2num(m.getCode()); + Message m = Commands::Server(Interp::bot, scm_to_int(number)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::SetFloodRate(SCM rate) { VERIFY_NUMBER(rate); - Message m = Commands::SetFloodRate(Interp::bot, scm_num2uint - (rate, 0, "SetFloodRate")); - return scm_long2num(m.getCode()); + Message m = Commands::SetFloodRate(Interp::bot, scm_to_uint (rate)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::SetVersion(SCM version) { - Message m = Commands::SetVersion(Interp::bot, Utils::scm2String(version)); - return scm_long2num(m.getCode()); + Message m = Commands::SetVersion(Interp::bot, Utils::scm2str(version)); + return scm_from_int(m.getCode()); } SCM @@ -397,9 +464,9 @@ ScriptCommands::TBan(SCM channel, SCM who, SCM seconds) VERIFY_STRING(channel); VERIFY_STRING(who); VERIFY_NUMBER(seconds); - Message m = Commands::TBan(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who), gh_scm2long(seconds)); - return scm_long2num(m.getCode()); + Message m = Commands::TBan(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who), scm_to_int(seconds)); + return scm_from_int(m.getCode()); } SCM @@ -409,12 +476,12 @@ ScriptCommands::TKBan(SCM channel, SCM who, SCM seconds, SCM reason) VERIFY_STRING(who); VERIFY_NUMBER(seconds); String r = ""; - if (SCM_STRINGP(reason)) - r = Utils::scm2String(reason); - Message m = Commands::TKBan(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(who), - gh_scm2long(seconds), r); - return scm_long2num(m.getCode()); + if (scm_is_string(reason)) + r = Utils::scm2str(reason); + Message m = Commands::TKBan(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(who), + scm_to_int(seconds), r); + return scm_from_int(m.getCode()); } SCM @@ -422,23 +489,43 @@ ScriptCommands::Topic(SCM channel, SCM topic) { VERIFY_STRING(channel); VERIFY_STRING(topic); - Message m = Commands::Topic(Interp::bot, Utils::scm2String(channel), - Utils::scm2String(topic)); - return scm_long2num(m.getCode()); + Message m = Commands::Topic(Interp::bot, Utils::scm2str(channel), + Utils::scm2str(topic)); + return scm_from_int(m.getCode()); } SCM ScriptCommands::Unlock(SCM channel) { VERIFY_STRING(channel); - Message m = Commands::Unlock(Interp::bot, Utils::scm2String(channel)); - return scm_long2num(m.getCode()); + Message m = Commands::Unlock(Interp::bot, Utils::scm2str(channel)); + return scm_from_int(m.getCode()); +} + +SCM +ScriptCommands::Who (SCM target) +{ + VERIFY_STRING (target); + + Message m = Commands::Who (Interp::bot, Utils::scm2str (target)); + + return scm_from_int (m.getCode ()); +} + +SCM +ScriptCommands::Whois (SCM nick) +{ + VERIFY_STRING (nick); + + Message m = Commands::Whois (Interp::bot, Utils::scm2str (nick)); + + return scm_from_int (m.getCode ()); } SCM ScriptCommands::getNickname(void) { - return Utils::string2SCM(Interp::bot->nickName); + return Utils::str2scm(Interp::bot->nickName); } SCM @@ -447,30 +534,33 @@ ScriptCommands::getServer(void) ::Server *serv = Interp::bot->serverList->currentServer(); int serverNumber = Interp::bot->serverList->currentNumber; - return gh_list(scm_long2num(serverNumber), - Utils::string2SCM(serv->getHostName()), - scm_long2num(serv->getPort()), - Utils::string2SCM(serv->getPassword()), + return scm_list_n(scm_from_int(serverNumber), + Utils::str2scm(serv->getHostName()), + scm_from_int(serv->getPort()), + Utils::str2scm(serv->getPassword()), SCM_UNDEFINED); } SCM ScriptCommands::getServerList(void) { - SCM res = gh_list(SCM_UNDEFINED); + SCM res = scm_list_n(SCM_UNDEFINED); ::Server *s; int i = 0; - std::vector::iterator it = Interp::bot->serverList->begin(); + std::vector::iterator it = + Interp::bot->serverList->begin(); for ( ; it != Interp::bot->serverList->end(); ++it) { s = (*it); - res = gh_append2(res, - gh_list(gh_list(scm_long2num(i++), - Utils::string2SCM(s->getHostName()), - scm_long2num(s->getPort()), - Utils::string2SCM(s->getPassword()), - SCM_UNDEFINED), SCM_UNDEFINED)); - } + res = + scm_append + (scm_list_2 (res, + scm_list_n(scm_list_n(scm_from_int(i++), + Utils::str2scm(s->getHostName()), + scm_from_int(s->getPort()), + Utils::str2scm(s->getPassword()), + SCM_UNDEFINED), SCM_UNDEFINED))); + } return res; } @@ -496,8 +586,8 @@ ScriptCommands::random(SCM scm_max) int max = 0; //srand(time(NULL)); if (SCM_NUMBERP(scm_max)) - max = gh_scm2int(scm_max); - return scm_long2num(max ? rand() % max : 0); + max = scm_to_int(scm_max); + return scm_from_int(max ? rand() % max : 0); } SCM @@ -506,37 +596,37 @@ ScriptCommands::addCommand(SCM scm_commandName, SCM scm_function, SCM scm_minLevel) { // We check that commandName is a string - if (!SCM_STRINGP(scm_commandName)) + if (!scm_is_string(scm_commandName)) return SCM_BOOL_F; // We check that the command does not exist - String commandName = Utils::scm2String(scm_commandName).toUpper(); + String commandName = Utils::to_upper (Utils::scm2str(scm_commandName)); if (Interp::bot->userFunctions[commandName]) return SCM_BOOL_F; // Next we check that needsChannel is a boolean - if (!gh_boolean_p(scm_needsChannel)) + if (!scm_is_bool (scm_needsChannel)) return SCM_BOOL_F; - bool needsChannel = gh_scm2bool(scm_needsChannel); + bool needsChannel = scm_to_bool(scm_needsChannel); // We check that minLevel is an integer and that it's // a valid level if (!SCM_NUMBERP(scm_minLevel)) return SCM_BOOL_F; - int minLevel = gh_scm2long(scm_minLevel); + int minLevel = scm_to_int(scm_minLevel); if (minLevel < User::NONE || minLevel > User::MASTER) return SCM_BOOL_F; // We check that "scm_function" is a Scheme procedure - if (!gh_procedure_p(scm_function)) + if (!scm_is_true (scm_procedure_p(scm_function))) return SCM_BOOL_F; // We check that args is an integer and is between 0 and 20 (arbitrary limit) if (!SCM_NUMBERP(scm_args)) return SCM_BOOL_F; - int args = gh_scm2long(scm_args); + int args = scm_to_int(scm_args); if (args < 0 || args > 20) return SCM_BOOL_F; @@ -551,11 +641,11 @@ SCM ScriptCommands::delCommand(SCM scm_commandName) { // We check that commandName is a string - if (!SCM_STRINGP(scm_commandName)) + if (!scm_is_string(scm_commandName)) return SCM_BOOL_F; // We check that the command does exist - String commandName = Utils::scm2String(scm_commandName).toUpper(); + String commandName = Utils::to_upper (Utils::scm2str(scm_commandName)); if (!Interp::bot->userFunctions[commandName]) return SCM_BOOL_F; @@ -574,12 +664,12 @@ ScriptCommands::AddHook(SCM type, SCM regex, SCM function, SCM pri, SCM fall, String rname = "DEFAULT"; if (!SCM_UNBNDP (pri)) - priority = scm_num2int (pri, SCM_ARG1, "ScriptCommands::AddHook"); + priority = scm_to_int (pri); if (!SCM_UNBNDP (fall)) - fallt = SCM_NFALSEP (fall); + fallt = scm_is_true (fall); if (!SCM_UNBNDP (name)) - rname = Utils::scm2String (name); - return SCM_BOOL (Interp::bot->botInterp->AddHook(gh_scm2long(type), + rname = Utils::scm2str (name); + return scm_from_bool (Interp::bot->botInterp->AddHook(scm_to_int(type), regex, function, priority, fallt, rname)); } @@ -587,38 +677,27 @@ ScriptCommands::AddHook(SCM type, SCM regex, SCM function, SCM pri, SCM fall, SCM ScriptCommands::AddTimer(SCM when, SCM function) { - return Interp::bot->botInterp->AddTimer(gh_scm2long(when), function); + return Interp::bot->botInterp->AddTimer(scm_to_int(when), function); } SCM ScriptCommands::DelTimer(SCM timer) { - return SCM_BOOL (Interp::bot->botInterp->DelTimer(timer)); + return scm_from_bool (Interp::bot->botInterp->DelTimer(timer)); } SCM ScriptCommands::sendDCCChatMessage (SCM to, SCM message) { - return SCM_BOOL (Interp::bot->dccConnections->sendMessage - (Utils::scm2String (to), - Utils::scm2String (message))); + return scm_from_bool (Interp::bot->dccConnections->sendMessage + (Utils::scm2str (to), + Utils::scm2str (message))); } -// Message sending -// FIXME: write these -#define IQUEUE Interp::bot->serverConnection->queue -SCM -ScriptCommands::sendCTCP(SCM to, SCM command , SCM message) -{ - VERIFY_STRING(to); - VERIFY_STRING(command); - VERIFY_STRING(message); - IQUEUE->sendCTCP (Utils::scm2String (to), Utils::scm2String (command), - Utils::scm2String (message)); - return SCM_UNSPECIFIED; -} + + #endif