2002-07-27 Clinton Ebadi * 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 * 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 # values and is a waste of memory). 2002-07-13 Clinton Ebadi * 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 * 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 * source/ServerQueue.C (sendUser): Changed . . in USER command to 0 * (which is the Right Way to because 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 * 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 * 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 * 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 * bobot++.texinfo: Started docs (just a skeleton right now) * source/ScriptCommands.C (AddHook): Now takes pri and fall opt args to set a hooks priority and whether or not it will fallthrough. These args are optional. * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args * source/BotInterp.C (AddHook): Now uses priority and fallthrough (RunHooks): exec fallthrough hooks first. * source/BotInterp.H: Changed Hooks to have priority Added fhooksMap to BotInterp (fallthrough) * source/UserCommands.C (AddShit): Converted to use Commands 2002-06-21 Clinton Ebadi * source/Commands.C (AddUser): Fixed a one-off (function call was before a brace instead of after one) that caused a segfault when the user mask was a wildcard 2002-06-20 Clinton Ebadi * all files: Updated address of the FSF * source/UserCommands.C (AddUser): Uses Commands now instead of manipulating the bot directly 2002-06-18 Clinton Ebadi * source/ScriptCommands.C (AddShit): Filled in function. * source/Interp.C (Startup): Bind bot-adduser to ScriptCommands::AddUser instead of Action (Startup): Bind bot-addshit to ScriptCommands::AddShit * source/ScriptCommands.C (AddUser): Filled in function * source/ServerList.C (delServer): Changed (n - 1) to n...n-1 would have caused problems if you used more than one server * source/Parser.H: Changed const char* to String in userFunctionStruct * source/String.H: Added std::string compatibility members * configure.ac: You can now disable Crypt and scripting * source/*: Added #include "config.h" where needed * configure.ac: Added AM_CONFIG_HEADER * config.h.in: added file * source/Queue.C: Didn't notice iostream.h here! Fixed Copyright 2002 Clinton Ebadi Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.