1 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
3 * bobot++.texinfo (Low Level Message Functions): Documented
6 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
8 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
11 * bobot++.texinfo (Low Level Message Functions):
12 s/bot:send-CTCP/bot:send-ctcp/
14 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
17 * source/ScriptCommands.H: Uncommended sendCTCPReply prototype
19 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
20 (sendCTCPReply): Added
22 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
24 * source/Commands.C (CTCP): Implemented
25 (CTCPReply): Implemented
26 (Action): Convert to use Commands::CTCP
28 * source/Commands.H: Added CTCP (bot, target, command, message)
29 Added CTCPReply (bot, target, command, message)
31 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
33 * examples/bot.conf (maxnicklength): Update example config
35 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
37 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
39 * source/Bot.H: Added MAX_NICKLENGTH member
41 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
43 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
46 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
48 * source/Commands.C (Notice): Send multiple NOTICEs when a message
51 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
53 * source/Main.C (real_main): Enable Guile debugging mode when
56 * source/Interp.C (interp_post_startup_helper): Return
57 SCM_UNSPECIFIED instead of 0
59 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
61 * All: Updated FSF street address
63 * source/Commands.C (Msg): Move body of Say to an if inside of this
66 * source/ScriptCommands.C (sendNotice): Returns error code instead
69 * source/Commands.C (Say): Check to make sure target is a channel
70 (Msg): Extended to send messages to channels
72 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
74 * scripts/bot.scm: Added file ((bobotpp bot) module for other
75 modules to gain access to bobot++ interface)
77 * source/Commands.C (Notice): Commented out check/abort if target
78 is a channel (there doesn't seem to be a reason for this to not work)
80 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
82 * bobot++.texinfo (High Level Message Functions): Document bot:notice
84 * source/Message.H: Added operator== to Message (tests for error
87 * source/Commands.C: Removed message type macros
89 * source/Message.H: Moved message type macros to Message.H
91 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
93 * source/ScriptCommands.H: Uncomment sendNotice
95 * source/Bot.C (waitForInput): Use %02d when formatting
96 Hooks::TIMER argument instead of %2d, and switch to snprintf to
99 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
102 * source/Bot.C (run): Added call to Hooks::DISCONNECT
103 (hooks/disconnect) when the bot is disconnected from the server
105 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
106 (Hook Types): Added hooks/disconnect argument
108 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
110 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
111 again (thanks dsmith)
113 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
115 * source/Interp.C (interp_init_helper): Added
116 bot:protection/[none|ban|kick|deop] constants to Scheme
117 (interp_init_helper): Added bot:aop/[yes|no] constants
119 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
121 * configure.ac: Release Bobot++ 2.1.7
122 Changed version to 2.18.CVS
124 * source/UserList.C (save): Remove workaround for BUG #2
126 * source/Parser.C (parse001): make realNick lowercase when doing
127 the comparison to bot->nickName to prevent pushing a second copy
128 of the bot onto the userlist (closes BUG #2)
130 * source/Bot.C (Bot): cleaned up constructor
131 (waitForInput): replaced gh_list with scm_list_n
133 * source/UserList.C: Cleaned up some formatting
135 * source/Main.C: Formatted code more cleanly
136 (real_main): changed a few Strings to std::strings
138 * source/String.C (operator): Made index signed again, it's not
139 worth fixing this warning
141 * source/Bot.C: Add casts to make this compile with unsigned int
142 as operator[] in String
144 * source/String.C (operator): Made index unsigned
146 * source/Utils.C: Made a few things unsigned to kill warnings
148 * source/Socket.C (readLine): Made pos unsigned
150 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
152 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
154 * source/StringTokenizer.C (count_tokens): Changed return type to
156 (more_tokens_p): Made counter unsigned
158 * source/StringTokenizer.H (class StringTokenizer): Made pos
159 std::string::size_type instead of int
161 * source/Commands.C (TBan): Returns Ok is the ban is done instead
162 of falling off the end (oops)
164 * source/BotInterp.H: Add general catch case (false)
166 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
168 * configure.ac: Release 2.1.6
169 Changed version to 2.1.7CVS
171 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
173 * source/Parser.C (parseLine): use map<>::find and an iterator to
174 find the IRC command instead of map<>::operator[] to avoid a
177 * source/Bot.C (waitForInput): Removed commented out code
179 * source/Socket.C (readLine): return String (buf.c_str ()) instead
180 of String (buf) so that only the buffer up to the first null is returned
181 (readLine): Added a comment explaining the usage of buf
182 (readLine): Changed type of length (std::string::size_type instead
185 * source/String.C: Reimplemented String on top of std::string to
186 fix a few bugs and potential memory leaks
187 (toLower): use Utils::to_lower
188 (toUpper): Use Utils::to_upper
189 (trim): Use Utils::trim_str
191 * source/String.H: removed srep, replaced it with a std::string (my_string)
193 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
195 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
196 counters and substr call)
198 * source/StringTokenizer.C (next_token): Applied patch from Jos
199 Hulzink <josh@stack.nl> (fixes substr call)
200 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
203 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
205 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
206 he is a lazy bum and never submitted the String replacing patch
208 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
210 * configure.ac: Remove CC++ test
211 Changed version to 2.1.6CVS (2.1.5 released)
213 * bobot++.texinfo: Updated copyright
215 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
217 * TODO (General): Added TODO items
218 (2.2): Moved a few items here from 2.4
220 * README (NOTE): Mention boost requirement
222 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
224 * ChangeLog Updated copryight
226 * source/User.H: Removed forward declaration of Utils
228 * source/Bot.H: Removed forward declaration of Utils
230 * source/ChannelList.H: Removed forward declaration of Utils
232 * source/UserListItem.H: Removed forward declaration of Utils
234 * source/Utils.H: Removed class Utils, replaced with a namspace
235 (it only contained static methods)
237 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
238 (he is replacing String)
240 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
242 * source/BotConfig.C (set_option_value): Put watcher calling
243 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
244 = end then there are no watchers since this is a new value and
245 references cf_iter->second segfaults)
247 * source/Utils.C (trim_str): Fixed bug (last non-space character
250 * source/BotConfig.C (read_config): Made to use set_option_value
251 instead of manipulating options_db directly
253 * source/BotConfig.H (class BotConfig): Add set_option_value that
254 takes a t_value instead of t_value_list (most uss of
255 set_option_value will be to add a single value so this is very useful)
257 * source/BotConfig.C (set_option_value): Implemented
259 * source/UserList.C: Made to work with new Utils/StringTokenizer names
261 * source/UserCommands.C: Made to work with new
262 Utils/StringTokenizer names
264 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
266 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
268 * source/ShitList.C: Made to work with new StringTokenizer names
270 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
272 * source/ServerQueue.C: Made to work with new Utils names
274 * source/ScriptCommands.C: Made work with new Utils names
276 * source/Person.C (getNick): Made work with new Utils names
278 * source/String.H: Added substr prototypes
280 * source/String.C (substr): Added substr as an alias of subString
281 (for compat with std::string before the transition)
283 * source/Parser.C: Made to work with new Utils/StringTokenizer names
285 * source/DCCParser.C: Made to work with new Utils names
287 * source/DCCChatConnection.C: Made to work new Utils names
289 * source/Commands.C: Made to work with new Utils names
291 * source/Channel.C: Made to work with new Utils names
293 * source/BotInterp.C: Made to work with new Utils
295 * source/Bot.C: Made to work with new Utils/StringTokenizer names
297 * source/String.C (operator=): Unremoved operator=(std::string)
299 * source/String.H: Unremoved operator=(std::string)
301 * source/BotConfig.C (read_config): Use Utils::trim_str
303 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
305 * source/Utils.C (trim_str): Implemented
307 * source/Utils.H: Added tim_str (replaces String::trim)
309 * source/BotConfig.C: Made everything work with new
310 StringTokenizer and Utils names
312 * source/Utils.H: Added to_lower
315 * source/StringTokenizer.C (rest): uses std::isspace instead of
316 checking st[pos] against ' ' and '\t'
318 * source/StringTokenizer.H: Removed CamelCasing
319 Renamed hasMoreTokens to more_tokens_p
321 * source/StringTokenizer.C: Converted to use std::string
323 * source/StringTokenizer.H: Converted to use std::string
325 * source/String.C: Removed operator=(std::string)
327 * source/String.H: Removed operator=(std::string)
329 * source/Utils.C: Added copyright
330 Reformatted to match GNU coding standard more closely
331 Converted everything to use std::string
332 (get_nick): Renamed from getNick
333 (get_userhost): Renamed from getUserHost
334 (get_key): Renamed from getKey
335 (IP_p): Renamed from isIP
336 (make_wildcard): Renamed from makeWildcard
337 (channel_p): Renamed from isChannel
338 (wildcard_p): Renamed from isWildcard
339 (valid_channel_name_p): Renamed from isValidChannelName
340 (valid_nickname_p): Renamed from isValidNickName
341 (get_level): Renamed from getLevel
342 (str2time): Renamed from strToTime
343 (str2time): Fixed potential buffer overflow (num[512] => std::string)
344 (level2str): Renamed from levelToStr
345 (prot2str): Renamed from protToStr
346 (bool2str): Renamed from boolToStr
347 (long2str): Implemented
348 (scm2str): Renamed from scm2String
349 (str2scm): Renamed from string2SCM
351 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
353 * source/Utils.H: Added long2str (long int -> std::string)
355 * source/String.H: Added 2003 copyright (the year I last modified
358 * source/String.C: Added 2002 copyright (the year I last modified
361 * source/Utils.H: Updated Copyright
362 s/String/std::string/g
363 Removed camel casing and is* = *_p
366 * source/BotConfig.C: Updated Copyright
368 * source/BotConfig.H: Updated copyright
370 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
372 * source/BotConfig.C (set_option_value): Take care of the case
373 where key is not already in the db
374 (add_watcher): Implemented
375 (read_config): Removed ',' token parsing (not needed)
377 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
378 AC_CHECK_LIB ccgnu2 (CommonC++2)
380 * README: Updated README (reformatted, adding info, etc.)
382 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
384 * source/BotConfig.C (set_option_value): call watcher list
385 (run_fun_): Added to support watcher list calling
387 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
389 * source/BotConfig.C (set_option_value): Fuck you STL
390 (push_back_): Reimplemented so that it doesn't need std::bind1st
391 because the STL is being stupid
393 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
395 * source/BotConfig.C (read_config): Implemented properly
396 (get_option_values): Implemented properly
397 (set_config_file): Fixed
399 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
401 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
404 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
406 * source/BotConfig.C: New file (implementation of configuration database)
408 * source/BotConfig.H: New File (semi-generic configuration database)
410 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
412 * bobot++.texinfo (Starting the Bot): New section
414 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
416 * bobot++.texinfo (Protection): Added Section
417 (User Levels): Rewrote section to be useful
418 (bot.users): Added section
420 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
422 * source/DCCChatConnection.C (connect): Checks to make sure the
423 person initiating a DCC CHAT with the bot is at least a FRIEND of
426 * README: Fixed a typo
428 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
429 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
431 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
433 * bobot++.texinfo (bot.conf): Finished section
434 (server syntax): New section, documents the bot.conf SERVER syntax
435 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
437 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
439 * source/Main.C (real_main): std::exit instead of exit
441 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
443 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
444 constructor with `n' This should fix the segfaulting.
446 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
448 * ChangeLog: Updated copyright notice
450 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
452 * source/Interp.C (interp_init_helper): Register
453 bot:change-command-level
455 * source/ScriptCommands.C (ChangeCommandLevel): Added
456 ChangeCommandLevel to change the level a user needs to be to run a
459 * source/ScriptCommands.H: Added ChangeCommandLevel
461 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
463 * source/String.H: Changed #define STRING_H to BSTRING_H
465 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
467 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
468 to see if a message was sent to the bot (this is better than
469 bot:match-to-me because the hook isn't invalidated when the bot's
472 * source/DCCConnection.H: Added `nuh' back and added an
474 Added setter `set_autoRemove(bool)'
476 * source/DCCConnection.H: Removed all friends
477 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
478 reveals the pointer to the bot [PRIVATE POINTER] which probably
479 isn't so nice, but there isn't much to be done about it with the
480 current design of the bot)
482 * source/DCCChatConnection.H: Removed all friends
484 * source/DCCConnection.H: DCCConnection is now a pure virtual
485 class with the subclass DCCChatConnection
487 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
489 * source/Socket.C (connect): log errors to the bot log instead of
492 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
494 * source/Parser.C (parseMessage): use the find method of std::map
495 to find the command to call instead of [] and then extract the
496 pointer to the userFunction from that if it exists. This appears
497 to fix the crash when one uses an undefined command followed by
500 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
502 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
503 ScriptCommands::SetFloodRate
505 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
507 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
510 * source/Bot.H: Made MAX_MESSAGES writeable
512 * source/UserCommands.H: New method: SetFloodRate
514 * source/Commands.H: New method: SetFloodRate
516 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
518 * configure.ac: Merged all AC_OUTPUTs at the end
520 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
522 * scripts/bobot-utils.scm: Make exported symbols from
523 the-bot-module available in the guile-user module so that scripts
524 loaded with Interp::Load function.
526 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
528 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
529 %bot:loadpath into its own module and returns that (unnamed) module
530 (bot:use-module): Calls bot:load-module and then adds the newly
531 loaded module to the (current-module)'s use-list
533 * source/Interp.C (interp_init_helper): New procedure to initialize
534 the-bot-module (this is the old Interp::Startup verbatim)
535 (interp_post_startup_helper): New procedure to export
536 the-bot-module from bot_module
537 (Startup): Now calls interp_init_helper and
538 interp_post_startup_helper to initalize the bot module system
540 * source/Interp.H: Added private variable bot_module to Interp
542 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
544 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
545 this breaks existing scripts, this is the unstable tree after all)
547 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
549 * source/Mask.C (match): Made Mask::match case insensitive
551 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
553 * source/Interp.C (scm_apply_wrapper): turned off locking of
554 Interp::mutex to see if this makes the bot work again...and it
557 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
559 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
560 everything to use aclocal/automake 1.6
562 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
564 * source/DCCPerson.H (class DCCPerson): Added
565 UserCommands::DCCList as a friend (friends are better than the old
566 DCC() function at least).
568 * source/DCCManager.H (class DCCManager): Added
569 UserCommands::DCCList as a friend
571 * source/Interp.H (class Interp): Made function scm_apply_wrapper
572 a friend so it can lock Interp::mutex
574 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
575 MULTITHREAD is defined (it is always defined when scripting is
576 enabled) so that Sockets can be made multithreaded using
579 * source/DCCPerson.H: Removed DCC method and made Bot a friend
580 Made DCCManager a friend
582 * source/DCCManager.H (class DCCManager): Removed MAP() method
583 and made Bot a friend of DCCManager
585 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
587 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
590 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
591 user!nick@host instead of the correct nick!user@host).
593 * source/Interp.C (Startup): Register bot:DCC-chat-send
595 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
597 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
599 * source/String.C (String): The std::string copy constructor now
600 extracts the c_str of the std::string and then takes the strlen of
601 that before copying it. This fixes a bug with DCC where if you did
602 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
603 something like that, depending on what the last message was
604 because Socket will insert a \0 into its semi-static buffer, so
605 the len of the String will not equal the strlen of its char*.
607 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
609 * source/DCCPerson.H: Removed destructor (I = idiot)
611 * source/DCCConnection.H: DCCManager is now a friend of
612 DCCConnection (ugh, the bot has way too many friends).
614 * source/DCCPerson.H: Added DCC member that returns a const
615 DCCConnection* (the dcc connection). This isn't saved anywhere
616 because when a DCCPerson is destroyed, its connection is also
619 * source/Bot.H: dccConnections is now a DCCManager
621 * source/DCCPerson.H: Added destructor
622 Added handleInput method
624 * source/DCCManager.C: New file
625 (addConnection): Wrote method, add a DCCConection to the manager
627 * source/DCCManager.H: New file
629 * source/Interp.C (Startup): Register bot:DCC-chat-send
630 (Startup): Removed sendDCCChatMessage stuff
632 * source/ScriptCommands.C (sendDCCChatMessage): New method:
633 sendDCCChatMessage (to, message) sends message to to.
635 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
636 one arg: from (user!nick@host).
638 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
639 two args: from (user!nick@host) and line
641 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
643 * source/Interp.C (Startup): Two new Scheme values:
644 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
645 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
647 * source/BotInterp.H: Added two new enum values to Hook:
648 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
651 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
653 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
654 DCC! Ack, sockets take their arguments in network byte order so
655 there is no need to convert to host...now DCC _sort of_ works.
657 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
659 * source/UserList.C (save): Increment iterator twice to get around
662 * source/ServerQueue.C: Now sends SEND_* hooks instead of
663 triggered general hooks.
665 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
666 (* = the new SEND_ hooks, but lowercase).
668 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
669 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
671 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
673 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
676 * source/Socket.C (readLine): Now uses a static std::string that
677 starts out with 512 chars. This will never need to be resized for
678 usualy IRC messages, but might be for DCC messages
680 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
682 * scripts/bobot-utils.scm (not-from-me): New syntax.
684 * source/ScriptCommands.C (AddHook): Now takes another optional
685 arg--name that will name the hook (see the hooks section in the
686 manual for what this does).
688 * source/BotInterp.H: Added name field to Hook
690 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
692 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
693 PRIVMSGes because the IRC server doesn't echo them back to the
694 bot. This could be useful for something (e.g. log script).
696 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
698 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
699 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
700 associated with the hook when Interp::Shutdown is called (bot exit).
702 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
704 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
705 hook is greater than or less than the other hook, only the
706 priority is considered. However, if both hooks have the same
707 priority, then the fallthru-ness is considered, with fallthru
708 hooks being greater than non-fallthru hooks.
710 * source/BotInterp.C (hptr_lt): Added this static function to be
711 used to sort the hooks list (now hooks should be sorted using
712 Hook's operator < instead of using pointer comparision, meaning
713 the new hook system will work correctly)
715 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
716 map because we don't need the result of the displays (this would
717 just be a list of #<undefined> values and is a waste of memory).
719 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
721 * source/Bot.C (Bot): userFunctions is now a map for efficiency
722 (worst case search is now NlogN instead of N). This improvement is
723 not as drastic as the one gained by making the Parser functions
724 list a map (because we don't scan this map for every message), but
725 it helps to clean up the code
727 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
729 * source/Parser.H: Removed userFunctionsStruct
731 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
732 as bot:send-CTCP for Scheme
734 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
736 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
738 * source/ServerQueue.C (sendUser): Changed . . in USER command to
739 0 * (which is the Right Way to because <mode> must be a number...)
741 * source/Parser.C (init): New method of Parse. This initalizes the
742 functions map. functions replaces the old functions array, and
743 should yield better performance (since the functions array had to
744 be scanned for every incoming message)
746 * source/Parser.H: New member, functions (private)
748 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
750 * source/Interp.C (Startup): New symbols: bot:user-*
751 [none|user|trusted|friend|master] are defined in Scheme as the
752 different levels of the users.
753 (Startup): All bot-* variables are now bot:*
755 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
757 * source/Bot.H: Made some variables private because they shouldn't
758 be changed at runtime
760 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
761 this out to see if it works and make it work)
763 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
766 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
767 scripts in the user scripts dir) that made bobot++ not able to
768 load scripts from the user scripts dir
770 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
772 * source/BotInterp.C (RunHooks): Changed iterators to
773 reverse_iterators because the hooks list is sorted in ascending
774 order--higher priority and fallthrough hooks appear _after_ the
775 lower priority and non-fallthrough hooks.
777 * source/Main.C (print_long_help): Added function
778 (print_short_help): Renamed from printUsage
779 (namespace): Most stuff in here is now defined in an anonymouse
780 namespace so it doesn't have external linkage
781 (real_main): Uses getopt_long instead of getopt. Added several
782 command line arguments (bobotpp --help for a full list).
784 * scripts/bobot-utils.scm (bot-load): Function moved from
787 * source/Interp.C (Startup): Autoloads
788 PREFIX/bobotpp/scripts/bobot-utils.scm now
789 (Startup): New Scheme variable: bot-sys-scripts-dir (system
792 * source/bobot-scheme.scm.in: Removed
794 * source/Makefile.am: Removed bobot-scheme.scm compiliation
796 * configure.ac (PREFIX): configure.ac defined prefix now
798 * source/Main.C (real_main): Default configuration is now read
799 from /etc/bobotpp/default
800 * source/bobot-scheme.scm.in: Added file. This defines the
801 'bot-load' procedure which will load a file from
802 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
803 script doesn't exist in the user script dir.
805 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
807 * bobot++.texinfo: Started docs (just a skeleton right now)
809 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
810 args to set a hooks priority and whether or not it will
811 fallthrough. These args are optional.
813 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
815 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
816 (RunHooks): exec fallthrough hooks first.
818 * source/BotInterp.H: Changed Hooks to have priority
819 Added fhooksMap to BotInterp (fallthrough)
821 * source/UserCommands.C (AddShit): Converted to use Commands
823 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
825 * source/Commands.C (AddUser): Fixed a one-off (function call was
826 before a brace instead of after one) that caused a segfault when
827 the user mask was a wildcard
829 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
831 * all files: Updated address of the FSF
833 * source/UserCommands.C (AddUser): Uses Commands now instead of
834 manipulating the bot directly
836 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
838 * source/ScriptCommands.C (AddShit): Filled in function.
840 * source/Interp.C (Startup): Bind bot-adduser to
841 ScriptCommands::AddUser instead of Action
842 (Startup): Bind bot-addshit to ScriptCommands::AddShit
844 * source/ScriptCommands.C (AddUser): Filled in function
846 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
847 would have caused problems if you used more than one server
849 * source/Parser.H: Changed const char* to String in userFunctionStruct
851 * source/String.H: Added std::string compatibility members
853 * configure.ac: You can now disable Crypt and scripting
855 * source/*: Added #include "config.h" where needed
857 * configure.ac: Added AM_CONFIG_HEADER
859 * config.h.in: added file
861 * source/Queue.C: Didn't notice iostream.h here! Fixed
864 Copyright 2002,2003,2004,2005 Clinton Ebadi
865 Copying and distribution of this file, with or without modification, are
866 permitted provided the copyright notice and this notice are preserved.