aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO134
1 files changed, 67 insertions, 67 deletions
diff --git a/TODO b/TODO
index 9490827..660e45d 100644
--- a/TODO
+++ b/TODO
@@ -1,76 +1,76 @@
-FujiChat features:
+See also: ideas.txt.
-- nick tab completion (FujiChat's was very lame)
-- option to not show ping/pong
-- hide motd
-- settable real name (currently hardcoded "FujiNetChat User")
+FujiChat features, we're almost at parity!
+
+- Nick tab completion. FujiChat's was very lame, make this one
+ less lame. It can't be perfect due to limited RAM.
+- Real name is configurable in the UI, but not yet used in
+ the client!
Other stuff:
-- at least one keyboard macro (for ChanServ auth)
-- error numerics should go to the current screen
-- autojoin on startup
-- add an optional 2nd parameter to /join (key). spec calls for it,
+- Gracefully handle nicks/channels whose lengths are stupid long.
+ At least we shouldn't overflow any buffers.
+- Channel tab completion for the [server] screen.
+- Auto-reconnect on error, with backoff timer. Do not
+ reconnect if user types /quit though.
+- 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 (?).
+- Autojoin on startup (see config file section below).
+- Add an optional key parameter to /join (key). spec calls for it,
I've never seen it used.
-- decide whether to allow mass joins: /join #chan1,#chan2,#chan3
+- Decide whether to allow mass joins: /join #chan1,#chan2,#chan3
not sure how widely supported it is on various networks. right
- now, it works with libera, but only the first channel gets a
- screen. better to do it client-side, /join #chan1 #chan2 #chan3,
+ now, it's explicitly not allowed.
+ better to do it client-side, /join #chan1 #chan2 #chan3,
accept lots of arguments (but don't support keys).
+ If someone does need channel keys, we can support that with
+ a 2-arg /join whose 2nd arg doesn't start with #... unless
+ the key starts with #! Give this further thought.
- /join also supports "/join 0", which parts all channels. don't
have to do anything special for it, but do document it.
-- 'dead' screens (channels we've parted) should show some kind of
- indicator, and not accept input.
-- use GR.1 for the activity indicators, so they can be colorful.
-
-See also: ideas.txt
-
-...
-
-Config file. At minimum, these:
-
-Server
-Port
-SSL?
-Nick
-Channel/query list
-
-Extras:
-
-AltNick
-Colors (BG/FG/BAK) (per-channel? or just one set?)
-Screen layout (pre-create channel and query windows)
-Macros (with Select key, 1-9, 0 for #10)
-CTCP VERSION response (config utility can auto-detect OS type?)
-
-The config will be created by a separate tool, FNCHATCF. This should
-have a built-in list of known IRC servers to choose from, plus the
-ability to add more. Maybe store them in a file called FNCHATCF.SRV.
-
-Distribution disk: MyDOS, with a menu as .AR0 where you can select
-whether or not to run the config tool. If there's no config file, just
-run the tool. Maybe another menu option to read the README? Use MyDOS
-because cc65's exec() works with it (no writing my own exec() function
-this time around).
-
-Menu might just be:
-
-FujiNetChat v0.0-YYYYMMDD-githash
-
-<No> config file loaded <from D:FHCNAT.CFG>.
-
-[Option] Read the manual.
-[Select] Connection setup.
-[Start] or [Return] Connect to IRC server.
-[Escape] Exit to DOS.
-
-...and if there's no config file on D: or in memory, the Start option
-is greyed out.
-
-Reserve a memory area for the config, so after FNCHATCF runs FNCHAT,
-there's no need to reload the config. There won't be a /server command
-in the client, so connecting to a different server means re-running
-the config tool.
-
-On disconnect: [R]econnect, [C]onfig, [Q]uit, [B]oot: [R]
-Quit will exit to DOS. If that can be made to work, anyway.
+- '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").
+- Use GR.1 for the activity indicators, so they can be colorful.
+- *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.
+- Loading/title screen. Display immediately before the config init
+ segment is loaded, and again when it runs the client. Its DL and
+ data can be kept in scrollback RAM, since scr_init() clears it.
+ Should be small & simple (one line of GR.2 probably). Have to
+ not disable ANTIC DMA during the client load.
+- Handle redirects better. Trying to "/join #slackware" on Libera
+ results in actually joining ##slackware. But a screen got created
+ for #slackware, and ##slackware will appear in the [server] screen.
+ This shouldn't be hard to do.
+- 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:
+
+- BUG: yn() doesn't get passed the default value, it always defaults
+ to Y.
+- 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.
+- Allow user to manually read MOTD even if hide_motd is set.
+More prefs:
+- CTCP VERSION response?
+- 5 channels/queries for screens 2-7.
+- List of non-screen channels to join.
+- Ignore list (maybe).
+- Connect macro (log in to bot).
+
+Remember, the config has to be <= 512 bytes!