1 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
3 * source/Main.C: Merged error handling patch from dsmith
5 * source/Parser.C: Merged error handling
8 * source/Interp.H: Merged error handling patch from dsmith
10 * source/Interp.C (lazy_handler): Merged error handling patch from
13 * source/BotInterp.H: Merged error handling patch from dsmith
15 * source/BotInterp.C: Merged error handling patch from dsmith
17 * bobot++.texinfo (Low Level Message Functions): Documented
20 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
22 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
25 * bobot++.texinfo (Low Level Message Functions):
26 s/bot:send-CTCP/bot:send-ctcp/
28 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
31 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
33 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
34 (sendCTCPReply): Added
36 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
38 * source/Commands.C (CTCP): Implemented
39 (CTCPReply): Implemented
40 (Action): Convert to use Commands::CTCP
42 * source/Commands.H: Added CTCP (bot, target, command, message)
43 Added CTCPReply (bot, target, command, message)
45 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
47 * examples/bot.conf (maxnicklength): Update example config
49 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
51 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
53 * source/Bot.H: Added MAX_NICKLENGTH member
55 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
57 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
60 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
62 * source/Commands.C (Notice): Send multiple NOTICEs when a message
65 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
67 * source/Main.C (real_main): Enable Guile debugging mode when
70 * source/Interp.C (interp_post_startup_helper): Return
71 SCM_UNSPECIFIED instead of 0
73 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
75 * All: Updated FSF street address
77 * source/Commands.C (Msg): Move body of Say to an if inside of this
80 * source/ScriptCommands.C (sendNotice): Returns error code instead
83 * source/Commands.C (Say): Check to make sure target is a channel
84 (Msg): Extended to send messages to channels
86 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
88 * scripts/bot.scm: Added file ((bobotpp bot) module for other
89 modules to gain access to bobot++ interface)
91 * source/Commands.C (Notice): Commented out check/abort if target
92 is a channel (there doesn't seem to be a reason for this to not work)
94 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
96 * bobot++.texinfo (High Level Message Functions): Document bot:notice
98 * source/Message.H: Added operator== to Message (tests for error
101 * source/Commands.C: Removed message type macros
103 * source/Message.H: Moved message type macros to Message.H
105 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
107 * source/ScriptCommands.H: Uncomment sendNotice
109 * source/Bot.C (waitForInput): Use %02d when formatting
110 Hooks::TIMER argument instead of %2d, and switch to snprintf to
113 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
116 * source/Bot.C (run): Added call to Hooks::DISCONNECT
117 (hooks/disconnect) when the bot is disconnected from the server
119 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
120 (Hook Types): Added hooks/disconnect argument
122 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
124 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
125 again (thanks dsmith)
127 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
129 * source/Interp.C (interp_init_helper): Added
130 bot:protection/[none|ban|kick|deop] constants to Scheme
131 (interp_init_helper): Added bot:aop/[yes|no] constants
133 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
135 * configure.ac: Release Bobot++ 2.1.7
136 Changed version to 2.18.CVS
138 * source/UserList.C (save): Remove workaround for BUG #2
140 * source/Parser.C (parse001): make realNick lowercase when doing
141 the comparison to bot->nickName to prevent pushing a second copy
142 of the bot onto the userlist (closes BUG #2)
144 * source/Bot.C (Bot): cleaned up constructor
145 (waitForInput): replaced gh_list with scm_list_n
147 * source/UserList.C: Cleaned up some formatting
149 * source/Main.C: Formatted code more cleanly
150 (real_main): changed a few Strings to std::strings
152 * source/String.C (operator): Made index signed again, it's not
153 worth fixing this warning
155 * source/Bot.C: Add casts to make this compile with unsigned int
156 as operator[] in String
158 * source/String.C (operator): Made index unsigned
160 * source/Utils.C: Made a few things unsigned to kill warnings
162 * source/Socket.C (readLine): Made pos unsigned
164 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
166 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
168 * source/StringTokenizer.C (count_tokens): Changed return type to
170 (more_tokens_p): Made counter unsigned
172 * source/StringTokenizer.H (class StringTokenizer): Made pos
173 std::string::size_type instead of int
175 * source/Commands.C (TBan): Returns Ok is the ban is done instead
176 of falling off the end (oops)
178 * source/BotInterp.H: Add general catch case (false)
180 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
182 * configure.ac: Release 2.1.6
183 Changed version to 2.1.7CVS
185 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
187 * source/Parser.C (parseLine): use map<>::find and an iterator to
188 find the IRC command instead of map<>::operator[] to avoid a
191 * source/Bot.C (waitForInput): Removed commented out code
193 * source/Socket.C (readLine): return String (buf.c_str ()) instead
194 of String (buf) so that only the buffer up to the first null is returned
195 (readLine): Added a comment explaining the usage of buf
196 (readLine): Changed type of length (std::string::size_type instead
199 * source/String.C: Reimplemented String on top of std::string to
200 fix a few bugs and potential memory leaks
201 (toLower): use Utils::to_lower
202 (toUpper): Use Utils::to_upper
203 (trim): Use Utils::trim_str
205 * source/String.H: removed srep, replaced it with a std::string (my_string)
207 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
209 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
210 counters and substr call)
212 * source/StringTokenizer.C (next_token): Applied patch from Jos
213 Hulzink <josh@stack.nl> (fixes substr call)
214 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
217 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
219 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
220 he is a lazy bum and never submitted the String replacing patch
222 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
224 * configure.ac: Remove CC++ test
225 Changed version to 2.1.6CVS (2.1.5 released)
227 * bobot++.texinfo: Updated copyright
229 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
231 * TODO (General): Added TODO items
232 (2.2): Moved a few items here from 2.4
234 * README (NOTE): Mention boost requirement
236 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
238 * ChangeLog Updated copryight
240 * source/User.H: Removed forward declaration of Utils
242 * source/Bot.H: Removed forward declaration of Utils
244 * source/ChannelList.H: Removed forward declaration of Utils
246 * source/UserListItem.H: Removed forward declaration of Utils
248 * source/Utils.H: Removed class Utils, replaced with a namspace
249 (it only contained static methods)
251 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
252 (he is replacing String)
254 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
256 * source/BotConfig.C (set_option_value): Put watcher calling
257 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
258 = end then there are no watchers since this is a new value and
259 references cf_iter->second segfaults)
261 * source/Utils.C (trim_str): Fixed bug (last non-space character
264 * source/BotConfig.C (read_config): Made to use set_option_value
265 instead of manipulating options_db directly
267 * source/BotConfig.H (class BotConfig): Add set_option_value that
268 takes a t_value instead of t_value_list (most uss of
269 set_option_value will be to add a single value so this is very useful)
271 * source/BotConfig.C (set_option_value): Implemented
273 * source/UserList.C: Made to work with new Utils/StringTokenizer names
275 * source/UserCommands.C: Made to work with new
276 Utils/StringTokenizer names
278 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
280 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
282 * source/ShitList.C: Made to work with new StringTokenizer names
284 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
286 * source/ServerQueue.C: Made to work with new Utils names
288 * source/ScriptCommands.C: Made work with new Utils names
290 * source/Person.C (getNick): Made work with new Utils names
292 * source/String.H: Added substr prototypes
294 * source/String.C (substr): Added substr as an alias of subString
295 (for compat with std::string before the transition)
297 * source/Parser.C: Made to work with new Utils/StringTokenizer names
299 * source/DCCParser.C: Made to work with new Utils names
301 * source/DCCChatConnection.C: Made to work new Utils names
303 * source/Commands.C: Made to work with new Utils names
305 * source/Channel.C: Made to work with new Utils names
307 * source/BotInterp.C: Made to work with new Utils
309 * source/Bot.C: Made to work with new Utils/StringTokenizer names
311 * source/String.C (operator=): Unremoved operator=(std::string)
313 * source/String.H: Unremoved operator=(std::string)
315 * source/BotConfig.C (read_config): Use Utils::trim_str
317 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
319 * source/Utils.C (trim_str): Implemented
321 * source/Utils.H: Added tim_str (replaces String::trim)
323 * source/BotConfig.C: Made everything work with new
324 StringTokenizer and Utils names
326 * source/Utils.H: Added to_lower
329 * source/StringTokenizer.C (rest): uses std::isspace instead of
330 checking st[pos] against ' ' and '\t'
332 * source/StringTokenizer.H: Removed CamelCasing
333 Renamed hasMoreTokens to more_tokens_p
335 * source/StringTokenizer.C: Converted to use std::string
337 * source/StringTokenizer.H: Converted to use std::string
339 * source/String.C: Removed operator=(std::string)
341 * source/String.H: Removed operator=(std::string)
343 * source/Utils.C: Added copyright
344 Reformatted to match GNU coding standard more closely
345 Converted everything to use std::string
346 (get_nick): Renamed from getNick
347 (get_userhost): Renamed from getUserHost
348 (get_key): Renamed from getKey
349 (IP_p): Renamed from isIP
350 (make_wildcard): Renamed from makeWildcard
351 (channel_p): Renamed from isChannel
352 (wildcard_p): Renamed from isWildcard
353 (valid_channel_name_p): Renamed from isValidChannelName
354 (valid_nickname_p): Renamed from isValidNickName
355 (get_level): Renamed from getLevel
356 (str2time): Renamed from strToTime
357 (str2time): Fixed potential buffer overflow (num[512] => std::string)
358 (level2str): Renamed from levelToStr
359 (prot2str): Renamed from protToStr
360 (bool2str): Renamed from boolToStr
361 (long2str): Implemented
362 (scm2str): Renamed from scm2String
363 (str2scm): Renamed from string2SCM
365 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
367 * source/Utils.H: Added long2str (long int -> std::string)
369 * source/String.H: Added 2003 copyright (the year I last modified
372 * source/String.C: Added 2002 copyright (the year I last modified
375 * source/Utils.H: Updated Copyright
376 s/String/std::string/g
377 Removed camel casing and is* = *_p
380 * source/BotConfig.C: Updated Copyright
382 * source/BotConfig.H: Updated copyright
384 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
386 * source/BotConfig.C (set_option_value): Take care of the case
387 where key is not already in the db
388 (add_watcher): Implemented
389 (read_config): Removed ',' token parsing (not needed)
391 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
392 AC_CHECK_LIB ccgnu2 (CommonC++2)
394 * README: Updated README (reformatted, adding info, etc.)
396 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
398 * source/BotConfig.C (set_option_value): call watcher list
399 (run_fun_): Added to support watcher list calling
401 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
403 * source/BotConfig.C (set_option_value): Fuck you STL
404 (push_back_): Reimplemented so that it doesn't need std::bind1st
405 because the STL is being stupid
407 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
409 * source/BotConfig.C (read_config): Implemented properly
410 (get_option_values): Implemented properly
411 (set_config_file): Fixed
413 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
415 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
418 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
420 * source/BotConfig.C: New file (implementation of configuration database)
422 * source/BotConfig.H: New File (semi-generic configuration database)
424 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
426 * bobot++.texinfo (Starting the Bot): New section
428 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
430 * bobot++.texinfo (Protection): Added Section
431 (User Levels): Rewrote section to be useful
432 (bot.users): Added section
434 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
436 * source/DCCChatConnection.C (connect): Checks to make sure the
437 person initiating a DCC CHAT with the bot is at least a FRIEND of
440 * README: Fixed a typo
442 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
443 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
445 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
447 * bobot++.texinfo (bot.conf): Finished section
448 (server syntax): New section, documents the bot.conf SERVER syntax
449 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
451 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
453 * source/Main.C (real_main): std::exit instead of exit
455 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
457 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
458 constructor with `n' This should fix the segfaulting.
460 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
462 * ChangeLog: Updated copyright notice
464 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
466 * source/Interp.C (interp_init_helper): Register
467 bot:change-command-level
469 * source/ScriptCommands.C (ChangeCommandLevel): Added
470 ChangeCommandLevel to change the level a user needs to be to run a
473 * source/ScriptCommands.H: Added ChangeCommandLevel
475 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
477 * source/String.H: Changed #define STRING_H to BSTRING_H
479 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
481 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
482 to see if a message was sent to the bot (this is better than
483 bot:match-to-me because the hook isn't invalidated when the bot's
486 * source/DCCConnection.H: Added `nuh' back and added an
488 Added setter `set_autoRemove(bool)'
490 * source/DCCConnection.H: Removed all friends
491 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
492 reveals the pointer to the bot [PRIVATE POINTER] which probably
493 isn't so nice, but there isn't much to be done about it with the
494 current design of the bot)
496 * source/DCCChatConnection.H: Removed all friends
498 * source/DCCConnection.H: DCCConnection is now a pure virtual
499 class with the subclass DCCChatConnection
501 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
503 * source/Socket.C (connect): log errors to the bot log instead of
506 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
508 * source/Parser.C (parseMessage): use the find method of std::map
509 to find the command to call instead of [] and then extract the
510 pointer to the userFunction from that if it exists. This appears
511 to fix the crash when one uses an undefined command followed by
514 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
516 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
517 ScriptCommands::SetFloodRate
519 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
521 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
524 * source/Bot.H: Made MAX_MESSAGES writeable
526 * source/UserCommands.H: New method: SetFloodRate
528 * source/Commands.H: New method: SetFloodRate
530 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
532 * configure.ac: Merged all AC_OUTPUTs at the end
534 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
536 * scripts/bobot-utils.scm: Make exported symbols from
537 the-bot-module available in the guile-user module so that scripts
538 loaded with Interp::Load function.
540 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
542 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
543 %bot:loadpath into its own module and returns that (unnamed) module
544 (bot:use-module): Calls bot:load-module and then adds the newly
545 loaded module to the (current-module)'s use-list
547 * source/Interp.C (interp_init_helper): New procedure to initialize
548 the-bot-module (this is the old Interp::Startup verbatim)
549 (interp_post_startup_helper): New procedure to export
550 the-bot-module from bot_module
551 (Startup): Now calls interp_init_helper and
552 interp_post_startup_helper to initalize the bot module system
554 * source/Interp.H: Added private variable bot_module to Interp
556 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
558 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
559 this breaks existing scripts, this is the unstable tree after all)
561 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
563 * source/Mask.C (match): Made Mask::match case insensitive
565 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
567 * source/Interp.C (scm_apply_wrapper): turned off locking of
568 Interp::mutex to see if this makes the bot work again...and it
571 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
573 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
574 everything to use aclocal/automake 1.6
576 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
578 * source/DCCPerson.H (class DCCPerson): Added
579 UserCommands::DCCList as a friend (friends are better than the old
580 DCC() function at least).
582 * source/DCCManager.H (class DCCManager): Added
583 UserCommands::DCCList as a friend
585 * source/Interp.H (class Interp): Made function scm_apply_wrapper
586 a friend so it can lock Interp::mutex
588 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
589 MULTITHREAD is defined (it is always defined when scripting is
590 enabled) so that Sockets can be made multithreaded using
593 * source/DCCPerson.H: Removed DCC method and made Bot a friend
594 Made DCCManager a friend
596 * source/DCCManager.H (class DCCManager): Removed MAP() method
597 and made Bot a friend of DCCManager
599 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
601 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
604 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
605 user!nick@host instead of the correct nick!user@host).
607 * source/Interp.C (Startup): Register bot:DCC-chat-send
609 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
611 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
613 * source/String.C (String): The std::string copy constructor now
614 extracts the c_str of the std::string and then takes the strlen of
615 that before copying it. This fixes a bug with DCC where if you did
616 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
617 something like that, depending on what the last message was
618 because Socket will insert a \0 into its semi-static buffer, so
619 the len of the String will not equal the strlen of its char*.
621 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
623 * source/DCCPerson.H: Removed destructor (I = idiot)
625 * source/DCCConnection.H: DCCManager is now a friend of
626 DCCConnection (ugh, the bot has way too many friends).
628 * source/DCCPerson.H: Added DCC member that returns a const
629 DCCConnection* (the dcc connection). This isn't saved anywhere
630 because when a DCCPerson is destroyed, its connection is also
633 * source/Bot.H: dccConnections is now a DCCManager
635 * source/DCCPerson.H: Added destructor
636 Added handleInput method
638 * source/DCCManager.C: New file
639 (addConnection): Wrote method, add a DCCConection to the manager
641 * source/DCCManager.H: New file
643 * source/Interp.C (Startup): Register bot:DCC-chat-send
644 (Startup): Removed sendDCCChatMessage stuff
646 * source/ScriptCommands.C (sendDCCChatMessage): New method:
647 sendDCCChatMessage (to, message) sends message to to.
649 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
650 one arg: from (user!nick@host).
652 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
653 two args: from (user!nick@host) and line
655 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
657 * source/Interp.C (Startup): Two new Scheme values:
658 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
659 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
661 * source/BotInterp.H: Added two new enum values to Hook:
662 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
665 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
667 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
668 DCC! Ack, sockets take their arguments in network byte order so
669 there is no need to convert to host...now DCC _sort of_ works.
671 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
673 * source/UserList.C (save): Increment iterator twice to get around
676 * source/ServerQueue.C: Now sends SEND_* hooks instead of
677 triggered general hooks.
679 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
680 (* = the new SEND_ hooks, but lowercase).
682 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
683 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
685 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
687 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
690 * source/Socket.C (readLine): Now uses a static std::string that
691 starts out with 512 chars. This will never need to be resized for
692 usualy IRC messages, but might be for DCC messages
694 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
696 * scripts/bobot-utils.scm (not-from-me): New syntax.
698 * source/ScriptCommands.C (AddHook): Now takes another optional
699 arg--name that will name the hook (see the hooks section in the
700 manual for what this does).
702 * source/BotInterp.H: Added name field to Hook
704 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
706 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
707 PRIVMSGes because the IRC server doesn't echo them back to the
708 bot. This could be useful for something (e.g. log script).
710 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
712 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
713 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
714 associated with the hook when Interp::Shutdown is called (bot exit).
716 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
718 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
719 hook is greater than or less than the other hook, only the
720 priority is considered. However, if both hooks have the same
721 priority, then the fallthru-ness is considered, with fallthru
722 hooks being greater than non-fallthru hooks.
724 * source/BotInterp.C (hptr_lt): Added this static function to be
725 used to sort the hooks list (now hooks should be sorted using
726 Hook's operator < instead of using pointer comparision, meaning
727 the new hook system will work correctly)
729 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
730 map because we don't need the result of the displays (this would
731 just be a list of #<undefined> values and is a waste of memory).
733 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
735 * source/Bot.C (Bot): userFunctions is now a map for efficiency
736 (worst case search is now NlogN instead of N). This improvement is
737 not as drastic as the one gained by making the Parser functions
738 list a map (because we don't scan this map for every message), but
739 it helps to clean up the code
741 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
743 * source/Parser.H: Removed userFunctionsStruct
745 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
746 as bot:send-CTCP for Scheme
748 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
750 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
752 * source/ServerQueue.C (sendUser): Changed . . in USER command to
753 0 * (which is the Right Way to because <mode> must be a number...)
755 * source/Parser.C (init): New method of Parse. This initalizes the
756 functions map. functions replaces the old functions array, and
757 should yield better performance (since the functions array had to
758 be scanned for every incoming message)
760 * source/Parser.H: New member, functions (private)
762 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
764 * source/Interp.C (Startup): New symbols: bot:user-*
765 [none|user|trusted|friend|master] are defined in Scheme as the
766 different levels of the users.
767 (Startup): All bot-* variables are now bot:*
769 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
771 * source/Bot.H: Made some variables private because they shouldn't
772 be changed at runtime
774 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
775 this out to see if it works and make it work)
777 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
780 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
781 scripts in the user scripts dir) that made bobot++ not able to
782 load scripts from the user scripts dir
784 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
786 * source/BotInterp.C (RunHooks): Changed iterators to
787 reverse_iterators because the hooks list is sorted in ascending
788 order--higher priority and fallthrough hooks appear _after_ the
789 lower priority and non-fallthrough hooks.
791 * source/Main.C (print_long_help): Added function
792 (print_short_help): Renamed from printUsage
793 (namespace): Most stuff in here is now defined in an anonymouse
794 namespace so it doesn't have external linkage
795 (real_main): Uses getopt_long instead of getopt. Added several
796 command line arguments (bobotpp --help for a full list).
798 * scripts/bobot-utils.scm (bot-load): Function moved from
801 * source/Interp.C (Startup): Autoloads
802 PREFIX/bobotpp/scripts/bobot-utils.scm now
803 (Startup): New Scheme variable: bot-sys-scripts-dir (system
806 * source/bobot-scheme.scm.in: Removed
808 * source/Makefile.am: Removed bobot-scheme.scm compiliation
810 * configure.ac (PREFIX): configure.ac defined prefix now
812 * source/Main.C (real_main): Default configuration is now read
813 from /etc/bobotpp/default
814 * source/bobot-scheme.scm.in: Added file. This defines the
815 'bot-load' procedure which will load a file from
816 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
817 script doesn't exist in the user script dir.
819 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
821 * bobot++.texinfo: Started docs (just a skeleton right now)
823 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
824 args to set a hooks priority and whether or not it will
825 fallthrough. These args are optional.
827 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
829 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
830 (RunHooks): exec fallthrough hooks first.
832 * source/BotInterp.H: Changed Hooks to have priority
833 Added fhooksMap to BotInterp (fallthrough)
835 * source/UserCommands.C (AddShit): Converted to use Commands
837 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
839 * source/Commands.C (AddUser): Fixed a one-off (function call was
840 before a brace instead of after one) that caused a segfault when
841 the user mask was a wildcard
843 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
845 * all files: Updated address of the FSF
847 * source/UserCommands.C (AddUser): Uses Commands now instead of
848 manipulating the bot directly
850 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
852 * source/ScriptCommands.C (AddShit): Filled in function.
854 * source/Interp.C (Startup): Bind bot-adduser to
855 ScriptCommands::AddUser instead of Action
856 (Startup): Bind bot-addshit to ScriptCommands::AddShit
858 * source/ScriptCommands.C (AddUser): Filled in function
860 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
861 would have caused problems if you used more than one server
863 * source/Parser.H: Changed const char* to String in userFunctionStruct
865 * source/String.H: Added std::string compatibility members
867 * configure.ac: You can now disable Crypt and scripting
869 * source/*: Added #include "config.h" where needed
871 * configure.ac: Added AM_CONFIG_HEADER
873 * config.h.in: added file
875 * source/Queue.C: Didn't notice iostream.h here! Fixed
878 Copyright 2002,2003,2004,2005 Clinton Ebadi
879 Copying and distribution of this file, with or without modification, are
880 permitted provided the copyright notice and this notice are preserved.