menu Channel,Status,Query {
Search Logs:dialog -m LogSearch LogSearch
}
Dialog LogSearch {
title "Log Search"
size -1 -1 300 70
option dbu
text "Path\filename to search (wildcards accepted):",1,5 5 110 10
edit "",2,115 4 170 10, autohs
button "...",3,287 4 10 10
text "Search log file(s) for (wildcards accepted):",4,5 20 110 10
edit "",5,115 19 170 10, autohs
button "Search",6,5 35 25 10
text "NOTE: This is a long warning. The full warning is in my post.",7,45 35 250 40
}
on *:dialog:logsearch:init:0: {
did -ra $dname 2 $gettok($mklogfn($active),1- -2,92) $+ \
}
on *:dialog:logsearch:sclick:*: {
if ($did == 3) { did -ra $dname 2 $sdir($gettok($mklogfn($active),1- -2,92) $+ \) }
if ($did == 6) {
var %path = $iif($right($did($dname,2),1) == \,$did($dname,2),$gettok($did($dname,2),1- -2,92))
var %file = $iif($right($did($dname,2),1) == \,*,$gettok($did($dname,2),-1,92))
set %i.search $did($dname,5)
if (!$window(@LogSearch)) { window -knz @LogSearch }
clear @LogSearch
aline @LogSearch Search Results for * $+ %i.search $+ * :
noop $findfile(%path,%file,0,1,ilogsearch $1-)
}
}
alias ilogsearch {
if ($fopen(ilogsearch)) { .fclose ilogsearch }
.fopen ilogsearch $qt($1-)
.fseek -w ilogsearch * $+ %i.search $+ *
var %isearch = $fread(ilogsearch)
while (%isearch) {
echo @LogSearch 04 $+ $gettok($1-,-1,92) $+ : %isearch
.fseek -w ilogsearch * $+ %i.search $+ *
var %isearch = $fread(ilogsearch)
}
.fclose ilogsearch
}