1 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
3 * configure.ac: Release 2.1.8
4 Change version to 2.1.9CVS
6 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
8 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
10 * bobot++.texinfo (Configuration): Swapped order of config file
11 placement and config files
12 (User Levels): users not found in the user list *can* execute
13 commands as bot:user-none now.
14 (Low Level Message Functions): Changed a few @code{}s to @var{}s
16 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
18 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
20 * source/Main.C (namespace): Added debug-scripts option
22 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
23 from->getNick () instead of from->getAddress () (consistency fix)
25 * source/Main.C: Merged error handling patch from dsmith
27 * source/Parser.C: Merged error handling
30 * source/Interp.H: Merged error handling patch from dsmith
32 * source/Interp.C (lazy_handler): Merged error handling patch from
35 * source/BotInterp.H: Merged error handling patch from dsmith
37 * source/BotInterp.C: Merged error handling patch from dsmith
39 * bobot++.texinfo (Low Level Message Functions): Documented
42 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
44 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
47 * bobot++.texinfo (Low Level Message Functions):
48 s/bot:send-CTCP/bot:send-ctcp/
50 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
53 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
55 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
56 (sendCTCPReply): Added
58 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
60 * source/Commands.C (CTCP): Implemented
61 (CTCPReply): Implemented
62 (Action): Convert to use Commands::CTCP
64 * source/Commands.H: Added CTCP (bot, target, command, message)
65 Added CTCPReply (bot, target, command, message)
67 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
69 * examples/bot.conf (maxnicklength): Update example config
71 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
73 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
75 * source/Bot.H: Added MAX_NICKLENGTH member
77 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
79 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
82 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
84 * source/Commands.C (Notice): Send multiple NOTICEs when a message
87 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
89 * source/Main.C (real_main): Enable Guile debugging mode when
92 * source/Interp.C (interp_post_startup_helper): Return
93 SCM_UNSPECIFIED instead of 0
95 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
97 * All: Updated FSF street address
99 * source/Commands.C (Msg): Move body of Say to an if inside of this
102 * source/ScriptCommands.C (sendNotice): Returns error code instead
105 * source/Commands.C (Say): Check to make sure target is a channel
106 (Msg): Extended to send messages to channels
108 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
110 * scripts/bot.scm: Added file ((bobotpp bot) module for other
111 modules to gain access to bobot++ interface)
113 * source/Commands.C (Notice): Commented out check/abort if target
114 is a channel (there doesn't seem to be a reason for this to not work)
116 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
118 * bobot++.texinfo (High Level Message Functions): Document bot:notice
120 * source/Message.H: Added operator== to Message (tests for error
123 * source/Commands.C: Removed message type macros
125 * source/Message.H: Moved message type macros to Message.H
127 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
129 * source/ScriptCommands.H: Uncomment sendNotice
131 * source/Bot.C (waitForInput): Use %02d when formatting
132 Hooks::TIMER argument instead of %2d, and switch to snprintf to
135 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
138 * source/Bot.C (run): Added call to Hooks::DISCONNECT
139 (hooks/disconnect) when the bot is disconnected from the server
141 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
142 (Hook Types): Added hooks/disconnect argument
144 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
146 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
147 again (thanks dsmith)
149 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
151 * source/Interp.C (interp_init_helper): Added
152 bot:protection/[none|ban|kick|deop] constants to Scheme
153 (interp_init_helper): Added bot:aop/[yes|no] constants
155 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
157 * configure.ac: Release Bobot++ 2.1.7
158 Changed version to 2.18.CVS
160 * source/UserList.C (save): Remove workaround for BUG #2
162 * source/Parser.C (parse001): make realNick lowercase when doing
163 the comparison to bot->nickName to prevent pushing a second copy
164 of the bot onto the userlist (closes BUG #2)
166 * source/Bot.C (Bot): cleaned up constructor
167 (waitForInput): replaced gh_list with scm_list_n
169 * source/UserList.C: Cleaned up some formatting
171 * source/Main.C: Formatted code more cleanly
172 (real_main): changed a few Strings to std::strings
174 * source/String.C (operator): Made index signed again, it's not
175 worth fixing this warning
177 * source/Bot.C: Add casts to make this compile with unsigned int
178 as operator[] in String
180 * source/String.C (operator): Made index unsigned
182 * source/Utils.C: Made a few things unsigned to kill warnings
184 * source/Socket.C (readLine): Made pos unsigned
186 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
188 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
190 * source/StringTokenizer.C (count_tokens): Changed return type to
192 (more_tokens_p): Made counter unsigned
194 * source/StringTokenizer.H (class StringTokenizer): Made pos
195 std::string::size_type instead of int
197 * source/Commands.C (TBan): Returns Ok is the ban is done instead
198 of falling off the end (oops)
200 * source/BotInterp.H: Add general catch case (false)
202 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
204 * configure.ac: Release 2.1.6
205 Changed version to 2.1.7CVS
207 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
209 * source/Parser.C (parseLine): use map<>::find and an iterator to
210 find the IRC command instead of map<>::operator[] to avoid a
213 * source/Bot.C (waitForInput): Removed commented out code
215 * source/Socket.C (readLine): return String (buf.c_str ()) instead
216 of String (buf) so that only the buffer up to the first null is returned
217 (readLine): Added a comment explaining the usage of buf
218 (readLine): Changed type of length (std::string::size_type instead
221 * source/String.C: Reimplemented String on top of std::string to
222 fix a few bugs and potential memory leaks
223 (toLower): use Utils::to_lower
224 (toUpper): Use Utils::to_upper
225 (trim): Use Utils::trim_str
227 * source/String.H: removed srep, replaced it with a std::string (my_string)
229 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
231 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
232 counters and substr call)
234 * source/StringTokenizer.C (next_token): Applied patch from Jos
235 Hulzink <josh@stack.nl> (fixes substr call)
236 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
239 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
241 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
242 he is a lazy bum and never submitted the String replacing patch
244 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
246 * configure.ac: Remove CC++ test
247 Changed version to 2.1.6CVS (2.1.5 released)
249 * bobot++.texinfo: Updated copyright
251 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
253 * TODO (General): Added TODO items
254 (2.2): Moved a few items here from 2.4
256 * README (NOTE): Mention boost requirement
258 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
260 * ChangeLog Updated copryight
262 * source/User.H: Removed forward declaration of Utils
264 * source/Bot.H: Removed forward declaration of Utils
266 * source/ChannelList.H: Removed forward declaration of Utils
268 * source/UserListItem.H: Removed forward declaration of Utils
270 * source/Utils.H: Removed class Utils, replaced with a namspace
271 (it only contained static methods)
273 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
274 (he is replacing String)
276 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
278 * source/BotConfig.C (set_option_value): Put watcher calling
279 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
280 = end then there are no watchers since this is a new value and
281 references cf_iter->second segfaults)
283 * source/Utils.C (trim_str): Fixed bug (last non-space character
286 * source/BotConfig.C (read_config): Made to use set_option_value
287 instead of manipulating options_db directly
289 * source/BotConfig.H (class BotConfig): Add set_option_value that
290 takes a t_value instead of t_value_list (most uss of
291 set_option_value will be to add a single value so this is very useful)
293 * source/BotConfig.C (set_option_value): Implemented
295 * source/UserList.C: Made to work with new Utils/StringTokenizer names
297 * source/UserCommands.C: Made to work with new
298 Utils/StringTokenizer names
300 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
302 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
304 * source/ShitList.C: Made to work with new StringTokenizer names
306 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
308 * source/ServerQueue.C: Made to work with new Utils names
310 * source/ScriptCommands.C: Made work with new Utils names
312 * source/Person.C (getNick): Made work with new Utils names
314 * source/String.H: Added substr prototypes
316 * source/String.C (substr): Added substr as an alias of subString
317 (for compat with std::string before the transition)
319 * source/Parser.C: Made to work with new Utils/StringTokenizer names
321 * source/DCCParser.C: Made to work with new Utils names
323 * source/DCCChatConnection.C: Made to work new Utils names
325 * source/Commands.C: Made to work with new Utils names
327 * source/Channel.C: Made to work with new Utils names
329 * source/BotInterp.C: Made to work with new Utils
331 * source/Bot.C: Made to work with new Utils/StringTokenizer names
333 * source/String.C (operator=): Unremoved operator=(std::string)
335 * source/String.H: Unremoved operator=(std::string)
337 * source/BotConfig.C (read_config): Use Utils::trim_str
339 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
341 * source/Utils.C (trim_str): Implemented
343 * source/Utils.H: Added tim_str (replaces String::trim)
345 * source/BotConfig.C: Made everything work with new
346 StringTokenizer and Utils names
348 * source/Utils.H: Added to_lower
351 * source/StringTokenizer.C (rest): uses std::isspace instead of
352 checking st[pos] against ' ' and '\t'
354 * source/StringTokenizer.H: Removed CamelCasing
355 Renamed hasMoreTokens to more_tokens_p
357 * source/StringTokenizer.C: Converted to use std::string
359 * source/StringTokenizer.H: Converted to use std::string
361 * source/String.C: Removed operator=(std::string)
363 * source/String.H: Removed operator=(std::string)
365 * source/Utils.C: Added copyright
366 Reformatted to match GNU coding standard more closely
367 Converted everything to use std::string
368 (get_nick): Renamed from getNick
369 (get_userhost): Renamed from getUserHost
370 (get_key): Renamed from getKey
371 (IP_p): Renamed from isIP
372 (make_wildcard): Renamed from makeWildcard
373 (channel_p): Renamed from isChannel
374 (wildcard_p): Renamed from isWildcard
375 (valid_channel_name_p): Renamed from isValidChannelName
376 (valid_nickname_p): Renamed from isValidNickName
377 (get_level): Renamed from getLevel
378 (str2time): Renamed from strToTime
379 (str2time): Fixed potential buffer overflow (num[512] => std::string)
380 (level2str): Renamed from levelToStr
381 (prot2str): Renamed from protToStr
382 (bool2str): Renamed from boolToStr
383 (long2str): Implemented
384 (scm2str): Renamed from scm2String
385 (str2scm): Renamed from string2SCM
387 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
389 * source/Utils.H: Added long2str (long int -> std::string)
391 * source/String.H: Added 2003 copyright (the year I last modified
394 * source/String.C: Added 2002 copyright (the year I last modified
397 * source/Utils.H: Updated Copyright
398 s/String/std::string/g
399 Removed camel casing and is* = *_p
402 * source/BotConfig.C: Updated Copyright
404 * source/BotConfig.H: Updated copyright
406 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
408 * source/BotConfig.C (set_option_value): Take care of the case
409 where key is not already in the db
410 (add_watcher): Implemented
411 (read_config): Removed ',' token parsing (not needed)
413 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
414 AC_CHECK_LIB ccgnu2 (CommonC++2)
416 * README: Updated README (reformatted, adding info, etc.)
418 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
420 * source/BotConfig.C (set_option_value): call watcher list
421 (run_fun_): Added to support watcher list calling
423 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
425 * source/BotConfig.C (set_option_value): Fuck you STL
426 (push_back_): Reimplemented so that it doesn't need std::bind1st
427 because the STL is being stupid
429 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
431 * source/BotConfig.C (read_config): Implemented properly
432 (get_option_values): Implemented properly
433 (set_config_file): Fixed
435 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
437 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
440 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
442 * source/BotConfig.C: New file (implementation of configuration database)
444 * source/BotConfig.H: New File (semi-generic configuration database)
446 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
448 * bobot++.texinfo (Starting the Bot): New section
450 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
452 * bobot++.texinfo (Protection): Added Section
453 (User Levels): Rewrote section to be useful
454 (bot.users): Added section
456 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
458 * source/DCCChatConnection.C (connect): Checks to make sure the
459 person initiating a DCC CHAT with the bot is at least a FRIEND of
462 * README: Fixed a typo
464 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
465 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
467 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
469 * bobot++.texinfo (bot.conf): Finished section
470 (server syntax): New section, documents the bot.conf SERVER syntax
471 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
473 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
475 * source/Main.C (real_main): std::exit instead of exit
477 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
479 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
480 constructor with `n' This should fix the segfaulting.
482 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
484 * ChangeLog: Updated copyright notice
486 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
488 * source/Interp.C (interp_init_helper): Register
489 bot:change-command-level
491 * source/ScriptCommands.C (ChangeCommandLevel): Added
492 ChangeCommandLevel to change the level a user needs to be to run a
495 * source/ScriptCommands.H: Added ChangeCommandLevel
497 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
499 * source/String.H: Changed #define STRING_H to BSTRING_H
501 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
503 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
504 to see if a message was sent to the bot (this is better than
505 bot:match-to-me because the hook isn't invalidated when the bot's
508 * source/DCCConnection.H: Added `nuh' back and added an
510 Added setter `set_autoRemove(bool)'
512 * source/DCCConnection.H: Removed all friends
513 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
514 reveals the pointer to the bot [PRIVATE POINTER] which probably
515 isn't so nice, but there isn't much to be done about it with the
516 current design of the bot)
518 * source/DCCChatConnection.H: Removed all friends
520 * source/DCCConnection.H: DCCConnection is now a pure virtual
521 class with the subclass DCCChatConnection
523 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
525 * source/Socket.C (connect): log errors to the bot log instead of
528 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
530 * source/Parser.C (parseMessage): use the find method of std::map
531 to find the command to call instead of [] and then extract the
532 pointer to the userFunction from that if it exists. This appears
533 to fix the crash when one uses an undefined command followed by
536 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
538 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
539 ScriptCommands::SetFloodRate
541 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
543 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
546 * source/Bot.H: Made MAX_MESSAGES writeable
548 * source/UserCommands.H: New method: SetFloodRate
550 * source/Commands.H: New method: SetFloodRate
552 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
554 * configure.ac: Merged all AC_OUTPUTs at the end
556 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
558 * scripts/bobot-utils.scm: Make exported symbols from
559 the-bot-module available in the guile-user module so that scripts
560 loaded with Interp::Load function.
562 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
564 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
565 %bot:loadpath into its own module and returns that (unnamed) module
566 (bot:use-module): Calls bot:load-module and then adds the newly
567 loaded module to the (current-module)'s use-list
569 * source/Interp.C (interp_init_helper): New procedure to initialize
570 the-bot-module (this is the old Interp::Startup verbatim)
571 (interp_post_startup_helper): New procedure to export
572 the-bot-module from bot_module
573 (Startup): Now calls interp_init_helper and
574 interp_post_startup_helper to initalize the bot module system
576 * source/Interp.H: Added private variable bot_module to Interp
578 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
580 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
581 this breaks existing scripts, this is the unstable tree after all)
583 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
585 * source/Mask.C (match): Made Mask::match case insensitive
587 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
589 * source/Interp.C (scm_apply_wrapper): turned off locking of
590 Interp::mutex to see if this makes the bot work again...and it
593 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
595 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
596 everything to use aclocal/automake 1.6
598 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
600 * source/DCCPerson.H (class DCCPerson): Added
601 UserCommands::DCCList as a friend (friends are better than the old
602 DCC() function at least).
604 * source/DCCManager.H (class DCCManager): Added
605 UserCommands::DCCList as a friend
607 * source/Interp.H (class Interp): Made function scm_apply_wrapper
608 a friend so it can lock Interp::mutex
610 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
611 MULTITHREAD is defined (it is always defined when scripting is
612 enabled) so that Sockets can be made multithreaded using
615 * source/DCCPerson.H: Removed DCC method and made Bot a friend
616 Made DCCManager a friend
618 * source/DCCManager.H (class DCCManager): Removed MAP() method
619 and made Bot a friend of DCCManager
621 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
623 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
626 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
627 user!nick@host instead of the correct nick!user@host).
629 * source/Interp.C (Startup): Register bot:DCC-chat-send
631 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
633 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
635 * source/String.C (String): The std::string copy constructor now
636 extracts the c_str of the std::string and then takes the strlen of
637 that before copying it. This fixes a bug with DCC where if you did
638 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
639 something like that, depending on what the last message was
640 because Socket will insert a \0 into its semi-static buffer, so
641 the len of the String will not equal the strlen of its char*.
643 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
645 * source/DCCPerson.H: Removed destructor (I = idiot)
647 * source/DCCConnection.H: DCCManager is now a friend of
648 DCCConnection (ugh, the bot has way too many friends).
650 * source/DCCPerson.H: Added DCC member that returns a const
651 DCCConnection* (the dcc connection). This isn't saved anywhere
652 because when a DCCPerson is destroyed, its connection is also
655 * source/Bot.H: dccConnections is now a DCCManager
657 * source/DCCPerson.H: Added destructor
658 Added handleInput method
660 * source/DCCManager.C: New file
661 (addConnection): Wrote method, add a DCCConection to the manager
663 * source/DCCManager.H: New file
665 * source/Interp.C (Startup): Register bot:DCC-chat-send
666 (Startup): Removed sendDCCChatMessage stuff
668 * source/ScriptCommands.C (sendDCCChatMessage): New method:
669 sendDCCChatMessage (to, message) sends message to to.
671 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
672 one arg: from (user!nick@host).
674 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
675 two args: from (user!nick@host) and line
677 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
679 * source/Interp.C (Startup): Two new Scheme values:
680 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
681 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
683 * source/BotInterp.H: Added two new enum values to Hook:
684 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
687 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
689 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
690 DCC! Ack, sockets take their arguments in network byte order so
691 there is no need to convert to host...now DCC _sort of_ works.
693 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
695 * source/UserList.C (save): Increment iterator twice to get around
698 * source/ServerQueue.C: Now sends SEND_* hooks instead of
699 triggered general hooks.
701 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
702 (* = the new SEND_ hooks, but lowercase).
704 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
705 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
707 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
709 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
712 * source/Socket.C (readLine): Now uses a static std::string that
713 starts out with 512 chars. This will never need to be resized for
714 usualy IRC messages, but might be for DCC messages
716 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
718 * scripts/bobot-utils.scm (not-from-me): New syntax.
720 * source/ScriptCommands.C (AddHook): Now takes another optional
721 arg--name that will name the hook (see the hooks section in the
722 manual for what this does).
724 * source/BotInterp.H: Added name field to Hook
726 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
728 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
729 PRIVMSGes because the IRC server doesn't echo them back to the
730 bot. This could be useful for something (e.g. log script).
732 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
734 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
735 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
736 associated with the hook when Interp::Shutdown is called (bot exit).
738 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
740 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
741 hook is greater than or less than the other hook, only the
742 priority is considered. However, if both hooks have the same
743 priority, then the fallthru-ness is considered, with fallthru
744 hooks being greater than non-fallthru hooks.
746 * source/BotInterp.C (hptr_lt): Added this static function to be
747 used to sort the hooks list (now hooks should be sorted using
748 Hook's operator < instead of using pointer comparision, meaning
749 the new hook system will work correctly)
751 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
752 map because we don't need the result of the displays (this would
753 just be a list of #<undefined> values and is a waste of memory).
755 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
757 * source/Bot.C (Bot): userFunctions is now a map for efficiency
758 (worst case search is now NlogN instead of N). This improvement is
759 not as drastic as the one gained by making the Parser functions
760 list a map (because we don't scan this map for every message), but
761 it helps to clean up the code
763 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
765 * source/Parser.H: Removed userFunctionsStruct
767 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
768 as bot:send-CTCP for Scheme
770 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
772 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
774 * source/ServerQueue.C (sendUser): Changed . . in USER command to
775 0 * (which is the Right Way to because <mode> must be a number...)
777 * source/Parser.C (init): New method of Parse. This initalizes the
778 functions map. functions replaces the old functions array, and
779 should yield better performance (since the functions array had to
780 be scanned for every incoming message)
782 * source/Parser.H: New member, functions (private)
784 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
786 * source/Interp.C (Startup): New symbols: bot:user-*
787 [none|user|trusted|friend|master] are defined in Scheme as the
788 different levels of the users.
789 (Startup): All bot-* variables are now bot:*
791 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
793 * source/Bot.H: Made some variables private because they shouldn't
794 be changed at runtime
796 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
797 this out to see if it works and make it work)
799 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
802 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
803 scripts in the user scripts dir) that made bobot++ not able to
804 load scripts from the user scripts dir
806 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
808 * source/BotInterp.C (RunHooks): Changed iterators to
809 reverse_iterators because the hooks list is sorted in ascending
810 order--higher priority and fallthrough hooks appear _after_ the
811 lower priority and non-fallthrough hooks.
813 * source/Main.C (print_long_help): Added function
814 (print_short_help): Renamed from printUsage
815 (namespace): Most stuff in here is now defined in an anonymouse
816 namespace so it doesn't have external linkage
817 (real_main): Uses getopt_long instead of getopt. Added several
818 command line arguments (bobotpp --help for a full list).
820 * scripts/bobot-utils.scm (bot-load): Function moved from
823 * source/Interp.C (Startup): Autoloads
824 PREFIX/bobotpp/scripts/bobot-utils.scm now
825 (Startup): New Scheme variable: bot-sys-scripts-dir (system
828 * source/bobot-scheme.scm.in: Removed
830 * source/Makefile.am: Removed bobot-scheme.scm compiliation
832 * configure.ac (PREFIX): configure.ac defined prefix now
834 * source/Main.C (real_main): Default configuration is now read
835 from /etc/bobotpp/default
836 * source/bobot-scheme.scm.in: Added file. This defines the
837 'bot-load' procedure which will load a file from
838 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
839 script doesn't exist in the user script dir.
841 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
843 * bobot++.texinfo: Started docs (just a skeleton right now)
845 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
846 args to set a hooks priority and whether or not it will
847 fallthrough. These args are optional.
849 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
851 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
852 (RunHooks): exec fallthrough hooks first.
854 * source/BotInterp.H: Changed Hooks to have priority
855 Added fhooksMap to BotInterp (fallthrough)
857 * source/UserCommands.C (AddShit): Converted to use Commands
859 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
861 * source/Commands.C (AddUser): Fixed a one-off (function call was
862 before a brace instead of after one) that caused a segfault when
863 the user mask was a wildcard
865 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
867 * all files: Updated address of the FSF
869 * source/UserCommands.C (AddUser): Uses Commands now instead of
870 manipulating the bot directly
872 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
874 * source/ScriptCommands.C (AddShit): Filled in function.
876 * source/Interp.C (Startup): Bind bot-adduser to
877 ScriptCommands::AddUser instead of Action
878 (Startup): Bind bot-addshit to ScriptCommands::AddShit
880 * source/ScriptCommands.C (AddUser): Filled in function
882 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
883 would have caused problems if you used more than one server
885 * source/Parser.H: Changed const char* to String in userFunctionStruct
887 * source/String.H: Added std::string compatibility members
889 * configure.ac: You can now disable Crypt and scripting
891 * source/*: Added #include "config.h" where needed
893 * configure.ac: Added AM_CONFIG_HEADER
895 * config.h.in: added file
897 * source/Queue.C: Didn't notice iostream.h here! Fixed
900 Copyright 2002,2003,2004,2005 Clinton Ebadi
901 Copying and distribution of this file, with or without modification, are
902 permitted provided the copyright notice and this notice are preserved.