function send(msg) {
print " > " msg > "/dev/stderr"
print msg
- system("sleep 1")
+ if (!DEBUG)
+ system("sleep 1")
fflush()
}
send("NICK " nick)
}
}
-function privmsg(to, msg) {
+
+function say(to, msg) {
+ if (msg == "") {
+ msg = to
+ if (DST ~ "^#")
+ to = DST
+ else if (DST == NICK && FROM)
+ to = FROM
+ else
+ to = CHANNEL
+ }
send("PRIVMSG " to " :" msg)
}
-function say(msg) {
- if (DST ~ "^#")
- privmsg(DST, msg)
- else if (DST == NICK && FROM)
- privmsg(FROM, msg)
+
+function action(to, msg)
+{
+ if (msg)
+ say(to, "\001ACTION " msg "\001")
else
- privmsg(CHANNEL, msg)
+ say("\001ACTION " to "\001")
}
function reply(msg) {
BEGIN {
if (CHILD == "") {
debug("Starting server");
- status = system("awk -f rhawk -v CHILD=1 -v FIRST=1");
+ cmd = "awk -f rhawk" \
+ " -v CHILD=1" \
+ " -v START=" systime() \
+ " -v DEBUG=" !!DEBUG
+ status = system(cmd " -v FIRST=1");
while (status)
- status = system("awk -f rhawk -v CHILD=1");
+ status = system(cmd);
exit(0);
} else {
- debug("Starting child: CHILD=" CHILD " FIRST=" FIRST);
+ debug("Starting child:" \
+ " DEBUG=" DEBUG \
+ " CHILD=" CHILD \
+ " START=" START \
+ " FIRST=" FIRST);
}
}
ARG = arr[8]
MSG = arr[10]
- match(SRC, /([^! ]+)!/, arr);
+ match(SRC, /([^! ]+)!([^@ ]+)@([^ ]+\/[^ ]+)?/, arr);
FROM = arr[1]
+ AUTH = arr[3]
match(MSG, /(([^ :,]*)[:,] *)?(.*)/, arr);
TO = arr[2]
- $0 = TO == NICK ? arr[3] : MSG
+ $0 = TO ? arr[3] : MSG
- if (CMD == "PRIVMSG" && DST == NICK && FROM)
+ if (CMD == "PRIVMSG" && DST == NICK && FROM && !TO)
TO = DST
- set()
+ #set()
}
# IRC client