+2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
+ user!nick@host instead of the correct nick!user@host).
+
+ * source/Interp.C (Startup): Register bot:DCC-chat-send
+
+ * source/ScriptCommands.C (sendDCCChatMessage): Added method again
+
+2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/String.C (String): The std::string copy constructor now
+ extracts the c_str of the std::string and then takes the strlen of
+ that before copying it. This fixes a bug with DCC where if you did
+ e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
+ something like that, depending on what the last message was
+ because Socket will insert a \0 into its semi-static buffer, so
+ the len of the String will not equal the strlen of its char*.
+
+2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/DCCPerson.H: Removed destructor (I = idiot)
+
+ * source/DCCConnection.H: DCCManager is now a friend of
+ DCCConnection (ugh, the bot has way too many friends).
+
+ * source/DCCPerson.H: Added DCC member that returns a const
+ DCCConnection* (the dcc connection). This isn't saved anywhere
+ because when a DCCPerson is destroyed, its connection is also
+ destroyed.
+
+ * source/Bot.H: dccConnections is now a DCCManager
+
+ * source/DCCPerson.H: Added destructor
+ Added handleInput method
+
+ * source/DCCManager.C: New file
+ (addConnection): Wrote method, add a DCCConection to the manager
+
+ * source/DCCManager.H: New file
+
+ * source/Interp.C (Startup): Register bot:DCC-chat-send
+ (Startup): Removed sendDCCChatMessage stuff
+
+ * source/ScriptCommands.C (sendDCCChatMessage): New method:
+ sendDCCChatMessage (to, message) sends message to to.
+
+ * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
+ one arg: from (user!nick@host).
+
+ * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
+ two args: from (user!nick@host) and line
+
+2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Interp.C (Startup): Two new Scheme values:
+ hooks/dcc/chat-begin and hooks/dcc/chat-message for the
+ DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
+
+ * source/BotInterp.H: Added two new enum values to Hook:
+ DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
+ chat message hooks
+
+2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Parser.C (parseCTCP): Removed call to htonl and fixed
+ DCC! Ack, sockets take their arguments in network byte order so
+ there is no need to convert to host...now DCC _sort of_ works.
+
+2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/UserList.C (save): Increment iterator twice to get around
+ bug (see BUGS #2)
+
+ * source/ServerQueue.C: Now sends SEND_* hooks instead of
+ triggered general hooks.
+
+ * source/Interp.C (Startup): New scheme side defines: hooks/send/*
+ (* = the new SEND_ hooks, but lowercase).
+
+ * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
+ CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
+
+2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
+ logs again.
+
+ * source/Socket.C (readLine): Now uses a static std::string that
+ starts out with 512 chars. This will never need to be resized for
+ usualy IRC messages, but might be for DCC messages
+
+2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * scripts/bobot-utils.scm (not-from-me): New syntax.
+
+ * source/ScriptCommands.C (AddHook): Now takes another optional
+ arg--name that will name the hook (see the hooks section in the
+ manual for what this does).
+
+ * source/BotInterp.H: Added name field to Hook
+
+2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
+ PRIVMSGes because the IRC server doesn't echo them back to the
+ bot. This could be useful for something (e.g. log script).
+
+2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
+ (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
+ associated with the hook when Interp::Shutdown is called (bot exit).
+
+2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
+ hook is greater than or less than the other hook, only the
+ priority is considered. However, if both hooks have the same
+ priority, then the fallthru-ness is considered, with fallthru
+ hooks being greater than non-fallthru hooks.
+
+ * source/BotInterp.C (hptr_lt): Added this static function to be
+ used to sort the hooks list (now hooks should be sorted using
+ Hook's operator < instead of using pointer comparision, meaning
+ the new hook system will work correctly)
+
+ * scripts/bobot-utils.scm: Make bot:log use for-each instead of
+ map because we don't need the result of the displays (this would
+ just be a list of #<undefined> values and is a waste of memory).
+
+2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Bot.C (Bot): userFunctions is now a map for efficiency
+ (worst case search is now NlogN instead of N). This improvement is
+ not as drastic as the one gained by making the Parser functions
+ list a map (because we don't scan this map for every message), but
+ it helps to clean up the code
+
+2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Parser.H: Removed userFunctionsStruct
+
+ * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
+ as bot:send-CTCP for Scheme
+
+ * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
+
+2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/ServerQueue.C (sendUser): Changed . . in USER command to
+ 0 * (which is the Right Way to because <mode> must be a number...)
+
+ * source/Parser.C (init): New method of Parse. This initalizes the
+ functions map. functions replaces the old functions array, and
+ should yield better performance (since the functions array had to
+ be scanned for every incoming message)
+
+ * source/Parser.H: New member, functions (private)
+
+2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Interp.C (Startup): New symbols: bot:user-*
+ [none|user|trusted|friend|master] are defined in Scheme as the
+ different levels of the users.
+ (Startup): All bot-* variables are now bot:*
+
+2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/Bot.H: Made some variables private because they shouldn't
+ be changed at runtime
+
+ * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
+ this out to see if it works and make it work)
+
+ * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
+ dir.
+
+ * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
+ scripts in the user scripts dir) that made bobot++ not able to
+ load scripts from the user scripts dir
+
+2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
+
+ * source/BotInterp.C (RunHooks): Changed iterators to
+ reverse_iterators because the hooks list is sorted in ascending
+ order--higher priority and fallthrough hooks appear _after_ the
+ lower priority and non-fallthrough hooks.
+
+ * source/Main.C (print_long_help): Added function
+ (print_short_help): Renamed from printUsage
+ (namespace): Most stuff in here is now defined in an anonymouse
+ namespace so it doesn't have external linkage
+ (real_main): Uses getopt_long instead of getopt. Added several
+ command line arguments (bobotpp --help for a full list).
+
+ * scripts/bobot-utils.scm (bot-load): Function moved from
+ bobot-scheme.scm
+
+ * source/Interp.C (Startup): Autoloads
+ PREFIX/bobotpp/scripts/bobot-utils.scm now
+ (Startup): New Scheme variable: bot-sys-scripts-dir (system
+ scripts dir)
+
+ * source/bobot-scheme.scm.in: Removed
+
+ * source/Makefile.am: Removed bobot-scheme.scm compiliation
+
+ * configure.ac (PREFIX): configure.ac defined prefix now
+
+ * source/Main.C (real_main): Default configuration is now read
+ from /etc/bobotpp/default
+ * source/bobot-scheme.scm.in: Added file. This defines the
+ 'bot-load' procedure which will load a file from
+ $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
+ script doesn't exist in the user script dir.
+
2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
* bobot++.texinfo: Started docs (just a skeleton right now)