Quote:

I'd rather maybe that the macro come back without data then just halt the entire script.




That's a horrible idea, even if it is the current state of play.

If you've mis-typed a macro name why wouldn't you want the interpreter to halt and identify the line the first time that the script runs rather than having to debug the strange effects that it may cause?

While the failure of some macros would be pretty easy to spot, many are used in situations where a null or zero return would fit the use and you'd never know that you had a problem. Consider these:
Code:
If @LOGINMODE
; Map drives only during logon
EndIf

If @INWINN<>2
; Don't process for Win9x
EndIf

If @PRODUTSUITE & 16
; Terminal server processing
EndIf

If @PASSWORDAGE < 7
; Issue password warning
EndIf



If the interpreter returns null or 0 then these will all work, however the will all work incorrectly and they will not necessarily be obvious failures.