aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO15
-rw-r--r--src/irc.c8
2 files changed, 6 insertions, 17 deletions
diff --git a/TODO b/TODO
index c5585c4..6ecdd5b 100644
--- a/TODO
+++ b/TODO
@@ -20,21 +20,6 @@ Other stuff:
- [*] When running /motd after connection, it works (even if 'hide
MOTD' is enabled), but it jumps to screen #3 if there's a channel
in that screen.
-? Implemented, but not sure it was worth doing:
- If an VBI-driven keyboard buffer turns out to be impossible or
- too much of a PITA to contemplate, another idea to avoid dropping
- keystrokes: after every keypress, wait something like 1/4 or 1/3
- second for another keypress, before checking for incoming net
- traffic. As long as the user's typing 4 (or 3) keys per second,
- he won't lose keystrokes. Probably have to put a limit on it,
- a pathological case would be holding down a key long enough to
- fill the edit box with 240 of the same character. That would
- cause a 60 sec delay in net traffic, which might actually cause
- us to time out... need some data on just how fast a fast typist
- really types, and on average, how often they pause (to think or
- read back what they just wrote, etc). Also look into detecting
- key repeats (SRTIMER).
- Remove this when/if I do a proper typeahead buffer.
- [*] Write a cgetc() replacement that doesn't call the OS K: "get one byte"
routine. I was avoiding it because it will need a 192-byte table
(keycode -> atascii lookup)... but I'm spending more than 192 bytes
diff --git a/src/irc.c b/src/irc.c
index cafd0a0..00ec89a 100644
--- a/src/irc.c
+++ b/src/irc.c
@@ -443,11 +443,13 @@ static void do_numeric(void) {
*/
case ERR_NICKNAMEINUSE:
- do_catchall(0);
- if(!regged) {
+ if(regged) {
+ scr_activate(scr_current);
+ } else {
permute_nick();
send_nick();
}
+ do_catchall(1);
break;
/* don't print these, just noise */
@@ -501,6 +503,8 @@ static void do_numeric(void) {
break;
default:
+ if(num >= 400 && num < 600)
+ scr_activate(scr_current);
do_catchall(1);
break;
}