Made command-line errors flush stdout and stderr
This commit is contained in:
parent
6360a9d97e
commit
3fd3a1d19d
5 changed files with 7 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
|||
# Inweb 7
|
||||
|
||||
v7-alpha.1+1A70 'Escape to Danger' (26 February 2021)
|
||||
v7-alpha.1+1A71 'Escape to Danger' (1 March 2021)
|
||||
|
||||
## About Inweb
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 26 February 2021
|
||||
Build Number: 1A70
|
||||
Build Date: 1 March 2021
|
||||
Build Number: 1A71
|
||||
|
|
|
@ -74,9 +74,11 @@ issued. If this returns <span class="extract"><span class="extract-syntax">FALSE
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Errors::issue</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Errors::issue</span></span>:<br/><a href="3-em.html#SP2">§2</a>, <a href="3-em.html#SP6">§6</a>, <a href="3-em.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">fatality</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_FLUSH</span><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">errors_handler</span><span class="plain-syntax">) </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = (*</span><span class="identifier-syntax">errors_handler</span><span class="plain-syntax">)(</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="identifier-syntax">fatality</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rv</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="constant-syntax">STDERR</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">message</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_FLUSH</span><span class="plain-syntax">(</span><span class="constant-syntax">STDERR</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">fatality</span><span class="plain-syntax">) </span><a href="3-em.html#SP4" class="function-link"><span class="function-syntax">Errors::die</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">problem_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
Binary file not shown.
|
@ -24,9 +24,11 @@ int Errors::have_occurred(void) {
|
|||
}
|
||||
|
||||
void Errors::issue(text_stream *message, int fatality) {
|
||||
STREAM_FLUSH(STDOUT);
|
||||
int rv = TRUE;
|
||||
if (errors_handler) rv = (*errors_handler)(message, fatality);
|
||||
if (rv) WRITE_TO(STDERR, "%S", message);
|
||||
STREAM_FLUSH(STDERR);
|
||||
if (fatality) Errors::die(); else problem_count++;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue