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