git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/4] diff.c: pass struct diff_words into find_word_boundaries

From
Thomas Rast <trast@student.ethz.ch>
Date
Dec 15, 2010, 15:13 UTC
Message-ID
<3ced19036dcc25304d13a665af04485e2c5ad350.1292424926.git.trast@student.ethz.ch>
In-Reply-To
<cover.1292424926.git.trast@student.ethz.ch>

We need the word_regex_check member. Instead of adding another argument, just pass in the whole struct for future extensibility.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
---
 diff.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/diff.c b/diff.c
index a16ce69..8758a51 100644
--- a/diff.c
+++ b/diff.c
@@ -778,12 +778,13 @@ static void fn_out_diff_words_aux(void *priv, char *line, unsigned long len)
 }
 
 /* This function starts looking at *begin, and returns 0 iff a word was found. */
-static int find_word_boundaries(mmfile_t *buffer, regex_t *word_regex,
+static int find_word_boundaries(mmfile_t *buffer, struct diff_words_data *diff_words,
 		int *begin, int *end)
 {
-	if (word_regex && *begin < buffer->size) {
+	if (diff_words->word_regex && *begin < buffer->size) {
 		regmatch_t match[1];
-		if (!regexec(word_regex, buffer->ptr + *begin, 1, match, 0)) {
+		if (!regexec(diff_words->word_regex, buffer->ptr + *begin,
+			     1, match, 0)) {
 			char *p = memchr(buffer->ptr + *begin + match[0].rm_so,
 					'\n', match[0].rm_eo - match[0].rm_so);
 			*end = p ? p - buffer->ptr : match[0].rm_eo + *begin;
@@ -813,7 +814,7 @@ static int find_word_boundaries(mmfile_t *buffer, regex_t *word_regex,
  * in buffer->orig.
  */
 static void diff_words_fill(struct diff_words_buffer *buffer, mmfile_t *out,
-		regex_t *word_regex)
+		struct diff_words_data *diff_words)
 {
 	int i, j;
 	long alloc = 0;
@@ -827,7 +828,7 @@ static void diff_words_fill(struct diff_words_buffer *buffer, mmfile_t *out,
 	buffer->orig_nr = 1;
 
 	for (i = 0; i < buffer->text.size; i++) {
-		if (find_word_boundaries(&buffer->text, word_regex, &i, &j))
+		if (find_word_boundaries(&buffer->text, diff_words, &i, &j))
 			return;
 
 		/* store original boundaries */
-- 
1.7.3.3.807.g6ee1f
Previous: Thomas RastNext: Thomas Rast
Message 2 of 23 in “--word-regex sanity checking and such”
  1. 0/4 --word-regex sanity checking and suchThomas Rast, Dec 15, 2010
  2. 1/4 diff.c: pass struct diff_words into find_word_boundariesThomas Rast, Dec 15, 2010
  3. 2/4 diff.c: implement a sanity check for word regexesThomas Rast, Dec 15, 2010
  4. 3/4 userdiff: fix typo in ruby word regexThomas Rast, Dec 15, 2010
  5. 4/4 t4034: bulk verify builtin word regex sanityThomas Rast, Dec 15, 2010
  6. Thomas RastDec 15, 2010
  7. Scott JohnsonDec 15, 2010
  8. 0/4 --word-regex sanity checking and suchThomas Rast, Dec 18, 2010
  9. 1/4 diff.c: pass struct diff_words into find_word_boundariesThomas Rast, Dec 18, 2010
  10. 2/4 diff.c: implement a sanity check for word regexesThomas Rast, Dec 18, 2010
  11. Junio C HamanoDec 18, 2010
  12. Thomas RastDec 19, 2010
  13. 3/4 userdiff: fix typo in ruby and python word regexesThomas Rast, Dec 18, 2010
  14. Junio C HamanoDec 18, 2010
  15. Thomas RastDec 19, 2010
  16. 4/4 t4034: bulk verify builtin word regex sanityThomas Rast, Dec 18, 2010
  17. 0/3 Re: t4034: bulk verify builtin word regex sanityJonathan Nieder, Jan 11, 2011
  18. 1/3 t4034: bulk verify builtin word regex sanityJonathan Nieder, Jan 11, 2011
  19. Re*: [PATCH 1/3] t4034: bulk verify builtin word regex sanityJunio C Hamano, Jan 18, 2011
  20. 2/3 userdiff: simplify word-diff safeguardJonathan Nieder, Jan 11, 2011
  21. 3/3 t4034 (diff --word-diff): style suggestionsJonathan Nieder, Jan 11, 2011
  22. Thomas RastDec 18, 2010
  23. Junio C HamanoDec 18, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.