I'm not sure how practical this is... but here is a stab at making the script exit on a macro error... Maybe in Version 5 there will be no macros as they are now but are accessed through a Macro(Lookup) function.

Code:
break on
$=setoption("Novarsinstrings","on")


? macro("KIX")
? macro("err")




function macro($name)
dim $ms,$,$colors
$ms=setoption("NoMacrosinstrings","off")
$=execute("$" + "macro='@@" + $name + "'")
if instr($macro,"<unknown:")
$colors=split(@color,"/")
color $colors[0]+ / $colors[1]
"ERROR : Unknown Macro [" + $name + "]" + "!"
color $colors[0] / $colors[1]
quit
endif
$ms=setoption("NoMacrosinstrings",$ms)
endfunction


Produces:
Code:
 
4.52
ERROR : Unknown Macro [err]!