aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: df5062e17ec21b2f9939ae19ed79d7606e7a4189 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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:

- [*] Start+A should *always* switch windows, even if all are inactive.
  It can act like Start+Left in that case.
- [*] 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 <yourname> 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!