ref: 5834a0996b3baa16e9773354cf9b333057079b9e
parent: 229f4548e2b2a652a6752158479bea49fdd8a0e8
author: Ori Bernstein <ori@eigenstate.org>
date: Mon Nov 6 18:24:32 EST 2017
Update to latest libtermdraw.
--- a/irc.myr
+++ b/irc.myr
@@ -140,6 +140,7 @@
| "PRIVMSG": recievemsg(cli, srv, src, args)
| "PING": send(cli, srv, "PONG :{}\r\n", args[0])| "JOIN": joined(cli, srv, src, args)
+ | "NICK": renamed(cli, srv, src, args)
| c:
status(cli, cli.self, "unknown server command {}", ln);;
@@ -148,15 +149,20 @@
;;
}
+const renamed = {cli, srv, src, args+ if args.len > 0
+ for c : srv.chan
+ status(cli, c, "changed nick: {} => {}", displayname(src), displayname(args[0]))+ ;;
+ ;;
+}
+
const joined = {cli, srv, src, argsvar c, name
if args.len == 1
c = name2chan(cli, srv, args[0])
- match std.strfind(src, "!")
- | `std.Some i: name = src[:i]
- | `std.None: name = src
- ;;
+ name = displayname(src)
match std.lsearch(c.users, name, std.strcmp)
| `std.None: std.slpush(&c.users, std.sldup(name))
| `std.Some _: /* ignore */
@@ -246,6 +252,14 @@
;;
}
+
+const displayname = {src+ match std.strfind(src, "!")
+ | `std.Some i: -> src[:i]
+ | `std.None: -> src
+ ;;
+}
+
const mkclient = {var cli, home, path, t
var nick, user
@@ -628,7 +642,7 @@
| `std.None:
break
| `std.Some `termdraw.Winsz _:
-
+ /* nothing */
| `std.Some `termdraw.Kc '\n':
do(cli, cli.input)
done(cli)
--
⑨