You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kvirc/src/kvirc/kvs/kvi_kvs_corefunctions.cpp

157 lines
4.4 KiB

//=============================================================================
//
// File : kvi_kvs_corefunctions.cpp
// Created on Fri 31 Oct 2003 01:52:04 by Szymon Stefanek
//
// This file is part of the KVIrc IRC client distribution
// Copyright (C) 2003 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.
//
//=============================================================================
#define __KVIRC__
#include "kvi_kvs_corefunctions.h"
#include "kvi_kvs_kernel.h"
#include "kvi_kvs_object.h"
#include "kvi_locale.h"
namespace KviKvsCoreFunctions
{
void init()
{
KviKvsKernel * pKern = KviKvsKernel::instance();
#define _REGFNC(__fncName,__routine) \
{ \
KviKvsCoreFunctionExecRoutine * r = new KviKvsCoreFunctionExecRoutine; \
r->proc = KVI_PTR2MEMBER(KviKvsCoreFunctions::__routine); \
pKern->registerCoreFunctionExecRoutine(TQString(__fncName),r); \
}
// a_f
_REGFNC("active",active)
_REGFNC("array",array)
_REGFNC("ascii",unicode)
_REGFNC("asciiToHex",asciiToHex)
_REGFNC("asciiToBase64",asciiToBase64)
_REGFNC("away",away)
_REGFNC("b",b)
_REGFNC("base64ToAscii",base64ToAscii)
_REGFNC("bool",boolean)
_REGFNC("boolean",boolean)
_REGFNC("channel",channel)
_REGFNC("char",charCKEYWORDWORKAROUND)
_REGFNC("classDefined",classDefined)
_REGFNC("console",console)
_REGFNC("context",context)
_REGFNC("cr",cr)
_REGFNC("date",date)
_REGFNC("false",falseCKEYWORDWORKAROUND)
_REGFNC("features",features)
_REGFNC("firstConnectedConsole",firstConnectedConsole)
_REGFNC("flatten",flatten)
_REGFNC("fmtlink",fmtlink)
// g_l
_REGFNC("hash",hash);
// _REGFNC("inputText",inputText);
_REGFNC("hexToAscii",hexToAscii);
_REGFNC("hostname",hostname);
_REGFNC("hptimestamp",hptimestamp);
_REGFNC("ic",context);
_REGFNC("icon",icon);
_REGFNC("iconName",iconName);
_REGFNC("int",integer)
_REGFNC("integer",integer)
_REGFNC("isEmpty",isEmpty)
_REGFNC("isEventEnabled",isEventEnabled)
_REGFNC("isMainWindowActive",isMainWindowActive)
_REGFNC("isMainWindowMinimized",isMainWindowMinimized)
_REGFNC("isNumeric",isNumeric)
_REGFNC("isSet",isSet)
_REGFNC("isTimer",isTimer)
_REGFNC("isWellKnown",isWellKnown)
_REGFNC("k",k)
_REGFNC("keys",keys)
_REGFNC("lag",lag)
_REGFNC("lang",lang)
_REGFNC("length",length)
_REGFNC("lf",lf)
// m_r
_REGFNC("mask",mask)
_REGFNC("me",me)
_REGFNC("msgtype",msgtype)
_REGFNC("new",newCKEYWORDWORKAROUND)
_REGFNC("nothing",nothing)
_REGFNC("null",nullCKEYWORDWORKAROUND)
_REGFNC("o",o)
_REGFNC("option",option)
_REGFNC("query",query)
_REGFNC("r",r)
_REGFNC("rand",rand)
_REGFNC("real",real)
_REGFNC("receivedBytes",receivedBytes)
_REGFNC("rsort",rsort)
// s_z
_REGFNC("selected",selected)
_REGFNC("sentBytes",sentBytes)
_REGFNC("serialize",serialize)
_REGFNC("server",server)
_REGFNC("sort",sort)
_REGFNC("string",string)
_REGFNC("sw",sw)
_REGFNC("target",target)
_REGFNC("this",thisCKEYWORDWORKAROUND)
_REGFNC("tr",tr)
_REGFNC("true",trueCKEYWORDWORKAROUND)
_REGFNC("typeof",typeofCKEYWORDWORKAROUND)
_REGFNC("u",u)
_REGFNC("unicode",unicode)
_REGFNC("unixtime",unixtime)
_REGFNC("unserialize",unserialize)
_REGFNC("username",username)
_REGFNC("version",version)
_REGFNC("window",window)
_REGFNC("$",thisCKEYWORDWORKAROUND)
_REGFNC("@",strayAt)
_REGFNC("@?",mightBeStrayAtOrThis)
#undef _REGCMD
}
static TQString g_szStaticStrayConstantAt("@");
KVSCF(strayAt)
{
KVSCF_pRetBuffer->setString(g_szStaticStrayConstantAt);
return true;
}
KVSCF(mightBeStrayAtOrThis)
{
KviKvsObject * o = KVSCF_pContext->thisObject();
if(o)
{
KVSCF_pRetBuffer->setHObject(o->handle());
} else {
KVSCF_pRetBuffer->setString(g_szStaticStrayConstantAt);
}
return true;
}
};