grep-commit
[Top][All Lists]
Advanced

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

grep branch, master, updated. v3.3-4-gf777b3e


From: Paul Eggert
Subject: grep branch, master, updated. v3.3-4-gf777b3e
Date: Sun, 20 Jan 2019 13:01:53 -0500 (EST)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "grep".

The branch, master has been updated
       via  f777b3e613e5ea9a7d607105abc2b543ef7be0f1 (commit)
      from  1019e6e35af3ca1ae1b147b327e155e0a2d17f6f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/grep.git/commit/?id=f777b3e613e5ea9a7d607105abc2b543ef7be0f1


commit f777b3e613e5ea9a7d607105abc2b543ef7be0f1
Author: Paul Eggert <address@hidden>
Date:   Sun Jan 20 09:52:09 2019 -0800

    grep: simplify pcresearch.c ifdefs
    
    This fixes a warning if PCRE is not used (Bug#34054).
    * configure.ac (USE_PCRE): New conditional.
    * src/Makefile.am (grep_SOURCES) [!USE_PCRE]: Omit pcresearch.c.
    * src/grep.c (matchers) [!HAVE_LIBPCRE]: Omit perl matcher.
    (setmatcher) [!HAVE_LIBPCRE]: If helpful, mention
    --disable-perl-regexp in diagnostic.
    * src/pcresearch.c: Simplify by assuming HAVE_LIBPCRE.

diff --git a/configure.ac b/configure.ac
index 4ce7216..1bbfc4f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -206,6 +206,7 @@ if test "$ac_use_included_regex" = no; then
 fi
 
 gl_FUNC_PCRE
+AM_CONDITIONAL([USE_PCRE], [test $use_pcre = yes])
 
 case $host_os in
   mingw*) suffix=w32 ;;
diff --git a/src/Makefile.am b/src/Makefile.am
index 40e9a96..1cfca3f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -29,8 +29,10 @@ grep_SOURCES =                                       \
   grep.c                                       \
   kwsearch.c                                   \
   kwset.c                                      \
-  pcresearch.c                                 \
   searchutils.c
+if USE_PCRE
+grep_SOURCES += pcresearch.c
+endif
 
 noinst_HEADERS = grep.h kwset.h search.h system.h
 
diff --git a/src/grep.c b/src/grep.c
index 95fa809..e53b8cd 100644
--- a/src/grep.c
+++ b/src/grep.c
@@ -2016,7 +2016,9 @@ static struct
   { "awk", RE_SYNTAX_AWK, GEAcompile, EGexecute },
   { "gawk", RE_SYNTAX_GNU_AWK, GEAcompile, EGexecute },
   { "posixawk", RE_SYNTAX_POSIX_AWK, GEAcompile, EGexecute },
+#if HAVE_LIBPCRE
   { "perl", 0, Pcompile, Pexecute, },
+#endif
 };
 /* Keep these in sync with the 'matchers' table.  */
 enum { E_MATCHER_INDEX = 1, F_MATCHER_INDEX = 2, G_MATCHER_INDEX = 0 };
@@ -2035,6 +2037,11 @@ setmatcher (char const *m, int matcher)
         return i;
       }
 
+#if !HAVE_LIBPCRE
+  if (STREQ (m, "perl"))
+    die (EXIT_TROUBLE, 0,
+         _("Perl matching not supported in a --disable-perl-regexp build"));
+#endif
   die (EXIT_TROUBLE, 0, _("invalid matcher %s"), m);
 }
 
diff --git a/src/pcresearch.c b/src/pcresearch.c
index 64e189c..3e45c00 100644
--- a/src/pcresearch.c
+++ b/src/pcresearch.c
@@ -22,22 +22,21 @@
 #include "search.h"
 #include "die.h"
 
-#if HAVE_LIBPCRE
-# include <pcre.h>
+#include <pcre.h>
 
 /* This must be at least 2; everything after that is for performance
    in pcre_exec.  */
 enum { NSUB = 300 };
 
