diff options
Diffstat (limited to 'mbbsd/io.c')
-rw-r--r-- | mbbsd/io.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -165,6 +165,8 @@ add_io(int fd, int timeout) int num_in_buf(void) { + if (ibufsize <= icurrchar) + return 0; return ibufsize - icurrchar; } @@ -267,6 +269,15 @@ dogetch(void) currutmp->lastact = now; lastact = now; } + + // CR LF are treated as one. + if (inbuf[icurrchar] == Ctrl('M')) + { + if (++icurrchar < ibufsize && + inbuf[icurrchar] == Ctrl('J')) + icurrchar ++; + return Ctrl('M'); + } return (unsigned char)inbuf[icurrchar++]; } @@ -626,6 +637,8 @@ igetch(void) } return ch; + // try to do this in getch() level. +#if 0 case Ctrl('J'): /* Ptt §â \n ®³±¼ */ #ifdef PLAY_ANGEL /* Seams some telnet client still send CR LF when changing lines. @@ -633,6 +646,7 @@ igetch(void) */ #endif continue; +#endif default: return ch; |