1 2005-07-04 Clinton Ebadi <clinton@unknownlamer.org>
3 * scripts/bobot-utils.scm (_deprecated-fun): Set
4 current-error-port to bot:logport while calling
5 issue-deprecation-warning
7 * bobot++.texinfo: Grammar fixes on the title page
8 (Configuration): Added more info on config files.
9 (bot.conf): Added xrefs for server syntax and channel syntax
10 (server syntax): Added more detail and moved a paragraph
11 (channel syntax): Added more details, revised the examples, and
12 moved some text around
13 (User Levels): Clarified
14 (Protection): Cleaned up
15 (Automatic Op): Improved substantially
17 * source/DCCManager.C (checkInput): Call hooks/dcc/chat-end if the
20 * scripts/bobot-utils.scm (bot:log): Updated to use bot:logport
21 instead of bot-logport
23 * source/Interp.C (interp_init_helper): Add hooks/dcc/chat-end
26 * bobot++.texinfo (DCC CHAT Hooks): Document hooks/dcc/chat-end
28 * source/BotInterp.H: Add DCC_CHAT_END to enum
30 * source/DCCManager.C (checkStale): Run hooks/dcc/chat-end when
31 deleting a stale connection.
33 2005-07-03 Clinton Ebadi <clinton@unknownlamer.org>
35 * bobot++.texinfo (Hook Types): Documented all hooks
37 * source/ServerQueue.C (sendPrivmsg): Changed SEND_MESSAGE hook to
38 match dest and pass dest to send hook
40 * bobot++.texinfo (Hook Types): Changed language of
41 hooks/dcc/chat-* hook documention
42 (Received Message Hooks): Added subsub section of Hook Types
43 (Sent Message Hooks): Added subsub section of Hook Types
44 (DCC CHAT Hooks): Added subsub section of Hook Types
45 (Miscellaneous Hooks): Added subsub section of Hook Types
47 * source/Parser.C (parseScriptFunction): Changed
48 lazy_apply_wrapper to Interp::LazyApplyWrapper
49 (parseScriptFunction): Changed empty_handler to Interp::EmptyHandler
50 (parsePart): Grammar fix in log (Leaved => Left)
52 * source/Interp.H (Interp): Added LazyHandler method
54 * source/BotInterp.C (RunHooks): changed lazy_apply_wrapper to
55 Interp::LazyApplyWrapper
56 (RunTimers): Changed empty_handler to Interp::EmptyHandler
57 (RunHooks): Changed empty_handler to Interp::EmptyHandler
58 (RunTimers): Changed lazy_apply_wrapper to Interp::LazyApplyWrapper
60 * source/Interp.C (LazyHandler): Renamed from lazy_handler
61 (ScmApplyWrapper): Renamed from scm_apply_wrapper
62 (EmptyHandler): Renamed from empty_handler
64 * source/Interp.H (Interp): Removed ErrorHandler method
65 (Interp): Added LazyApplyWrapper method
66 (Interp): Added EmptyHandler method
67 (Interp): Added ScmApplyWrapper method
69 * scripts/bobot-utils.scm: Added hooks/leave as an alias for hooks/part
70 Added begin-deprecated around deprecated definitions
71 (_deprecated-fun): Added macro to define an alias for a function
72 and issue a deprecation warning when used
73 Converted all bot- aliases to use _deprecated-fun
75 * source/Interp.C (interp_init_helper): Changed Hook::LEAVE to
77 (interp_init_helper): Removed definition of hooks/leave
79 * bobot++.texinfo (Hook Types): Removed stub for hooks/leave, only
80 document hooks/part name (hooks/leave still exists, but will not
81 be documented as it is the same as hooks/part)
83 * source/Parser.C (parsePart): Use Hook::PART instead of Hook::LEAVE
85 * source/BotInterp.H: Removed Hook::LEAVE, added Hook::PART
87 * bobot++.texinfo (Scripting): Added note about most arguments
90 * source/Commands.C (NextServer): Call hooks/disconnect
92 * source/Bot.C (run): Pass extra argument to Hook::DISCONNECT
94 * bobot++.texinfo (Creating a Hook): Reformatted the bot:addhook
95 section to make it more readable
96 (Hook Types): Reformatted hooks/action
97 (Hook Types): Changed grammar of hooks/nickname (their => his)
98 (Hook Types): Documented hooks/signoff
100 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
102 * bobot++.texinfo: Updated copyright years, changed "applies to
105 * source/Socket.C (readLine): return buf.substr (0, pos) instead
106 of using the String char * constructor (this should be faster,
107 especially for long strings since a simple copy is used instead of
108 going over each char until nul is encountered)
110 * configure.ac: Release 2.1.8
111 Change version to 2.1.9CVS
113 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
115 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
117 * bobot++.texinfo (Configuration): Swapped order of config file
118 placement and config files
119 (User Levels): users not found in the user list *can* execute
120 commands as bot:user-none now.
121 (Low Level Message Functions): Changed a few @code{}s to @var{}s
123 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
125 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
127 * source/Main.C (namespace): Added debug-scripts option
129 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
130 from->getNick () instead of from->getAddress () (consistency fix)
132 * source/Main.C: Merged error handling patch from dsmith
134 * source/Parser.C: Merged error handling
137 * source/Interp.H: Merged error handling patch from dsmith
139 * source/Interp.C (lazy_handler): Merged error handling patch from
142 * source/BotInterp.H: Merged error handling patch from dsmith
144 * source/BotInterp.C: Merged error handling patch from dsmith
146 * bobot++.texinfo (Low Level Message Functions): Documented
149 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
151 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
154 * bobot++.texinfo (Low Level Message Functions):
155 s/bot:send-CTCP/bot:send-ctcp/
157 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
160 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
162 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
163 (sendCTCPReply): Added
165 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
167 * source/Commands.C (CTCP): Implemented
168 (CTCPReply): Implemented
169 (Action): Convert to use Commands::CTCP
171 * source/Commands.H: Added CTCP (bot, target, command, message)
172 Added CTCPReply (bot, target, command, message)
174 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
176 * examples/bot.conf (maxnicklength): Update example config
178 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
180 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
182 * source/Bot.H: Added MAX_NICKLENGTH member
184 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
186 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
189 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
191 * source/Commands.C (Notice): Send multiple NOTICEs when a message
194 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
196 * source/Main.C (real_main): Enable Guile debugging mode when
199 * source/Interp.C (interp_post_startup_helper): Return
200 SCM_UNSPECIFIED instead of 0
202 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
204 * All: Updated FSF street address
206 * source/Commands.C (Msg): Move body of Say to an if inside of this
209 * source/ScriptCommands.C (sendNotice): Returns error code instead
212 * source/Commands.C (Say): Check to make sure target is a channel
213 (Msg): Extended to send messages to channels
215 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
217 * scripts/bot.scm: Added file ((bobotpp bot) module for other
218 modules to gain access to bobot++ interface)
220 * source/Commands.C (Notice): Commented out check/abort if target
221 is a channel (there doesn't seem to be a reason for this to not work)
223 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
225 * bobot++.texinfo (High Level Message Functions): Document bot:notice
227 * source/Message.H: Added operator== to Message (tests for error
230 * source/Commands.C: Removed message type macros
232 * source/Message.H: Moved message type macros to Message.H
234 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
236 * source/ScriptCommands.H: Uncomment sendNotice
238 * source/Bot.C (waitForInput): Use %02d when formatting
239 Hooks::TIMER argument instead of %2d, and switch to snprintf to
242 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
245 * source/Bot.C (run): Added call to Hooks::DISCONNECT
246 (hooks/disconnect) when the bot is disconnected from the server
248 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
249 (Hook Types): Added hooks/disconnect argument
251 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
253 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
254 again (thanks dsmith)
256 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
258 * source/Interp.C (interp_init_helper): Added
259 bot:protection/[none|ban|kick|deop] constants to Scheme
260 (interp_init_helper): Added bot:aop/[yes|no] constants
262 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
264 * configure.ac: Release Bobot++ 2.1.7
265 Changed version to 2.18.CVS
267 * source/UserList.C (save): Remove workaround for BUG #2
269 * source/Parser.C (parse001): make realNick lowercase when doing
270 the comparison to bot->nickName to prevent pushing a second copy
271 of the bot onto the userlist (closes BUG #2)
273 * source/Bot.C (Bot): cleaned up constructor
274 (waitForInput): replaced gh_list with scm_list_n
276 * source/UserList.C: Cleaned up some formatting
278 * source/Main.C: Formatted code more cleanly
279 (real_main): changed a few Strings to std::strings
281 * source/String.C (operator): Made index signed again, it's not
282 worth fixing this warning
284 * source/Bot.C: Add casts to make this compile with unsigned int
285 as operator[] in String
287 * source/String.C (operator): Made index unsigned
289 * source/Utils.C: Made a few things unsigned to kill warnings
291 * source/Socket.C (readLine): Made pos unsigned
293 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
295 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
297 * source/StringTokenizer.C (count_tokens): Changed return type to
299 (more_tokens_p): Made counter unsigned
301 * source/StringTokenizer.H (class StringTokenizer): Made pos
302 std::string::size_type instead of int
304 * source/Commands.C (TBan): Returns Ok is the ban is done instead
305 of falling off the end (oops)
307 * source/BotInterp.H: Add general catch case (false)
309 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
311 * configure.ac: Release 2.1.6
312 Changed version to 2.1.7CVS
314 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
316 * source/Parser.C (parseLine): use map<>::find and an iterator to
317 find the IRC command instead of map<>::operator[] to avoid a
320 * source/Bot.C (waitForInput): Removed commented out code
322 * source/Socket.C (readLine): return String (buf.c_str ()) instead
323 of String (buf) so that only the buffer up to the first null is returned
324 (readLine): Added a comment explaining the usage of buf
325 (readLine): Changed type of length (std::string::size_type instead
328 * source/String.C: Reimplemented String on top of std::string to
329 fix a few bugs and potential memory leaks
330 (toLower): use Utils::to_lower
331 (toUpper): Use Utils::to_upper
332 (trim): Use Utils::trim_str
334 * source/String.H: removed srep, replaced it with a std::string (my_string)
336 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
338 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
339 counters and substr call)
341 * source/StringTokenizer.C (next_token): Applied patch from Jos
342 Hulzink <josh@stack.nl> (fixes substr call)
343 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
346 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
348 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
349 he is a lazy bum and never submitted the String replacing patch
351 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
353 * configure.ac: Remove CC++ test
354 Changed version to 2.1.6CVS (2.1.5 released)
356 * bobot++.texinfo: Updated copyright
358 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
360 * TODO (General): Added TODO items
361 (2.2): Moved a few items here from 2.4
363 * README (NOTE): Mention boost requirement
365 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
367 * ChangeLog Updated copryight
369 * source/User.H: Removed forward declaration of Utils
371 * source/Bot.H: Removed forward declaration of Utils
373 * source/ChannelList.H: Removed forward declaration of Utils
375 * source/UserListItem.H: Removed forward declaration of Utils
377 * source/Utils.H: Removed class Utils, replaced with a namspace
378 (it only contained static methods)
380 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
381 (he is replacing String)
383 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
385 * source/BotConfig.C (set_option_value): Put watcher calling
386 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
387 = end then there are no watchers since this is a new value and
388 references cf_iter->second segfaults)
390 * source/Utils.C (trim_str): Fixed bug (last non-space character
393 * source/BotConfig.C (read_config): Made to use set_option_value
394 instead of manipulating options_db directly
396 * source/BotConfig.H (class BotConfig): Add set_option_value that
397 takes a t_value instead of t_value_list (most uss of
398 set_option_value will be to add a single value so this is very useful)
400 * source/BotConfig.C (set_option_value): Implemented
402 * source/UserList.C: Made to work with new Utils/StringTokenizer names
404 * source/UserCommands.C: Made to work with new
405 Utils/StringTokenizer names
407 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
409 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
411 * source/ShitList.C: Made to work with new StringTokenizer names
413 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
415 * source/ServerQueue.C: Made to work with new Utils names
417 * source/ScriptCommands.C: Made work with new Utils names
419 * source/Person.C (getNick): Made work with new Utils names
421 * source/String.H: Added substr prototypes
423 * source/String.C (substr): Added substr as an alias of subString
424 (for compat with std::string before the transition)
426 * source/Parser.C: Made to work with new Utils/StringTokenizer names
428 * source/DCCParser.C: Made to work with new Utils names
430 * source/DCCChatConnection.C: Made to work new Utils names
432 * source/Commands.C: Made to work with new Utils names
434 * source/Channel.C: Made to work with new Utils names
436 * source/BotInterp.C: Made to work with new Utils
438 * source/Bot.C: Made to work with new Utils/StringTokenizer names
440 * source/String.C (operator=): Unremoved operator=(std::string)
442 * source/String.H: Unremoved operator=(std::string)
444 * source/BotConfig.C (read_config): Use Utils::trim_str
446 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
448 * source/Utils.C (trim_str): Implemented
450 * source/Utils.H: Added tim_str (replaces String::trim)
452 * source/BotConfig.C: Made everything work with new
453 StringTokenizer and Utils names
455 * source/Utils.H: Added to_lower
458 * source/StringTokenizer.C (rest): uses std::isspace instead of
459 checking st[pos] against ' ' and '\t'
461 * source/StringTokenizer.H: Removed CamelCasing
462 Renamed hasMoreTokens to more_tokens_p
464 * source/StringTokenizer.C: Converted to use std::string
466 * source/StringTokenizer.H: Converted to use std::string
468 * source/String.C: Removed operator=(std::string)
470 * source/String.H: Removed operator=(std::string)
472 * source/Utils.C: Added copyright
473 Reformatted to match GNU coding standard more closely
474 Converted everything to use std::string
475 (get_nick): Renamed from getNick
476 (get_userhost): Renamed from getUserHost
477 (get_key): Renamed from getKey
478 (IP_p): Renamed from isIP
479 (make_wildcard): Renamed from makeWildcard
480 (channel_p): Renamed from isChannel
481 (wildcard_p): Renamed from isWildcard
482 (valid_channel_name_p): Renamed from isValidChannelName
483 (valid_nickname_p): Renamed from isValidNickName
484 (get_level): Renamed from getLevel
485 (str2time): Renamed from strToTime
486 (str2time): Fixed potential buffer overflow (num[512] => std::string)
487 (level2str): Renamed from levelToStr
488 (prot2str): Renamed from protToStr
489 (bool2str): Renamed from boolToStr
490 (long2str): Implemented
491 (scm2str): Renamed from scm2String
492 (str2scm): Renamed from string2SCM
494 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
496 * source/Utils.H: Added long2str (long int -> std::string)
498 * source/String.H: Added 2003 copyright (the year I last modified
501 * source/String.C: Added 2002 copyright (the year I last modified
504 * source/Utils.H: Updated Copyright
505 s/String/std::string/g
506 Removed camel casing and is* = *_p
509 * source/BotConfig.C: Updated Copyright
511 * source/BotConfig.H: Updated copyright
513 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
515 * source/BotConfig.C (set_option_value): Take care of the case
516 where key is not already in the db
517 (add_watcher): Implemented
518 (read_config): Removed ',' token parsing (not needed)
520 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
521 AC_CHECK_LIB ccgnu2 (CommonC++2)
523 * README: Updated README (reformatted, adding info, etc.)
525 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
527 * source/BotConfig.C (set_option_value): call watcher list
528 (run_fun_): Added to support watcher list calling
530 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
532 * source/BotConfig.C (set_option_value): Fuck you STL
533 (push_back_): Reimplemented so that it doesn't need std::bind1st
534 because the STL is being stupid
536 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
538 * source/BotConfig.C (read_config): Implemented properly
539 (get_option_values): Implemented properly
540 (set_config_file): Fixed
542 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
544 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
547 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
549 * source/BotConfig.C: New file (implementation of configuration database)
551 * source/BotConfig.H: New File (semi-generic configuration database)
553 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
555 * bobot++.texinfo (Starting the Bot): New section
557 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
559 * bobot++.texinfo (Protection): Added Section
560 (User Levels): Rewrote section to be useful
561 (bot.users): Added section
563 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
565 * source/DCCChatConnection.C (connect): Checks to make sure the
566 person initiating a DCC CHAT with the bot is at least a FRIEND of
569 * README: Fixed a typo
571 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
572 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
574 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
576 * bobot++.texinfo (bot.conf): Finished section
577 (server syntax): New section, documents the bot.conf SERVER syntax
578 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
580 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
582 * source/Main.C (real_main): std::exit instead of exit
584 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
586 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
587 constructor with `n' This should fix the segfaulting.
589 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
591 * ChangeLog: Updated copyright notice
593 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
595 * source/Interp.C (interp_init_helper): Register
596 bot:change-command-level
598 * source/ScriptCommands.C (ChangeCommandLevel): Added
599 ChangeCommandLevel to change the level a user needs to be to run a
602 * source/ScriptCommands.H: Added ChangeCommandLevel
604 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
606 * source/String.H: Changed #define STRING_H to BSTRING_H
608 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
610 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
611 to see if a message was sent to the bot (this is better than
612 bot:match-to-me because the hook isn't invalidated when the bot's
615 * source/DCCConnection.H: Added `nuh' back and added an
617 Added setter `set_autoRemove(bool)'
619 * source/DCCConnection.H: Removed all friends
620 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
621 reveals the pointer to the bot [PRIVATE POINTER] which probably
622 isn't so nice, but there isn't much to be done about it with the
623 current design of the bot)
625 * source/DCCChatConnection.H: Removed all friends
627 * source/DCCConnection.H: DCCConnection is now a pure virtual
628 class with the subclass DCCChatConnection
630 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
632 * source/Socket.C (connect): log errors to the bot log instead of
635 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
637 * source/Parser.C (parseMessage): use the find method of std::map
638 to find the command to call instead of [] and then extract the
639 pointer to the userFunction from that if it exists. This appears
640 to fix the crash when one uses an undefined command followed by
643 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
645 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
646 ScriptCommands::SetFloodRate
648 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
650 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
653 * source/Bot.H: Made MAX_MESSAGES writeable
655 * source/UserCommands.H: New method: SetFloodRate
657 * source/Commands.H: New method: SetFloodRate
659 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
661 * configure.ac: Merged all AC_OUTPUTs at the end
663 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
665 * scripts/bobot-utils.scm: Make exported symbols from
666 the-bot-module available in the guile-user module so that scripts
667 loaded with Interp::Load function.
669 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
671 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
672 %bot:loadpath into its own module and returns that (unnamed) module
673 (bot:use-module): Calls bot:load-module and then adds the newly
674 loaded module to the (current-module)'s use-list
676 * source/Interp.C (interp_init_helper): New procedure to initialize
677 the-bot-module (this is the old Interp::Startup verbatim)
678 (interp_post_startup_helper): New procedure to export
679 the-bot-module from bot_module
680 (Startup): Now calls interp_init_helper and
681 interp_post_startup_helper to initalize the bot module system
683 * source/Interp.H: Added private variable bot_module to Interp
685 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
687 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
688 this breaks existing scripts, this is the unstable tree after all)
690 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
692 * source/Mask.C (match): Made Mask::match case insensitive
694 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
696 * source/Interp.C (scm_apply_wrapper): turned off locking of
697 Interp::mutex to see if this makes the bot work again...and it
700 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
702 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
703 everything to use aclocal/automake 1.6
705 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
707 * source/DCCPerson.H (class DCCPerson): Added
708 UserCommands::DCCList as a friend (friends are better than the old
709 DCC() function at least).
711 * source/DCCManager.H (class DCCManager): Added
712 UserCommands::DCCList as a friend
714 * source/Interp.H (class Interp): Made function scm_apply_wrapper
715 a friend so it can lock Interp::mutex
717 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
718 MULTITHREAD is defined (it is always defined when scripting is
719 enabled) so that Sockets can be made multithreaded using
722 * source/DCCPerson.H: Removed DCC method and made Bot a friend
723 Made DCCManager a friend
725 * source/DCCManager.H (class DCCManager): Removed MAP() method
726 and made Bot a friend of DCCManager
728 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
730 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
733 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
734 user!nick@host instead of the correct nick!user@host).
736 * source/Interp.C (Startup): Register bot:DCC-chat-send
738 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
740 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
742 * source/String.C (String): The std::string copy constructor now
743 extracts the c_str of the std::string and then takes the strlen of
744 that before copying it. This fixes a bug with DCC where if you did
745 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
746 something like that, depending on what the last message was
747 because Socket will insert a \0 into its semi-static buffer, so
748 the len of the String will not equal the strlen of its char*.
750 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
752 * source/DCCPerson.H: Removed destructor (I = idiot)
754 * source/DCCConnection.H: DCCManager is now a friend of
755 DCCConnection (ugh, the bot has way too many friends).
757 * source/DCCPerson.H: Added DCC member that returns a const
758 DCCConnection* (the dcc connection). This isn't saved anywhere
759 because when a DCCPerson is destroyed, its connection is also
762 * source/Bot.H: dccConnections is now a DCCManager
764 * source/DCCPerson.H: Added destructor
765 Added handleInput method
767 * source/DCCManager.C: New file
768 (addConnection): Wrote method, add a DCCConection to the manager
770 * source/DCCManager.H: New file
772 * source/Interp.C (Startup): Register bot:DCC-chat-send
773 (Startup): Removed sendDCCChatMessage stuff
775 * source/ScriptCommands.C (sendDCCChatMessage): New method:
776 sendDCCChatMessage (to, message) sends message to to.
778 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
779 one arg: from (user!nick@host).
781 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
782 two args: from (user!nick@host) and line
784 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
786 * source/Interp.C (Startup): Two new Scheme values:
787 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
788 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
790 * source/BotInterp.H: Added two new enum values to Hook:
791 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
794 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
796 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
797 DCC! Ack, sockets take their arguments in network byte order so
798 there is no need to convert to host...now DCC _sort of_ works.
800 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
802 * source/UserList.C (save): Increment iterator twice to get around
805 * source/ServerQueue.C: Now sends SEND_* hooks instead of
806 triggered general hooks.
808 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
809 (* = the new SEND_ hooks, but lowercase).
811 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
812 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
814 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
816 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
819 * source/Socket.C (readLine): Now uses a static std::string that
820 starts out with 512 chars. This will never need to be resized for
821 usualy IRC messages, but might be for DCC messages
823 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
825 * scripts/bobot-utils.scm (not-from-me): New syntax.
827 * source/ScriptCommands.C (AddHook): Now takes another optional
828 arg--name that will name the hook (see the hooks section in the
829 manual for what this does).
831 * source/BotInterp.H: Added name field to Hook
833 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
835 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
836 PRIVMSGes because the IRC server doesn't echo them back to the
837 bot. This could be useful for something (e.g. log script).
839 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
841 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
842 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
843 associated with the hook when Interp::Shutdown is called (bot exit).
845 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
847 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
848 hook is greater than or less than the other hook, only the
849 priority is considered. However, if both hooks have the same
850 priority, then the fallthru-ness is considered, with fallthru
851 hooks being greater than non-fallthru hooks.
853 * source/BotInterp.C (hptr_lt): Added this static function to be
854 used to sort the hooks list (now hooks should be sorted using
855 Hook's operator < instead of using pointer comparision, meaning
856 the new hook system will work correctly)
858 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
859 map because we don't need the result of the displays (this would
860 just be a list of #<undefined> values and is a waste of memory).
862 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
864 * source/Bot.C (Bot): userFunctions is now a map for efficiency
865 (worst case search is now NlogN instead of N). This improvement is
866 not as drastic as the one gained by making the Parser functions
867 list a map (because we don't scan this map for every message), but
868 it helps to clean up the code
870 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
872 * source/Parser.H: Removed userFunctionsStruct
874 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
875 as bot:send-CTCP for Scheme
877 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
879 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
881 * source/ServerQueue.C (sendUser): Changed . . in USER command to
882 0 * (which is the Right Way to because <mode> must be a number...)
884 * source/Parser.C (init): New method of Parse. This initalizes the
885 functions map. functions replaces the old functions array, and
886 should yield better performance (since the functions array had to
887 be scanned for every incoming message)
889 * source/Parser.H: New member, functions (private)
891 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
893 * source/Interp.C (Startup): New symbols: bot:user-*
894 [none|user|trusted|friend|master] are defined in Scheme as the
895 different levels of the users.
896 (Startup): All bot-* variables are now bot:*
898 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
900 * source/Bot.H: Made some variables private because they shouldn't
901 be changed at runtime
903 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
904 this out to see if it works and make it work)
906 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
909 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
910 scripts in the user scripts dir) that made bobot++ not able to
911 load scripts from the user scripts dir
913 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
915 * source/BotInterp.C (RunHooks): Changed iterators to
916 reverse_iterators because the hooks list is sorted in ascending
917 order--higher priority and fallthrough hooks appear _after_ the
918 lower priority and non-fallthrough hooks.
920 * source/Main.C (print_long_help): Added function
921 (print_short_help): Renamed from printUsage
922 (namespace): Most stuff in here is now defined in an anonymouse
923 namespace so it doesn't have external linkage
924 (real_main): Uses getopt_long instead of getopt. Added several
925 command line arguments (bobotpp --help for a full list).
927 * scripts/bobot-utils.scm (bot-load): Function moved from
930 * source/Interp.C (Startup): Autoloads
931 PREFIX/bobotpp/scripts/bobot-utils.scm now
932 (Startup): New Scheme variable: bot-sys-scripts-dir (system
935 * source/bobot-scheme.scm.in: Removed
937 * source/Makefile.am: Removed bobot-scheme.scm compiliation
939 * configure.ac (PREFIX): configure.ac defined prefix now
941 * source/Main.C (real_main): Default configuration is now read
942 from /etc/bobotpp/default
943 * source/bobot-scheme.scm.in: Added file. This defines the
944 'bot-load' procedure which will load a file from
945 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
946 script doesn't exist in the user script dir.
948 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
950 * bobot++.texinfo: Started docs (just a skeleton right now)
952 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
953 args to set a hooks priority and whether or not it will
954 fallthrough. These args are optional.
956 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
958 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
959 (RunHooks): exec fallthrough hooks first.
961 * source/BotInterp.H: Changed Hooks to have priority
962 Added fhooksMap to BotInterp (fallthrough)
964 * source/UserCommands.C (AddShit): Converted to use Commands
966 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
968 * source/Commands.C (AddUser): Fixed a one-off (function call was
969 before a brace instead of after one) that caused a segfault when
970 the user mask was a wildcard
972 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
974 * all files: Updated address of the FSF
976 * source/UserCommands.C (AddUser): Uses Commands now instead of
977 manipulating the bot directly
979 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
981 * source/ScriptCommands.C (AddShit): Filled in function.
983 * source/Interp.C (Startup): Bind bot-adduser to
984 ScriptCommands::AddUser instead of Action
985 (Startup): Bind bot-addshit to ScriptCommands::AddShit
987 * source/ScriptCommands.C (AddUser): Filled in function
989 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
990 would have caused problems if you used more than one server
992 * source/Parser.H: Changed const char* to String in userFunctionStruct
994 * source/String.H: Added std::string compatibility members
996 * configure.ac: You can now disable Crypt and scripting
998 * source/*: Added #include "config.h" where needed
1000 * configure.ac: Added AM_CONFIG_HEADER
1002 * config.h.in: added file
1004 * source/Queue.C: Didn't notice iostream.h here! Fixed
1007 Copyright 2002,2003,2004,2005 Clinton Ebadi
1008 Copying and distribution of this file, with or without modification, are
1009 permitted provided the copyright notice and this notice are preserved.