m.severity = msg_class_to_severity (class);
va_start (args, format);
m.text = xvasprintf (format, args);
+ m.where.file_name = NULL;
+ m.where.line_number = 0;
va_end (args);
msg_emit (&m);
{
if (m->where.file_name)
ds_put_format (&s, "%s:", m->where.file_name);
- if (m->where.line_number != -1)
+ if (m->where.line_number > 0)
ds_put_format (&s, "%d:", m->where.line_number);
ds_put_char (&s, ' ');
}
/* 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
return too_many_errors;
}
+void
+msg_ui_disable_warnings (bool x)
+{
+ warnings_off = x;
+}
+
+
void
msg_ui_reset_counts (void)
{
m.category = MSG_C_GENERAL;
m.severity = MSG_S_NOTE;
m.where.file_name = NULL;
- m.where.line_number = -1;
+ m.where.line_number = 0;
m.text = s;
msg_handler (&m);
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);
{
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));
}
}
else
{
m->where.file_name = NULL;
- m->where.line_number = -1;
+ m->where.line_number = 0;
}
if (!messages_disabled)