1 2005-07-05 Clinton Ebadi <clinton@unknownlamer.org>
3 * bobot++.texinfo (Low Level Message Functions): Updated docs to
4 reflect new names for ctcp functions
6 * source/Interp.C (interp_init_helper): Register
7 ScriptCommands::Notice instead of sendNotice
8 (interp_init_helper): Renamed bot:send-ctcp to bot:ctcp
9 (interp_init_helper): Renamed bot:send-ctcp-reply to bot:ctcp-reply
11 * source/ScriptCommands.C (Notice): Renamed from sentNotice
13 * source/ScriptCommands.H: Renamed sendNotice to Notice
15 * bobot++.texinfo (Hook Types): Spelling fix
17 2005-07-04 Clinton Ebadi <clinton@unknownlamer.org>
19 * scripts/bobot-utils.scm (_deprecated-fun): Set
20 current-error-port to bot:logport while calling
21 issue-deprecation-warning
23 * bobot++.texinfo: Grammar fixes on the title page
24 (Configuration): Added more info on config files.
25 (bot.conf): Added xrefs for server syntax and channel syntax
26 (server syntax): Added more detail and moved a paragraph
27 (channel syntax): Added more details, revised the examples, and
28 moved some text around
29 (User Levels): Clarified
30 (Protection): Cleaned up
31 (Automatic Op): Improved substantially
33 * source/DCCManager.C (checkInput): Call hooks/dcc/chat-end if the
36 * scripts/bobot-utils.scm (bot:log): Updated to use bot:logport
37 instead of bot-logport
39 * source/Interp.C (interp_init_helper): Add hooks/dcc/chat-end
42 * bobot++.texinfo (DCC CHAT Hooks): Document hooks/dcc/chat-end
44 * source/BotInterp.H: Add DCC_CHAT_END to enum
46 * source/DCCManager.C (checkStale): Run hooks/dcc/chat-end when
47 deleting a stale connection.
49 2005-07-03 Clinton Ebadi <clinton@unknownlamer.org>
51 * bobot++.texinfo (Hook Types): Documented all hooks
53 * source/ServerQueue.C (sendPrivmsg): Changed SEND_MESSAGE hook to
54 match dest and pass dest to send hook
56 * bobot++.texinfo (Hook Types): Changed language of
57 hooks/dcc/chat-* hook documention
58 (Received Message Hooks): Added subsub section of Hook Types
59 (Sent Message Hooks): Added subsub section of Hook Types
60 (DCC CHAT Hooks): Added subsub section of Hook Types
61 (Miscellaneous Hooks): Added subsub section of Hook Types
63 * source/Parser.C (parseScriptFunction): Changed
64 lazy_apply_wrapper to Interp::LazyApplyWrapper
65 (parseScriptFunction): Changed empty_handler to Interp::EmptyHandler
66 (parsePart): Grammar fix in log (Leaved => Left)
68 * source/Interp.H (Interp): Added LazyHandler method
70 * source/BotInterp.C (RunHooks): changed lazy_apply_wrapper to
71 Interp::LazyApplyWrapper
72 (RunTimers): Changed empty_handler to Interp::EmptyHandler
73 (RunHooks): Changed empty_handler to Interp::EmptyHandler
74 (RunTimers): Changed lazy_apply_wrapper to Interp::LazyApplyWrapper
76 * source/Interp.C (LazyHandler): Renamed from lazy_handler
77 (ScmApplyWrapper): Renamed from scm_apply_wrapper
78 (EmptyHandler): Renamed from empty_handler
80 * source/Interp.H (Interp): Removed ErrorHandler method
81 (Interp): Added LazyApplyWrapper method
82 (Interp): Added EmptyHandler method
83 (Interp): Added ScmApplyWrapper method
85 * scripts/bobot-utils.scm: Added hooks/leave as an alias for hooks/part
86 Added begin-deprecated around deprecated definitions
87 (_deprecated-fun): Added macro to define an alias for a function
88 and issue a deprecation warning when used
89 Converted all bot- aliases to use _deprecated-fun
91 * source/Interp.C (interp_init_helper): Changed Hook::LEAVE to
93 (interp_init_helper): Removed definition of hooks/leave
95 * bobot++.texinfo (Hook Types): Removed stub for hooks/leave, only
96 document hooks/part name (hooks/leave still exists, but will not
97 be documented as it is the same as hooks/part)
99 * source/Parser.C (parsePart): Use Hook::PART instead of Hook::LEAVE
101 * source/BotInterp.H: Removed Hook::LEAVE, added Hook::PART
103 * bobot++.texinfo (Scripting): Added note about most arguments
106 * source/Commands.C (NextServer): Call hooks/disconnect
108 * source/Bot.C (run): Pass extra argument to Hook::DISCONNECT
110 * bobot++.texinfo (Creating a Hook): Reformatted the bot:addhook
111 section to make it more readable
112 (Hook Types): Reformatted hooks/action
113 (Hook Types): Changed grammar of hooks/nickname (their => his)
114 (Hook Types): Documented hooks/signoff
116 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
118 * bobot++.texinfo: Updated copyright years, changed "applies to
121 * source/Socket.C (readLine): return buf.substr (0, pos) instead
122 of using the String char * constructor (this should be faster,
123 especially for long strings since a simple copy is used instead of
124 going over each char until nul is encountered)
126 * configure.ac: Release 2.1.8
127 Change version to 2.1.9CVS
129 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
131 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
133 * bobot++.texinfo (Configuration): Swapped order of config file
134 placement and config files
135 (User Levels): users not found in the user list *can* execute
136 commands as bot:user-none now.
137 (Low Level Message Functions): Changed a few @code{}s to @var{}s
139 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
141 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
143 * source/Main.C (namespace): Added debug-scripts option
145 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
146 from->getNick () instead of from->getAddress () (consistency fix)
148 * source/Main.C: Merged error handling patch from dsmith
150 * source/Parser.C: Merged error handling
153 * source/Interp.H: Merged error handling patch from dsmith
155 * source/Interp.C (lazy_handler): Merged error handling patch from
158 * source/BotInterp.H: Merged error handling patch from dsmith
160 * source/BotInterp.C: Merged error handling patch from dsmith
162 * bobot++.texinfo (Low Level Message Functions): Documented
165 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
167 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
170 * bobot++.texinfo (Low Level Message Functions):
171 s/bot:send-CTCP/bot:send-ctcp/
173 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
176 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
178 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
179 (sendCTCPReply): Added
181 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
183 * source/Commands.C (CTCP): Implemented
184 (CTCPReply): Implemented
185 (Action): Convert to use Commands::CTCP
187 * source/Commands.H: Added CTCP (bot, target, command, message)
188 Added CTCPReply (bot, target, command, message)
190 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
192 * examples/bot.conf (maxnicklength): Update example config
194 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
196 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
198 * source/Bot.H: Added MAX_NICKLENGTH member
200 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
202 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
205 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
207 * source/Commands.C (Notice): Send multiple NOTICEs when a message
210 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
212 * source/Main.C (real_main): Enable Guile debugging mode when
215 * source/Interp.C (interp_post_startup_helper): Return
216 SCM_UNSPECIFIED instead of 0
218 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
220 * All: Updated FSF street address
222 * source/Commands.C (Msg): Move body of Say to an if inside of this
225 * source/ScriptCommands.C (sendNotice): Returns error code instead
228 * source/Commands.C (Say): Check to make sure target is a channel
229 (Msg): Extended to send messages to channels
231 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
233 * scripts/bot.scm: Added file ((bobotpp bot) module for other
234 modules to gain access to bobot++ interface)
236 * source/Commands.C (Notice): Commented out check/abort if target
237 is a channel (there doesn't seem to be a reason for this to not work)
239 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
241 * bobot++.texinfo (High Level Message Functions): Document bot:notice
243 * source/Message.H: Added operator== to Message (tests for error
246 * source/Commands.C: Removed message type macros
248 * source/Message.H: Moved message type macros to Message.H
250 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
252 * source/ScriptCommands.H: Uncomment sendNotice
254 * source/Bot.C (waitForInput): Use %02d when formatting
255 Hooks::TIMER argument instead of %2d, and switch to snprintf to
258 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
261 * source/Bot.C (run): Added call to Hooks::DISCONNECT
262 (hooks/disconnect) when the bot is disconnected from the server
264 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
265 (Hook Types): Added hooks/disconnect argument
267 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
269 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
270 again (thanks dsmith)
272 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
274 * source/Interp.C (interp_init_helper): Added
275 bot:protection/[none|ban|kick|deop] constants to Scheme
276 (interp_init_helper): Added bot:aop/[yes|no] constants
278 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
280 * configure.ac: Release Bobot++ 2.1.7
281 Changed version to 2.18.CVS
283 * source/UserList.C (save): Remove workaround for BUG #2
285 * source/Parser.C (parse001): make realNick lowercase when doing
286 the comparison to bot->nickName to prevent pushing a second copy
287 of the bot onto the userlist (closes BUG #2)
289 * source/Bot.C (Bot): cleaned up constructor
290 (waitForInput): replaced gh_list with scm_list_n
292 * source/UserList.C: Cleaned up some formatting
294 * source/Main.C: Formatted code more cleanly
295 (real_main): changed a few Strings to std::strings
297 * source/String.C (operator): Made index signed again, it's not
298 worth fixing this warning
300 * source/Bot.C: Add casts to make this compile with unsigned int
301 as operator[] in String
303 * source/String.C (operator): Made index unsigned
305 * source/Utils.C: Made a few things unsigned to kill warnings
307 * source/Socket.C (readLine): Made pos unsigned
309 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
311 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
313 * source/StringTokenizer.C (count_tokens): Changed return type to
315 (more_tokens_p): Made counter unsigned
317 * source/StringTokenizer.H (class StringTokenizer): Made pos
318 std::string::size_type instead of int
320 * source/Commands.C (TBan): Returns Ok is the ban is done instead
321 of falling off the end (oops)
323 * source/BotInterp.H: Add general catch case (false)
325 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
327 * configure.ac: Release 2.1.6
328 Changed version to 2.1.7CVS
330 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
332 * source/Parser.C (parseLine): use map<>::find and an iterator to
333 find the IRC command instead of map<>::operator[] to avoid a
336 * source/Bot.C (waitForInput): Removed commented out code
338 * source/Socket.C (readLine): return String (buf.c_str ()) instead
339 of String (buf) so that only the buffer up to the first null is returned
340 (readLine): Added a comment explaining the usage of buf
341 (readLine): Changed type of length (std::string::size_type instead
344 * source/String.C: Reimplemented String on top of std::string to
345 fix a few bugs and potential memory leaks
346 (toLower): use Utils::to_lower
347 (toUpper): Use Utils::to_upper
348 (trim): Use Utils::trim_str
350 * source/String.H: removed srep, replaced it with a std::string (my_string)
352 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
354 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
355 counters and substr call)
357 * source/StringTokenizer.C (next_token): Applied patch from Jos
358 Hulzink <josh@stack.nl> (fixes substr call)
359 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
362 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
364 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
365 he is a lazy bum and never submitted the String replacing patch
367 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
369 * configure.ac: Remove CC++ test
370 Changed version to 2.1.6CVS (2.1.5 released)
372 * bobot++.texinfo: Updated copyright
374 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
376 * TODO (General): Added TODO items
377 (2.2): Moved a few items here from 2.4
379 * README (NOTE): Mention boost requirement
381 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
383 * ChangeLog Updated copryight
385 * source/User.H: Removed forward declaration of Utils
387 * source/Bot.H: Removed forward declaration of Utils
389 * source/ChannelList.H: Removed forward declaration of Utils
391 * source/UserListItem.H: Removed forward declaration of Utils
393 * source/Utils.H: Removed class Utils, replaced with a namspace
394 (it only contained static methods)
396 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
397 (he is replacing String)
399 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
401 * source/BotConfig.C (set_option_value): Put watcher calling
402 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
403 = end then there are no watchers since this is a new value and
404 references cf_iter->second segfaults)
406 * source/Utils.C (trim_str): Fixed bug (last non-space character
409 * source/BotConfig.C (read_config): Made to use set_option_value
410 instead of manipulating options_db directly
412 * source/BotConfig.H (class BotConfig): Add set_option_value that
413 takes a t_value instead of t_value_list (most uss of
414 set_option_value will be to add a single value so this is very useful)
416 * source/BotConfig.C (set_option_value): Implemented
418 * source/UserList.C: Made to work with new Utils/StringTokenizer names
420 * source/UserCommands.C: Made to work with new
421 Utils/StringTokenizer names
423 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
425 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
427 * source/ShitList.C: Made to work with new StringTokenizer names
429 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
431 * source/ServerQueue.C: Made to work with new Utils names
433 * source/ScriptCommands.C: Made work with new Utils names
435 * source/Person.C (getNick): Made work with new Utils names
437 * source/String.H: Added substr prototypes
439 * source/String.C (substr): Added substr as an alias of subString
440 (for compat with std::string before the transition)
442 * source/Parser.C: Made to work with new Utils/StringTokenizer names
444 * source/DCCParser.C: Made to work with new Utils names
446 * source/DCCChatConnection.C: Made to work new Utils names
448 * source/Commands.C: Made to work with new Utils names
450 * source/Channel.C: Made to work with new Utils names
452 * source/BotInterp.C: Made to work with new Utils
454 * source/Bot.C: Made to work with new Utils/StringTokenizer names
456 * source/String.C (operator=): Unremoved operator=(std::string)
458 * source/String.H: Unremoved operator=(std::string)
460 * source/BotConfig.C (read_config): Use Utils::trim_str
462 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
464 * source/Utils.C (trim_str): Implemented
466 * source/Utils.H: Added tim_str (replaces String::trim)
468 * source/BotConfig.C: Made everything work with new
469 StringTokenizer and Utils names
471 * source/Utils.H: Added to_lower
474 * source/StringTokenizer.C (rest): uses std::isspace instead of
475 checking st[pos] against ' ' and '\t'
477 * source/StringTokenizer.H: Removed CamelCasing
478 Renamed hasMoreTokens to more_tokens_p
480 * source/StringTokenizer.C: Converted to use std::string
482 * source/StringTokenizer.H: Converted to use std::string
484 * source/String.C: Removed operator=(std::string)
486 * source/String.H: Removed operator=(std::string)
488 * source/Utils.C: Added copyright
489 Reformatted to match GNU coding standard more closely
490 Converted everything to use std::string
491 (get_nick): Renamed from getNick
492 (get_userhost): Renamed from getUserHost
493 (get_key): Renamed from getKey
494 (IP_p): Renamed from isIP
495 (make_wildcard): Renamed from makeWildcard
496 (channel_p): Renamed from isChannel
497 (wildcard_p): Renamed from isWildcard
498 (valid_channel_name_p): Renamed from isValidChannelName
499 (valid_nickname_p): Renamed from isValidNickName
500 (get_level): Renamed from getLevel
501 (str2time): Renamed from strToTime
502 (str2time): Fixed potential buffer overflow (num[512] => std::string)
503 (level2str): Renamed from levelToStr
504 (prot2str): Renamed from protToStr
505 (bool2str): Renamed from boolToStr
506 (long2str): Implemented
507 (scm2str): Renamed from scm2String
508 (str2scm): Renamed from string2SCM
510 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
512 * source/Utils.H: Added long2str (long int -> std::string)
514 * source/String.H: Added 2003 copyright (the year I last modified
517 * source/String.C: Added 2002 copyright (the year I last modified
520 * source/Utils.H: Updated Copyright
521 s/String/std::string/g
522 Removed camel casing and is* = *_p
525 * source/BotConfig.C: Updated Copyright
527 * source/BotConfig.H: Updated copyright
529 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
531 * source/BotConfig.C (set_option_value): Take care of the case
532 where key is not already in the db
533 (add_watcher): Implemented
534 (read_config): Removed ',' token parsing (not needed)
536 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
537 AC_CHECK_LIB ccgnu2 (CommonC++2)
539 * README: Updated README (reformatted, adding info, etc.)
541 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
543 * source/BotConfig.C (set_option_value): call watcher list
544 (run_fun_): Added to support watcher list calling
546 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
548 * source/BotConfig.C (set_option_value): Fuck you STL
549 (push_back_): Reimplemented so that it doesn't need std::bind1st
550 because the STL is being stupid
552 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
554 * source/BotConfig.C (read_config): Implemented properly
555 (get_option_values): Implemented properly
556 (set_config_file): Fixed
558 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
560 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
563 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
565 * source/BotConfig.C: New file (implementation of configuration database)
567 * source/BotConfig.H: New File (semi-generic configuration database)
569 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
571 * bobot++.texinfo (Starting the Bot): New section
573 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
575 * bobot++.texinfo (Protection): Added Section
576 (User Levels): Rewrote section to be useful
577 (bot.users): Added section
579 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
581 * source/DCCChatConnection.C (connect): Checks to make sure the
582 person initiating a DCC CHAT with the bot is at least a FRIEND of
585 * README: Fixed a typo
587 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
588 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
590 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
592 * bobot++.texinfo (bot.conf): Finished section
593 (server syntax): New section, documents the bot.conf SERVER syntax
594 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
596 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
598 * source/Main.C (real_main): std::exit instead of exit
600 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
602 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
603 constructor with `n' This should fix the segfaulting.
605 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
607 * ChangeLog: Updated copyright notice
609 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
611 * source/Interp.C (interp_init_helper): Register
612 bot:change-command-level
614 * source/ScriptCommands.C (ChangeCommandLevel): Added
615 ChangeCommandLevel to change the level a user needs to be to run a
618 * source/ScriptCommands.H: Added ChangeCommandLevel
620 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
622 * source/String.H: Changed #define STRING_H to BSTRING_H
624 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
626 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
627 to see if a message was sent to the bot (this is better than
628 bot:match-to-me because the hook isn't invalidated when the bot's
631 * source/DCCConnection.H: Added `nuh' back and added an
633 Added setter `set_autoRemove(bool)'
635 * source/DCCConnection.H: Removed all friends
636 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
637 reveals the pointer to the bot [PRIVATE POINTER] which probably
638 isn't so nice, but there isn't much to be done about it with the
639 current design of the bot)
641 * source/DCCChatConnection.H: Removed all friends
643 * source/DCCConnection.H: DCCConnection is now a pure virtual
644 class with the subclass DCCChatConnection
646 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
648 * source/Socket.C (connect): log errors to the bot log instead of
651 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
653 * source/Parser.C (parseMessage): use the find method of std::map
654 to find the command to call instead of [] and then extract the
655 pointer to the userFunction from that if it exists. This appears
656 to fix the crash when one uses an undefined command followed by
659 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
661 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
662 ScriptCommands::SetFloodRate
664 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
666 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
669 * source/Bot.H: Made MAX_MESSAGES writeable
671 * source/UserCommands.H: New method: SetFloodRate
673 * source/Commands.H: New method: SetFloodRate
675 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
677 * configure.ac: Merged all AC_OUTPUTs at the end
679 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
681 * scripts/bobot-utils.scm: Make exported symbols from
682 the-bot-module available in the guile-user module so that scripts
683 loaded with Interp::Load function.
685 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
687 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
688 %bot:loadpath into its own module and returns that (unnamed) module
689 (bot:use-module): Calls bot:load-module and then adds the newly
690 loaded module to the (current-module)'s use-list
692 * source/Interp.C (interp_init_helper): New procedure to initialize
693 the-bot-module (this is the old Interp::Startup verbatim)
694 (interp_post_startup_helper): New procedure to export
695 the-bot-module from bot_module
696 (Startup): Now calls interp_init_helper and
697 interp_post_startup_helper to initalize the bot module system
699 * source/Interp.H: Added private variable bot_module to Interp
701 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
703 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
704 this breaks existing scripts, this is the unstable tree after all)
706 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
708 * source/Mask.C (match): Made Mask::match case insensitive
710 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
712 * source/Interp.C (scm_apply_wrapper): turned off locking of
713 Interp::mutex to see if this makes the bot work again...and it
716 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
718 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
719 everything to use aclocal/automake 1.6
721 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
723 * source/DCCPerson.H (class DCCPerson): Added
724 UserCommands::DCCList as a friend (friends are better than the old
725 DCC() function at least).
727 * source/DCCManager.H (class DCCManager): Added
728 UserCommands::DCCList as a friend
730 * source/Interp.H (class Interp): Made function scm_apply_wrapper
731 a friend so it can lock Interp::mutex
733 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
734 MULTITHREAD is defined (it is always defined when scripting is
735 enabled) so that Sockets can be made multithreaded using
738 * source/DCCPerson.H: Removed DCC method and made Bot a friend
739 Made DCCManager a friend
741 * source/DCCManager.H (class DCCManager): Removed MAP() method
742 and made Bot a friend of DCCManager
744 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
746 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
749 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
750 user!nick@host instead of the correct nick!user@host).
752 * source/Interp.C (Startup): Register bot:DCC-chat-send
754 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
756 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
758 * source/String.C (String): The std::string copy constructor now
759 extracts the c_str of the std::string and then takes the strlen of
760 that before copying it. This fixes a bug with DCC where if you did
761 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
762 something like that, depending on what the last message was
763 because Socket will insert a \0 into its semi-static buffer, so
764 the len of the String will not equal the strlen of its char*.
766 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
768 * source/DCCPerson.H: Removed destructor (I = idiot)
770 * source/DCCConnection.H: DCCManager is now a friend of
771 DCCConnection (ugh, the bot has way too many friends).
773 * source/DCCPerson.H: Added DCC member that returns a const
774 DCCConnection* (the dcc connection). This isn't saved anywhere
775 because when a DCCPerson is destroyed, its connection is also
778 * source/Bot.H: dccConnections is now a DCCManager
780 * source/DCCPerson.H: Added destructor
781 Added handleInput method
783 * source/DCCManager.C: New file
784 (addConnection): Wrote method, add a DCCConection to the manager
786 * source/DCCManager.H: New file
788 * source/Interp.C (Startup): Register bot:DCC-chat-send
789 (Startup): Removed sendDCCChatMessage stuff
791 * source/ScriptCommands.C (sendDCCChatMessage): New method:
792 sendDCCChatMessage (to, message) sends message to to.
794 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
795 one arg: from (user!nick@host).
797 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
798 two args: from (user!nick@host) and line
800 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
802 * source/Interp.C (Startup): Two new Scheme values:
803 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
804 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
806 * source/BotInterp.H: Added two new enum values to Hook:
807 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
810 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
812 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
813 DCC! Ack, sockets take their arguments in network byte order so
814 there is no need to convert to host...now DCC _sort of_ works.
816 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
818 * source/UserList.C (save): Increment iterator twice to get around
821 * source/ServerQueue.C: Now sends SEND_* hooks instead of
822 triggered general hooks.
824 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
825 (* = the new SEND_ hooks, but lowercase).
827 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
828 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
830 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
832 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
835 * source/Socket.C (readLine): Now uses a static std::string that
836 starts out with 512 chars. This will never need to be resized for
837 usualy IRC messages, but might be for DCC messages
839 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
841 * scripts/bobot-utils.scm (not-from-me): New syntax.
843 * source/ScriptCommands.C (AddHook): Now takes another optional
844 arg--name that will name the hook (see the hooks section in the
845 manual for what this does).
847 * source/BotInterp.H: Added name field to Hook
849 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
851 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
852 PRIVMSGes because the IRC server doesn't echo them back to the
853 bot. This could be useful for something (e.g. log script).
855 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
857 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
858 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
859 associated with the hook when Interp::Shutdown is called (bot exit).
861 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
863 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
864 hook is greater than or less than the other hook, only the
865 priority is considered. However, if both hooks have the same
866 priority, then the fallthru-ness is considered, with fallthru
867 hooks being greater than non-fallthru hooks.
869 * source/BotInterp.C (hptr_lt): Added this static function to be
870 used to sort the hooks list (now hooks should be sorted using
871 Hook's operator < instead of using pointer comparision, meaning
872 the new hook system will work correctly)
874 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
875 map because we don't need the result of the displays (this would
876 just be a list of #<undefined> values and is a waste of memory).
878 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
880 * source/Bot.C (Bot): userFunctions is now a map for efficiency
881 (worst case search is now NlogN instead of N). This improvement is
882 not as drastic as the one gained by making the Parser functions
883 list a map (because we don't scan this map for every message), but
884 it helps to clean up the code
886 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
888 * source/Parser.H: Removed userFunctionsStruct
890 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
891 as bot:send-CTCP for Scheme
893 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
895 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
897 * source/ServerQueue.C (sendUser): Changed . . in USER command to
898 0 * (which is the Right Way to because <mode> must be a number...)
900 * source/Parser.C (init): New method of Parse. This initalizes the
901 functions map. functions replaces the old functions array, and
902 should yield better performance (since the functions array had to
903 be scanned for every incoming message)
905 * source/Parser.H: New member, functions (private)
907 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
909 * source/Interp.C (Startup): New symbols: bot:user-*
910 [none|user|trusted|friend|master] are defined in Scheme as the
911 different levels of the users.
912 (Startup): All bot-* variables are now bot:*
914 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
916 * source/Bot.H: Made some variables private because they shouldn't
917 be changed at runtime
919 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
920 this out to see if it works and make it work)
922 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
925 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
926 scripts in the user scripts dir) that made bobot++ not able to
927 load scripts from the user scripts dir
929 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
931 * source/BotInterp.C (RunHooks): Changed iterators to
932 reverse_iterators because the hooks list is sorted in ascending
933 order--higher priority and fallthrough hooks appear _after_ the
934 lower priority and non-fallthrough hooks.
936 * source/Main.C (print_long_help): Added function
937 (print_short_help): Renamed from printUsage
938 (namespace): Most stuff in here is now defined in an anonymouse
939 namespace so it doesn't have external linkage
940 (real_main): Uses getopt_long instead of getopt. Added several
941 command line arguments (bobotpp --help for a full list).
943 * scripts/bobot-utils.scm (bot-load): Function moved from
946 * source/Interp.C (Startup): Autoloads
947 PREFIX/bobotpp/scripts/bobot-utils.scm now
948 (Startup): New Scheme variable: bot-sys-scripts-dir (system
951 * source/bobot-scheme.scm.in: Removed
953 * source/Makefile.am: Removed bobot-scheme.scm compiliation
955 * configure.ac (PREFIX): configure.ac defined prefix now
957 * source/Main.C (real_main): Default configuration is now read
958 from /etc/bobotpp/default
959 * source/bobot-scheme.scm.in: Added file. This defines the
960 'bot-load' procedure which will load a file from
961 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
962 script doesn't exist in the user script dir.
964 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
966 * bobot++.texinfo: Started docs (just a skeleton right now)
968 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
969 args to set a hooks priority and whether or not it will
970 fallthrough. These args are optional.
972 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
974 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
975 (RunHooks): exec fallthrough hooks first.
977 * source/BotInterp.H: Changed Hooks to have priority
978 Added fhooksMap to BotInterp (fallthrough)
980 * source/UserCommands.C (AddShit): Converted to use Commands
982 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
984 * source/Commands.C (AddUser): Fixed a one-off (function call was
985 before a brace instead of after one) that caused a segfault when
986 the user mask was a wildcard
988 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
990 * all files: Updated address of the FSF
992 * source/UserCommands.C (AddUser): Uses Commands now instead of
993 manipulating the bot directly
995 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
997 * source/ScriptCommands.C (AddShit): Filled in function.
999 * source/Interp.C (Startup): Bind bot-adduser to
1000 ScriptCommands::AddUser instead of Action
1001 (Startup): Bind bot-addshit to ScriptCommands::AddShit
1003 * source/ScriptCommands.C (AddUser): Filled in function
1005 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
1006 would have caused problems if you used more than one server
1008 * source/Parser.H: Changed const char* to String in userFunctionStruct
1010 * source/String.H: Added std::string compatibility members
1012 * configure.ac: You can now disable Crypt and scripting
1014 * source/*: Added #include "config.h" where needed
1016 * configure.ac: Added AM_CONFIG_HEADER
1018 * config.h.in: added file
1020 * source/Queue.C: Didn't notice iostream.h here! Fixed
1023 Copyright 2002,2003,2004,2005 Clinton Ebadi
1024 Copying and distribution of this file, with or without modification, are
1025 permitted provided the copyright notice and this notice are preserved.