1 #ifndef _KVI_KVS_COREFUNCTIONS_H_
2 #define _KVI_KVS_COREFUNCTIONS_H_
3 //=============================================================================
4 //
5 //   File : KviKvsCoreFunctions.h
6 //   Creation date : Fri 31 Oct 2003 01:52:04 by Szymon Stefanek
7 //
8 //   This file is part of the KVIrc IRC client distribution
9 //   Copyright (C) 2003-2010 Szymon Stefanek <pragma at kvirc dot net>
10 //
11 //   This program is FREE software. You can redistribute it and/or
12 //   modify it under the terms of the GNU General Public License
13 //   as published by the Free Software Foundation; either version 2
14 //   of the License, or (at your option) any later version.
15 //
16 //   This program is distributed in the HOPE that it will be USEFUL,
17 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
18 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 //   See the GNU General Public License for more details.
20 //
21 //   You should have received a copy of the GNU General Public License
22 //   along with this program. If not, write to the Free Software Foundation,
23 //   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24 //
25 //=============================================================================
26 
27 #include "kvi_settings.h"
28 #include "KviKvsRunTimeContext.h"
29 #include "KviKvsVariantList.h"
30 #include "KviKvsVariant.h"
31 #include "KviKvsParameterProcessor.h"
32 
33 #define KVSCF(_name) bool _name([[maybe_unused]] KviKvsRunTimeContext * __pContext, [[maybe_unused]] KviKvsVariantList * __pParams, [[maybe_unused]] KviKvsVariant * __pRetBuffer)
34 
35 #define KVSCF_pContext __pContext
36 #define KVSCF_pParams __pParams
37 #define KVSCF_pRetBuffer __pRetBuffer
38 
39 #define KVSCF_PARAMETER(a, b, c, d) KVS_PARAMETER(a, b, c, d)
40 
41 #define KVSCF_PARAMETERS_BEGIN \
42 	KVS_PARAMETERS_BEGIN(parameter_format_list)
43 
44 #define KVSCF_PARAMETERS_END                                                                     \
45 	KVS_PARAMETERS_END                                                                           \
46 	if(!KviKvsParameterProcessor::process(KVSCF_pParams, KVSCF_pContext, parameter_format_list)) \
47 		return false;
48 
49 namespace KviKvsCoreFunctions
50 {
51 	// a_f
52 	KVSCF(active);
53 	KVSCF(aliasBody);
54 	KVSCF(array);
55 	KVSCF(asciiToBase64);
56 	KVSCF(asciiToHex);
57 	KVSCF(avatar);
58 	KVSCF(away);
59 	KVSCF(b);
60 	KVSCF(base64ToAscii);
61 	KVSCF(boolean);
62 	KVSCF(certificate);
63 	KVSCF(channel);
64 	KVSCF(charCKEYWORDWORKAROUND);
65 	KVSCF(classDefined);
66 	KVSCF(console);
67 	KVSCF(context);
68 	KVSCF(countStatusBarItems);
69 	KVSCF(cr);
70 	KVSCF(date);
71 	KVSCF(escape);
72 	KVSCF(falseCKEYWORDWORKAROUND);
73 	KVSCF(features);
74 	KVSCF(firstConnectedConsole);
75 	KVSCF(flatten);
76 	KVSCF(fmtlink);
77 	// g_l
78 	KVSCF(gender);
79 	KVSCF(globals);
80 	KVSCF(hash);
81 	KVSCF(inputText);
82 	KVSCF(hexToAscii);
83 	KVSCF(hostname);
84 	KVSCF(hptimestamp);
85 	KVSCF(i);
86 	KVSCF(icon);
87 	KVSCF(iconName);
88 	KVSCF(insideAlias);
89 	KVSCF(integer);
90 	KVSCF(isAnyConsoleConnected);
91 	KVSCF(isBot);
92 	KVSCF(isEmpty);
93 	KVSCF(isEventEnabled);
94 	KVSCF(isNumeric);
95 	KVSCF(isMeOp);
96 	KVSCF(isMeUserOp);
97 	KVSCF(isMeHalfOp);
98 	KVSCF(isMeVoice);
99 	KVSCF(isMainWindowActive);
100 	KVSCF(isMainWindowMinimized);
101 	KVSCF(isSet);
102 	KVSCF(isTimer);
103 	KVSCF(isWellKnown);
104 	KVSCF(k);
105 	KVSCF(keys);
106 	KVSCF(lag);
107 	KVSCF(lang);
108 	KVSCF(length);
109 	KVSCF(lf);
110 	KVSCF(link);
111 	KVSCF(listtimers);
112 	// m_r
113 	KVSCF(mask);
114 	KVSCF(me);
115 	KVSCF(msgtype);
116 	KVSCF(newCKEYWORDWORKAROUND);
117 	KVSCF(nothing);
118 	KVSCF(nullCKEYWORDWORKAROUND);
119 	KVSCF(o);
120 	KVSCF(option);
121 	KVSCF(query);
122 	KVSCF(r);
123 	KVSCF(rand);
124 	KVSCF(real);
125 	KVSCF(realname);
126 	KVSCF(receivedBytes);
127 	KVSCF(rsort);
128 	// s_z
129 	KVSCF(scriptContextName);
130 	KVSCF(selected);
131 	KVSCF(sentBytes);
132 	KVSCF(serialize);
133 	KVSCF(server);
134 	KVSCF(sort);
135 	KVSCF(split);
136 	KVSCF(string);
137 	KVSCF(sw);
138 	KVSCF(target);
139 	KVSCF(thisCKEYWORDWORKAROUND);
140 	KVSCF(timeCFUNCTIONWORKAROUND);
141 	KVSCF(tr);
142 	KVSCF(trueCKEYWORDWORKAROUND);
143 	KVSCF(typeofCKEYWORDWORKAROUND);
144 	KVSCF(u);
145 	KVSCF(uflags);
146 	KVSCF(unicode);
147 	KVSCF(unixtime);
148 	KVSCF(unserialize);
149 	KVSCF(username);
150 	KVSCF(version);
151 	KVSCF(window);
152 	// specials
153 	KVSCF(strayAt);
154 	KVSCF(mightBeStrayAtOrThis);
155 	//bool redirectToModule(const QString &szFrom,const QString &szModName,const QString &szFuncName
156 
157 	void init();
158 };
159 
160 #endif //!_KVI_KVS_COREFUNCTIONS_H_
161