aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2026-03-21 05:20:18 -0400
committerB. Watson <urchlay@slackware.uk>2026-03-21 05:20:18 -0400
commit0cad011f41fe6cabba1dc6f6186c08556db247d4 (patch)
tree52df03a0a38cb8aa0561ef87b114dbd8953a8321 /src
parentab2c13a26d23e336fca881e1375235aff4f2dc5e (diff)
downloadfujinet-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.c19
-rw-r--r--src/irc.h4
-rw-r--r--src/main.c7
3 files changed, 17 insertions, 13 deletions
diff --git a/src/irc.c b/src/irc.c
index 137e66c..c07e666 100644
--- a/src/irc.c
+++ b/src/irc.c
@@ -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++;
}
diff --git a/src/irc.h b/src/irc.h
index 783c223..6a4770a 100644
--- a/src/irc.h
+++ b/src/irc.h
@@ -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)
diff --git a/src/main.c b/src/main.c
index 068322d..b5de37b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);