[NTG-context] Stop with an error signal

Aditya Mahajan adityam at umich.edu
Sun Oct 31 05:44:19 CET 2010

On Sun, 31 Oct 2010, Wolfgang Schuster wrote:

> Am 31.10.2010 um 01:27 schrieb Aditya Mahajan:
>> Hi,
>> I want to write a macro that checks for some settings and if the settings are wrong stop the current compilation and terminate with an error message. Right now I have
>> \def\ERROR
>>      {\writeline
>>       \showmessage\??externalfilter??{forbidden}\getexternalfilterdirectory
>>       \batchmode
>>       \normalend}
>> This prints the error message on the terminal and exits. However the exit status (the value of $?) is 0, if the tui file has changed the document is compiled a second time anyways.
>> How can I force context (the macro package) to exit with a status of 1 so that context (the program) does not attempt a second compilation?
> \starttext
> one
> \scrollmode\undefined\forcequitjob{bye}
> two
> \stoptext

\forcequitjob is defined in the same manner as my definition

   {\writestatus\m!systems{forcing quit: #1}%

and suffers from the same problem. It does not send the program's error 
code to 1. After compiling


the output of `echo $?` is 0, so context thinks that the program compiled 

Now add


on the first line and compile again. Context does two runs of the program 
(because no error signal is generated at the end of the first run). I want 
to avoid this second run.


More information about the ntg-context mailing list