ref: bbb7ff33093713b0e60442a5838d3c28def2ca31
parent: ac1bba5919826c706033a0b2d7ea22828668c6ba
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Aug 5 12:11:20 EDT 2018
Be a bit more compliant.
--- a/irc.myr
+++ b/irc.myr
@@ -42,6 +42,7 @@
| `std.Some l: ln = l
| `std.None: -> void
;;
+
(src, cmd, args) = parse(ln)
a0 = args.len > 0 ? args[0] : ""
uppercase(cmd)
@@ -62,7 +63,6 @@
| "376": srvmsg(irc, args)
| "333": srvmsg(irc, args)
| "470": srvmsg(irc, args)
- | "NOTICE": srvmsg(irc, args)
| "332": topic(irc, srv, args)
| "353": addusers(irc, srv, args)
| "QUIT": deluser(irc, srv, src)
@@ -69,6 +69,7 @@
| "PART": delchanuser(irc, srv, src, args)
| "366": shownames(irc, srv, args, 1)
| "401": badmsg(irc, srv, args, ln)
+ | "NOTICE": receivemsg(irc, srv, src, args)
| "PRIVMSG": receivemsg(irc, srv, src, args)
| "PING": send(irc, srv, "PONG :{}\r\n", a0)| "JOIN": joined(irc, srv, src, args)
@@ -141,15 +142,19 @@
const receivemsg = {irc, srv, src, argsvar c
- if std.sleq(args[0], srv.nick)
- c = name2chan(irc, srv, displayname(src))
- else
- c = name2chan(irc, srv, args[0])
- ;;
- if args.len > 1 && isctcp(args[1])
- ctcpmsg(irc, srv, c, src, args[1][1:args[1].len-1])
- else
- chanmsg(irc, srv, c, src, args[1])
+ for name : std.bysplit(args[0], ",")
+ if std.sleq(name, srv.nick)
+ c = name2chan(irc, srv, displayname(src))
+ elif std.eq(name, "*") || std.eq(name, "?")
+ c = irc.self
+ else
+ c = name2chan(irc, srv, name)
+ ;;
+ if args.len > 1 && isctcp(args[1])
+ ctcpmsg(irc, srv, c, src, args[1][1:args[1].len-1])
+ else
+ chanmsg(irc, srv, c, src, args[1])
+ ;;
;;
}
--
⑨