-2.2 will be released when most of these are done
-
-General:
-* Make String operator >> act like all other >>'s, and add getline?
-* finish ISO C++-ification (remove deprecated uses of static, casts)
-* Finish converting UserCommands to use Commands
-* Audit code and see what data in classes should be made private and
- have getters/setters added (e.g. logFileName in Bot--if this is
- changed the log file doesn't change after the Bot is started).
-
-Scripting:
-* Make bot:random use the Guile RNG instead of C RNG (better?)
- - definition would be (define (bot:random) (random BIG_NUMBER))
- - Just use max-fixnum from the test scripts for BIG_NUMBER
-* Add commands to delete a hook
- - return an iterator to the hook and let the user kill it?
- - this would require a new SMOB to be created
-* Add Scheme utils function to convert "normal" dates into time since
- 1970.
-* Finish adding commands to Scheme for sending messages
- (e.g. bot:send-CTCP to send a CTCP message)
-* Add util functions for doing stuff like quoting CTCP messages
-* Call hooks/public when bot sends a privmsg to a channel (read IRC
- protocol spec for other stuff that might need this)
-
-Networking:
-* Add a networked interface to guile repl
- - Admins only
- - SSH? Telnet? DCC-Chat?
- - Access to repl will require user to authenticate
- - Allow server to be disabled at run because of security...
-* Fix DCC support
- - Note that Socket will have a buffer overflow problem with DCC
- because it uses a buffer of 512 characters, and a DCC line is not
- limited to 512 chars like an IRC line is. The question is: should
- I rewrite readLine to be more general (allocate buffer on the
- fly) or rename readLine to ircReadLine and add a more general
- readLine? I think I could use a static std::string and have it
- grow as needed, with a default size of 512.
-* Add Channel logging (log full text of channel if enabled) script
-* Make connecting to irc.oftc.net work...I wonder if their ircd is b0rked
-
-Documentation:
-* Work on Texinfo manual (especially scripting section)
-
-Other (post 2.2 release):
-* Remove gh_* when Guile 1.8 is released
\ No newline at end of file
+Done (2.2):
+* DCC CHAT min user level
+* Lots of hooks related stuff that I never wrote down
+* Abstract DCC support so that DCC FILE may be easily implemented
+* Wrote config database class
+* Compile without warnings
+* bot:protection/[none|no-ban|no-kick|no-deop] constants
+* bot:aop/[no|yes] constants
+* Utils::valid_nickname_p should have a configurable max nick length
+* More detailed script error reporting
+* Commands::sendCTCP, Commands::sendCTCPReply
+* Add DCC_CHAT_END hook for Scheme
+* Implement ctcp-quote
+
+2.2.1:
+* Finish Texinfo manual
+* Implement ctcp-dequote
+* Finish adding commands to Scheme for sending messages
+* Finish adding hooks/send hooks
+
+2.4:
+* Use configuration database class
+* Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v)
+* Add !setcommandlevel (move ScriptCommands implementation to Commands
+ and add a UserCommands)
+* Improve the help system
+* Enhance the scripting layer
+
+2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise):
+General:
+* Eliminate String class
+* Finish converting UserCommands to use Commands
+* Audit code and see what data in classes should be made private and
+ have getters/setters added (e.g. logFileName in Bot--if this is
+ changed the log file doesn't change after the Bot is started).
+* DCC FILE support (sending and recieving)
+* Possibly convert BotConfig to use boost::any instead of std::string
+ as t_value
+* Remove StrinkTokenizer, replace with boost::tokenizer
+* Remove string procedures from Utils, replace with boost::string_algo
+* Use boost::timer for internal timers
+
+Scripting:
+* Add commands to delete a hook
+ - return an iterator to the Hook
+ - this would require a new SMOB to be created
+ - Scheme could pass Hook objects around and do nifty things
+ - At least allow all hooks of a type with the same name field to be
+ deleted at once (also all hooks with the same name). Also allow
+ deleting based on the regexp
+
+Networking:
+* Add a networked interface to guile repl
+ - This can (should) be done as a script, but requires non-coop threads
+ support to be done easily (and thus requires Guile 1.8)
+ - Admins only
+ - Telnet
+ - Store authorized users and passwords in bot.telnet file
+ - Bot master can add new telnet users
+ - MUST HAVE PASSWORD
+* See if Socket::readLine could be sped up (profile it first to see if
+ it even matters)
+
+Definitely 3.0:
+* Remove gh_* when Guile 1.8 is released
+* Replace large select-loop in Bot::waitForInput with multithreaded
+ - To clarify: There will be one thread for DCCs and another thread
+ for the current irc server connection, each with its own select
+ loop. There may also be a thread for the network repls if I
+ implement those.
+
+Maybe:
+* Make it possible to use Scheme functions in the Parser itself
\ No newline at end of file