/usr/share/epic5/lice5/lice/lice.cwho is in epic5-script-lice 1:5.2.7-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | #
# IRC Script Program. For use with ircii-EPIC5 clients.
# Copyright (C) 2000 SrfRoG (cag@codehack.com)
#
# ---------------------------------------------------------------------------
# All code by SrfRoG, unless specified. Visit http://lice.codehack.com
# ---------------------------------------------------------------------------
# Updated for EPIC5 by tjh
# Updated 3/5/2012 to support %halfop
IF (word(2 $loadinfo()) != [pf]) {
LOAD -pf $word(1 $loadinfo());
RETURN;
};
PACKAGE LiCe;
# Cache'd WHO - brief WHO info on-the-fly
# flags idea by SpyDer-X
ALIAS cwho {
^LOCAL cw.mask *!*;
@ :cw.foo = getopt();
@ :cw.opts = [];
@ :cw.flag = 0;
@ :cw.cnt = 1;
WHILE (cw.opts = getopt(optopt optarg alovh $*)) {
SWITCH ($cw.opts) {
(a) { @ :cw.flag = 1 };
(l) { @ :cw.flag ^= 2 };
(o) { @ :cw.flag ^= 4 };
(v) { @ :cw.flag ^= 8 };
(h) { @ :cw.flag ^= 16 };
(!) { XECHO -B Invalid option \"$optopt\" };
};
};
IF (optarg) {
@ :cw.mask = uhc($word(0 $optarg));
^ASSIGN -optarg;
};
UNLESS (cw.flag) { @ :cw.flag = 1 };
@ :cw.hash = hash_32bit($C);
cecho ------ Nick ---- User@Host ---------------------------;
FE ($channel()) cw.1 {
@ :cw.nick = rest(2 $cw.1);
@ :cw.fmode = get_cookie(User $C $cw.nick $cw.hash);
@ :cw.smode = get_cookie(Shit $C $cw.nick $cw.hash);
@ :cw.type = [];
IF (cw.fmode > 0 || cw.smode > 0) {
@ :cw.type = [${ cw.fmode ? [\(User \+$_proc.ul_m2a(User $cw.fmode)\)] : [${ cw.smode ? [\(Shit \+$_proc.ul_m2a(Shit $cw.smode)\)] : [] }]}];
};
@ :cw.omode = left(1 $cw.1);
IF (cw.omode == [@] && (cw.flag & 1 || cw.flag & 4)) {
@ :cw.host = userhost($cw.nick);
IF (pattern($cw.mask ${cw.nick}!${cw.host})) {
cecho [$[-3]cw.cnt] @$[9]cw.nick $cw.host $cw.type;
@ cw.cnt++;
};
CONTINUE;
};
@ :cw.hmode = left(1 $cw.1);
IF (cw.hmode == [%] && (cw.flag & 1 || cw.flag & 16)) {
@ :cw.host = userhost($cw.nick);
IF (pattern($cw.mask ${cw.nick}!${cw.host})) {
cecho [$[-3]cw.cnt] %$[9]cw.nick $cw.host $cw.type;
@ cw.cnt++;
};
CONTINUE;
};
@ :cw.vmode = mid(1 1 $cw.1);
IF (cw.vmode == [+] && (cw.flag & 1 || cw.flag & 8)) {
@ :cw.host = userhost($cw.nick);
IF (pattern($cw.mask ${cw.nick}!${cw.host})) {
cecho [$[-3]cw.cnt] +$[9]cw.nick $cw.host $cw.type;
@ cw.cnt++;
};
CONTINUE;
};
IF (cw.omode == [.] && (cw.flag & 1 || cw.flag & 2)) {
@ :cw.host = userhost($cw.nick);
IF (pattern($cw.mask ${cw.nick}!${cw.host})) {
cecho [$[-3]cw.cnt] $[9]cw.nick $cw.host $cw.type;
@ cw.cnt++;
};
};
};
UNLESS (cw.cnt > 1) {XECHO -B No matches for \"$cw.mask\"};
};
#tjh/12
|