1 2005-07-04 Clinton Ebadi <clinton@unknownlamer.org>
3 * bobot++.texinfo: Grammar fixes on the title page
4 (Configuration): Added more info on config files.
5 (bot.conf): Added xrefs for server syntax and channel syntax
6 (server syntax): Added more detail and moved a paragraph
7 (channel syntax): Added more details, revised the examples, and
9 (User Levels): Clarified
10 (Protection): Cleaned up
11 (Automatic Op): Improved substantially
13 * source/DCCManager.C (checkInput): Call hooks/dcc/chat-end if the
16 * scripts/bobot-utils.scm (bot:log): Updated to use bot:logport
17 instead of bot-logport
19 * source/Interp.C (interp_init_helper): Add hooks/dcc/chat-end
22 * bobot++.texinfo (DCC CHAT Hooks): Document hooks/dcc/chat-end
24 * source/BotInterp.H: Add DCC_CHAT_END to enum
26 * source/DCCManager.C (checkStale): Run hooks/dcc/chat-end when
27 deleting a stale connection.
29 2005-07-03 Clinton Ebadi <clinton@unknownlamer.org>
31 * bobot++.texinfo (Hook Types): Documented all hooks
33 * source/ServerQueue.C (sendPrivmsg): Changed SEND_MESSAGE hook to
34 match dest and pass dest to send hook
36 * bobot++.texinfo (Hook Types): Changed language of
37 hooks/dcc/chat-* hook documention
38 (Received Message Hooks): Added subsub section of Hook Types
39 (Sent Message Hooks): Added subsub section of Hook Types
40 (DCC CHAT Hooks): Added subsub section of Hook Types
41 (Miscellaneous Hooks): Added subsub section of Hook Types
43 * source/Parser.C (parseScriptFunction): Changed
44 lazy_apply_wrapper to Interp::LazyApplyWrapper
45 (parseScriptFunction): Changed empty_handler to Interp::EmptyHandler
46 (parsePart): Grammar fix in log (Leaved => Left)
48 * source/Interp.H (Interp): Added LazyHandler method
50 * source/BotInterp.C (RunHooks): changed lazy_apply_wrapper to
51 Interp::LazyApplyWrapper
52 (RunTimers): Changed empty_handler to Interp::EmptyHandler
53 (RunHooks): Changed empty_handler to Interp::EmptyHandler
54 (RunTimers): Changed lazy_apply_wrapper to Interp::LazyApplyWrapper
56 * source/Interp.C (LazyHandler): Renamed from lazy_handler
57 (ScmApplyWrapper): Renamed from scm_apply_wrapper
58 (EmptyHandler): Renamed from empty_handler
60 * source/Interp.H (Interp): Removed ErrorHandler method
61 (Interp): Added LazyApplyWrapper method
62 (Interp): Added EmptyHandler method
63 (Interp): Added ScmApplyWrapper method
65 * scripts/bobot-utils.scm: Added hooks/leave as an alias for hooks/part
66 Added begin-deprecated around deprecated definitions
67 (_deprecated-fun): Added macro to define an alias for a function
68 and issue a deprecation warning when used
69 Converted all bot- aliases to use _deprecated-fun
71 * source/Interp.C (interp_init_helper): Changed Hook::LEAVE to
73 (interp_init_helper): Removed definition of hooks/leave
75 * bobot++.texinfo (Hook Types): Removed stub for hooks/leave, only
76 document hooks/part name (hooks/leave still exists, but will not
77 be documented as it is the same as hooks/part)
79 * source/Parser.C (parsePart): Use Hook::PART instead of Hook::LEAVE
81 * source/BotInterp.H: Removed Hook::LEAVE, added Hook::PART
83 * bobot++.texinfo (Scripting): Added note about most arguments
86 * source/Commands.C (NextServer): Call hooks/disconnect
88 * source/Bot.C (run): Pass extra argument to Hook::DISCONNECT
90 * bobot++.texinfo (Creating a Hook): Reformatted the bot:addhook
91 section to make it more readable
92 (Hook Types): Reformatted hooks/action
93 (Hook Types): Changed grammar of hooks/nickname (their => his)
94 (Hook Types): Documented hooks/signoff
96 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
98 * bobot++.texinfo: Updated copyright years, changed "applies to
101 * source/Socket.C (readLine): return buf.substr (0, pos) instead
102 of using the String char * constructor (this should be faster,
103 especially for long strings since a simple copy is used instead of
104 going over each char until nul is encountered)
106 * configure.ac: Release 2.1.8
107 Change version to 2.1.9CVS
109 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
111 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
113 * bobot++.texinfo (Configuration): Swapped order of config file
114 placement and config files
115 (User Levels): users not found in the user list *can* execute
116 commands as bot:user-none now.
117 (Low Level Message Functions): Changed a few @code{}s to @var{}s
119 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
121 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
123 * source/Main.C (namespace): Added debug-scripts option
125 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
126 from->getNick () instead of from->getAddress () (consistency fix)
128 * source/Main.C: Merged error handling patch from dsmith
130 * source/Parser.C: Merged error handling
133 * source/Interp.H: Merged error handling patch from dsmith
135 * source/Interp.C (lazy_handler): Merged error handling patch from
138 * source/BotInterp.H: Merged error handling patch from dsmith
140 * source/BotInterp.C: Merged error handling patch from dsmith
142 * bobot++.texinfo (Low Level Message Functions): Documented
145 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
147 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
150 * bobot++.texinfo (Low Level Message Functions):
151 s/bot:send-CTCP/bot:send-ctcp/
153 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
156 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
158 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
159 (sendCTCPReply): Added
161 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
163 * source/Commands.C (CTCP): Implemented
164 (CTCPReply): Implemented
165 (Action): Convert to use Commands::CTCP
167 * source/Commands.H: Added CTCP (bot, target, command, message)
168 Added CTCPReply (bot, target, command, message)
170 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
172 * examples/bot.conf (maxnicklength): Update example config
174 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
176 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
178 * source/Bot.H: Added MAX_NICKLENGTH member
180 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
182 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
185 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
187 * source/Commands.C (Notice): Send multiple NOTICEs when a message
190 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
192 * source/Main.C (real_main): Enable Guile debugging mode when
195 * source/Interp.C (interp_post_startup_helper): Return
196 SCM_UNSPECIFIED instead of 0
198 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
200 * All: Updated FSF street address
202 * source/Commands.C (Msg): Move body of Say to an if inside of this
205 * source/ScriptCommands.C (sendNotice): Returns error code instead
208 * source/Commands.C (Say): Check to make sure target is a channel
209 (Msg): Extended to send messages to channels
211 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
213 * scripts/bot.scm: Added file ((bobotpp bot) module for other
214 modules to gain access to bobot++ interface)
216 * source/Commands.C (Notice): Commented out check/abort if target
217 is a channel (there doesn't seem to be a reason for this to not work)
219 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
221 * bobot++.texinfo (High Level Message Functions): Document bot:notice
223 * source/Message.H: Added operator== to Message (tests for error
226 * source/Commands.C: Removed message type macros
228 * source/Message.H: Moved message type macros to Message.H
230 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
232 * source/ScriptCommands.H: Uncomment sendNotice
234 * source/Bot.C (waitForInput): Use %02d when formatting
235 Hooks::TIMER argument instead of %2d, and switch to snprintf to
238 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
241 * source/Bot.C (run): Added call to Hooks::DISCONNECT
242 (hooks/disconnect) when the bot is disconnected from the server
244 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
245 (Hook Types): Added hooks/disconnect argument
247 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
249 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
250 again (thanks dsmith)
252 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
254 * source/Interp.C (interp_init_helper): Added
255 bot:protection/[none|ban|kick|deop] constants to Scheme
256 (interp_init_helper): Added bot:aop/[yes|no] constants
258 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
260 * configure.ac: Release Bobot++ 2.1.7
261 Changed version to 2.18.CVS
263 * source/UserList.C (save): Remove workaround for BUG #2
265 * source/Parser.C (parse001): make realNick lowercase when doing
266 the comparison to bot->nickName to prevent pushing a second copy
267 of the bot onto the userlist (closes BUG #2)
269 * source/Bot.C (Bot): cleaned up constructor
270 (waitForInput): replaced gh_list with scm_list_n
272 * source/UserList.C: Cleaned up some formatting
274 * source/Main.C: Formatted code more cleanly
275 (real_main): changed a few Strings to std::strings
277 * source/String.C (operator): Made index signed again, it's not
278 worth fixing this warning
280 * source/Bot.C: Add casts to make this compile with unsigned int
281 as operator[] in String
283 * source/String.C (operator): Made index unsigned
285 * source/Utils.C: Made a few things unsigned to kill warnings
287 * source/Socket.C (readLine): Made pos unsigned
289 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
291 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
293 * source/StringTokenizer.C (count_tokens): Changed return type to
295 (more_tokens_p): Made counter unsigned
297 * source/StringTokenizer.H (class StringTokenizer): Made pos
298 std::string::size_type instead of int
300 * source/Commands.C (TBan): Returns Ok is the ban is done instead
301 of falling off the end (oops)
303 * source/BotInterp.H: Add general catch case (false)
305 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
307 * configure.ac: Release 2.1.6
308 Changed version to 2.1.7CVS
310 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
312 * source/Parser.C (parseLine): use map<>::find and an iterator to
313 find the IRC command instead of map<>::operator[] to avoid a
316 * source/Bot.C (waitForInput): Removed commented out code
318 * source/Socket.C (readLine): return String (buf.c_str ()) instead
319 of String (buf) so that only the buffer up to the first null is returned
320 (readLine): Added a comment explaining the usage of buf
321 (readLine): Changed type of length (std::string::size_type instead
324 * source/String.C: Reimplemented String on top of std::string to
325 fix a few bugs and potential memory leaks
326 (toLower): use Utils::to_lower
327 (toUpper): Use Utils::to_upper
328 (trim): Use Utils::trim_str
330 * source/String.H: removed srep, replaced it with a std::string (my_string)
332 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
334 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
335 counters and substr call)
337 * source/StringTokenizer.C (next_token): Applied patch from Jos
338 Hulzink <josh@stack.nl> (fixes substr call)
339 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
342 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
344 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
345 he is a lazy bum and never submitted the String replacing patch
347 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
349 * configure.ac: Remove CC++ test
350 Changed version to 2.1.6CVS (2.1.5 released)
352 * bobot++.texinfo: Updated copyright
354 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
356 * TODO (General): Added TODO items
357 (2.2): Moved a few items here from 2.4
359 * README (NOTE): Mention boost requirement
361 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
363 * ChangeLog Updated copryight
365 * source/User.H: Removed forward declaration of Utils
367 * source/Bot.H: Removed forward declaration of Utils
369 * source/ChannelList.H: Removed forward declaration of Utils
371 * source/UserListItem.H: Removed forward declaration of Utils
373 * source/Utils.H: Removed class Utils, replaced with a namspace
374 (it only contained static methods)
376 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
377 (he is replacing String)
379 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
381 * source/BotConfig.C (set_option_value): Put watcher calling
382 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
383 = end then there are no watchers since this is a new value and
384 references cf_iter->second segfaults)
386 * source/Utils.C (trim_str): Fixed bug (last non-space character
389 * source/BotConfig.C (read_config): Made to use set_option_value
390 instead of manipulating options_db directly
392 * source/BotConfig.H (class BotConfig): Add set_option_value that
393 takes a t_value instead of t_value_list (most uss of
394 set_option_value will be to add a single value so this is very useful)
396 * source/BotConfig.C (set_option_value): Implemented
398 * source/UserList.C: Made to work with new Utils/StringTokenizer names
400 * source/UserCommands.C: Made to work with new
401 Utils/StringTokenizer names
403 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
405 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
407 * source/ShitList.C: Made to work with new StringTokenizer names
409 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
411 * source/ServerQueue.C: Made to work with new Utils names
413 * source/ScriptCommands.C: Made work with new Utils names
415 * source/Person.C (getNick): Made work with new Utils names
417 * source/String.H: Added substr prototypes
419 * source/String.C (substr): Added substr as an alias of subString
420 (for compat with std::string before the transition)
422 * source/Parser.C: Made to work with new Utils/StringTokenizer names
424 * source/DCCParser.C: Made to work with new Utils names
426 * source/DCCChatConnection.C: Made to work new Utils names
428 * source/Commands.C: Made to work with new Utils names
430 * source/Channel.C: Made to work with new Utils names
432 * source/BotInterp.C: Made to work with new Utils
434 * source/Bot.C: Made to work with new Utils/StringTokenizer names
436 * source/String.C (operator=): Unremoved operator=(std::string)
438 * source/String.H: Unremoved operator=(std::string)
440 * source/BotConfig.C (read_config): Use Utils::trim_str
442 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
444 * source/Utils.C (trim_str): Implemented
446 * source/Utils.H: Added tim_str (replaces String::trim)
448 * source/BotConfig.C: Made everything work with new
449 StringTokenizer and Utils names
451 * source/Utils.H: Added to_lower
454 * source/StringTokenizer.C (rest): uses std::isspace instead of
455 checking st[pos] against ' ' and '\t'
457 * source/StringTokenizer.H: Removed CamelCasing
458 Renamed hasMoreTokens to more_tokens_p
460 * source/StringTokenizer.C: Converted to use std::string
462 * source/StringTokenizer.H: Converted to use std::string
464 * source/String.C: Removed operator=(std::string)
466 * source/String.H: Removed operator=(std::string)
468 * source/Utils.C: Added copyright
469 Reformatted to match GNU coding standard more closely
470 Converted everything to use std::string
471 (get_nick): Renamed from getNick
472 (get_userhost): Renamed from getUserHost
473 (get_key): Renamed from getKey
474 (IP_p): Renamed from isIP
475 (make_wildcard): Renamed from makeWildcard
476 (channel_p): Renamed from isChannel
477 (wildcard_p): Renamed from isWildcard
478 (valid_channel_name_p): Renamed from isValidChannelName
479 (valid_nickname_p): Renamed from isValidNickName
480 (get_level): Renamed from getLevel
481 (str2time): Renamed from strToTime
482 (str2time): Fixed potential buffer overflow (num[512] => std::string)
483 (level2str): Renamed from levelToStr
484 (prot2str): Renamed from protToStr
485 (bool2str): Renamed from boolToStr
486 (long2str): Implemented
487 (scm2str): Renamed from scm2String
488 (str2scm): Renamed from string2SCM
490 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
492 * source/Utils.H: Added long2str (long int -> std::string)
494 * source/String.H: Added 2003 copyright (the year I last modified
497 * source/String.C: Added 2002 copyright (the year I last modified
500 * source/Utils.H: Updated Copyright
501 s/String/std::string/g
502 Removed camel casing and is* = *_p
505 * source/BotConfig.C: Updated Copyright
507 * source/BotConfig.H: Updated copyright
509 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
511 * source/BotConfig.C (set_option_value): Take care of the case
512 where key is not already in the db
513 (add_watcher): Implemented
514 (read_config): Removed ',' token parsing (not needed)
516 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
517 AC_CHECK_LIB ccgnu2 (CommonC++2)
519 * README: Updated README (reformatted, adding info, etc.)
521 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
523 * source/BotConfig.C (set_option_value): call watcher list
524 (run_fun_): Added to support watcher list calling
526 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
528 * source/BotConfig.C (set_option_value): Fuck you STL
529 (push_back_): Reimplemented so that it doesn't need std::bind1st
530 because the STL is being stupid
532 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
534 * source/BotConfig.C (read_config): Implemented properly
535 (get_option_values): Implemented properly
536 (set_config_file): Fixed
538 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
540 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
543 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
545 * source/BotConfig.C: New file (implementation of configuration database)
547 * source/BotConfig.H: New File (semi-generic configuration database)
549 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
551 * bobot++.texinfo (Starting the Bot): New section
553 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
555 * bobot++.texinfo (Protection): Added Section
556 (User Levels): Rewrote section to be useful
557 (bot.users): Added section
559 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
561 * source/DCCChatConnection.C (connect): Checks to make sure the
562 person initiating a DCC CHAT with the bot is at least a FRIEND of
565 * README: Fixed a typo
567 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
568 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
570 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
572 * bobot++.texinfo (bot.conf): Finished section
573 (server syntax): New section, documents the bot.conf SERVER syntax
574 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
576 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
578 * source/Main.C (real_main): std::exit instead of exit
580 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
582 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
583 constructor with `n' This should fix the segfaulting.
585 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
587 * ChangeLog: Updated copyright notice
589 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
591 * source/Interp.C (interp_init_helper): Register
592 bot:change-command-level
594 * source/ScriptCommands.C (ChangeCommandLevel): Added
595 ChangeCommandLevel to change the level a user needs to be to run a
598 * source/ScriptCommands.H: Added ChangeCommandLevel
600 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
602 * source/String.H: Changed #define STRING_H to BSTRING_H
604 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
606 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
607 to see if a message was sent to the bot (this is better than
608 bot:match-to-me because the hook isn't invalidated when the bot's
611 * source/DCCConnection.H: Added `nuh' back and added an
613 Added setter `set_autoRemove(bool)'
615 * source/DCCConnection.H: Removed all friends
616 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
617 reveals the pointer to the bot [PRIVATE POINTER] which probably
618 isn't so nice, but there isn't much to be done about it with the
619 current design of the bot)
621 * source/DCCChatConnection.H: Removed all friends
623 * source/DCCConnection.H: DCCConnection is now a pure virtual
624 class with the subclass DCCChatConnection
626 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
628 * source/Socket.C (connect): log errors to the bot log instead of
631 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
633 * source/Parser.C (parseMessage): use the find method of std::map
634 to find the command to call instead of [] and then extract the
635 pointer to the userFunction from that if it exists. This appears
636 to fix the crash when one uses an undefined command followed by
639 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
641 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
642 ScriptCommands::SetFloodRate
644 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
646 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
649 * source/Bot.H: Made MAX_MESSAGES writeable
651 * source/UserCommands.H: New method: SetFloodRate
653 * source/Commands.H: New method: SetFloodRate
655 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
657 * configure.ac: Merged all AC_OUTPUTs at the end
659 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
661 * scripts/bobot-utils.scm: Make exported symbols from
662 the-bot-module available in the guile-user module so that scripts
663 loaded with Interp::Load function.
665 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
667 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
668 %bot:loadpath into its own module and returns that (unnamed) module
669 (bot:use-module): Calls bot:load-module and then adds the newly
670 loaded module to the (current-module)'s use-list
672 * source/Interp.C (interp_init_helper): New procedure to initialize
673 the-bot-module (this is the old Interp::Startup verbatim)
674 (interp_post_startup_helper): New procedure to export
675 the-bot-module from bot_module
676 (Startup): Now calls interp_init_helper and
677 interp_post_startup_helper to initalize the bot module system
679 * source/Interp.H: Added private variable bot_module to Interp
681 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
683 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
684 this breaks existing scripts, this is the unstable tree after all)
686 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
688 * source/Mask.C (match): Made Mask::match case insensitive
690 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
692 * source/Interp.C (scm_apply_wrapper): turned off locking of
693 Interp::mutex to see if this makes the bot work again...and it
696 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
698 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
699 everything to use aclocal/automake 1.6
701 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
703 * source/DCCPerson.H (class DCCPerson): Added
704 UserCommands::DCCList as a friend (friends are better than the old
705 DCC() function at least).
707 * source/DCCManager.H (class DCCManager): Added
708 UserCommands::DCCList as a friend
710 * source/Interp.H (class Interp): Made function scm_apply_wrapper
711 a friend so it can lock Interp::mutex
713 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
714 MULTITHREAD is defined (it is always defined when scripting is
715 enabled) so that Sockets can be made multithreaded using
718 * source/DCCPerson.H: Removed DCC method and made Bot a friend
719 Made DCCManager a friend
721 * source/DCCManager.H (class DCCManager): Removed MAP() method
722 and made Bot a friend of DCCManager
724 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
726 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
729 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
730 user!nick@host instead of the correct nick!user@host).
732 * source/Interp.C (Startup): Register bot:DCC-chat-send
734 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
736 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
738 * source/String.C (String): The std::string copy constructor now
739 extracts the c_str of the std::string and then takes the strlen of
740 that before copying it. This fixes a bug with DCC where if you did
741 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
742 something like that, depending on what the last message was
743 because Socket will insert a \0 into its semi-static buffer, so
744 the len of the String will not equal the strlen of its char*.
746 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
748 * source/DCCPerson.H: Removed destructor (I = idiot)
750 * source/DCCConnection.H: DCCManager is now a friend of
751 DCCConnection (ugh, the bot has way too many friends).
753 * source/DCCPerson.H: Added DCC member that returns a const
754 DCCConnection* (the dcc connection). This isn't saved anywhere
755 because when a DCCPerson is destroyed, its connection is also
758 * source/Bot.H: dccConnections is now a DCCManager
760 * source/DCCPerson.H: Added destructor
761 Added handleInput method
763 * source/DCCManager.C: New file
764 (addConnection): Wrote method, add a DCCConection to the manager
766 * source/DCCManager.H: New file
768 * source/Interp.C (Startup): Register bot:DCC-chat-send
769 (Startup): Removed sendDCCChatMessage stuff
771 * source/ScriptCommands.C (sendDCCChatMessage): New method:
772 sendDCCChatMessage (to, message) sends message to to.
774 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
775 one arg: from (user!nick@host).
777 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
778 two args: from (user!nick@host) and line
780 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
782 * source/Interp.C (Startup): Two new Scheme values:
783 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
784 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
786 * source/BotInterp.H: Added two new enum values to Hook:
787 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
790 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
792 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
793 DCC! Ack, sockets take their arguments in network byte order so
794 there is no need to convert to host...now DCC _sort of_ works.
796 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
798 * source/UserList.C (save): Increment iterator twice to get around
801 * source/ServerQueue.C: Now sends SEND_* hooks instead of
802 triggered general hooks.
804 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
805 (* = the new SEND_ hooks, but lowercase).
807 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
808 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
810 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
812 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
815 * source/Socket.C (readLine): Now uses a static std::string that
816 starts out with 512 chars. This will never need to be resized for
817 usualy IRC messages, but might be for DCC messages
819 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
821 * scripts/bobot-utils.scm (not-from-me): New syntax.
823 * source/ScriptCommands.C (AddHook): Now takes another optional
824 arg--name that will name the hook (see the hooks section in the
825 manual for what this does).
827 * source/BotInterp.H: Added name field to Hook
829 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
831 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
832 PRIVMSGes because the IRC server doesn't echo them back to the
833 bot. This could be useful for something (e.g. log script).
835 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
837 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
838 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
839 associated with the hook when Interp::Shutdown is called (bot exit).
841 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
843 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
844 hook is greater than or less than the other hook, only the
845 priority is considered. However, if both hooks have the same
846 priority, then the fallthru-ness is considered, with fallthru
847 hooks being greater than non-fallthru hooks.
849 * source/BotInterp.C (hptr_lt): Added this static function to be
850 used to sort the hooks list (now hooks should be sorted using
851 Hook's operator < instead of using pointer comparision, meaning
852 the new hook system will work correctly)
854 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
855 map because we don't need the result of the displays (this would
856 just be a list of #<undefined> values and is a waste of memory).
858 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
860 * source/Bot.C (Bot): userFunctions is now a map for efficiency
861 (worst case search is now NlogN instead of N). This improvement is
862 not as drastic as the one gained by making the Parser functions
863 list a map (because we don't scan this map for every message), but
864 it helps to clean up the code
866 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
868 * source/Parser.H: Removed userFunctionsStruct
870 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
871 as bot:send-CTCP for Scheme
873 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
875 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
877 * source/ServerQueue.C (sendUser): Changed . . in USER command to
878 0 * (which is the Right Way to because <mode> must be a number...)
880 * source/Parser.C (init): New method of Parse. This initalizes the
881 functions map. functions replaces the old functions array, and
882 should yield better performance (since the functions array had to
883 be scanned for every incoming message)
885 * source/Parser.H: New member, functions (private)
887 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
889 * source/Interp.C (Startup): New symbols: bot:user-*
890 [none|user|trusted|friend|master] are defined in Scheme as the
891 different levels of the users.
892 (Startup): All bot-* variables are now bot:*
894 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
896 * source/Bot.H: Made some variables private because they shouldn't
897 be changed at runtime
899 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
900 this out to see if it works and make it work)
902 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
905 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
906 scripts in the user scripts dir) that made bobot++ not able to
907 load scripts from the user scripts dir
909 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
911 * source/BotInterp.C (RunHooks): Changed iterators to
912 reverse_iterators because the hooks list is sorted in ascending
913 order--higher priority and fallthrough hooks appear _after_ the
914 lower priority and non-fallthrough hooks.
916 * source/Main.C (print_long_help): Added function
917 (print_short_help): Renamed from printUsage
918 (namespace): Most stuff in here is now defined in an anonymouse
919 namespace so it doesn't have external linkage
920 (real_main): Uses getopt_long instead of getopt. Added several
921 command line arguments (bobotpp --help for a full list).
923 * scripts/bobot-utils.scm (bot-load): Function moved from
926 * source/Interp.C (Startup): Autoloads
927 PREFIX/bobotpp/scripts/bobot-utils.scm now
928 (Startup): New Scheme variable: bot-sys-scripts-dir (system
931 * source/bobot-scheme.scm.in: Removed
933 * source/Makefile.am: Removed bobot-scheme.scm compiliation
935 * configure.ac (PREFIX): configure.ac defined prefix now
937 * source/Main.C (real_main): Default configuration is now read
938 from /etc/bobotpp/default
939 * source/bobot-scheme.scm.in: Added file. This defines the
940 'bot-load' procedure which will load a file from
941 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
942 script doesn't exist in the user script dir.
944 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
946 * bobot++.texinfo: Started docs (just a skeleton right now)
948 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
949 args to set a hooks priority and whether or not it will
950 fallthrough. These args are optional.
952 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
954 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
955 (RunHooks): exec fallthrough hooks first.
957 * source/BotInterp.H: Changed Hooks to have priority
958 Added fhooksMap to BotInterp (fallthrough)
960 * source/UserCommands.C (AddShit): Converted to use Commands
962 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
964 * source/Commands.C (AddUser): Fixed a one-off (function call was
965 before a brace instead of after one) that caused a segfault when
966 the user mask was a wildcard
968 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
970 * all files: Updated address of the FSF
972 * source/UserCommands.C (AddUser): Uses Commands now instead of
973 manipulating the bot directly
975 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
977 * source/ScriptCommands.C (AddShit): Filled in function.
979 * source/Interp.C (Startup): Bind bot-adduser to
980 ScriptCommands::AddUser instead of Action
981 (Startup): Bind bot-addshit to ScriptCommands::AddShit
983 * source/ScriptCommands.C (AddUser): Filled in function
985 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
986 would have caused problems if you used more than one server
988 * source/Parser.H: Changed const char* to String in userFunctionStruct
990 * source/String.H: Added std::string compatibility members
992 * configure.ac: You can now disable Crypt and scripting
994 * source/*: Added #include "config.h" where needed
996 * configure.ac: Added AM_CONFIG_HEADER
998 * config.h.in: added file
1000 * source/Queue.C: Didn't notice iostream.h here! Fixed
1003 Copyright 2002,2003,2004,2005 Clinton Ebadi
1004 Copying and distribution of this file, with or without modification, are
1005 permitted provided the copyright notice and this notice are preserved.