bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 4/4] grep: be quiet about GREP_COLORS syntax


From: Paolo Bonzini
Subject: Re: [PATCH 4/4] grep: be quiet about GREP_COLORS syntax
Date: Sat, 21 Jan 2012 08:46:30 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111222 Thunderbird/9.0

On 01/21/2012 08:08 AM, Paul Eggert wrote:
* src/main.c (struct color_cap): fct now returns void,
since there's no longer need to use what it returns.
(color_cap_mt_fct, color_cap_rv_fct, color_cap_ne_fct): Return void.
(parse_grep_colors): Do not output diagnostics and then exit with
status 0.  Instead, ignore errors in GREP_COLORS.  This is more
consistent with programs that (e.g.) ignore errors in termcap entries,
and it's more internally-consistent as some GREP_COLORS errors
were ignored but not others.
---
  src/main.c |   46 +++++++++-------------------------------------
  1 files changed, 9 insertions(+), 37 deletions(-)

diff --git a/src/main.c b/src/main.c
index 84564e0..76e414b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -242,34 +242,28 @@ struct color_cap
    {
      const char *name;
      const char **var;
-    const char *(*fct) (void);
+    void (*fct) (void);
    };

-static const char *
+static void
  color_cap_mt_fct (void)
  {
    /* Our caller just set selected_match_color.  */
    context_match_color = selected_match_color;
-
-  return NULL;
  }

-static const char *
+static void
  color_cap_rv_fct (void)
  {
    /* By this point, it was 1 (or already -1).  */
    color_option = -1;  /* That's still != 0.  */
-
-  return NULL;
  }

-static const char *
+static void
  color_cap_ne_fct (void)
  {
    sgr_start = "\33[%sm";
    sgr_end   = "\33[m";
-
-  return NULL;
  }

  /* For GREP_COLORS.  */
@@ -1773,28 +1767,10 @@ parse_grep_colors (void)
            if (STREQ (cap->name, name))
              break;
          /* If name unknown, go on for forward compatibility.  */
-        if (cap->name)
-          {
-            if (cap->var)
-              {
-                if (val)
-                  *(cap->var) = val;
-                else
-                  error (0, 0, _("in GREP_COLORS=\"%s\", the \"%s\" capacity "
-                                 "needs a value (\"=...\"); skipped"), p, 
name);
-              }
-            else if (val)
-              error (0, 0, _("in GREP_COLORS=\"%s\", the \"%s\" capacity "
-                             "is boolean and cannot take a value (\"=%s\");"
-                             " skipped"), p, name, val);
-          }
+        if (cap->var&&  val)
+          *(cap->var) = val;
          if (cap->fct)
-          {
-            const char *err_str = cap->fct ();
-            if (err_str)
-              error (0, 0, _("in GREP_COLORS=\"%s\", the \"%s\" capacity %s"),
-                     p, name, err_str);
-          }
+          cap->fct ();
          if (c == '\0')
            return;
          name = q;
@@ -1803,7 +1779,7 @@ parse_grep_colors (void)
      else if (*q == '=')
        {
          if (q == name || val)
-          goto ill_formed;
+          return;
          *q++ = '\0'; /* Terminate name.  */
          val = q; /* Can be the empty string.  */
        }
@@ -1812,11 +1788,7 @@ parse_grep_colors (void)
      else if (*q == ';' || (*q>= '0'&&  *q<= '9'))
        q++; /* Accumulate val.  Protect the terminal from being sent crap.  */
      else
-      goto ill_formed;
-
- ill_formed:
-  error (0, 0, _("stopped processing of ill-formed GREP_COLORS=\"%s\" "
-                 "at remaining substring \"%s\""), p, q);
+      return;
  }

  int

All patches look good!  Can you write a NEWS entry and push?

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]