1 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
3 * configure.ac: Release 2.1.6
4 Changed version to 2.1.7CVS
6 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
8 * source/Parser.C (parseLine): use map<>::find and an iterator to
9 find the IRC command instead of map<>::operator[] to avoid a
12 * source/Bot.C (waitForInput): Removed commented out code
14 * source/Socket.C (readLine): return String (buf.c_str ()) instead
15 of String (buf) so that only the buffer up to the first null is returned
16 (readLine): Added a comment explaining the usage of buf
17 (readLine): Changed type of length (std::string::size_type instead
20 * source/String.C: Reimplemented String on top of std::string to
21 fix a few bugs and potential memory leaks
22 (toLower): use Utils::to_lower
23 (toUpper): Use Utils::to_upper
24 (trim): Use Utils::trim_str
26 * source/String.H: removed srep, replaced it with a std::string (my_string)
28 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
30 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
31 counters and substr call)
33 * source/StringTokenizer.C (next_token): Applied patch from Jos
34 Hulzink <josh@stack.nl> (fixes substr call)
35 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
38 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
40 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
41 he is a lazy bum and never submitted the String replacing patch
43 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
45 * configure.ac: Remove CC++ test
46 Changed version to 2.1.6CVS (2.1.5 released)
48 * bobot++.texinfo: Updated copyright
50 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
52 * TODO (General): Added TODO items
53 (2.2): Moved a few items here from 2.4
55 * README (NOTE): Mention boost requirement
57 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
59 * ChangeLog Updated copryight
61 * source/User.H: Removed forward declaration of Utils
63 * source/Bot.H: Removed forward declaration of Utils
65 * source/ChannelList.H: Removed forward declaration of Utils
67 * source/UserListItem.H: Removed forward declaration of Utils
69 * source/Utils.H: Removed class Utils, replaced with a namspace
70 (it only contained static methods)
72 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
73 (he is replacing String)
75 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
77 * source/BotConfig.C (set_option_value): Put watcher calling
78 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
79 = end then there are no watchers since this is a new value and
80 references cf_iter->second segfaults)
82 * source/Utils.C (trim_str): Fixed bug (last non-space character
85 * source/BotConfig.C (read_config): Made to use set_option_value
86 instead of manipulating options_db directly
88 * source/BotConfig.H (class BotConfig): Add set_option_value that
89 takes a t_value instead of t_value_list (most uss of
90 set_option_value will be to add a single value so this is very useful)
92 * source/BotConfig.C (set_option_value): Implemented
94 * source/UserList.C: Made to work with new Utils/StringTokenizer names
96 * source/UserCommands.C: Made to work with new
97 Utils/StringTokenizer names
99 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
101 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
103 * source/ShitList.C: Made to work with new StringTokenizer names
105 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
107 * source/ServerQueue.C: Made to work with new Utils names
109 * source/ScriptCommands.C: Made work with new Utils names
111 * source/Person.C (getNick): Made work with new Utils names
113 * source/String.H: Added substr prototypes
115 * source/String.C (substr): Added substr as an alias of subString
116 (for compat with std::string before the transition)
118 * source/Parser.C: Made to work with new Utils/StringTokenizer names
120 * source/DCCParser.C: Made to work with new Utils names
122 * source/DCCChatConnection.C: Made to work new Utils names
124 * source/Commands.C: Made to work with new Utils names
126 * source/Channel.C: Made to work with new Utils names
128 * source/BotInterp.C: Made to work with new Utils
130 * source/Bot.C: Made to work with new Utils/StringTokenizer names
132 * source/String.C (operator=): Unremoved operator=(std::string)
134 * source/String.H: Unremoved operator=(std::string)
136 * source/BotConfig.C (read_config): Use Utils::trim_str
138 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
140 * source/Utils.C (trim_str): Implemented
142 * source/Utils.H: Added tim_str (replaces String::trim)
144 * source/BotConfig.C: Made everything work with new
145 StringTokenizer and Utils names
147 * source/Utils.H: Added to_lower
150 * source/StringTokenizer.C (rest): uses std::isspace instead of
151 checking st[pos] against ' ' and '\t'
153 * source/StringTokenizer.H: Removed CamelCasing
154 Renamed hasMoreTokens to more_tokens_p
156 * source/StringTokenizer.C: Converted to use std::string
158 * source/StringTokenizer.H: Converted to use std::string
160 * source/String.C: Removed operator=(std::string)
162 * source/String.H: Removed operator=(std::string)
164 * source/Utils.C: Added copyright
165 Reformatted to match GNU coding standard more closely
166 Converted everything to use std::string
167 (get_nick): Renamed from getNick
168 (get_userhost): Renamed from getUserHost
169 (get_key): Renamed from getKey
170 (IP_p): Renamed from isIP
171 (make_wildcard): Renamed from makeWildcard
172 (channel_p): Renamed from isChannel
173 (wildcard_p): Renamed from isWildcard
174 (valid_channel_name_p): Renamed from isValidChannelName
175 (valid_nickname_p): Renamed from isValidNickName
176 (get_level): Renamed from getLevel
177 (str2time): Renamed from strToTime
178 (str2time): Fixed potential buffer overflow (num[512] => std::string)
179 (level2str): Renamed from levelToStr
180 (prot2str): Renamed from protToStr
181 (bool2str): Renamed from boolToStr
182 (long2str): Implemented
183 (scm2str): Renamed from scm2String
184 (str2scm): Renamed from string2SCM
186 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
188 * source/Utils.H: Added long2str (long int -> std::string)
190 * source/String.H: Added 2003 copyright (the year I last modified
193 * source/String.C: Added 2002 copyright (the year I last modified
196 * source/Utils.H: Updated Copyright
197 s/String/std::string/g
198 Removed camel casing and is* = *_p
201 * source/BotConfig.C: Updated Copyright
203 * source/BotConfig.H: Updated copyright
205 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
207 * source/BotConfig.C (set_option_value): Take care of the case
208 where key is not already in the db
209 (add_watcher): Implemented
210 (read_config): Removed ',' token parsing (not needed)
212 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
213 AC_CHECK_LIB ccgnu2 (CommonC++2)
215 * README: Updated README (reformatted, adding info, etc.)
217 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
219 * source/BotConfig.C (set_option_value): call watcher list
220 (run_fun_): Added to support watcher list calling
222 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
224 * source/BotConfig.C (set_option_value): Fuck you STL
225 (push_back_): Reimplemented so that it doesn't need std::bind1st
226 because the STL is being stupid
228 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
230 * source/BotConfig.C (read_config): Implemented properly
231 (get_option_values): Implemented properly
232 (set_config_file): Fixed
234 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
236 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
239 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
241 * source/BotConfig.C: New file (implementation of configuration database)
243 * source/BotConfig.H: New File (semi-generic configuration database)
245 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
247 * bobot++.texinfo (Starting the Bot): New section
249 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
251 * bobot++.texinfo (Protection): Added Section
252 (User Levels): Rewrote section to be useful
253 (bot.users): Added section
255 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
257 * source/DCCChatConnection.C (connect): Checks to make sure the
258 person initiating a DCC CHAT with the bot is at least a FRIEND of
261 * README: Fixed a typo
263 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
264 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
266 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
268 * bobot++.texinfo (bot.conf): Finished section
269 (server syntax): New section, documents the bot.conf SERVER syntax
270 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
272 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
274 * source/Main.C (real_main): std::exit instead of exit
276 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
278 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
279 constructor with `n' This should fix the segfaulting.
281 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
283 * ChangeLog: Updated copyright notice
285 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
287 * source/Interp.C (interp_init_helper): Register
288 bot:change-command-level
290 * source/ScriptCommands.C (ChangeCommandLevel): Added
291 ChangeCommandLevel to change the level a user needs to be to run a
294 * source/ScriptCommands.H: Added ChangeCommandLevel
296 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
298 * source/String.H: Changed #define STRING_H to BSTRING_H
300 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
302 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
303 to see if a message was sent to the bot (this is better than
304 bot:match-to-me because the hook isn't invalidated when the bot's
307 * source/DCCConnection.H: Added `nuh' back and added an
309 Added setter `set_autoRemove(bool)'
311 * source/DCCConnection.H: Removed all friends
312 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
313 reveals the pointer to the bot [PRIVATE POINTER] which probably
314 isn't so nice, but there isn't much to be done about it with the
315 current design of the bot)
317 * source/DCCChatConnection.H: Removed all friends
319 * source/DCCConnection.H: DCCConnection is now a pure virtual
320 class with the subclass DCCChatConnection
322 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
324 * source/Socket.C (connect): log errors to the bot log instead of
327 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
329 * source/Parser.C (parseMessage): use the find method of std::map
330 to find the command to call instead of [] and then extract the
331 pointer to the userFunction from that if it exists. This appears
332 to fix the crash when one uses an undefined command followed by
335 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
337 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
338 ScriptCommands::SetFloodRate
340 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
342 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
345 * source/Bot.H: Made MAX_MESSAGES writeable
347 * source/UserCommands.H: New method: SetFloodRate
349 * source/Commands.H: New method: SetFloodRate
351 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
353 * configure.ac: Merged all AC_OUTPUTs at the end
355 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
357 * scripts/bobot-utils.scm: Make exported symbols from
358 the-bot-module available in the guile-user module so that scripts
359 loaded with Interp::Load function.
361 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
363 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
364 %bot:loadpath into its own module and returns that (unnamed) module
365 (bot:use-module): Calls bot:load-module and then adds the newly
366 loaded module to the (current-module)'s use-list
368 * source/Interp.C (interp_init_helper): New procedure to initialize
369 the-bot-module (this is the old Interp::Startup verbatim)
370 (interp_post_startup_helper): New procedure to export
371 the-bot-module from bot_module
372 (Startup): Now calls interp_init_helper and
373 interp_post_startup_helper to initalize the bot module system
375 * source/Interp.H: Added private variable bot_module to Interp
377 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
379 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
380 this breaks existing scripts, this is the unstable tree after all)
382 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
384 * source/Mask.C (match): Made Mask::match case insensitive
386 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
388 * source/Interp.C (scm_apply_wrapper): turned off locking of
389 Interp::mutex to see if this makes the bot work again...and it
392 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
394 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
395 everything to use aclocal/automake 1.6
397 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
399 * source/DCCPerson.H (class DCCPerson): Added
400 UserCommands::DCCList as a friend (friends are better than the old
401 DCC() function at least).
403 * source/DCCManager.H (class DCCManager): Added
404 UserCommands::DCCList as a friend
406 * source/Interp.H (class Interp): Made function scm_apply_wrapper
407 a friend so it can lock Interp::mutex
409 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
410 MULTITHREAD is defined (it is always defined when scripting is
411 enabled) so that Sockets can be made multithreaded using
414 * source/DCCPerson.H: Removed DCC method and made Bot a friend
415 Made DCCManager a friend
417 * source/DCCManager.H (class DCCManager): Removed MAP() method
418 and made Bot a friend of DCCManager
420 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
422 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
425 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
426 user!nick@host instead of the correct nick!user@host).
428 * source/Interp.C (Startup): Register bot:DCC-chat-send
430 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
432 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
434 * source/String.C (String): The std::string copy constructor now
435 extracts the c_str of the std::string and then takes the strlen of
436 that before copying it. This fixes a bug with DCC where if you did
437 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
438 something like that, depending on what the last message was
439 because Socket will insert a \0 into its semi-static buffer, so
440 the len of the String will not equal the strlen of its char*.
442 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
444 * source/DCCPerson.H: Removed destructor (I = idiot)
446 * source/DCCConnection.H: DCCManager is now a friend of
447 DCCConnection (ugh, the bot has way too many friends).
449 * source/DCCPerson.H: Added DCC member that returns a const
450 DCCConnection* (the dcc connection). This isn't saved anywhere
451 because when a DCCPerson is destroyed, its connection is also
454 * source/Bot.H: dccConnections is now a DCCManager
456 * source/DCCPerson.H: Added destructor
457 Added handleInput method
459 * source/DCCManager.C: New file
460 (addConnection): Wrote method, add a DCCConection to the manager
462 * source/DCCManager.H: New file
464 * source/Interp.C (Startup): Register bot:DCC-chat-send
465 (Startup): Removed sendDCCChatMessage stuff
467 * source/ScriptCommands.C (sendDCCChatMessage): New method:
468 sendDCCChatMessage (to, message) sends message to to.
470 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
471 one arg: from (user!nick@host).
473 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
474 two args: from (user!nick@host) and line
476 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
478 * source/Interp.C (Startup): Two new Scheme values:
479 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
480 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
482 * source/BotInterp.H: Added two new enum values to Hook:
483 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
486 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
488 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
489 DCC! Ack, sockets take their arguments in network byte order so
490 there is no need to convert to host...now DCC _sort of_ works.
492 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
494 * source/UserList.C (save): Increment iterator twice to get around
497 * source/ServerQueue.C: Now sends SEND_* hooks instead of
498 triggered general hooks.
500 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
501 (* = the new SEND_ hooks, but lowercase).
503 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
504 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
506 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
508 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
511 * source/Socket.C (readLine): Now uses a static std::string that
512 starts out with 512 chars. This will never need to be resized for
513 usualy IRC messages, but might be for DCC messages
515 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
517 * scripts/bobot-utils.scm (not-from-me): New syntax.
519 * source/ScriptCommands.C (AddHook): Now takes another optional
520 arg--name that will name the hook (see the hooks section in the
521 manual for what this does).
523 * source/BotInterp.H: Added name field to Hook
525 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
527 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
528 PRIVMSGes because the IRC server doesn't echo them back to the
529 bot. This could be useful for something (e.g. log script).
531 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
533 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
534 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
535 associated with the hook when Interp::Shutdown is called (bot exit).
537 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
539 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
540 hook is greater than or less than the other hook, only the
541 priority is considered. However, if both hooks have the same
542 priority, then the fallthru-ness is considered, with fallthru
543 hooks being greater than non-fallthru hooks.
545 * source/BotInterp.C (hptr_lt): Added this static function to be
546 used to sort the hooks list (now hooks should be sorted using
547 Hook's operator < instead of using pointer comparision, meaning
548 the new hook system will work correctly)
550 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
551 map because we don't need the result of the displays (this would
552 just be a list of #<undefined> values and is a waste of memory).
554 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
556 * source/Bot.C (Bot): userFunctions is now a map for efficiency
557 (worst case search is now NlogN instead of N). This improvement is
558 not as drastic as the one gained by making the Parser functions
559 list a map (because we don't scan this map for every message), but
560 it helps to clean up the code
562 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
564 * source/Parser.H: Removed userFunctionsStruct
566 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
567 as bot:send-CTCP for Scheme
569 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
571 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
573 * source/ServerQueue.C (sendUser): Changed . . in USER command to
574 0 * (which is the Right Way to because <mode> must be a number...)
576 * source/Parser.C (init): New method of Parse. This initalizes the
577 functions map. functions replaces the old functions array, and
578 should yield better performance (since the functions array had to
579 be scanned for every incoming message)
581 * source/Parser.H: New member, functions (private)
583 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
585 * source/Interp.C (Startup): New symbols: bot:user-*
586 [none|user|trusted|friend|master] are defined in Scheme as the
587 different levels of the users.
588 (Startup): All bot-* variables are now bot:*
590 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
592 * source/Bot.H: Made some variables private because they shouldn't
593 be changed at runtime
595 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
596 this out to see if it works and make it work)
598 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
601 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
602 scripts in the user scripts dir) that made bobot++ not able to
603 load scripts from the user scripts dir
605 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
607 * source/BotInterp.C (RunHooks): Changed iterators to
608 reverse_iterators because the hooks list is sorted in ascending
609 order--higher priority and fallthrough hooks appear _after_ the
610 lower priority and non-fallthrough hooks.
612 * source/Main.C (print_long_help): Added function
613 (print_short_help): Renamed from printUsage
614 (namespace): Most stuff in here is now defined in an anonymouse
615 namespace so it doesn't have external linkage
616 (real_main): Uses getopt_long instead of getopt. Added several
617 command line arguments (bobotpp --help for a full list).
619 * scripts/bobot-utils.scm (bot-load): Function moved from
622 * source/Interp.C (Startup): Autoloads
623 PREFIX/bobotpp/scripts/bobot-utils.scm now
624 (Startup): New Scheme variable: bot-sys-scripts-dir (system
627 * source/bobot-scheme.scm.in: Removed
629 * source/Makefile.am: Removed bobot-scheme.scm compiliation
631 * configure.ac (PREFIX): configure.ac defined prefix now
633 * source/Main.C (real_main): Default configuration is now read
634 from /etc/bobotpp/default
635 * source/bobot-scheme.scm.in: Added file. This defines the
636 'bot-load' procedure which will load a file from
637 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
638 script doesn't exist in the user script dir.
640 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
642 * bobot++.texinfo: Started docs (just a skeleton right now)
644 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
645 args to set a hooks priority and whether or not it will
646 fallthrough. These args are optional.
648 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
650 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
651 (RunHooks): exec fallthrough hooks first.
653 * source/BotInterp.H: Changed Hooks to have priority
654 Added fhooksMap to BotInterp (fallthrough)
656 * source/UserCommands.C (AddShit): Converted to use Commands
658 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
660 * source/Commands.C (AddUser): Fixed a one-off (function call was
661 before a brace instead of after one) that caused a segfault when
662 the user mask was a wildcard
664 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
666 * all files: Updated address of the FSF
668 * source/UserCommands.C (AddUser): Uses Commands now instead of
669 manipulating the bot directly
671 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
673 * source/ScriptCommands.C (AddShit): Filled in function.
675 * source/Interp.C (Startup): Bind bot-adduser to
676 ScriptCommands::AddUser instead of Action
677 (Startup): Bind bot-addshit to ScriptCommands::AddShit
679 * source/ScriptCommands.C (AddUser): Filled in function
681 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
682 would have caused problems if you used more than one server
684 * source/Parser.H: Changed const char* to String in userFunctionStruct
686 * source/String.H: Added std::string compatibility members
688 * configure.ac: You can now disable Crypt and scripting
690 * source/*: Added #include "config.h" where needed
692 * configure.ac: Added AM_CONFIG_HEADER
694 * config.h.in: added file
696 * source/Queue.C: Didn't notice iostream.h here! Fixed
699 Copyright 2002,2003,2004,2005 Clinton Ebadi
700 Copying and distribution of this file, with or without modification, are
701 permitted provided the copyright notice and this notice are preserved.