I've changed behaviour of %error and %include. Now
these directives don't expands string content (odd
'feature'). Now they expand their arguments in common
way. If string token is first its value will be displayed
without quarters:
%error "mess:" "str" ; warning: mess: "str"
Also I've added support of error-level modifiers:
%error "message" ; warning: message
%error .warning "message" ; warning: message
%error .nonfatal "message" ; error: message
%error .fatal "message" ; fatal: message
Logged In: YES
user_id=804543
In my local forked version %INCLUDE expands its
argument and then looks for a string.
Adding a .warning/.nonfatal/.fatal qualifier to
the %ERROR directive is not a good idea, since
those are valid identifiers, which the user may
expect to expand. In my local forked version I'm
using %EMIT.<type> directives, where <type> can
be FATAL, ERROR, WARN, or INFO. In addition each
of them can end in 1 or 2, to limit emission to
pass 1 or pass 2.
After performing expansion, my %EMIT.* directives
check whether the first argument is a string. If
so, then they will unquote that string, and cause
a warning if there is trailing garbage.