-int mdoc_err(struct mdoc *, int, int, enum mdoc_err);
-int mdoc_warn(struct mdoc *, int, int, enum mdoc_warn);
-void mdoc_msg(struct mdoc *, int, const char *, ...);
+#define mdoc_vwarn(m, n, t) \
+ mdoc_pwarn((m), (n)->line, (n)->pos, (t))
+#define mdoc_verr(m, n, t) \
+ mdoc_perr((m), (n)->line, (n)->pos, (t))
+#define mdoc_warn(m, t) \
+ mdoc_pwarn((m), (m)->last->line, (m)->last->pos, (t))
+#define mdoc_err(m, t) \
+ mdoc_perr((m), (m)->last->line, (m)->last->pos, (t))
+int mdoc_pwarn(struct mdoc *, int, int, enum mdoc_warn);
+int mdoc_perr(struct mdoc *, int, int, enum mdoc_err);
+void mdoc_msg(struct mdoc *, const char *, ...);