Return a tokenized list of all nicks that match the wildcard given.
alias nickSearch {
; Returns a tokenized list of nicks matching the given wildcard
; USAGE: $nickSearch(<chan>,<wildcard match>,<delimiter>,[some true value])
; optional fourth value sorts return alphabetically if non-false value
; Example: $nickSearch(#channel,a*,32)
if ($me !ison $1) {
echo 4 -s * : not in channel
}
elseif ($3 !isnum) {
echo 4 -s * : invalid delimiter
}
else {
var %o,%i = 1
while ($nick($1,%i,a)) {
if ($2 iswm $v1) {
%o = $addtok(%o,$v2,$3)
}
inc %i
}
if ($4) {
%o = $sorttok(%o,$3)
}
return %o
}
}
Why loop?
alias nickSearch {
if ($isid && $me ison $1 && $3 isnum 1-) {
unset %::nickSearch
set -u0 %::nickSearchDelimiter $chr($3)
filter -lk $1 _nicksearch $2
if ($4) return $sorttok(%::nickSearch, $3)
return %::nickSearch
}
}
alias -l _nickSearch set -u0 %::nickSearch $addtok(%::nickSearch, $1, %::nickSearchDelimiter)
(updated for a bit more speed; but at the cost of characters)
lol, why not fline?