changeset: 6524:c799162691b2
user:      Kevin McCarthy <[email protected]>
date:      Mon Nov 09 18:53:05 2015 -0800
link:      http://dev.mutt.org/hg/mutt/rev/c799162691b2

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.

diffs (35 lines):

diff -r 1c151d8800de -r c799162691b2 pattern.c
--- a/pattern.c Mon Nov 09 15:40:42 2015 -0800
+++ b/pattern.c Mon Nov 09 18:53:05 2015 -0800
@@ -256,12 +256,14 @@
   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 @@
 {
   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)

Reply via email to