void
-vmsg (enum msg_class class, const char *format, va_list args)
+vmsg (enum msg_class class, const struct msg_location *location,
+ const char *format, va_list args)
{
struct msg *m = xmalloc (sizeof *m);
*m = (struct msg) {
.category = msg_class_to_category (class),
.severity = msg_class_to_severity (class),
+ .location = msg_location_dup (location),
.text = xvasprintf (format, args),
};
msg_emit (m);
{
va_list args;
va_start (args, format);
- vmsg (class, format, args);
+ vmsg (class, NULL, format, args);
va_end (args);
}
-
+/* Outputs error message in CLASS, with text FORMAT, formatted with printf.
+ LOCATION is the reported location for the message. */
+void
+msg_at (enum msg_class class, const struct msg_location *location,
+ const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ vmsg (class, location, format, args);
+ va_end (args);
+}
void
msg_error (int errnum, const char *format, ...)