ref: ac1bba5919826c706033a0b2d7ea22828668c6ba
parent: 88e7b527621a7a337b796eb0455b1e810d6a4e60
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Aug 5 11:53:08 EDT 2018
Report bad messages.
--- a/irc.myr
+++ b/irc.myr
@@ -68,6 +68,7 @@
| "QUIT": deluser(irc, srv, src)
| "PART": delchanuser(irc, srv, src, args)
| "366": shownames(irc, srv, args, 1)
+ | "401": badmsg(irc, srv, args, ln)
| "PRIVMSG": receivemsg(irc, srv, src, args)
| "PING": send(irc, srv, "PONG :{}\r\n", a0)| "JOIN": joined(irc, srv, src, args)
@@ -100,6 +101,16 @@
;;
}
+const badmsg = {irc, srv, args, ln+ var c
+
+ if args.len < 3
+ status(irc, irc.self, "unknown server command {}", ln)+ ;;
+ c = name2chan(irc, srv, args[1])
+ status(irc, c, "{}", args[2])+}
+
const joined = {irc, srv, src, argsvar c, name
@@ -305,7 +316,7 @@
-> void
;;
match sp[0]
- | "/onconn": std.slpush(&irc.onconn, std.sldup(std.strstrip(text[sp[0].len:])))
+ | "/redo": std.slpush(&irc.onconn, std.sldup(std.strstrip(text[sp[0].len:])))
| "/connect": connect(irc, sp[1:])
| "/join": join(irc, sp[1:])
| "/leave": leave(irc, sp[1:])
@@ -320,7 +331,7 @@
| "/msg": privmsg(irc, sp[1:])
| "/me": action(irc, sp[1:])
| "/": message(irc, std.strfstrip(text[1:]))
- | c: status(irc, irc.self, "unknown command: /{}", text)+ | c: status(irc, irc.self, "unknown command: {}", text);;
std.slfree(sp)
}
--- a/main.myr
+++ b/main.myr
@@ -68,8 +68,8 @@
continue
;;
s.death = 0
- for j : irc.onconn
- do(irc, j)
+ for c : irc.onconn
+ do(irc, c)
redraw(irc)
;;
for c : s.chan
@@ -138,11 +138,16 @@
irc.self = mkchan(irc, "status", "status", "status")
match bio.open(rcfile, bio.Rd)
+ | `std.Err e: /* nothing */
| `std.Ok cfg:
for ln : bio.byline(cfg)
do(irc, ln)
;;
- | `std.Err e:
+ status(irc, irc.self, "doing {}", irc.onconn)+ for c : irc.onconn
+ do(irc, c)
+ redraw(irc)
+ ;;
;;
-> irc
--
⑨