# [NTG-context] Stop with an error signal

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 \def\forcequitjob#1% {\writestatus\m!systems{forcing quit: #1}% \batchmode \dorecurse\textlevel{\stoptext} \normalend} and suffers from the same problem. It does not send the program's error code to 1. After compiling \starttext \forcequitjob{bye} \stoptext the output of echo$? is 0, so context thinks that the program compiled
sucessfully.