[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
grep branch, master, updated. v2.18-102-gb642fb0
From: |
Paul Eggert |
Subject: |
grep branch, master, updated. v2.18-102-gb642fb0 |
Date: |
Fri, 25 Apr 2014 00:53:46 +0000 |
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 b642fb02a94c0f6b9ff47f2b62c7d8f11ea3f223 (commit)
via 1f483c98a93066ecd28cbbc013415015431dd76a (commit)
via b36c5cf9ee0fa173ffa1f748350f16bc1cb2d619 (commit)
from 59f3fac48e8b5456f4e0a45dfd99fba38d8b7af5 (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=b642fb02a94c0f6b9ff47f2b62c7d8f11ea3f223
commit b642fb02a94c0f6b9ff47f2b62c7d8f11ea3f223
Author: Paul Eggert <address@hidden>
Date: Thu Apr 24 17:52:10 2014 -0700
dfa: minor simplification of dfaexec
* src/dfa.c (dfaexec): Streamline updating of returned values.
Don't bother to check d->multibyte before updating mbp.
Avoid duplicate p > end test.
diff --git a/src/dfa.c b/src/dfa.c
index 7a99d3f..50264b2 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -3237,6 +3237,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
into a register. */
unsigned char eol = eolbyte; /* Likewise for eolbyte. */
unsigned char saved_end;
+ size_t nlcount = 0;
if (!d->tralloc)
build_state_zero (d);
@@ -3285,8 +3286,8 @@ dfaexec (struct dfa *d, char const *begin, char *end,
if ((char *) p >= end)
{
- *end = saved_end;
- return NULL;
+ p = NULL;
+ goto done;
}
}
@@ -3303,8 +3304,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
if (d->states[s].has_mbcset && backref)
{
*backref = 1;
- *end = saved_end;
- return (char *) p;
+ goto done;
}
/* Can match with a multibyte character (and multi character
@@ -3330,14 +3330,19 @@ dfaexec (struct dfa *d, char const *begin, char *end,
}
}
- if (s >= 0 && (char *) p <= end && d->fails[s])
+ if ((char *) p > end)
+ {
+ p = NULL;
+ goto done;
+ }
+
+ if (s >= 0 && d->fails[s])
{
if (d->success[s] & sbit[*p])
{
if (backref)
*backref = d->states[s].has_backref;
- *end = saved_end;
- return (char *) p;
+ goto done;
}
s1 = s;
@@ -3354,21 +3359,12 @@ dfaexec (struct dfa *d, char const *begin, char *end,
continue;
}
- /* Check if we've run off the end of the buffer. */
- if ((char *) p > end)
- {
- *end = saved_end;
- return NULL;
- }
-
/* If the previous character was a newline, count it, and skip
checking of multibyte character boundary until here. */
if (p[-1] == eol)
{
- if (count)
- ++*count;
- if (d->multibyte)
- mbp = p;
+ nlcount++;
+ mbp = p;
}
if (s >= 0)
@@ -3387,6 +3383,12 @@ dfaexec (struct dfa *d, char const *begin, char *end,
s = 0;
}
+
+ done:
+ if (count)
+ *count += nlcount;
+ *end = saved_end;
+ return (char *) p;
}
/* Search through a buffer looking for a potential match for D.
http://git.savannah.gnu.org/cgit/grep.git/commit/?id=1f483c98a93066ecd28cbbc013415015431dd76a
commit b642fb02a94c0f6b9ff47f2b62c7d8f11ea3f223
Author: Paul Eggert <address@hidden>
Date: Thu Apr 24 17:52:10 2014 -0700
dfa: minor simplification of dfaexec
* src/dfa.c (dfaexec): Streamline updating of returned values.
Don't bother to check d->multibyte before updating mbp.
Avoid duplicate p > end test.
diff --git a/src/dfa.c b/src/dfa.c
index 7a99d3f..50264b2 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -3237,6 +3237,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
into a register. */
unsigned char eol = eolbyte; /* Likewise for eolbyte. */
unsigned char saved_end;
+ size_t nlcount = 0;
if (!d->tralloc)
build_state_zero (d);
@@ -3285,8 +3286,8 @@ dfaexec (struct dfa *d, char const *begin, char *end,
if ((char *) p >= end)
{
- *end = saved_end;
- return NULL;
+ p = NULL;
+ goto done;
}
}
@@ -3303,8 +3304,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
if (d->states[s].has_mbcset && backref)
{
*backref = 1;
- *end = saved_end;
- return (char *) p;
+ goto done;
}
/* Can match with a multibyte character (and multi character
@@ -3330,14 +3330,19 @@ dfaexec (struct dfa *d, char const *begin, char *end,
}
}
- if (s >= 0 && (char *) p <= end && d->fails[s])
+ if ((char *) p > end)
+ {
+ p = NULL;
+ goto done;
+ }
+
+ if (s >= 0 && d->fails[s])
{
if (d->success[s] & sbit[*p])
{
if (backref)
*backref = d->states[s].has_backref;
- *end = saved_end;
- return (char *) p;
+ goto done;
}
s1 = s;
@@ -3354,21 +3359,12 @@ dfaexec (struct dfa *d, char const *begin, char *end,
continue;
}
- /* Check if we've run off the end of the buffer. */
- if ((char *) p > end)
- {
- *end = saved_end;
- return NULL;
- }
-
/* If the previous character was a newline, count it, and skip
checking of multibyte character boundary until here. */
if (p[-1] == eol)
{
- if (count)
- ++*count;
- if (d->multibyte)
- mbp = p;
+ nlcount++;
+ mbp = p;
}
if (s >= 0)
@@ -3387,6 +3383,12 @@ dfaexec (struct dfa *d, char const *begin, char *end,
s = 0;
}
+
+ done:
+ if (count)
+ *count += nlcount;
+ *end = saved_end;
+ return (char *) p;
}
/* Search through a buffer looking for a potential match for D.
http://git.savannah.gnu.org/cgit/grep.git/commit/?id=b36c5cf9ee0fa173ffa1f748350f16bc1cb2d619
commit b642fb02a94c0f6b9ff47f2b62c7d8f11ea3f223
Author: Paul Eggert <address@hidden>
Date: Thu Apr 24 17:52:10 2014 -0700
dfa: minor simplification of dfaexec
* src/dfa.c (dfaexec): Streamline updating of returned values.
Don't bother to check d->multibyte before updating mbp.
Avoid duplicate p > end test.
diff --git a/src/dfa.c b/src/dfa.c
index 7a99d3f..50264b2 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -3237,6 +3237,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
into a register. */
unsigned char eol = eolbyte; /* Likewise for eolbyte. */
unsigned char saved_end;
+ size_t nlcount = 0;
if (!d->tralloc)
build_state_zero (d);
@@ -3285,8 +3286,8 @@ dfaexec (struct dfa *d, char const *begin, char *end,
if ((char *) p >= end)
{
- *end = saved_end;
- return NULL;
+ p = NULL;
+ goto done;
}
}
@@ -3303,8 +3304,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
if (d->states[s].has_mbcset && backref)
{
*backref = 1;
- *end = saved_end;
- return (char *) p;
+ goto done;
}
/* Can match with a multibyte character (and multi character
@@ -3330,14 +3330,19 @@ dfaexec (struct dfa *d, char const *begin, char *end,
}
}
- if (s >= 0 && (char *) p <= end && d->fails[s])
+ if ((char *) p > end)
+ {
+ p = NULL;
+ goto done;
+ }
+
+ if (s >= 0 && d->fails[s])
{
if (d->success[s] & sbit[*p])
{
if (backref)
*backref = d->states[s].has_backref;
- *end = saved_end;
- return (char *) p;
+ goto done;
}
s1 = s;
@@ -3354,21 +3359,12 @@ dfaexec (struct dfa *d, char const *begin, char *end,
continue;
}
- /* Check if we've run off the end of the buffer. */
- if ((char *) p > end)
- {
- *end = saved_end;
- return NULL;
- }
-
/* If the previous character was a newline, count it, and skip
checking of multibyte character boundary until here. */
if (p[-1] == eol)
{
- if (count)
- ++*count;
- if (d->multibyte)
- mbp = p;
+ nlcount++;
+ mbp = p;
}
if (s >= 0)
@@ -3387,6 +3383,12 @@ dfaexec (struct dfa *d, char const *begin, char *end,
s = 0;
}
+
+ done:
+ if (count)
+ *count += nlcount;
+ *end = saved_end;
+ return (char *) p;
}
/* Search through a buffer looking for a potential match for D.
-----------------------------------------------------------------------
Summary of changes:
src/dfa.c | 102 +++++++++++++++++++++++++++++++++----------------------------
1 files changed, 55 insertions(+), 47 deletions(-)
hooks/post-receive
--
grep
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- grep branch, master, updated. v2.18-102-gb642fb0,
Paul Eggert <=