From f8df85384202e01f227507b3ef70ec32d5824d63 Mon Sep 17 00:00:00 2001 From: Kevin McCarthy Date: Mon, 9 Nov 2015 18:53:05 -0800 Subject: [PATCH] Improve error messages for eat_date() and eat_regexp(). After calling mutt_extract_token(), s->dptr will typically be at the end of the string if an error occurred. Save a pointer to the beginning of the expression, so it can be properly displayed in the error message. Convert eat_date() and eat_regexp() to use the same iconv strings for the error message. --- pattern.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pattern.c b/pattern.c index 6f05b4a50..2d1330239 100644 --- a/pattern.c +++ b/pattern.c @@ -256,12 +256,14 @@ static int eat_regexp (pattern_t *pat, BUFFER *s, BUFFER *err) BUFFER buf; char errmsg[STRING]; int r; + char *pexpr; mutt_buffer_init (&buf); + pexpr = s->dptr; if (mutt_extract_token (&buf, s, M_TOKEN_PATTERN | M_TOKEN_COMMENT) != 0 || !buf.data) { - snprintf (err->data, err->dsize, _("Error in expression: %s"), s->dptr); + snprintf (err->data, err->dsize, _("Error in expression: %s"), pexpr); return (-1); } if (!*buf.data) @@ -574,12 +576,14 @@ static int eat_date (pattern_t *pat, BUFFER *s, BUFFER *err) { BUFFER buffer; struct tm min, max; + char *pexpr; mutt_buffer_init (&buffer); + pexpr = s->dptr; if (mutt_extract_token (&buffer, s, M_TOKEN_COMMENT | M_TOKEN_PATTERN) != 0 || !buffer.data) { - strfcpy (err->data, _("error in expression"), err->dsize); + snprintf (err->data, err->dsize, _("Error in expression: %s"), pexpr); return (-1); } if (!*buffer.data) -- 2.49.0