aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: e3d979f6ba3cde980ee159b40de74631b8b42ca7 (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
68
69
See also: ideas.txt.

FujiChat features, we're almost at parity!

- Nick tab completion in channels. FujiChat's was very lame, make
  this one less lame. It can't be perfect due to limited RAM.
- Configurable ctcp version response. Does it matter?
- 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:

- Channel tab completion for the [server] screen.
- Polish up the nick tab completion for the [private] screen.
- Ping the server periodically, and set a 30-sec timer. If no PONG
  within 30 sec, assume we're disconnected: close the connection and
  go into the reconnect loop.
- More scrollback. Of course it needs more memory... see doc/scrollback.txt
  for my ideas on this.
- Status indicators # M J etc should disappear at some point. When
  the user switches windows. Also maybe there should be a timer.
- ^U works, but is slow (calls backspace() in a loop, which does a
  memmove() each time).
- Server /ping command is iffy (see do_server_pong() in irc.c).
- Bug: *no idea* how this happened. I typed /quit, then reconnected,
  and got "USER: not enough parameters" from the server. Can't
  reproduce.
- "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.
- Error numerics should go to the current screen (?).
- Add an optional key parameter to /join (key). spec calls for it,
  I've never seen it used.
- 'Dead' screens (channels we've parted, or failed to join) should
  show some kind of indicator, and not accept input. Although maybe
  this isn't worth doing (you already get "cannot send to channel").
- *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.
- Input box history. Up-arrow to recall previous command. Unfortunately
  this needs a lot of RAM. Maybe just one previous command, so you
  can up-arrow to re-ping someone, etc.

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 preset list of servers to choose from, or the
  user can enter his own.
- There should be a file selector for load/save config.
More prefs:
- CTCP VERSION response? Do we need it?
- Ignore list (maybe).
- Connect macro (log in to bot).

Remember, the config has to be <= 512 bytes!