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. currently everything seems to work properly, but you can't type 240 chars (only 239). out of patience for it right now... - 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!