diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-03-21 05:20:18 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-03-21 05:20:18 -0400 |
| commit | 0cad011f41fe6cabba1dc6f6186c08556db247d4 (patch) | |
| tree | 52df03a0a38cb8aa0561ef87b114dbd8953a8321 /src | |
| parent | ab2c13a26d23e336fca881e1375235aff4f2dc5e (diff) | |
| download | fujinet-chat-0cad011f41fe6cabba1dc6f6186c08556db247d4.tar.gz | |
Stop using FujiNet's CRLF translation (set it to "none"), do our own CRLF processing. Allows the ~ character to be sent properly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/irc.c | 19 | ||||
| -rw-r--r-- | src/irc.h | 4 | ||||
| -rw-r--r-- | src/main.c | 7 |
3 files changed, 17 insertions, 13 deletions
@@ -663,15 +663,16 @@ static void irc_split_Lines(void) { char *p = rx_buf; for(i = 0; i < rxbuflen; i++) { - msgbuf[msgbuf_len] = *p; - if(*p == CH_EOL) { - // msgbuf[msgbuf_len + 1] = '\0'; - /* do not include the EOL */ - msgbuf[msgbuf_len] = '\0'; - parse_msg(); - msgbuf_len = 0; - } else { - msgbuf_len++; + /* skip ASCII \r character */ + if(*p != 0x0d) { + if(*p == 0x0a) { + /* got ASCII \n */ + msgbuf[msgbuf_len] = '\0'; + parse_msg(); + msgbuf_len = 0; + } else { + msgbuf[msgbuf_len++] = *p; + } } p++; } @@ -1,4 +1,6 @@ -#define FNET_TRANSLATION 3 +/* 0 = no translation (used to use 3, CRLF) */ +#define FNET_TRANSLATION 0 + #define MAX_IRC_MSG_LEN 512 #define streq(x,y) !strcmp(x,y) @@ -73,9 +73,10 @@ void txbuf_send(void) { /* don't send empty buffer */ if(!txbuflen) return; - /* always terminate with EOL */ - if(tx_buf[txbuflen - 1] != '\n') - tx_buf[txbuflen++] = '\n'; + /* always terminate with *ASCII* CRLF. + DO NOT USE '\n' or even '\x0a', cc65 turns it into $9b! */ + tx_buf[txbuflen++] = 0x0d; + tx_buf[txbuflen++] = 0x0a; ind_net_tx(); nwrite(conf->url, tx_buf, txbuflen); |
