diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-03-11 06:26:04 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-03-11 06:26:39 -0400 |
| commit | d92bf1f7cf76d0c678ccbaea10a5ff6d41630e52 (patch) | |
| tree | d890d17b83013c6f0a975f8431d478eff94f5542 /TODO | |
| parent | ea47f06b8fa0ebab649ea1f7b323246d7e482438 (diff) | |
| download | fujinet-chat-d92bf1f7cf76d0c678ccbaea10a5ff6d41630e52.tar.gz | |
Remove server/nick prompts from client, add a separate config tool that loads as an init segment, with lots more options.
Diffstat (limited to 'TODO')
| -rw-r--r-- | TODO | 134 |
1 files changed, 67 insertions, 67 deletions
@@ -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! |
