X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fmessage.c;h=4ba8a8f7aca966e5add8671fa31dbd178abfc387;hb=c0a213f7ed487273797d579bad952bca983240ba;hp=0d226a1732ed45a2825ac02ce263780f769947ee;hpb=3f31e9c3fe628db6fe7bb7fdf2a80634cecc8181;p=pspp diff --git a/src/libpspp/message.c b/src/libpspp/message.c index 0d226a1732..4ba8a8f7ac 100644 --- a/src/libpspp/message.c +++ b/src/libpspp/message.c @@ -156,6 +156,9 @@ static bool too_many_errors; /* True after the maximum number of notes has been exceeded. */ static bool too_many_notes; +/* True iff warnings have been explicitly disabled (MXWARNS = 0) */ +static bool warnings_off = false; + /* Checks whether we've had so many errors that it's time to quit processing this syntax file. */ bool @@ -164,6 +167,13 @@ msg_ui_too_many_errors (void) return too_many_errors; } +void +msg_ui_disable_warnings (bool x) +{ + warnings_off = x; +} + + void msg_ui_reset_counts (void) { @@ -195,12 +205,17 @@ submit_note (char *s) free (s); } + + static void process_msg (const struct msg *m) { int n_msgs, max_msgs; - if (too_many_errors || (too_many_notes && m->severity == MSG_S_NOTE)) + + if (too_many_errors + || (too_many_notes && m->severity == MSG_S_NOTE) + || (warnings_off && m->severity == MSG_S_WARNING) ) return; msg_handler (m); @@ -223,10 +238,10 @@ process_msg (const struct msg *m) { too_many_errors = true; if (m->severity == MSG_S_WARNING) - submit_note (xasprintf (_("Warnings (%d) exceed limit (%d)."), + submit_note (xasprintf (_("Warnings (%d) exceed limit (%d). Syntax processing will be halted."), n_msgs, max_msgs)); else - submit_note (xasprintf (_("Errors (%d) exceed limit (%d)."), + submit_note (xasprintf (_("Errors (%d) exceed limit (%d). Syntax processing will be halted."), n_msgs, max_msgs)); } }