]> granicus.if.org Git - neomutt/commitdiff
Improve error messages for eat_date() and eat_regexp().
authorKevin McCarthy <kevin@8t8.us>
Tue, 10 Nov 2015 02:53:05 +0000 (18:53 -0800)
committerKevin McCarthy <kevin@8t8.us>
Tue, 10 Nov 2015 02:53:05 +0000 (18:53 -0800)
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

index 6f05b4a50b68aaa8e3b7455b81d0e421c9cb8f48..2d133023907fb5ad34e9c804b610f0db1840da19 100644 (file)
--- 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)