See also: ideas.txt. Stuff marked with [*] means, things that must be done before Alpha-2. Once they're all finished, I'll tag alpha2 and post it on AA. FujiChat features, we're almost at parity! X Configurable ctcp version response. Not going to do for now. Having the git commit and date in the version response is more important, during the alpha release cycle. - [*] Keyboard buffer, if possible. Right now we miss the occasional keystroke when typing fast & furious during network I/O. Not sure how to accomplish this with FujiNet (the old FujiChat key buffer actually hooked into the SLIP code). Use a VBI I guess. If that doesn't do it, it would require a custom SIO replacement... well, I have the OS source, so maybe. Other stuff: - [*] edit box issues with the 240th character. Example: fill up the buffer until it beeps, then left-arrow, then ^U. - Maybe: if the user types 240 chars into the edit box, then tries to type another, the first 240 chars get sent to the server, the box clears, and the new keystroke appears as the start of a new message. On the fence about this one: irssi does it, but it might surprise people. Could make it a preference... - Maybe: get rid of the Hide MOTD and Show PING/PONG preferences. People can always type /motd if they're interested, and the ping/pong stuff has been tested thoroughly by now. - [*] Start+A should *always* switch windows, even if all are inactive. It can act like Start+Left in that case. Or (I'm told) Start+Tab might be better? Not sure about that one. - [*] Auto-pinging the server seems to work, but needs more testing. - If you "/m #channel message" or "/m nick message" from another screen besides the one for #channel or nick, the message should be printed locally in the correct screen, not the current one. Maybe or maybe not: switch to that screen. - Load/save config files to N:SD///.FujiNetChat or such. Since we *have* to have a FujiNet anyway, might as well make better use of it. - Rewrite the incoming message parser! It needs to work more like the command parser in cmd.c: know how many arguments to expect, and not blindly assume they're present. Also, replace strtok() and strstr() with nextarg(). - *Thoroughly* test the nick and channel tab completion for the [private] and [server] screens. - Fix the nick completion in channel screens. It works, but needs some polishing up. - More scrollback. Of course it needs more memory... see doc/scrollback.txt for my ideas on this. - Server /ping command is iffy (see do_server_pong() in irc.c). - "User has kicked from #channel", the name should be replaced by "you". - Gracefully handle nicks/channels whose lengths are stupid long. At least we shouldn't overflow any buffers. - At least one keyboard macro (for ChanServ auth). More would be nice, if we can afford the RAM. - Add an optional key parameter to /join (key). spec calls for it, I've never seen it used. - *Possibly* save the config from within the client... though not all options can be changed (really only /nick and /beep). To make this useful would probably bloat the code too much. Some way to change the IRC server/port within the app would be very useful though. Config file and initial config: - The config tool should be rewritten in asm, for size. It doesn't need to be fast, but it needs to *load* fast. - The config UI should be nicer. Dialog/curses style, arrows to move, and hotkeys like [S]erver, [N]ick. Categories (as tabs? tree?). I'm not going to get this right without some user feedback, since I'm mainly a CLI and text editor guy. - There should be a file selector for load/save config. More prefs: - Ignore list (maybe). - Connect macro (log in to bot). Remember, the config has to be <= 512 bytes!