[project @ 2005-06-24 22:10:09 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * All: Updated FSF street address
4
5 * source/Commands.C (Msg): Move body of Say to an if inside of this
6 (Say): Just call Msg
7
8 * source/ScriptCommands.C (sendNotice): Returns error code instead
9 of just #t or #f
10
11 * source/Commands.C (Say): Check to make sure target is a channel
12 (Msg): Extended to send messages to channels
13
14 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
15
16 * scripts/bot.scm: Added file ((bobotpp bot) module for other
17 modules to gain access to bobot++ interface)
18
19 * source/Commands.C (Notice): Commented out check/abort if target
20 is a channel (there doesn't seem to be a reason for this to not work)
21
22 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
23
24 * bobot++.texinfo (High Level Message Functions): Document bot:notice
25
26 * source/Message.H: Added operator== to Message (tests for error
27 code equality)
28
29 * source/Commands.C: Removed message type macros
30
31 * source/Message.H: Moved message type macros to Message.H
32
33 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
34
35 * source/ScriptCommands.H: Uncomment sendNotice
36
37 * source/Bot.C (waitForInput): Use %02d when formatting
38 Hooks::TIMER argument instead of %2d, and switch to snprintf to
39 enforce max length
40
41 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
42 of processing).
43
44 * source/Bot.C (run): Added call to Hooks::DISCONNECT
45 (hooks/disconnect) when the bot is disconnected from the server
46
47 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
48 (Hook Types): Added hooks/disconnect argument
49
50 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
51
52 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
53 again (thanks dsmith)
54
55 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
56
57 * source/Interp.C (interp_init_helper): Added
58 bot:protection/[none|ban|kick|deop] constants to Scheme
59 (interp_init_helper): Added bot:aop/[yes|no] constants
60
61 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
62
63 * configure.ac: Release Bobot++ 2.1.7
64 Changed version to 2.18.CVS
65
66 * source/UserList.C (save): Remove workaround for BUG #2
67
68 * source/Parser.C (parse001): make realNick lowercase when doing
69 the comparison to bot->nickName to prevent pushing a second copy
70 of the bot onto the userlist (closes BUG #2)
71
72 * source/Bot.C (Bot): cleaned up constructor
73 (waitForInput): replaced gh_list with scm_list_n
74
75 * source/UserList.C: Cleaned up some formatting
76
77 * source/Main.C: Formatted code more cleanly
78 (real_main): changed a few Strings to std::strings
79
80 * source/String.C (operator): Made index signed again, it's not
81 worth fixing this warning
82
83 * source/Bot.C: Add casts to make this compile with unsigned int
84 as operator[] in String
85
86 * source/String.C (operator): Made index unsigned
87
88 * source/Utils.C: Made a few things unsigned to kill warnings
89
90 * source/Socket.C (readLine): Made pos unsigned
91
92 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
93
94 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
95
96 * source/StringTokenizer.C (count_tokens): Changed return type to
97 unsigned int
98 (more_tokens_p): Made counter unsigned
99
100 * source/StringTokenizer.H (class StringTokenizer): Made pos
101 std::string::size_type instead of int
102
103 * source/Commands.C (TBan): Returns Ok is the ban is done instead
104 of falling off the end (oops)
105
106 * source/BotInterp.H: Add general catch case (false)
107
108 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
109
110 * configure.ac: Release 2.1.6
111 Changed version to 2.1.7CVS
112
113 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
114
115 * source/Parser.C (parseLine): use map<>::find and an iterator to
116 find the IRC command instead of map<>::operator[] to avoid a
117 potential segfault
118
119 * source/Bot.C (waitForInput): Removed commented out code
120
121 * source/Socket.C (readLine): return String (buf.c_str ()) instead
122 of String (buf) so that only the buffer up to the first null is returned
123 (readLine): Added a comment explaining the usage of buf
124 (readLine): Changed type of length (std::string::size_type instead
125 of std::size_t)
126
127 * source/String.C: Reimplemented String on top of std::string to
128 fix a few bugs and potential memory leaks
129 (toLower): use Utils::to_lower
130 (toUpper): Use Utils::to_upper
131 (trim): Use Utils::trim_str
132
133 * source/String.H: removed srep, replaced it with a std::string (my_string)
134
135 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
136 <josh@stack.nl>
137 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
138 counters and substr call)
139
140 * source/StringTokenizer.C (next_token): Applied patch from Jos
141 Hulzink <josh@stack.nl> (fixes substr call)
142 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
143 substr call)
144
145 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
146
147 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
148 he is a lazy bum and never submitted the String replacing patch
149
150 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
151
152 * configure.ac: Remove CC++ test
153 Changed version to 2.1.6CVS (2.1.5 released)
154
155 * bobot++.texinfo: Updated copyright
156
157 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
158
159 * TODO (General): Added TODO items
160 (2.2): Moved a few items here from 2.4
161
162 * README (NOTE): Mention boost requirement
163
164 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
165
166 * ChangeLog Updated copryight
167
168 * source/User.H: Removed forward declaration of Utils
169
170 * source/Bot.H: Removed forward declaration of Utils
171
172 * source/ChannelList.H: Removed forward declaration of Utils
173
174 * source/UserListItem.H: Removed forward declaration of Utils
175
176 * source/Utils.H: Removed class Utils, replaced with a namspace
177 (it only contained static methods)
178
179 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
180 (he is replacing String)
181
182 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
183
184 * source/BotConfig.C (set_option_value): Put watcher calling
185 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
186 = end then there are no watchers since this is a new value and
187 references cf_iter->second segfaults)
188
189 * source/Utils.C (trim_str): Fixed bug (last non-space character
190 was being cut off)
191
192 * source/BotConfig.C (read_config): Made to use set_option_value
193 instead of manipulating options_db directly
194
195 * source/BotConfig.H (class BotConfig): Add set_option_value that
196 takes a t_value instead of t_value_list (most uss of
197 set_option_value will be to add a single value so this is very useful)
198
199 * source/BotConfig.C (set_option_value): Implemented
200
201 * source/UserList.C: Made to work with new Utils/StringTokenizer names
202
203 * source/UserCommands.C: Made to work with new
204 Utils/StringTokenizer names
205
206 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
207
208 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
209
210 * source/ShitList.C: Made to work with new StringTokenizer names
211
212 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
213
214 * source/ServerQueue.C: Made to work with new Utils names
215
216 * source/ScriptCommands.C: Made work with new Utils names
217
218 * source/Person.C (getNick): Made work with new Utils names
219
220 * source/String.H: Added substr prototypes
221
222 * source/String.C (substr): Added substr as an alias of subString
223 (for compat with std::string before the transition)
224
225 * source/Parser.C: Made to work with new Utils/StringTokenizer names
226
227 * source/DCCParser.C: Made to work with new Utils names
228
229 * source/DCCChatConnection.C: Made to work new Utils names
230
231 * source/Commands.C: Made to work with new Utils names
232
233 * source/Channel.C: Made to work with new Utils names
234
235 * source/BotInterp.C: Made to work with new Utils
236
237 * source/Bot.C: Made to work with new Utils/StringTokenizer names
238
239 * source/String.C (operator=): Unremoved operator=(std::string)
240
241 * source/String.H: Unremoved operator=(std::string)
242
243 * source/BotConfig.C (read_config): Use Utils::trim_str
244
245 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
246
247 * source/Utils.C (trim_str): Implemented
248
249 * source/Utils.H: Added tim_str (replaces String::trim)
250
251 * source/BotConfig.C: Made everything work with new
252 StringTokenizer and Utils names
253
254 * source/Utils.H: Added to_lower
255 Added to_upper
256
257 * source/StringTokenizer.C (rest): uses std::isspace instead of
258 checking st[pos] against ' ' and '\t'
259
260 * source/StringTokenizer.H: Removed CamelCasing
261 Renamed hasMoreTokens to more_tokens_p
262
263 * source/StringTokenizer.C: Converted to use std::string
264
265 * source/StringTokenizer.H: Converted to use std::string
266
267 * source/String.C: Removed operator=(std::string)
268
269 * source/String.H: Removed operator=(std::string)
270
271 * source/Utils.C: Added copyright
272 Reformatted to match GNU coding standard more closely
273 Converted everything to use std::string
274 (get_nick): Renamed from getNick
275 (get_userhost): Renamed from getUserHost
276 (get_key): Renamed from getKey
277 (IP_p): Renamed from isIP
278 (make_wildcard): Renamed from makeWildcard
279 (channel_p): Renamed from isChannel
280 (wildcard_p): Renamed from isWildcard
281 (valid_channel_name_p): Renamed from isValidChannelName
282 (valid_nickname_p): Renamed from isValidNickName
283 (get_level): Renamed from getLevel
284 (str2time): Renamed from strToTime
285 (str2time): Fixed potential buffer overflow (num[512] => std::string)
286 (level2str): Renamed from levelToStr
287 (prot2str): Renamed from protToStr
288 (bool2str): Renamed from boolToStr
289 (long2str): Implemented
290 (scm2str): Renamed from scm2String
291 (str2scm): Renamed from string2SCM
292
293 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
294
295 * source/Utils.H: Added long2str (long int -> std::string)
296
297 * source/String.H: Added 2003 copyright (the year I last modified
298 it in)
299
300 * source/String.C: Added 2002 copyright (the year I last modified
301 it in)
302
303 * source/Utils.H: Updated Copyright
304 s/String/std::string/g
305 Removed camel casing and is* = *_p
306 xToY = x2y
307
308 * source/BotConfig.C: Updated Copyright
309
310 * source/BotConfig.H: Updated copyright
311
312 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
313
314 * source/BotConfig.C (set_option_value): Take care of the case
315 where key is not already in the db
316 (add_watcher): Implemented
317 (read_config): Removed ',' token parsing (not needed)
318
319 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
320 AC_CHECK_LIB ccgnu2 (CommonC++2)
321
322 * README: Updated README (reformatted, adding info, etc.)
323
324 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
325
326 * source/BotConfig.C (set_option_value): call watcher list
327 (run_fun_): Added to support watcher list calling
328
329 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
330
331 * source/BotConfig.C (set_option_value): Fuck you STL
332 (push_back_): Reimplemented so that it doesn't need std::bind1st
333 because the STL is being stupid
334
335 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
336
337 * source/BotConfig.C (read_config): Implemented properly
338 (get_option_values): Implemented properly
339 (set_config_file): Fixed
340
341 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
342
343 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
344 list of commands
345
346 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
347
348 * source/BotConfig.C: New file (implementation of configuration database)
349
350 * source/BotConfig.H: New File (semi-generic configuration database)
351
352 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
353
354 * bobot++.texinfo (Starting the Bot): New section
355
356 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
357
358 * bobot++.texinfo (Protection): Added Section
359 (User Levels): Rewrote section to be useful
360 (bot.users): Added section
361
362 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
363
364 * source/DCCChatConnection.C (connect): Checks to make sure the
365 person initiating a DCC CHAT with the bot is at least a FRIEND of
366 the bot.
367
368 * README: Fixed a typo
369
370 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
371 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
372
373 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
374
375 * bobot++.texinfo (bot.conf): Finished section
376 (server syntax): New section, documents the bot.conf SERVER syntax
377 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
378
379 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
380
381 * source/Main.C (real_main): std::exit instead of exit
382
383 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
384
385 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
386 constructor with `n' This should fix the segfaulting.
387
388 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
389
390 * ChangeLog: Updated copyright notice
391
392 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
393
394 * source/Interp.C (interp_init_helper): Register
395 bot:change-command-level
396
397 * source/ScriptCommands.C (ChangeCommandLevel): Added
398 ChangeCommandLevel to change the level a user needs to be to run a
399 command
400
401 * source/ScriptCommands.H: Added ChangeCommandLevel
402
403 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
404
405 * source/String.H: Changed #define STRING_H to BSTRING_H
406
407 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
408
409 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
410 to see if a message was sent to the bot (this is better than
411 bot:match-to-me because the hook isn't invalidated when the bot's
412 nickname changes)
413
414 * source/DCCConnection.H: Added `nuh' back and added an
415 accessor (get_nuh)
416 Added setter `set_autoRemove(bool)'
417
418 * source/DCCConnection.H: Removed all friends
419 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
420 reveals the pointer to the bot [PRIVATE POINTER] which probably
421 isn't so nice, but there isn't much to be done about it with the
422 current design of the bot)
423
424 * source/DCCChatConnection.H: Removed all friends
425
426 * source/DCCConnection.H: DCCConnection is now a pure virtual
427 class with the subclass DCCChatConnection
428
429 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
430
431 * source/Socket.C (connect): log errors to the bot log instead of
432 printing to stderr
433
434 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
435
436 * source/Parser.C (parseMessage): use the find method of std::map
437 to find the command to call instead of [] and then extract the
438 pointer to the userFunction from that if it exists. This appears
439 to fix the crash when one uses an undefined command followed by
440 any defined command.
441
442 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
443
444 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
445 ScriptCommands::SetFloodRate
446
447 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
448
449 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
450 to bot master
451
452 * source/Bot.H: Made MAX_MESSAGES writeable
453
454 * source/UserCommands.H: New method: SetFloodRate
455
456 * source/Commands.H: New method: SetFloodRate
457
458 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
459
460 * configure.ac: Merged all AC_OUTPUTs at the end
461
462 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
463
464 * scripts/bobot-utils.scm: Make exported symbols from
465 the-bot-module available in the guile-user module so that scripts
466 loaded with Interp::Load function.
467
468 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
469
470 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
471 %bot:loadpath into its own module and returns that (unnamed) module
472 (bot:use-module): Calls bot:load-module and then adds the newly
473 loaded module to the (current-module)'s use-list
474
475 * source/Interp.C (interp_init_helper): New procedure to initialize
476 the-bot-module (this is the old Interp::Startup verbatim)
477 (interp_post_startup_helper): New procedure to export
478 the-bot-module from bot_module
479 (Startup): Now calls interp_init_helper and
480 interp_post_startup_helper to initalize the bot module system
481
482 * source/Interp.H: Added private variable bot_module to Interp
483
484 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
485
486 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
487 this breaks existing scripts, this is the unstable tree after all)
488
489 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
490
491 * source/Mask.C (match): Made Mask::match case insensitive
492
493 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
494
495 * source/Interp.C (scm_apply_wrapper): turned off locking of
496 Interp::mutex to see if this makes the bot work again...and it
497 does!
498
499 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
500
501 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
502 everything to use aclocal/automake 1.6
503
504 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
505
506 * source/DCCPerson.H (class DCCPerson): Added
507 UserCommands::DCCList as a friend (friends are better than the old
508 DCC() function at least).
509
510 * source/DCCManager.H (class DCCManager): Added
511 UserCommands::DCCList as a friend
512
513 * source/Interp.H (class Interp): Made function scm_apply_wrapper
514 a friend so it can lock Interp::mutex
515
516 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
517 MULTITHREAD is defined (it is always defined when scripting is
518 enabled) so that Sockets can be made multithreaded using
519 CommonC++.
520
521 * source/DCCPerson.H: Removed DCC method and made Bot a friend
522 Made DCCManager a friend
523
524 * source/DCCManager.H (class DCCManager): Removed MAP() method
525 and made Bot a friend of DCCManager
526
527 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
528
529 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
530 bot:dcc-chat-send.
531
532 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
533 user!nick@host instead of the correct nick!user@host).
534
535 * source/Interp.C (Startup): Register bot:DCC-chat-send
536
537 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
538
539 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
540
541 * source/String.C (String): The std::string copy constructor now
542 extracts the c_str of the std::string and then takes the strlen of
543 that before copying it. This fixes a bug with DCC where if you did
544 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
545 something like that, depending on what the last message was
546 because Socket will insert a \0 into its semi-static buffer, so
547 the len of the String will not equal the strlen of its char*.
548
549 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
550
551 * source/DCCPerson.H: Removed destructor (I = idiot)
552
553 * source/DCCConnection.H: DCCManager is now a friend of
554 DCCConnection (ugh, the bot has way too many friends).
555
556 * source/DCCPerson.H: Added DCC member that returns a const
557 DCCConnection* (the dcc connection). This isn't saved anywhere
558 because when a DCCPerson is destroyed, its connection is also
559 destroyed.
560
561 * source/Bot.H: dccConnections is now a DCCManager
562
563 * source/DCCPerson.H: Added destructor
564 Added handleInput method
565
566 * source/DCCManager.C: New file
567 (addConnection): Wrote method, add a DCCConection to the manager
568
569 * source/DCCManager.H: New file
570
571 * source/Interp.C (Startup): Register bot:DCC-chat-send
572 (Startup): Removed sendDCCChatMessage stuff
573
574 * source/ScriptCommands.C (sendDCCChatMessage): New method:
575 sendDCCChatMessage (to, message) sends message to to.
576
577 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
578 one arg: from (user!nick@host).
579
580 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
581 two args: from (user!nick@host) and line
582
583 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
584
585 * source/Interp.C (Startup): Two new Scheme values:
586 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
587 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
588
589 * source/BotInterp.H: Added two new enum values to Hook:
590 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
591 chat message hooks
592
593 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
594
595 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
596 DCC! Ack, sockets take their arguments in network byte order so
597 there is no need to convert to host...now DCC _sort of_ works.
598
599 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
600
601 * source/UserList.C (save): Increment iterator twice to get around
602 bug (see BUGS #2)
603
604 * source/ServerQueue.C: Now sends SEND_* hooks instead of
605 triggered general hooks.
606
607 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
608 (* = the new SEND_ hooks, but lowercase).
609
610 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
611 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
612
613 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
614
615 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
616 logs again.
617
618 * source/Socket.C (readLine): Now uses a static std::string that
619 starts out with 512 chars. This will never need to be resized for
620 usualy IRC messages, but might be for DCC messages
621
622 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
623
624 * scripts/bobot-utils.scm (not-from-me): New syntax.
625
626 * source/ScriptCommands.C (AddHook): Now takes another optional
627 arg--name that will name the hook (see the hooks section in the
628 manual for what this does).
629
630 * source/BotInterp.H: Added name field to Hook
631
632 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
633
634 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
635 PRIVMSGes because the IRC server doesn't echo them back to the
636 bot. This could be useful for something (e.g. log script).
637
638 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
639
640 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
641 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
642 associated with the hook when Interp::Shutdown is called (bot exit).
643
644 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
645
646 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
647 hook is greater than or less than the other hook, only the
648 priority is considered. However, if both hooks have the same
649 priority, then the fallthru-ness is considered, with fallthru
650 hooks being greater than non-fallthru hooks.
651
652 * source/BotInterp.C (hptr_lt): Added this static function to be
653 used to sort the hooks list (now hooks should be sorted using
654 Hook's operator < instead of using pointer comparision, meaning
655 the new hook system will work correctly)
656
657 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
658 map because we don't need the result of the displays (this would
659 just be a list of #<undefined> values and is a waste of memory).
660
661 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
662
663 * source/Bot.C (Bot): userFunctions is now a map for efficiency
664 (worst case search is now NlogN instead of N). This improvement is
665 not as drastic as the one gained by making the Parser functions
666 list a map (because we don't scan this map for every message), but
667 it helps to clean up the code
668
669 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
670
671 * source/Parser.H: Removed userFunctionsStruct
672
673 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
674 as bot:send-CTCP for Scheme
675
676 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
677
678 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
679
680 * source/ServerQueue.C (sendUser): Changed . . in USER command to
681 0 * (which is the Right Way to because <mode> must be a number...)
682
683 * source/Parser.C (init): New method of Parse. This initalizes the
684 functions map. functions replaces the old functions array, and
685 should yield better performance (since the functions array had to
686 be scanned for every incoming message)
687
688 * source/Parser.H: New member, functions (private)
689
690 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
691
692 * source/Interp.C (Startup): New symbols: bot:user-*
693 [none|user|trusted|friend|master] are defined in Scheme as the
694 different levels of the users.
695 (Startup): All bot-* variables are now bot:*
696
697 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
698
699 * source/Bot.H: Made some variables private because they shouldn't
700 be changed at runtime
701
702 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
703 this out to see if it works and make it work)
704
705 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
706 dir.
707
708 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
709 scripts in the user scripts dir) that made bobot++ not able to
710 load scripts from the user scripts dir
711
712 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
713
714 * source/BotInterp.C (RunHooks): Changed iterators to
715 reverse_iterators because the hooks list is sorted in ascending
716 order--higher priority and fallthrough hooks appear _after_ the
717 lower priority and non-fallthrough hooks.
718
719 * source/Main.C (print_long_help): Added function
720 (print_short_help): Renamed from printUsage
721 (namespace): Most stuff in here is now defined in an anonymouse
722 namespace so it doesn't have external linkage
723 (real_main): Uses getopt_long instead of getopt. Added several
724 command line arguments (bobotpp --help for a full list).
725
726 * scripts/bobot-utils.scm (bot-load): Function moved from
727 bobot-scheme.scm
728
729 * source/Interp.C (Startup): Autoloads
730 PREFIX/bobotpp/scripts/bobot-utils.scm now
731 (Startup): New Scheme variable: bot-sys-scripts-dir (system
732 scripts dir)
733
734 * source/bobot-scheme.scm.in: Removed
735
736 * source/Makefile.am: Removed bobot-scheme.scm compiliation
737
738 * configure.ac (PREFIX): configure.ac defined prefix now
739
740 * source/Main.C (real_main): Default configuration is now read
741 from /etc/bobotpp/default
742 * source/bobot-scheme.scm.in: Added file. This defines the
743 'bot-load' procedure which will load a file from
744 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
745 script doesn't exist in the user script dir.
746
747 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
748
749 * bobot++.texinfo: Started docs (just a skeleton right now)
750
751 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
752 args to set a hooks priority and whether or not it will
753 fallthrough. These args are optional.
754
755 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
756
757 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
758 (RunHooks): exec fallthrough hooks first.
759
760 * source/BotInterp.H: Changed Hooks to have priority
761 Added fhooksMap to BotInterp (fallthrough)
762
763 * source/UserCommands.C (AddShit): Converted to use Commands
764
765 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
766
767 * source/Commands.C (AddUser): Fixed a one-off (function call was
768 before a brace instead of after one) that caused a segfault when
769 the user mask was a wildcard
770
771 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
772
773 * all files: Updated address of the FSF
774
775 * source/UserCommands.C (AddUser): Uses Commands now instead of
776 manipulating the bot directly
777
778 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
779
780 * source/ScriptCommands.C (AddShit): Filled in function.
781
782 * source/Interp.C (Startup): Bind bot-adduser to
783 ScriptCommands::AddUser instead of Action
784 (Startup): Bind bot-addshit to ScriptCommands::AddShit
785
786 * source/ScriptCommands.C (AddUser): Filled in function
787
788 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
789 would have caused problems if you used more than one server
790
791 * source/Parser.H: Changed const char* to String in userFunctionStruct
792
793 * source/String.H: Added std::string compatibility members
794
795 * configure.ac: You can now disable Crypt and scripting
796
797 * source/*: Added #include "config.h" where needed
798
799 * configure.ac: Added AM_CONFIG_HEADER
800
801 * config.h.in: added file
802
803 * source/Queue.C: Didn't notice iostream.h here! Fixed
804
805
806 Copyright 2002,2003,2004,2005 Clinton Ebadi
807 Copying and distribution of this file, with or without modification, are
808 permitted provided the copyright notice and this notice are preserved.