alias isloaded {
var %i 1,%file $1,%loaded 0
while (%i <= $script(0)) {
if ($nopath($script(%i)) == %file) {
%loaded = 1
}
inc %i
}
return %loaded
}
alias getpath {
var %i 1,%file $1,%path 0
while (%i <= $script(0)) {
if ($nopath($script(%i)) == %file) {
%path = $script(%i)
}
inc %i
}
return %path
}
alias winerr {
var %x 1,%file $1
window -h @error
while (%x <= $lines($+(",$getpath(%file),"))) {
aline @error $strip($read($+(",$getpath(%file),"),n,%x))
inc %x
}
}
alias error {
var %g 1,%error 0,%file $1,%t 1
if (!$isloaded(%file)) || (!$getpath(%file)) { return * $!error $+ : Invalid Parameters }
if (!$dialog(error)) { dialog -m error error }
unset %error.line.*
did -r error 1
winerr %file
while (%g <= $line(@error,0)) {
if (*{* iswm $line(@error,%g)) { inc %error }
if (*}* iswm $line(@error,%g)) { dec %error }
if (%error > 1) && (*{* !iswm $line(@error,%g)) && (*on*{* iswm $line(@error,$calc(%g - 1))) || (*alias*{* iswm $line(@error,$calc(%g - 1))) { set %error.line. [ $+ [ $calc(%g - 2) ] ] $calc(%g - 2) }
inc %g
}
if (%error) {
did -a error 1 %error Errors $chr(123)
while (%t <= $var(%error.line.*,0)) {
if (%t) && (%t < $calc($line(@error,0) + 1)) { did -a error 1 $str($chr(160),2) Line: $eval($var(%error.line.*,%t),2) }
inc %t
}
did -a error 1 $chr(125)
}
else {
did -a error 1 No Errors Found In $+(",%file,[,$getpath(%file),],")
}
window -c @error
did -z error 1
}
dialog error {
title "Parenthesis Error Catcher"
size -1 -1 177 77
option dbu
list 1, 0 13 177 64, size hsbar vsbar
edit "", 2, 0 3 60 10
button "Check", 3, 61 2 37 11
}
on *:dialog:error:close:0:{
unset %error.line.*
}
on *:dialog:error:sclick:3:{
error $did(2)
}
menu menubar,channel,status {
Parenthesis Checker: dialog -m error error
}