projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
message: Consistently initialize locator; use 0 for "no line number".
[pspp]
/
src
/
libpspp
/
message.c
diff --git
a/src/libpspp/message.c
b/src/libpspp/message.c
index 0d226a1732ed45a2825ac02ce263780f769947ee..e0f9bf178a202a94e76f93d4a6d3dd8d83bb3185 100644
(file)
--- a/
src/libpspp/message.c
+++ b/
src/libpspp/message.c
@@
-57,6
+57,8
@@
msg (enum msg_class class, const char *format, ...)
m.severity = msg_class_to_severity (class);
va_start (args, format);
m.text = xvasprintf (format, args);
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);
va_end (args);
msg_emit (&m);
@@
-118,7
+120,7
@@
msg_to_string (const struct msg *m, const char *command_name)
{
if (m->where.file_name)
ds_put_format (&s, "%s:", m->where.file_name);
{
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, ' ');
}
ds_put_format (&s, "%d:", m->where.line_number);
ds_put_char (&s, ' ');
}
@@
-156,6
+158,9
@@
static bool too_many_errors;
/* True after the maximum number of notes has been exceeded. */
static bool too_many_notes;
/* 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
/* Checks whether we've had so many errors that it's time to quit
processing this syntax file. */
bool
@@
-164,6
+169,13
@@
msg_ui_too_many_errors (void)
return too_many_errors;
}
return too_many_errors;
}
+void
+msg_ui_disable_warnings (bool x)
+{
+ warnings_off = x;
+}
+
+
void
msg_ui_reset_counts (void)
{
void
msg_ui_reset_counts (void)
{
@@
-189,18
+201,23
@@
submit_note (char *s)
m.category = MSG_C_GENERAL;
m.severity = MSG_S_NOTE;
m.where.file_name = NULL;
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);
}
m.text = s;
msg_handler (&m);
free (s);
}
+
+
static void
process_msg (const struct msg *m)
{
int n_msgs, max_msgs;
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);
return;
msg_handler (m);
@@
-223,10
+240,10
@@
process_msg (const struct msg *m)
{
too_many_errors = true;
if (m->severity == MSG_S_WARNING)
{
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
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));
}
}
n_msgs, max_msgs));
}
}
@@
-243,7
+260,7
@@
msg_emit (struct msg *m)
else
{
m->where.file_name = NULL;
else
{
m->where.file_name = NULL;
- m->where.line_number =
-1
;
+ m->where.line_number =
0
;
}
if (!messages_disabled)
}
if (!messages_disabled)