1 2005-09-12 Clinton Ebadi <clinton@unknownlamer.org>
3 * bobot++.texinfo (High Level Message Functions): Removed
4 duplicate bot:say entry
5 (Channel Control): Converted section to new format, and documented
8 2005-08-07 Clinton Ebadi <clinton@unknownlamer.org>
10 * bobot++.texinfo (Bot Control Commands): Convert to @deffn and
12 (Built-In Commands): Clarified when the channel argument must be
15 2005-07-21 Clinton Ebadi <clinton@unknownlamer.org>
17 * bobot++.texinfo: Removed all multitables and replaced them with
20 2005-07-07 Clinton Ebadi <clinton@unknownlamer.org>
22 * bobot++.texinfo (Shit Levels): Added section
23 (Scheme User Levels): Removed Section
24 (Adding New Commands): Updated ref to Scheme User Levels to refer
25 to the User Levels section, and changed a @code{} into a @{var}
26 (Sending Messages): Rewrote section
27 (High Level Message Functions): Merged bot:say and bot:msg
29 (bot.users): Expanded section
30 (bot.shit): Added section
31 (bot.conf): Document initfile option
32 (bot.shit): More detail
33 (bot.users): More detail
34 (bot.init): Added section
35 (bot.conf): Documented autoexecfile option
36 (bot.autoexec): Added section
37 (Using the Bot): Added some intro text
38 (Concepts): New section, all of the level sections are now
40 Merged small doc patch from dsmith
41 (Channel Control): Added Section
42 (User List Commands): Added Section
43 (Spylist): Added Section
44 (Message Commands): Added Section
45 (Miscellaneous Commands): Added Section
46 (Shit List Commands): Added Section
47 (Channel Info): Added Section
48 (Built-In Commands): Completely Reorganized section
50 * source/Interp.C (interp_init_helper): Added bot:shit/none
51 /no-ban, /no-kick, and /no-deop constants to Scheme
53 * scripts/bobot-utils.scm (bot:sent-to-me?): Redefined as a
54 closure (this should create the regexp once instead of each time
55 the function is called)
57 * examples/bot.autoexec: Updated sample bot.autoexec
59 * examples/bot.users: Updated sample bot.users
61 * examples/bot.conf: Updated sample config
63 2005-07-06 Clinton Ebadi <clinton@unknownlamer.org>
65 * bobot++.texinfo (Sent Message Hooks): Documented hooks/send/who
68 * source/ServerQueue.C (sendWho): Call hooks/send/who
69 (sendWhois): Call hooks/send/whois
71 * source/Interp.C (interp_init_helper): Added hooks/send/who and
72 hooks/send/whois constants to Scheme
74 * source/BotInterp.H: Added SEND_WHO and SEND_WHOIS hook constants
76 * bobot++.texinfo (Misc Scripting Stuff): Documented bot:who and
78 (bot.conf): Document MAXNICKLENGTH
80 * source/Interp.C (interp_init_helper): Add bot:who and bot:whois
83 * source/ScriptCommands.C (Who): Implemented Who method
84 Removed IQUEUE macro (no longer needed)
85 (Whois): Implemented Whois method
87 * source/ScriptCommands.H: Added Who and Whois methods
89 * source/Commands.C (Who): Implemented Who
90 (Whois): Implemented Whois
92 * source/Commands.H: Add Who and Whois tethods
94 * source/Interp.C: Updated copyright notice
95 (interp_init_helper): Remove send from CTCP/CTCPReply method names
97 * source/Interp.H: Updated copyright notice
99 * source/ScriptCommands.C (CTCP): Renamed from sendCTCP
100 (CTCPReply): Renamed from sendCTCPReply
102 2005-07-05 Clinton Ebadi <clinton@unknownlamer.org>
104 * bobot++.texinfo (Low Level Message Functions): Updated docs to
105 reflect new names for ctcp functions
107 * source/Interp.C (interp_init_helper): Register
108 ScriptCommands::Notice instead of sendNotice
109 (interp_init_helper): Renamed bot:send-ctcp to bot:ctcp
110 (interp_init_helper): Renamed bot:send-ctcp-reply to bot:ctcp-reply
112 * source/ScriptCommands.C (Notice): Renamed from sentNotice
114 * source/ScriptCommands.H: Renamed sendNotice to Notice
116 * bobot++.texinfo (Hook Types): Spelling fix
118 2005-07-04 Clinton Ebadi <clinton@unknownlamer.org>
120 * scripts/bobot-utils.scm (_deprecated-fun): Set
121 current-error-port to bot:logport while calling
122 issue-deprecation-warning
124 * bobot++.texinfo: Grammar fixes on the title page
125 (Configuration): Added more info on config files.
126 (bot.conf): Added xrefs for server syntax and channel syntax
127 (server syntax): Added more detail and moved a paragraph
128 (channel syntax): Added more details, revised the examples, and
129 moved some text around
130 (User Levels): Clarified
131 (Protection): Cleaned up
132 (Automatic Op): Improved substantially
134 * source/DCCManager.C (checkInput): Call hooks/dcc/chat-end if the
137 * scripts/bobot-utils.scm (bot:log): Updated to use bot:logport
138 instead of bot-logport
140 * source/Interp.C (interp_init_helper): Add hooks/dcc/chat-end
143 * bobot++.texinfo (DCC CHAT Hooks): Document hooks/dcc/chat-end
145 * source/BotInterp.H: Add DCC_CHAT_END to enum
147 * source/DCCManager.C (checkStale): Run hooks/dcc/chat-end when
148 deleting a stale connection.
150 2005-07-03 Clinton Ebadi <clinton@unknownlamer.org>
152 * bobot++.texinfo (Hook Types): Documented all hooks
154 * source/ServerQueue.C (sendPrivmsg): Changed SEND_MESSAGE hook to
155 match dest and pass dest to send hook
157 * bobot++.texinfo (Hook Types): Changed language of
158 hooks/dcc/chat-* hook documention
159 (Received Message Hooks): Added subsub section of Hook Types
160 (Sent Message Hooks): Added subsub section of Hook Types
161 (DCC CHAT Hooks): Added subsub section of Hook Types
162 (Miscellaneous Hooks): Added subsub section of Hook Types
164 * source/Parser.C (parseScriptFunction): Changed
165 lazy_apply_wrapper to Interp::LazyApplyWrapper
166 (parseScriptFunction): Changed empty_handler to Interp::EmptyHandler
167 (parsePart): Grammar fix in log (Leaved => Left)
169 * source/Interp.H (Interp): Added LazyHandler method
171 * source/BotInterp.C (RunHooks): changed lazy_apply_wrapper to
172 Interp::LazyApplyWrapper
173 (RunTimers): Changed empty_handler to Interp::EmptyHandler
174 (RunHooks): Changed empty_handler to Interp::EmptyHandler
175 (RunTimers): Changed lazy_apply_wrapper to Interp::LazyApplyWrapper
177 * source/Interp.C (LazyHandler): Renamed from lazy_handler
178 (ScmApplyWrapper): Renamed from scm_apply_wrapper
179 (EmptyHandler): Renamed from empty_handler
181 * source/Interp.H (Interp): Removed ErrorHandler method
182 (Interp): Added LazyApplyWrapper method
183 (Interp): Added EmptyHandler method
184 (Interp): Added ScmApplyWrapper method
186 * scripts/bobot-utils.scm: Added hooks/leave as an alias for hooks/part
187 Added begin-deprecated around deprecated definitions
188 (_deprecated-fun): Added macro to define an alias for a function
189 and issue a deprecation warning when used
190 Converted all bot- aliases to use _deprecated-fun
192 * source/Interp.C (interp_init_helper): Changed Hook::LEAVE to
194 (interp_init_helper): Removed definition of hooks/leave
196 * bobot++.texinfo (Hook Types): Removed stub for hooks/leave, only
197 document hooks/part name (hooks/leave still exists, but will not
198 be documented as it is the same as hooks/part)
200 * source/Parser.C (parsePart): Use Hook::PART instead of Hook::LEAVE
202 * source/BotInterp.H: Removed Hook::LEAVE, added Hook::PART
204 * bobot++.texinfo (Scripting): Added note about most arguments
207 * source/Commands.C (NextServer): Call hooks/disconnect
209 * source/Bot.C (run): Pass extra argument to Hook::DISCONNECT
211 * bobot++.texinfo (Creating a Hook): Reformatted the bot:addhook
212 section to make it more readable
213 (Hook Types): Reformatted hooks/action
214 (Hook Types): Changed grammar of hooks/nickname (their => his)
215 (Hook Types): Documented hooks/signoff
217 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
219 * bobot++.texinfo: Updated copyright years, changed "applies to
222 * source/Socket.C (readLine): return buf.substr (0, pos) instead
223 of using the String char * constructor (this should be faster,
224 especially for long strings since a simple copy is used instead of
225 going over each char until nul is encountered)
227 * configure.ac: Release 2.1.8
228 Change version to 2.1.9CVS
230 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
232 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
234 * bobot++.texinfo (Configuration): Swapped order of config file
235 placement and config files
236 (User Levels): users not found in the user list *can* execute
237 commands as bot:user-none now.
238 (Low Level Message Functions): Changed a few @code{}s to @var{}s
240 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
242 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
244 * source/Main.C (namespace): Added debug-scripts option
246 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
247 from->getNick () instead of from->getAddress () (consistency fix)
249 * source/Main.C: Merged error handling patch from dsmith
251 * source/Parser.C: Merged error handling
254 * source/Interp.H: Merged error handling patch from dsmith
256 * source/Interp.C (lazy_handler): Merged error handling patch from
259 * source/BotInterp.H: Merged error handling patch from dsmith
261 * source/BotInterp.C: Merged error handling patch from dsmith
263 * bobot++.texinfo (Low Level Message Functions): Documented
266 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
268 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
271 * bobot++.texinfo (Low Level Message Functions):
272 s/bot:send-CTCP/bot:send-ctcp/
274 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
277 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
279 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
280 (sendCTCPReply): Added
282 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
284 * source/Commands.C (CTCP): Implemented
285 (CTCPReply): Implemented
286 (Action): Convert to use Commands::CTCP
288 * source/Commands.H: Added CTCP (bot, target, command, message)
289 Added CTCPReply (bot, target, command, message)
291 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
293 * examples/bot.conf (maxnicklength): Update example config
295 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
297 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
299 * source/Bot.H: Added MAX_NICKLENGTH member
301 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
303 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
306 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
308 * source/Commands.C (Notice): Send multiple NOTICEs when a message
311 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
313 * source/Main.C (real_main): Enable Guile debugging mode when
316 * source/Interp.C (interp_post_startup_helper): Return
317 SCM_UNSPECIFIED instead of 0
319 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
321 * All: Updated FSF street address
323 * source/Commands.C (Msg): Move body of Say to an if inside of this
326 * source/ScriptCommands.C (sendNotice): Returns error code instead
329 * source/Commands.C (Say): Check to make sure target is a channel
330 (Msg): Extended to send messages to channels
332 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
334 * scripts/bot.scm: Added file ((bobotpp bot) module for other
335 modules to gain access to bobot++ interface)
337 * source/Commands.C (Notice): Commented out check/abort if target
338 is a channel (there doesn't seem to be a reason for this to not work)
340 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
342 * bobot++.texinfo (High Level Message Functions): Document bot:notice
344 * source/Message.H: Added operator== to Message (tests for error
347 * source/Commands.C: Removed message type macros
349 * source/Message.H: Moved message type macros to Message.H
351 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
353 * source/ScriptCommands.H: Uncomment sendNotice
355 * source/Bot.C (waitForInput): Use %02d when formatting
356 Hooks::TIMER argument instead of %2d, and switch to snprintf to
359 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
362 * source/Bot.C (run): Added call to Hooks::DISCONNECT
363 (hooks/disconnect) when the bot is disconnected from the server
365 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
366 (Hook Types): Added hooks/disconnect argument
368 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
370 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
371 again (thanks dsmith)
373 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
375 * source/Interp.C (interp_init_helper): Added
376 bot:protection/[none|ban|kick|deop] constants to Scheme
377 (interp_init_helper): Added bot:aop/[yes|no] constants
379 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
381 * configure.ac: Release Bobot++ 2.1.7
382 Changed version to 2.18.CVS
384 * source/UserList.C (save): Remove workaround for BUG #2
386 * source/Parser.C (parse001): make realNick lowercase when doing
387 the comparison to bot->nickName to prevent pushing a second copy
388 of the bot onto the userlist (closes BUG #2)
390 * source/Bot.C (Bot): cleaned up constructor
391 (waitForInput): replaced gh_list with scm_list_n
393 * source/UserList.C: Cleaned up some formatting
395 * source/Main.C: Formatted code more cleanly
396 (real_main): changed a few Strings to std::strings
398 * source/String.C (operator): Made index signed again, it's not
399 worth fixing this warning
401 * source/Bot.C: Add casts to make this compile with unsigned int
402 as operator[] in String
404 * source/String.C (operator): Made index unsigned
406 * source/Utils.C: Made a few things unsigned to kill warnings
408 * source/Socket.C (readLine): Made pos unsigned
410 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
412 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
414 * source/StringTokenizer.C (count_tokens): Changed return type to
416 (more_tokens_p): Made counter unsigned
418 * source/StringTokenizer.H (class StringTokenizer): Made pos
419 std::string::size_type instead of int
421 * source/Commands.C (TBan): Returns Ok is the ban is done instead
422 of falling off the end (oops)
424 * source/BotInterp.H: Add general catch case (false)
426 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
428 * configure.ac: Release 2.1.6
429 Changed version to 2.1.7CVS
431 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
433 * source/Parser.C (parseLine): use map<>::find and an iterator to
434 find the IRC command instead of map<>::operator[] to avoid a
437 * source/Bot.C (waitForInput): Removed commented out code
439 * source/Socket.C (readLine): return String (buf.c_str ()) instead
440 of String (buf) so that only the buffer up to the first null is returned
441 (readLine): Added a comment explaining the usage of buf
442 (readLine): Changed type of length (std::string::size_type instead
445 * source/String.C: Reimplemented String on top of std::string to
446 fix a few bugs and potential memory leaks
447 (toLower): use Utils::to_lower
448 (toUpper): Use Utils::to_upper
449 (trim): Use Utils::trim_str
451 * source/String.H: removed srep, replaced it with a std::string
454 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
456 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
457 counters and substr call)
459 * source/StringTokenizer.C (next_token): Applied patch from Jos
460 Hulzink <josh@stack.nl> (fixes substr call)
461 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
464 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
466 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
467 he is a lazy bum and never submitted the String replacing patch
469 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
471 * configure.ac: Remove CC++ test
472 Changed version to 2.1.6CVS (2.1.5 released)
474 * bobot++.texinfo: Updated copyright
476 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
478 * TODO (General): Added TODO items
479 (2.2): Moved a few items here from 2.4
481 * README (NOTE): Mention boost requirement
483 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
485 * ChangeLog Updated copryight
487 * source/User.H: Removed forward declaration of Utils
489 * source/Bot.H: Removed forward declaration of Utils
491 * source/ChannelList.H: Removed forward declaration of Utils
493 * source/UserListItem.H: Removed forward declaration of Utils
495 * source/Utils.H: Removed class Utils, replaced with a namspace
496 (it only contained static methods)
498 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
499 (he is replacing String)
501 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
503 * source/BotConfig.C (set_option_value): Put watcher calling
504 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
505 = end then there are no watchers since this is a new value and
506 references cf_iter->second segfaults)
508 * source/Utils.C (trim_str): Fixed bug (last non-space character
511 * source/BotConfig.C (read_config): Made to use set_option_value
512 instead of manipulating options_db directly
514 * source/BotConfig.H (class BotConfig): Add set_option_value that
515 takes a t_value instead of t_value_list (most uss of
516 set_option_value will be to add a single value so this is very useful)
518 * source/BotConfig.C (set_option_value): Implemented
520 * source/UserList.C: Made to work with new Utils/StringTokenizer names
522 * source/UserCommands.C: Made to work with new
523 Utils/StringTokenizer names
525 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
527 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
529 * source/ShitList.C: Made to work with new StringTokenizer names
531 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
533 * source/ServerQueue.C: Made to work with new Utils names
535 * source/ScriptCommands.C: Made work with new Utils names
537 * source/Person.C (getNick): Made work with new Utils names
539 * source/String.H: Added substr prototypes
541 * source/String.C (substr): Added substr as an alias of subString
542 (for compat with std::string before the transition)
544 * source/Parser.C: Made to work with new Utils/StringTokenizer names
546 * source/DCCParser.C: Made to work with new Utils names
548 * source/DCCChatConnection.C: Made to work new Utils names
550 * source/Commands.C: Made to work with new Utils names
552 * source/Channel.C: Made to work with new Utils names
554 * source/BotInterp.C: Made to work with new Utils
556 * source/Bot.C: Made to work with new Utils/StringTokenizer names
558 * source/String.C (operator=): Unremoved operator=(std::string)
560 * source/String.H: Unremoved operator=(std::string)
562 * source/BotConfig.C (read_config): Use Utils::trim_str
564 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
566 * source/Utils.C (trim_str): Implemented
568 * source/Utils.H: Added tim_str (replaces String::trim)
570 * source/BotConfig.C: Made everything work with new
571 StringTokenizer and Utils names
573 * source/Utils.H: Added to_lower
576 * source/StringTokenizer.C (rest): uses std::isspace instead of
577 checking st[pos] against ' ' and '\t'
579 * source/StringTokenizer.H: Removed CamelCasing
580 Renamed hasMoreTokens to more_tokens_p
582 * source/StringTokenizer.C: Converted to use std::string
584 * source/StringTokenizer.H: Converted to use std::string
586 * source/String.C: Removed operator=(std::string)
588 * source/String.H: Removed operator=(std::string)
590 * source/Utils.C: Added copyright
591 Reformatted to match GNU coding standard more closely
592 Converted everything to use std::string
593 (get_nick): Renamed from getNick
594 (get_userhost): Renamed from getUserHost
595 (get_key): Renamed from getKey
596 (IP_p): Renamed from isIP
597 (make_wildcard): Renamed from makeWildcard
598 (channel_p): Renamed from isChannel
599 (wildcard_p): Renamed from isWildcard
600 (valid_channel_name_p): Renamed from isValidChannelName
601 (valid_nickname_p): Renamed from isValidNickName
602 (get_level): Renamed from getLevel
603 (str2time): Renamed from strToTime
604 (str2time): Fixed potential buffer overflow (num[512] => std::string)
605 (level2str): Renamed from levelToStr
606 (prot2str): Renamed from protToStr
607 (bool2str): Renamed from boolToStr
608 (long2str): Implemented
609 (scm2str): Renamed from scm2String
610 (str2scm): Renamed from string2SCM
612 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
614 * source/Utils.H: Added long2str (long int -> std::string)
616 * source/String.H: Added 2003 copyright (the year I last modified
619 * source/String.C: Added 2002 copyright (the year I last modified
622 * source/Utils.H: Updated Copyright
623 s/String/std::string/g
624 Removed camel casing and is* = *_p
627 * source/BotConfig.C: Updated Copyright
629 * source/BotConfig.H: Updated copyright
631 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
633 * source/BotConfig.C (set_option_value): Take care of the case
634 where key is not already in the db
635 (add_watcher): Implemented
636 (read_config): Removed ',' token parsing (not needed)
638 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
639 AC_CHECK_LIB ccgnu2 (CommonC++2)
641 * README: Updated README (reformatted, adding info, etc.)
643 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
645 * source/BotConfig.C (set_option_value): call watcher list
646 (run_fun_): Added to support watcher list calling
648 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
650 * source/BotConfig.C (set_option_value): Fuck you STL
651 (push_back_): Reimplemented so that it doesn't need std::bind1st
652 because the STL is being stupid
654 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
656 * source/BotConfig.C (read_config): Implemented properly
657 (get_option_values): Implemented properly
658 (set_config_file): Fixed
660 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
662 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
665 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
667 * source/BotConfig.C: New file (implementation of configuration database)
669 * source/BotConfig.H: New File (semi-generic configuration database)
671 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
673 * bobot++.texinfo (Starting the Bot): New section
675 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
677 * bobot++.texinfo (Protection): Added Section
678 (User Levels): Rewrote section to be useful
679 (bot.users): Added section
681 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
683 * source/DCCChatConnection.C (connect): Checks to make sure the
684 person initiating a DCC CHAT with the bot is at least a FRIEND of
687 * README: Fixed a typo
689 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
690 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
692 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
694 * bobot++.texinfo (bot.conf): Finished section
695 (server syntax): New section, documents the bot.conf SERVER syntax
696 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
698 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
700 * source/Main.C (real_main): std::exit instead of exit
702 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
704 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
705 constructor with `n' This should fix the segfaulting.
707 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
709 * ChangeLog: Updated copyright notice
711 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
713 * source/Interp.C (interp_init_helper): Register
714 bot:change-command-level
716 * source/ScriptCommands.C (ChangeCommandLevel): Added
717 ChangeCommandLevel to change the level a user needs to be to run a
720 * source/ScriptCommands.H: Added ChangeCommandLevel
722 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
724 * source/String.H: Changed #define STRING_H to BSTRING_H
726 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
728 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
729 to see if a message was sent to the bot (this is better than
730 bot:match-to-me because the hook isn't invalidated when the bot's
733 * source/DCCConnection.H: Added `nuh' back and added an
735 Added setter `set_autoRemove(bool)'
737 * source/DCCConnection.H: Removed all friends
738 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
739 reveals the pointer to the bot [PRIVATE POINTER] which probably
740 isn't so nice, but there isn't much to be done about it with the
741 current design of the bot)
743 * source/DCCChatConnection.H: Removed all friends
745 * source/DCCConnection.H: DCCConnection is now a pure virtual
746 class with the subclass DCCChatConnection
748 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
750 * source/Socket.C (connect): log errors to the bot log instead of
753 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
755 * source/Parser.C (parseMessage): use the find method of std::map
756 to find the command to call instead of [] and then extract the
757 pointer to the userFunction from that if it exists. This appears
758 to fix the crash when one uses an undefined command followed by
761 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
763 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
764 ScriptCommands::SetFloodRate
766 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
768 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
771 * source/Bot.H: Made MAX_MESSAGES writeable
773 * source/UserCommands.H: New method: SetFloodRate
775 * source/Commands.H: New method: SetFloodRate
777 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
779 * configure.ac: Merged all AC_OUTPUTs at the end
781 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
783 * scripts/bobot-utils.scm: Make exported symbols from
784 the-bot-module available in the guile-user module so that scripts
785 loaded with Interp::Load function.
787 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
789 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
790 %bot:loadpath into its own module and returns that (unnamed) module
791 (bot:use-module): Calls bot:load-module and then adds the newly
792 loaded module to the (current-module)'s use-list
794 * source/Interp.C (interp_init_helper): New procedure to initialize
795 the-bot-module (this is the old Interp::Startup verbatim)
796 (interp_post_startup_helper): New procedure to export
797 the-bot-module from bot_module
798 (Startup): Now calls interp_init_helper and
799 interp_post_startup_helper to initalize the bot module system
801 * source/Interp.H: Added private variable bot_module to Interp
803 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
805 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
806 this breaks existing scripts, this is the unstable tree after all)
808 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
810 * source/Mask.C (match): Made Mask::match case insensitive
812 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
814 * source/Interp.C (scm_apply_wrapper): turned off locking of
815 Interp::mutex to see if this makes the bot work again...and it
818 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
820 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
821 everything to use aclocal/automake 1.6
823 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
825 * source/DCCPerson.H (class DCCPerson): Added
826 UserCommands::DCCList as a friend (friends are better than the old
827 DCC() function at least).
829 * source/DCCManager.H (class DCCManager): Added
830 UserCommands::DCCList as a friend
832 * source/Interp.H (class Interp): Made function scm_apply_wrapper
833 a friend so it can lock Interp::mutex
835 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
836 MULTITHREAD is defined (it is always defined when scripting is
837 enabled) so that Sockets can be made multithreaded using
840 * source/DCCPerson.H: Removed DCC method and made Bot a friend
841 Made DCCManager a friend
843 * source/DCCManager.H (class DCCManager): Removed MAP() method
844 and made Bot a friend of DCCManager
846 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
848 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
851 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
852 user!nick@host instead of the correct nick!user@host).
854 * source/Interp.C (Startup): Register bot:DCC-chat-send
856 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
858 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
860 * source/String.C (String): The std::string copy constructor now
861 extracts the c_str of the std::string and then takes the strlen of
862 that before copying it. This fixes a bug with DCC where if you did
863 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
864 something like that, depending on what the last message was
865 because Socket will insert a \0 into its semi-static buffer, so
866 the len of the String will not equal the strlen of its char*.
868 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
870 * source/DCCPerson.H: Removed destructor (I = idiot)
872 * source/DCCConnection.H: DCCManager is now a friend of
873 DCCConnection (ugh, the bot has way too many friends).
875 * source/DCCPerson.H: Added DCC member that returns a const
876 DCCConnection* (the dcc connection). This isn't saved anywhere
877 because when a DCCPerson is destroyed, its connection is also
880 * source/Bot.H: dccConnections is now a DCCManager
882 * source/DCCPerson.H: Added destructor
883 Added handleInput method
885 * source/DCCManager.C: New file
886 (addConnection): Wrote method, add a DCCConection to the manager
888 * source/DCCManager.H: New file
890 * source/Interp.C (Startup): Register bot:DCC-chat-send
891 (Startup): Removed sendDCCChatMessage stuff
893 * source/ScriptCommands.C (sendDCCChatMessage): New method:
894 sendDCCChatMessage (to, message) sends message to to.
896 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
897 one arg: from (user!nick@host).
899 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
900 two args: from (user!nick@host) and line
902 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
904 * source/Interp.C (Startup): Two new Scheme values:
905 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
906 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
908 * source/BotInterp.H: Added two new enum values to Hook:
909 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
912 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
914 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
915 DCC! Ack, sockets take their arguments in network byte order so
916 there is no need to convert to host...now DCC _sort of_ works.
918 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
920 * source/UserList.C (save): Increment iterator twice to get around
923 * source/ServerQueue.C: Now sends SEND_* hooks instead of
924 triggered general hooks.
926 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
927 (* = the new SEND_ hooks, but lowercase).
929 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
930 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
932 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
934 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
937 * source/Socket.C (readLine): Now uses a static std::string that
938 starts out with 512 chars. This will never need to be resized for
939 usualy IRC messages, but might be for DCC messages
941 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
943 * scripts/bobot-utils.scm (not-from-me): New syntax.
945 * source/ScriptCommands.C (AddHook): Now takes another optional
946 arg--name that will name the hook (see the hooks section in the
947 manual for what this does).
949 * source/BotInterp.H: Added name field to Hook
951 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
953 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
954 PRIVMSGes because the IRC server doesn't echo them back to the
955 bot. This could be useful for something (e.g. log script).
957 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
959 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
960 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
961 associated with the hook when Interp::Shutdown is called (bot exit).
963 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
965 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
966 hook is greater than or less than the other hook, only the
967 priority is considered. However, if both hooks have the same
968 priority, then the fallthru-ness is considered, with fallthru
969 hooks being greater than non-fallthru hooks.
971 * source/BotInterp.C (hptr_lt): Added this static function to be
972 used to sort the hooks list (now hooks should be sorted using
973 Hook's operator < instead of using pointer comparision, meaning
974 the new hook system will work correctly)
976 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
977 map because we don't need the result of the displays (this would
978 just be a list of #<undefined> values and is a waste of memory).
980 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
982 * source/Bot.C (Bot): userFunctions is now a map for efficiency
983 (worst case search is now NlogN instead of N). This improvement is
984 not as drastic as the one gained by making the Parser functions
985 list a map (because we don't scan this map for every message), but
986 it helps to clean up the code
988 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
990 * source/Parser.H: Removed userFunctionsStruct
992 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
993 as bot:send-CTCP for Scheme
995 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
997 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
999 * source/ServerQueue.C (sendUser): Changed . . in USER command to
1000 0 * (which is the Right Way to because <mode> must be a number...)
1002 * source/Parser.C (init): New method of Parse. This initalizes the
1003 functions map. functions replaces the old functions array, and
1004 should yield better performance (since the functions array had to
1005 be scanned for every incoming message)
1007 * source/Parser.H: New member, functions (private)
1009 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
1011 * source/Interp.C (Startup): New symbols: bot:user-*
1012 [none|user|trusted|friend|master] are defined in Scheme as the
1013 different levels of the users.
1014 (Startup): All bot-* variables are now bot:*
1016 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
1018 * source/Bot.H: Made some variables private because they shouldn't
1019 be changed at runtime
1021 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
1022 this out to see if it works and make it work)
1024 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
1027 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
1028 scripts in the user scripts dir) that made bobot++ not able to
1029 load scripts from the user scripts dir
1031 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
1033 * source/BotInterp.C (RunHooks): Changed iterators to
1034 reverse_iterators because the hooks list is sorted in ascending
1035 order--higher priority and fallthrough hooks appear _after_ the
1036 lower priority and non-fallthrough hooks.
1038 * source/Main.C (print_long_help): Added function
1039 (print_short_help): Renamed from printUsage
1040 (namespace): Most stuff in here is now defined in an anonymouse
1041 namespace so it doesn't have external linkage
1042 (real_main): Uses getopt_long instead of getopt. Added several
1043 command line arguments (bobotpp --help for a full list).
1045 * scripts/bobot-utils.scm (bot-load): Function moved from
1048 * source/Interp.C (Startup): Autoloads
1049 PREFIX/bobotpp/scripts/bobot-utils.scm now
1050 (Startup): New Scheme variable: bot-sys-scripts-dir (system
1053 * source/bobot-scheme.scm.in: Removed
1055 * source/Makefile.am: Removed bobot-scheme.scm compiliation
1057 * configure.ac (PREFIX): configure.ac defined prefix now
1059 * source/Main.C (real_main): Default configuration is now read
1060 from /etc/bobotpp/default
1061 * source/bobot-scheme.scm.in: Added file. This defines the
1062 'bot-load' procedure which will load a file from
1063 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
1064 script doesn't exist in the user script dir.
1066 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
1068 * bobot++.texinfo: Started docs (just a skeleton right now)
1070 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
1071 args to set a hooks priority and whether or not it will
1072 fallthrough. These args are optional.
1074 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
1076 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
1077 (RunHooks): exec fallthrough hooks first.
1079 * source/BotInterp.H: Changed Hooks to have priority
1080 Added fhooksMap to BotInterp (fallthrough)
1082 * source/UserCommands.C (AddShit): Converted to use Commands
1084 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
1086 * source/Commands.C (AddUser): Fixed a one-off (function call was
1087 before a brace instead of after one) that caused a segfault when
1088 the user mask was a wildcard
1090 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
1092 * all files: Updated address of the FSF
1094 * source/UserCommands.C (AddUser): Uses Commands now instead of
1095 manipulating the bot directly
1097 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
1099 * source/ScriptCommands.C (AddShit): Filled in function.
1101 * source/Interp.C (Startup): Bind bot-adduser to
1102 ScriptCommands::AddUser instead of Action
1103 (Startup): Bind bot-addshit to ScriptCommands::AddShit
1105 * source/ScriptCommands.C (AddUser): Filled in function
1107 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
1108 would have caused problems if you used more than one server
1110 * source/Parser.H: Changed const char* to String in userFunctionStruct
1112 * source/String.H: Added std::string compatibility members
1114 * configure.ac: You can now disable Crypt and scripting
1116 * source/*: Added #include "config.h" where needed
1118 * configure.ac: Added AM_CONFIG_HEADER
1120 * config.h.in: added file
1122 * source/Queue.C: Didn't notice iostream.h here! Fixed
1125 Copyright 2002,2003,2004,2005 Clinton Ebadi
1126 Copying and distribution of this file, with or without modification, are
1127 permitted provided the copyright notice and this notice are preserved.