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