1 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
3 * examples/bot.conf (maxnicklength): Update example config
5 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
7 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
9 * source/Bot.H: Added MAX_NICKLENGTH member
11 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
13 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
16 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
18 * source/Commands.C (Notice): Send multiple NOTICEs when a message
21 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
23 * source/Main.C (real_main): Enable Guile debugging mode when
26 * source/Interp.C (interp_post_startup_helper): Return
27 SCM_UNSPECIFIED instead of 0
29 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
31 * All: Updated FSF street address
33 * source/Commands.C (Msg): Move body of Say to an if inside of this
36 * source/ScriptCommands.C (sendNotice): Returns error code instead
39 * source/Commands.C (Say): Check to make sure target is a channel
40 (Msg): Extended to send messages to channels
42 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
44 * scripts/bot.scm: Added file ((bobotpp bot) module for other
45 modules to gain access to bobot++ interface)
47 * source/Commands.C (Notice): Commented out check/abort if target
48 is a channel (there doesn't seem to be a reason for this to not work)
50 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
52 * bobot++.texinfo (High Level Message Functions): Document bot:notice
54 * source/Message.H: Added operator== to Message (tests for error
57 * source/Commands.C: Removed message type macros
59 * source/Message.H: Moved message type macros to Message.H
61 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
63 * source/ScriptCommands.H: Uncomment sendNotice
65 * source/Bot.C (waitForInput): Use %02d when formatting
66 Hooks::TIMER argument instead of %2d, and switch to snprintf to
69 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
72 * source/Bot.C (run): Added call to Hooks::DISCONNECT
73 (hooks/disconnect) when the bot is disconnected from the server
75 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
76 (Hook Types): Added hooks/disconnect argument
78 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
80 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
83 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
85 * source/Interp.C (interp_init_helper): Added
86 bot:protection/[none|ban|kick|deop] constants to Scheme
87 (interp_init_helper): Added bot:aop/[yes|no] constants
89 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
91 * configure.ac: Release Bobot++ 2.1.7
92 Changed version to 2.18.CVS
94 * source/UserList.C (save): Remove workaround for BUG #2
96 * source/Parser.C (parse001): make realNick lowercase when doing
97 the comparison to bot->nickName to prevent pushing a second copy
98 of the bot onto the userlist (closes BUG #2)
100 * source/Bot.C (Bot): cleaned up constructor
101 (waitForInput): replaced gh_list with scm_list_n
103 * source/UserList.C: Cleaned up some formatting
105 * source/Main.C: Formatted code more cleanly
106 (real_main): changed a few Strings to std::strings
108 * source/String.C (operator): Made index signed again, it's not
109 worth fixing this warning
111 * source/Bot.C: Add casts to make this compile with unsigned int
112 as operator[] in String
114 * source/String.C (operator): Made index unsigned
116 * source/Utils.C: Made a few things unsigned to kill warnings
118 * source/Socket.C (readLine): Made pos unsigned
120 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
122 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
124 * source/StringTokenizer.C (count_tokens): Changed return type to
126 (more_tokens_p): Made counter unsigned
128 * source/StringTokenizer.H (class StringTokenizer): Made pos
129 std::string::size_type instead of int
131 * source/Commands.C (TBan): Returns Ok is the ban is done instead
132 of falling off the end (oops)
134 * source/BotInterp.H: Add general catch case (false)
136 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
138 * configure.ac: Release 2.1.6
139 Changed version to 2.1.7CVS
141 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
143 * source/Parser.C (parseLine): use map<>::find and an iterator to
144 find the IRC command instead of map<>::operator[] to avoid a
147 * source/Bot.C (waitForInput): Removed commented out code
149 * source/Socket.C (readLine): return String (buf.c_str ()) instead
150 of String (buf) so that only the buffer up to the first null is returned
151 (readLine): Added a comment explaining the usage of buf
152 (readLine): Changed type of length (std::string::size_type instead
155 * source/String.C: Reimplemented String on top of std::string to
156 fix a few bugs and potential memory leaks
157 (toLower): use Utils::to_lower
158 (toUpper): Use Utils::to_upper
159 (trim): Use Utils::trim_str
161 * source/String.H: removed srep, replaced it with a std::string (my_string)
163 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
165 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
166 counters and substr call)
168 * source/StringTokenizer.C (next_token): Applied patch from Jos
169 Hulzink <josh@stack.nl> (fixes substr call)
170 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
173 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
175 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
176 he is a lazy bum and never submitted the String replacing patch
178 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
180 * configure.ac: Remove CC++ test
181 Changed version to 2.1.6CVS (2.1.5 released)
183 * bobot++.texinfo: Updated copyright
185 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
187 * TODO (General): Added TODO items
188 (2.2): Moved a few items here from 2.4
190 * README (NOTE): Mention boost requirement
192 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
194 * ChangeLog Updated copryight
196 * source/User.H: Removed forward declaration of Utils
198 * source/Bot.H: Removed forward declaration of Utils
200 * source/ChannelList.H: Removed forward declaration of Utils
202 * source/UserListItem.H: Removed forward declaration of Utils
204 * source/Utils.H: Removed class Utils, replaced with a namspace
205 (it only contained static methods)
207 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
208 (he is replacing String)
210 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
212 * source/BotConfig.C (set_option_value): Put watcher calling
213 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
214 = end then there are no watchers since this is a new value and
215 references cf_iter->second segfaults)
217 * source/Utils.C (trim_str): Fixed bug (last non-space character
220 * source/BotConfig.C (read_config): Made to use set_option_value
221 instead of manipulating options_db directly
223 * source/BotConfig.H (class BotConfig): Add set_option_value that
224 takes a t_value instead of t_value_list (most uss of
225 set_option_value will be to add a single value so this is very useful)
227 * source/BotConfig.C (set_option_value): Implemented
229 * source/UserList.C: Made to work with new Utils/StringTokenizer names
231 * source/UserCommands.C: Made to work with new
232 Utils/StringTokenizer names
234 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
236 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
238 * source/ShitList.C: Made to work with new StringTokenizer names
240 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
242 * source/ServerQueue.C: Made to work with new Utils names
244 * source/ScriptCommands.C: Made work with new Utils names
246 * source/Person.C (getNick): Made work with new Utils names
248 * source/String.H: Added substr prototypes
250 * source/String.C (substr): Added substr as an alias of subString
251 (for compat with std::string before the transition)
253 * source/Parser.C: Made to work with new Utils/StringTokenizer names
255 * source/DCCParser.C: Made to work with new Utils names
257 * source/DCCChatConnection.C: Made to work new Utils names
259 * source/Commands.C: Made to work with new Utils names
261 * source/Channel.C: Made to work with new Utils names
263 * source/BotInterp.C: Made to work with new Utils
265 * source/Bot.C: Made to work with new Utils/StringTokenizer names
267 * source/String.C (operator=): Unremoved operator=(std::string)
269 * source/String.H: Unremoved operator=(std::string)
271 * source/BotConfig.C (read_config): Use Utils::trim_str
273 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
275 * source/Utils.C (trim_str): Implemented
277 * source/Utils.H: Added tim_str (replaces String::trim)
279 * source/BotConfig.C: Made everything work with new
280 StringTokenizer and Utils names
282 * source/Utils.H: Added to_lower
285 * source/StringTokenizer.C (rest): uses std::isspace instead of
286 checking st[pos] against ' ' and '\t'
288 * source/StringTokenizer.H: Removed CamelCasing
289 Renamed hasMoreTokens to more_tokens_p
291 * source/StringTokenizer.C: Converted to use std::string
293 * source/StringTokenizer.H: Converted to use std::string
295 * source/String.C: Removed operator=(std::string)
297 * source/String.H: Removed operator=(std::string)
299 * source/Utils.C: Added copyright
300 Reformatted to match GNU coding standard more closely
301 Converted everything to use std::string
302 (get_nick): Renamed from getNick
303 (get_userhost): Renamed from getUserHost
304 (get_key): Renamed from getKey
305 (IP_p): Renamed from isIP
306 (make_wildcard): Renamed from makeWildcard
307 (channel_p): Renamed from isChannel
308 (wildcard_p): Renamed from isWildcard
309 (valid_channel_name_p): Renamed from isValidChannelName
310 (valid_nickname_p): Renamed from isValidNickName
311 (get_level): Renamed from getLevel
312 (str2time): Renamed from strToTime
313 (str2time): Fixed potential buffer overflow (num[512] => std::string)
314 (level2str): Renamed from levelToStr
315 (prot2str): Renamed from protToStr
316 (bool2str): Renamed from boolToStr
317 (long2str): Implemented
318 (scm2str): Renamed from scm2String
319 (str2scm): Renamed from string2SCM
321 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
323 * source/Utils.H: Added long2str (long int -> std::string)
325 * source/String.H: Added 2003 copyright (the year I last modified
328 * source/String.C: Added 2002 copyright (the year I last modified
331 * source/Utils.H: Updated Copyright
332 s/String/std::string/g
333 Removed camel casing and is* = *_p
336 * source/BotConfig.C: Updated Copyright
338 * source/BotConfig.H: Updated copyright
340 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
342 * source/BotConfig.C (set_option_value): Take care of the case
343 where key is not already in the db
344 (add_watcher): Implemented
345 (read_config): Removed ',' token parsing (not needed)
347 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
348 AC_CHECK_LIB ccgnu2 (CommonC++2)
350 * README: Updated README (reformatted, adding info, etc.)
352 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
354 * source/BotConfig.C (set_option_value): call watcher list
355 (run_fun_): Added to support watcher list calling
357 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
359 * source/BotConfig.C (set_option_value): Fuck you STL
360 (push_back_): Reimplemented so that it doesn't need std::bind1st
361 because the STL is being stupid
363 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
365 * source/BotConfig.C (read_config): Implemented properly
366 (get_option_values): Implemented properly
367 (set_config_file): Fixed
369 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
371 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
374 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
376 * source/BotConfig.C: New file (implementation of configuration database)
378 * source/BotConfig.H: New File (semi-generic configuration database)
380 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
382 * bobot++.texinfo (Starting the Bot): New section
384 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
386 * bobot++.texinfo (Protection): Added Section
387 (User Levels): Rewrote section to be useful
388 (bot.users): Added section
390 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
392 * source/DCCChatConnection.C (connect): Checks to make sure the
393 person initiating a DCC CHAT with the bot is at least a FRIEND of
396 * README: Fixed a typo
398 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
399 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
401 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
403 * bobot++.texinfo (bot.conf): Finished section
404 (server syntax): New section, documents the bot.conf SERVER syntax
405 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
407 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
409 * source/Main.C (real_main): std::exit instead of exit
411 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
413 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
414 constructor with `n' This should fix the segfaulting.
416 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
418 * ChangeLog: Updated copyright notice
420 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
422 * source/Interp.C (interp_init_helper): Register
423 bot:change-command-level
425 * source/ScriptCommands.C (ChangeCommandLevel): Added
426 ChangeCommandLevel to change the level a user needs to be to run a
429 * source/ScriptCommands.H: Added ChangeCommandLevel
431 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
433 * source/String.H: Changed #define STRING_H to BSTRING_H
435 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
437 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
438 to see if a message was sent to the bot (this is better than
439 bot:match-to-me because the hook isn't invalidated when the bot's
442 * source/DCCConnection.H: Added `nuh' back and added an
444 Added setter `set_autoRemove(bool)'
446 * source/DCCConnection.H: Removed all friends
447 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
448 reveals the pointer to the bot [PRIVATE POINTER] which probably
449 isn't so nice, but there isn't much to be done about it with the
450 current design of the bot)
452 * source/DCCChatConnection.H: Removed all friends
454 * source/DCCConnection.H: DCCConnection is now a pure virtual
455 class with the subclass DCCChatConnection
457 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
459 * source/Socket.C (connect): log errors to the bot log instead of
462 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
464 * source/Parser.C (parseMessage): use the find method of std::map
465 to find the command to call instead of [] and then extract the
466 pointer to the userFunction from that if it exists. This appears
467 to fix the crash when one uses an undefined command followed by
470 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
472 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
473 ScriptCommands::SetFloodRate
475 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
477 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
480 * source/Bot.H: Made MAX_MESSAGES writeable
482 * source/UserCommands.H: New method: SetFloodRate
484 * source/Commands.H: New method: SetFloodRate
486 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
488 * configure.ac: Merged all AC_OUTPUTs at the end
490 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
492 * scripts/bobot-utils.scm: Make exported symbols from
493 the-bot-module available in the guile-user module so that scripts
494 loaded with Interp::Load function.
496 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
498 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
499 %bot:loadpath into its own module and returns that (unnamed) module
500 (bot:use-module): Calls bot:load-module and then adds the newly
501 loaded module to the (current-module)'s use-list
503 * source/Interp.C (interp_init_helper): New procedure to initialize
504 the-bot-module (this is the old Interp::Startup verbatim)
505 (interp_post_startup_helper): New procedure to export
506 the-bot-module from bot_module
507 (Startup): Now calls interp_init_helper and
508 interp_post_startup_helper to initalize the bot module system
510 * source/Interp.H: Added private variable bot_module to Interp
512 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
514 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
515 this breaks existing scripts, this is the unstable tree after all)
517 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
519 * source/Mask.C (match): Made Mask::match case insensitive
521 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
523 * source/Interp.C (scm_apply_wrapper): turned off locking of
524 Interp::mutex to see if this makes the bot work again...and it
527 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
529 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
530 everything to use aclocal/automake 1.6
532 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
534 * source/DCCPerson.H (class DCCPerson): Added
535 UserCommands::DCCList as a friend (friends are better than the old
536 DCC() function at least).
538 * source/DCCManager.H (class DCCManager): Added
539 UserCommands::DCCList as a friend
541 * source/Interp.H (class Interp): Made function scm_apply_wrapper
542 a friend so it can lock Interp::mutex
544 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
545 MULTITHREAD is defined (it is always defined when scripting is
546 enabled) so that Sockets can be made multithreaded using
549 * source/DCCPerson.H: Removed DCC method and made Bot a friend
550 Made DCCManager a friend
552 * source/DCCManager.H (class DCCManager): Removed MAP() method
553 and made Bot a friend of DCCManager
555 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
557 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
560 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
561 user!nick@host instead of the correct nick!user@host).
563 * source/Interp.C (Startup): Register bot:DCC-chat-send
565 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
567 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
569 * source/String.C (String): The std::string copy constructor now
570 extracts the c_str of the std::string and then takes the strlen of
571 that before copying it. This fixes a bug with DCC where if you did
572 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
573 something like that, depending on what the last message was
574 because Socket will insert a \0 into its semi-static buffer, so
575 the len of the String will not equal the strlen of its char*.
577 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
579 * source/DCCPerson.H: Removed destructor (I = idiot)
581 * source/DCCConnection.H: DCCManager is now a friend of
582 DCCConnection (ugh, the bot has way too many friends).
584 * source/DCCPerson.H: Added DCC member that returns a const
585 DCCConnection* (the dcc connection). This isn't saved anywhere
586 because when a DCCPerson is destroyed, its connection is also
589 * source/Bot.H: dccConnections is now a DCCManager
591 * source/DCCPerson.H: Added destructor
592 Added handleInput method
594 * source/DCCManager.C: New file
595 (addConnection): Wrote method, add a DCCConection to the manager
597 * source/DCCManager.H: New file
599 * source/Interp.C (Startup): Register bot:DCC-chat-send
600 (Startup): Removed sendDCCChatMessage stuff
602 * source/ScriptCommands.C (sendDCCChatMessage): New method:
603 sendDCCChatMessage (to, message) sends message to to.
605 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
606 one arg: from (user!nick@host).
608 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
609 two args: from (user!nick@host) and line
611 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
613 * source/Interp.C (Startup): Two new Scheme values:
614 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
615 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
617 * source/BotInterp.H: Added two new enum values to Hook:
618 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
621 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
623 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
624 DCC! Ack, sockets take their arguments in network byte order so
625 there is no need to convert to host...now DCC _sort of_ works.
627 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
629 * source/UserList.C (save): Increment iterator twice to get around
632 * source/ServerQueue.C: Now sends SEND_* hooks instead of
633 triggered general hooks.
635 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
636 (* = the new SEND_ hooks, but lowercase).
638 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
639 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
641 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
643 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
646 * source/Socket.C (readLine): Now uses a static std::string that
647 starts out with 512 chars. This will never need to be resized for
648 usualy IRC messages, but might be for DCC messages
650 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
652 * scripts/bobot-utils.scm (not-from-me): New syntax.
654 * source/ScriptCommands.C (AddHook): Now takes another optional
655 arg--name that will name the hook (see the hooks section in the
656 manual for what this does).
658 * source/BotInterp.H: Added name field to Hook
660 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
662 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
663 PRIVMSGes because the IRC server doesn't echo them back to the
664 bot. This could be useful for something (e.g. log script).
666 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
668 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
669 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
670 associated with the hook when Interp::Shutdown is called (bot exit).
672 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
674 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
675 hook is greater than or less than the other hook, only the
676 priority is considered. However, if both hooks have the same
677 priority, then the fallthru-ness is considered, with fallthru
678 hooks being greater than non-fallthru hooks.
680 * source/BotInterp.C (hptr_lt): Added this static function to be
681 used to sort the hooks list (now hooks should be sorted using
682 Hook's operator < instead of using pointer comparision, meaning
683 the new hook system will work correctly)
685 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
686 map because we don't need the result of the displays (this would
687 just be a list of #<undefined> values and is a waste of memory).
689 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
691 * source/Bot.C (Bot): userFunctions is now a map for efficiency
692 (worst case search is now NlogN instead of N). This improvement is
693 not as drastic as the one gained by making the Parser functions
694 list a map (because we don't scan this map for every message), but
695 it helps to clean up the code
697 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
699 * source/Parser.H: Removed userFunctionsStruct
701 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
702 as bot:send-CTCP for Scheme
704 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
706 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
708 * source/ServerQueue.C (sendUser): Changed . . in USER command to
709 0 * (which is the Right Way to because <mode> must be a number...)
711 * source/Parser.C (init): New method of Parse. This initalizes the
712 functions map. functions replaces the old functions array, and
713 should yield better performance (since the functions array had to
714 be scanned for every incoming message)
716 * source/Parser.H: New member, functions (private)
718 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
720 * source/Interp.C (Startup): New symbols: bot:user-*
721 [none|user|trusted|friend|master] are defined in Scheme as the
722 different levels of the users.
723 (Startup): All bot-* variables are now bot:*
725 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
727 * source/Bot.H: Made some variables private because they shouldn't
728 be changed at runtime
730 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
731 this out to see if it works and make it work)
733 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
736 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
737 scripts in the user scripts dir) that made bobot++ not able to
738 load scripts from the user scripts dir
740 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
742 * source/BotInterp.C (RunHooks): Changed iterators to
743 reverse_iterators because the hooks list is sorted in ascending
744 order--higher priority and fallthrough hooks appear _after_ the
745 lower priority and non-fallthrough hooks.
747 * source/Main.C (print_long_help): Added function
748 (print_short_help): Renamed from printUsage
749 (namespace): Most stuff in here is now defined in an anonymouse
750 namespace so it doesn't have external linkage
751 (real_main): Uses getopt_long instead of getopt. Added several
752 command line arguments (bobotpp --help for a full list).
754 * scripts/bobot-utils.scm (bot-load): Function moved from
757 * source/Interp.C (Startup): Autoloads
758 PREFIX/bobotpp/scripts/bobot-utils.scm now
759 (Startup): New Scheme variable: bot-sys-scripts-dir (system
762 * source/bobot-scheme.scm.in: Removed
764 * source/Makefile.am: Removed bobot-scheme.scm compiliation
766 * configure.ac (PREFIX): configure.ac defined prefix now
768 * source/Main.C (real_main): Default configuration is now read
769 from /etc/bobotpp/default
770 * source/bobot-scheme.scm.in: Added file. This defines the
771 'bot-load' procedure which will load a file from
772 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
773 script doesn't exist in the user script dir.
775 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
777 * bobot++.texinfo: Started docs (just a skeleton right now)
779 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
780 args to set a hooks priority and whether or not it will
781 fallthrough. These args are optional.
783 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
785 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
786 (RunHooks): exec fallthrough hooks first.
788 * source/BotInterp.H: Changed Hooks to have priority
789 Added fhooksMap to BotInterp (fallthrough)
791 * source/UserCommands.C (AddShit): Converted to use Commands
793 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
795 * source/Commands.C (AddUser): Fixed a one-off (function call was
796 before a brace instead of after one) that caused a segfault when
797 the user mask was a wildcard
799 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
801 * all files: Updated address of the FSF
803 * source/UserCommands.C (AddUser): Uses Commands now instead of
804 manipulating the bot directly
806 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
808 * source/ScriptCommands.C (AddShit): Filled in function.
810 * source/Interp.C (Startup): Bind bot-adduser to
811 ScriptCommands::AddUser instead of Action
812 (Startup): Bind bot-addshit to ScriptCommands::AddShit
814 * source/ScriptCommands.C (AddUser): Filled in function
816 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
817 would have caused problems if you used more than one server
819 * source/Parser.H: Changed const char* to String in userFunctionStruct
821 * source/String.H: Added std::string compatibility members
823 * configure.ac: You can now disable Crypt and scripting
825 * source/*: Added #include "config.h" where needed
827 * configure.ac: Added AM_CONFIG_HEADER
829 * config.h.in: added file
831 * source/Queue.C: Didn't notice iostream.h here! Fixed
834 Copyright 2002,2003,2004,2005 Clinton Ebadi
835 Copying and distribution of this file, with or without modification, are
836 permitted provided the copyright notice and this notice are preserved.