[project @ 2003-04-10 01:53:57 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
4 ScriptCmmands::SetFloodRate
5
6 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
7
8 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
9 to bot master
10
11 * source/Bot.H: Made MAX_MESSAGES writeable
12
13 * source/UserCommands.H: New method: SetFloodRate
14
15 * source/Commands.H: New method: SetFloodRate
16
17 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
18
19 * configure.ac: Merged all AC_OUTPUTs at the end
20
21 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
22
23 * scripts/bobot-utils.scm: Make exported symbols from
24 the-bot-module available in the guile-user module so that scripts
25 loaded with Interp::Load function.
26
27 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
28
29 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
30 %bot:loadpath into its own module and returns that (unnamed) module
31 (bot:use-module): Calls bot:load-module and then adds the newly
32 loaded module to the (current-module)'s use-list
33
34 * source/Interp.C (interp_init_helper): New procedure to initialize
35 the-bot-module (this is the old Interp::Startup verbatim)
36 (interp_post_startup_helper): New procedure to export
37 the-bot-module from bot_module
38 (Startup): Now calls interp_init_helper and
39 interp_post_startup_helper to initalize the bot module system
40
41 * source/Interp.H: Added private variable bot_module to Interp
42
43 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
44
45 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
46 this breaks existing scripts, this is the unstable tree after all)
47
48 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
49
50 * source/Mask.C (match): Made Mask::match case insensitive
51
52 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
53
54 * source/Interp.C (scm_apply_wrapper): turned off locking of
55 Interp::mutex to see if this makes the bot work again...and it
56 does!
57
58 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
59
60 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
61 everything to use aclocal/automake 1.6
62
63 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
64
65 * source/DCCPerson.H (class DCCPerson): Added
66 UserCommands::DCCList as a friend (friends are better than the old
67 DCC() function at least).
68
69 * source/DCCManager.H (class DCCManager): Added
70 UserCommands::DCCList as a friend
71
72 * source/Interp.H (class Interp): Made function scm_apply_wrapper
73 a friend so it can lock Interp::mutex
74
75 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
76 MULTITHREAD is defined (it is always defined when scripting is
77 enabled) so that Sockets can be made multithreaded using
78 CommonC++.
79
80 * source/DCCPerson.H: Removed DCC method and made Bot a friend
81 Made DCCManager a friend
82
83 * source/DCCManager.H (class DCCManager): Removed MAP() method
84 and made Bot a friend of DCCManager
85
86 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
87
88 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
89 bot:dcc-chat-send.
90
91 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
92 user!nick@host instead of the correct nick!user@host).
93
94 * source/Interp.C (Startup): Register bot:DCC-chat-send
95
96 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
97
98 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
99
100 * source/String.C (String): The std::string copy constructor now
101 extracts the c_str of the std::string and then takes the strlen of
102 that before copying it. This fixes a bug with DCC where if you did
103 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
104 something like that, depending on what the last message was
105 because Socket will insert a \0 into its semi-static buffer, so
106 the len of the String will not equal the strlen of its char*.
107
108 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
109
110 * source/DCCPerson.H: Removed destructor (I = idiot)
111
112 * source/DCCConnection.H: DCCManager is now a friend of
113 DCCConnection (ugh, the bot has way too many friends).
114
115 * source/DCCPerson.H: Added DCC member that returns a const
116 DCCConnection* (the dcc connection). This isn't saved anywhere
117 because when a DCCPerson is destroyed, its connection is also
118 destroyed.
119
120 * source/Bot.H: dccConnections is now a DCCManager
121
122 * source/DCCPerson.H: Added destructor
123 Added handleInput method
124
125 * source/DCCManager.C: New file
126 (addConnection): Wrote method, add a DCCConection to the manager
127
128 * source/DCCManager.H: New file
129
130 * source/Interp.C (Startup): Register bot:DCC-chat-send
131 (Startup): Removed sendDCCChatMessage stuff
132
133 * source/ScriptCommands.C (sendDCCChatMessage): New method:
134 sendDCCChatMessage (to, message) sends message to to.
135
136 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
137 one arg: from (user!nick@host).
138
139 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
140 two args: from (user!nick@host) and line
141
142 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
143
144 * source/Interp.C (Startup): Two new Scheme values:
145 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
146 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
147
148 * source/BotInterp.H: Added two new enum values to Hook:
149 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
150 chat message hooks
151
152 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
153
154 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
155 DCC! Ack, sockets take their arguments in network byte order so
156 there is no need to convert to host...now DCC _sort of_ works.
157
158 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
159
160 * source/UserList.C (save): Increment iterator twice to get around
161 bug (see BUGS #2)
162
163 * source/ServerQueue.C: Now sends SEND_* hooks instead of
164 triggered general hooks.
165
166 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
167 (* = the new SEND_ hooks, but lowercase).
168
169 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
170 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
171
172 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
173
174 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
175 logs again.
176
177 * source/Socket.C (readLine): Now uses a static std::string that
178 starts out with 512 chars. This will never need to be resized for
179 usualy IRC messages, but might be for DCC messages
180
181 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
182
183 * scripts/bobot-utils.scm (not-from-me): New syntax.
184
185 * source/ScriptCommands.C (AddHook): Now takes another optional
186 arg--name that will name the hook (see the hooks section in the
187 manual for what this does).
188
189 * source/BotInterp.H: Added name field to Hook
190
191 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
192
193 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
194 PRIVMSGes because the IRC server doesn't echo them back to the
195 bot. This could be useful for something (e.g. log script).
196
197 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
198
199 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
200 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
201 associated with the hook when Interp::Shutdown is called (bot exit).
202
203 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
204
205 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
206 hook is greater than or less than the other hook, only the
207 priority is considered. However, if both hooks have the same
208 priority, then the fallthru-ness is considered, with fallthru
209 hooks being greater than non-fallthru hooks.
210
211 * source/BotInterp.C (hptr_lt): Added this static function to be
212 used to sort the hooks list (now hooks should be sorted using
213 Hook's operator < instead of using pointer comparision, meaning
214 the new hook system will work correctly)
215
216 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
217 map because we don't need the result of the displays (this would
218 just be a list of #<undefined> values and is a waste of memory).
219
220 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
221
222 * source/Bot.C (Bot): userFunctions is now a map for efficiency
223 (worst case search is now NlogN instead of N). This improvement is
224 not as drastic as the one gained by making the Parser functions
225 list a map (because we don't scan this map for every message), but
226 it helps to clean up the code
227
228 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
229
230 * source/Parser.H: Removed userFunctionsStruct
231
232 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
233 as bot:send-CTCP for Scheme
234
235 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
236
237 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
238
239 * source/ServerQueue.C (sendUser): Changed . . in USER command to
240 0 * (which is the Right Way to because <mode> must be a number...)
241
242 * source/Parser.C (init): New method of Parse. This initalizes the
243 functions map. functions replaces the old functions array, and
244 should yield better performance (since the functions array had to
245 be scanned for every incoming message)
246
247 * source/Parser.H: New member, functions (private)
248
249 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
250
251 * source/Interp.C (Startup): New symbols: bot:user-*
252 [none|user|trusted|friend|master] are defined in Scheme as the
253 different levels of the users.
254 (Startup): All bot-* variables are now bot:*
255
256 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
257
258 * source/Bot.H: Made some variables private because they shouldn't
259 be changed at runtime
260
261 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
262 this out to see if it works and make it work)
263
264 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
265 dir.
266
267 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
268 scripts in the user scripts dir) that made bobot++ not able to
269 load scripts from the user scripts dir
270
271 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
272
273 * source/BotInterp.C (RunHooks): Changed iterators to
274 reverse_iterators because the hooks list is sorted in ascending
275 order--higher priority and fallthrough hooks appear _after_ the
276 lower priority and non-fallthrough hooks.
277
278 * source/Main.C (print_long_help): Added function
279 (print_short_help): Renamed from printUsage
280 (namespace): Most stuff in here is now defined in an anonymouse
281 namespace so it doesn't have external linkage
282 (real_main): Uses getopt_long instead of getopt. Added several
283 command line arguments (bobotpp --help for a full list).
284
285 * scripts/bobot-utils.scm (bot-load): Function moved from
286 bobot-scheme.scm
287
288 * source/Interp.C (Startup): Autoloads
289 PREFIX/bobotpp/scripts/bobot-utils.scm now
290 (Startup): New Scheme variable: bot-sys-scripts-dir (system
291 scripts dir)
292
293 * source/bobot-scheme.scm.in: Removed
294
295 * source/Makefile.am: Removed bobot-scheme.scm compiliation
296
297 * configure.ac (PREFIX): configure.ac defined prefix now
298
299 * source/Main.C (real_main): Default configuration is now read
300 from /etc/bobotpp/default
301 * source/bobot-scheme.scm.in: Added file. This defines the
302 'bot-load' procedure which will load a file from
303 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
304 script doesn't exist in the user script dir.
305
306 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
307
308 * bobot++.texinfo: Started docs (just a skeleton right now)
309
310 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
311 args to set a hooks priority and whether or not it will
312 fallthrough. These args are optional.
313
314 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
315
316 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
317 (RunHooks): exec fallthrough hooks first.
318
319 * source/BotInterp.H: Changed Hooks to have priority
320 Added fhooksMap to BotInterp (fallthrough)
321
322 * source/UserCommands.C (AddShit): Converted to use Commands
323
324 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
325
326 * source/Commands.C (AddUser): Fixed a one-off (function call was
327 before a brace instead of after one) that caused a segfault when
328 the user mask was a wildcard
329
330 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
331
332 * all files: Updated address of the FSF
333
334 * source/UserCommands.C (AddUser): Uses Commands now instead of
335 manipulating the bot directly
336
337 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
338
339 * source/ScriptCommands.C (AddShit): Filled in function.
340
341 * source/Interp.C (Startup): Bind bot-adduser to
342 ScriptCommands::AddUser instead of Action
343 (Startup): Bind bot-addshit to ScriptCommands::AddShit
344
345 * source/ScriptCommands.C (AddUser): Filled in function
346
347 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
348 would have caused problems if you used more than one server
349
350 * source/Parser.H: Changed const char* to String in userFunctionStruct
351
352 * source/String.H: Added std::string compatibility members
353
354 * configure.ac: You can now disable Crypt and scripting
355
356 * source/*: Added #include "config.h" where needed
357
358 * configure.ac: Added AM_CONFIG_HEADER
359
360 * config.h.in: added file
361
362 * source/Queue.C: Didn't notice iostream.h here! Fixed
363
364
365 Copyright 2002 Clinton Ebadi
366 Copying and distribution of this file, with or without modification, are
367 permitted provided the copyright notice and this notice are preserved.