-# ifndef PCRE_EXTRA_MATCH_LIMIT_RECURSION
-#  define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0
-# endif
-# ifndef PCRE_STUDY_JIT_COMPILE
-#  define PCRE_STUDY_JIT_COMPILE 0
-# endif
-# ifndef PCRE_STUDY_EXTRA_NEEDED
-#  define PCRE_STUDY_EXTRA_NEEDED 0
-# endif
+#ifndef PCRE_EXTRA_MATCH_LIMIT_RECURSION
+# define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0
+#endif
+#ifndef PCRE_STUDY_JIT_COMPILE
+# define PCRE_STUDY_JIT_COMPILE 0
+#endif
+#ifndef PCRE_STUDY_EXTRA_NEEDED
+# define PCRE_STUDY_EXTRA_NEEDED 0
+#endif
 
 struct pcre_comp
 {
@@ -47,11 +46,11 @@ struct pcre_comp
   /* Additional information about the pattern.  */
   pcre_extra *extra;
 
-# if PCRE_STUDY_JIT_COMPILE
+#if PCRE_STUDY_JIT_COMPILE
   /* The JIT stack and its maximum size.  */
   pcre_jit_stack *jit_stack;
   int jit_stack_size;
-# endif
+#endif
 
   /* Table, indexed by ! (flag & PCRE_NOTBOL), of whether the empty
      string matches when that flag is used.  */
@@ -72,7 +71,7 @@ jit_exec (struct pcre_comp *pc, char const *subject, int 
search_bytes,
       int e = pcre_exec (pc->cre, pc->extra, subject, search_bytes,
                          search_offset, options, sub, NSUB);
 
-# if PCRE_STUDY_JIT_COMPILE
+#if PCRE_STUDY_JIT_COMPILE
       if (e == PCRE_ERROR_JIT_STACKLIMIT
           && 0 < pc->jit_stack_size && pc->jit_stack_size <= INT_MAX / 2)
         {
@@ -87,9 +86,9 @@ jit_exec (struct pcre_comp *pc, char const *subject, int 
search_bytes,
           pcre_assign_jit_stack (pc->extra, NULL, pc->jit_stack);
           continue;
         }
-# endif
+#endif
 
-# if PCRE_EXTRA_MATCH_LIMIT_RECURSION
+#if PCRE_EXTRA_MATCH_LIMIT_RECURSION
       if (e == PCRE_ERROR_RECURSIONLIMIT
           && (PCRE_STUDY_EXTRA_NEEDED || pc->extra)
           && pc->extra->match_limit_recursion <= ULONG_MAX / 2)
@@ -102,22 +101,15 @@ jit_exec (struct pcre_comp *pc, char const *subject, int 
search_bytes,
             }
           continue;
         }
-# endif
+#endif
 
       return e;
     }
 }
 
-#endif
-
 void *
 Pcompile (char *pattern, size_t size, reg_syntax_t ignored)
 {
-#if !HAVE_LIBPCRE
-  die (EXIT_TROUBLE, 0,
-       _("support for the -P option is not compiled into "
-         "this --disable-perl-regexp binary"));
-#else
   int e;
   char const *ep;
   static char const wprefix[] = "(?<!\\w)(?:";
@@ -184,14 +176,14 @@ Pcompile (char *pattern, size_t size, reg_syntax_t 
ignored)
   if (ep)
     die (EXIT_TROUBLE, 0, "%s", ep);
 
-# if PCRE_STUDY_JIT_COMPILE
+#if PCRE_STUDY_JIT_COMPILE
   if (pcre_fullinfo (pc->cre, pc->extra, PCRE_INFO_JIT, &e))
     die (EXIT_TROUBLE, 0, _("internal error (should never happen)"));
 
   /* The PCRE documentation says that a 32 KiB stack is the default.  */
   if (e)
     pc->jit_stack_size = 32 << 10;
-# endif
+#endif
 
   free (re);
 
@@ -202,17 +194,12 @@ Pcompile (char *pattern, size_t size, reg_syntax_t 
ignored)
                                      NSUB);
 
   return pc;
-#endif /* HAVE_LIBPCRE */
 }
 
 size_t
 Pexecute (void *vcp, char const *buf, size_t size, size_t *match_size,
           char const *start_ptr)
 {
-#if !HAVE_LIBPCRE
-  /* We can't get here, because Pcompile would have been called earlier.  */
-  die (EXIT_TROUBLE, 0, _("internal error"));
-#else
   int sub[NSUB];
   char const *p = start_ptr ? start_ptr : buf;
   bool bol = p[-1] == eolbyte;
@@ -312,10 +299,10 @@ Pexecute (void *vcp, char const *buf, size_t size, size_t 
*match_size,
         case PCRE_ERROR_NOMEMORY:
           die (EXIT_TROUBLE, 0, _("memory exhausted"));
 
-# if PCRE_STUDY_JIT_COMPILE
+#if PCRE_STUDY_JIT_COMPILE
         case PCRE_ERROR_JIT_STACKLIMIT:
           die (EXIT_TROUBLE, 0, _("exhausted PCRE JIT stack"));
-# endif
+#endif
 
         case PCRE_ERROR_MATCHLIMIT:
           die (EXIT_TROUBLE, 0, _("exceeded PCRE's backtracking limit"));
@@ -349,5 +336,4 @@ Pexecute (void *vcp, char const *buf, size_t size, size_t 
*match_size,
       *match_size = end - beg;
       return beg - buf;
     }
-#endif
 }

-----------------------------------------------------------------------

Summary of changes:
 configure.ac     |  1 +
 src/Makefile.am  |  4 +++-
 src/grep.c       |  7 +++++++
 src/pcresearch.c | 54 ++++++++++++++++++++----------------------------------
 4 files changed, 31 insertions(+), 35 deletions(-)


hooks/post-receive
-- 
grep



reply via email to

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