[v4,00/14] output improvements for git range-diff
mbox series

Message ID 20190711160851.14380-1-t.gummerer@gmail.com
Headers show
Series
  • output improvements for git range-diff
Related show

Message

Thomas Gummerer July 11, 2019, 4:08 p.m. UTC
Thanks Junio for the comment on the previous round [1].  This round
reanmes the struct we're using in apply.c to 'struct gitdiff_data',
and updates the commit message of 7/14 to reflect the new name of the
renamed function.

[1]: https://public-inbox.org/git/20190708163315.29912-1-t.gummerer@gmail.com/

Thomas Gummerer (14):
  apply: replace marc.info link with public-inbox
  apply: only pass required data to skip_tree_prefix
  apply: only pass required data to git_header_name
  apply: only pass required data to check_header_line
  apply: only pass required data to find_name_*
  apply: only pass required data to gitdiff_* functions
  apply: make parse_git_diff_header public
  range-diff: fix function parameter indentation
  range-diff: split lines manually
  range-diff: don't remove funcname from inner diff
  range-diff: suppress line count in outer diff
  range-diff: add section header instead of diff header
  range-diff: add filename to inner diff
  range-diff: add headers to the outer hunk header

 apply.c                | 186 ++++++++++++++++++-----------------------
 apply.h                |  48 +++++++++++
 diff.c                 |   5 +-
 diff.h                 |   1 +
 range-diff.c           | 124 +++++++++++++++++++--------
 t/t3206-range-diff.sh  | 124 ++++++++++++++++++++++-----
 t/t3206/history.export |  84 ++++++++++++++++++-
 7 files changed, 409 insertions(+), 163 deletions(-)

Range-diff against v3:
 1:  ef2245edda =  1:  ef2245edda apply: replace marc.info link with public-inbox
 2:  94578fa45c =  2:  94578fa45c apply: only pass required data to skip_tree_prefix
 3:  988269a68e =  3:  988269a68e apply: only pass required data to git_header_name
 4:  a2c1ef3f5f =  4:  a2c1ef3f5f apply: only pass required data to check_header_line
 5:  0f4cfe21cb =  5:  0f4cfe21cb apply: only pass required data to find_name_*
 6:  07a271518d !  6:  42665e5295 apply: only pass required data to gitdiff_* functions
    @@ -28,7 +28,7 @@
      #include "rerere.h"
      #include "apply.h"
      
    -+struct parse_git_header_state {
    ++struct gitdiff_data {
     +	struct strbuf *root;
     +	int linenr;
     +	int p_value;
    @@ -42,7 +42,7 @@
      }
      
     -static int gitdiff_hdrend(struct apply_state *state,
    -+static int gitdiff_hdrend(struct parse_git_header_state *state,
    ++static int gitdiff_hdrend(struct gitdiff_data *state,
      			  const char *line,
      			  struct patch *patch)
      {
    @@ -51,7 +51,7 @@
      #define DIFF_NEW_NAME 1
      
     -static int gitdiff_verify_name(struct apply_state *state,
    -+static int gitdiff_verify_name(struct parse_git_header_state *state,
    ++static int gitdiff_verify_name(struct gitdiff_data *state,
      			       const char *line,
      			       int isnull,
      			       char **name,
    @@ -77,7 +77,7 @@
      }
      
     -static int gitdiff_oldname(struct apply_state *state,
    -+static int gitdiff_oldname(struct parse_git_header_state *state,
    ++static int gitdiff_oldname(struct gitdiff_data *state,
      			   const char *line,
      			   struct patch *patch)
      {
    @@ -86,7 +86,7 @@
      }
      
     -static int gitdiff_newname(struct apply_state *state,
    -+static int gitdiff_newname(struct parse_git_header_state *state,
    ++static int gitdiff_newname(struct gitdiff_data *state,
      			   const char *line,
      			   struct patch *patch)
      {
    @@ -95,7 +95,7 @@
      }
      
     -static int gitdiff_oldmode(struct apply_state *state,
    -+static int gitdiff_oldmode(struct parse_git_header_state *state,
    ++static int gitdiff_oldmode(struct gitdiff_data *state,
      			   const char *line,
      			   struct patch *patch)
      {
    @@ -103,7 +103,7 @@
      }
      
     -static int gitdiff_newmode(struct apply_state *state,
    -+static int gitdiff_newmode(struct parse_git_header_state *state,
    ++static int gitdiff_newmode(struct gitdiff_data *state,
      			   const char *line,
      			   struct patch *patch)
      {
    @@ -111,7 +111,7 @@
      }
      
     -static int gitdiff_delete(struct apply_state *state,
    -+static int gitdiff_delete(struct parse_git_header_state *state,
    ++static int gitdiff_delete(struct gitdiff_data *state,
      			  const char *line,
      			  struct patch *patch)
      {
    @@ -120,7 +120,7 @@
      }
      
     -static int gitdiff_newfile(struct apply_state *state,
    -+static int gitdiff_newfile(struct parse_git_header_state *state,
    ++static int gitdiff_newfile(struct gitdiff_data *state,
      			   const char *line,
      			   struct patch *patch)
      {
    @@ -129,7 +129,7 @@
      }
      
     -static int gitdiff_copysrc(struct apply_state *state,
    -+static int gitdiff_copysrc(struct parse_git_header_state *state,
    ++static int gitdiff_copysrc(struct gitdiff_data *state,
      			   const char *line,
      			   struct patch *patch)
      {
    @@ -141,7 +141,7 @@
      }
      
     -static int gitdiff_copydst(struct apply_state *state,
    -+static int gitdiff_copydst(struct parse_git_header_state *state,
    ++static int gitdiff_copydst(struct gitdiff_data *state,
      			   const char *line,
      			   struct patch *patch)
      {
    @@ -153,7 +153,7 @@
      }
      
     -static int gitdiff_renamesrc(struct apply_state *state,
    -+static int gitdiff_renamesrc(struct parse_git_header_state *state,
    ++static int gitdiff_renamesrc(struct gitdiff_data *state,
      			     const char *line,
      			     struct patch *patch)
      {
    @@ -165,7 +165,7 @@
      }
      
     -static int gitdiff_renamedst(struct apply_state *state,
    -+static int gitdiff_renamedst(struct parse_git_header_state *state,
    ++static int gitdiff_renamedst(struct gitdiff_data *state,
      			     const char *line,
      			     struct patch *patch)
      {
    @@ -177,7 +177,7 @@
      }
      
     -static int gitdiff_similarity(struct apply_state *state,
    -+static int gitdiff_similarity(struct parse_git_header_state *state,
    ++static int gitdiff_similarity(struct gitdiff_data *state,
      			      const char *line,
      			      struct patch *patch)
      {
    @@ -186,7 +186,7 @@
      }
      
     -static int gitdiff_dissimilarity(struct apply_state *state,
    -+static int gitdiff_dissimilarity(struct parse_git_header_state *state,
    ++static int gitdiff_dissimilarity(struct gitdiff_data *state,
      				 const char *line,
      				 struct patch *patch)
      {
    @@ -195,7 +195,7 @@
      }
      
     -static int gitdiff_index(struct apply_state *state,
    -+static int gitdiff_index(struct parse_git_header_state *state,
    ++static int gitdiff_index(struct gitdiff_data *state,
      			 const char *line,
      			 struct patch *patch)
      {
    @@ -204,7 +204,7 @@
       * into the next diff. Tell the parser to break out.
       */
     -static int gitdiff_unrecognized(struct apply_state *state,
    -+static int gitdiff_unrecognized(struct parse_git_header_state *state,
    ++static int gitdiff_unrecognized(struct gitdiff_data *state,
      				const char *line,
      				struct patch *patch)
      {
    @@ -212,7 +212,7 @@
      			    struct patch *patch)
      {
      	unsigned long offset;
    -+	struct parse_git_header_state parse_hdr_state;
    ++	struct gitdiff_data parse_hdr_state;
      
      	/* A git diff has explicit new/delete information, so we don't guess */
      	patch->is_new = 0;
    @@ -228,7 +228,7 @@
      		static const struct opentry {
      			const char *str;
     -			int (*fn)(struct apply_state *, const char *, struct patch *);
    -+			int (*fn)(struct parse_git_header_state *, const char *, struct patch *);
    ++			int (*fn)(struct gitdiff_data *, const char *, struct patch *);
      		} optable[] = {
      			{ "@@ -", gitdiff_hdrend },
      			{ "--- ", gitdiff_oldname },
 7:  9cb6732a5f !  7:  3068fda8a9 apply: make parse_git_header public
    @@ -1,9 +1,12 @@
     Author: Thomas Gummerer <t.gummerer@gmail.com>
     
    -    apply: make parse_git_header public
    +    apply: make parse_git_diff_header public
     
    -    Make parse_git_header a "public" function in apply.h, so we can re-use
    -    it in range-diff in a subsequent commit.
    +    Make 'parse_git_header()' (renamed to 'parse_git_diff_header()') a
    +    "public" function in apply.h, so we can re-use it in range-diff in a
    +    subsequent commit.  We're renaming the function to make it clearer in
    +    other parts of the codebase that we're talking about a diff header and
    +    not just any header.
     
         Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
     
    @@ -70,7 +73,7 @@
     +			  struct patch *patch)
      {
      	unsigned long offset;
    - 	struct parse_git_header_state parse_hdr_state;
    + 	struct gitdiff_data parse_hdr_state;
     @@
      	 * or removing or adding empty files), so we get
      	 * the default name from the header.
    @@ -100,7 +103,7 @@
     +	for (offset = len ; size > 0 ; offset += len, size -= len, line += len, (*linenr)++) {
      		static const struct opentry {
      			const char *str;
    - 			int (*fn)(struct parse_git_header_state *, const char *, struct patch *);
    + 			int (*fn)(struct gitdiff_data *, const char *, struct patch *);
     @@
      			res = p->fn(&parse_hdr_state, line + oplen, patch);
      			if (res < 0)
 8:  76a11ce995 =  8:  781d054cab range-diff: fix function parameter indentation
 9:  6f70e7faa6 =  9:  68a2953310 range-diff: split lines manually
10:  6618cdff2c = 10:  8ae95d053b range-diff: don't remove funcname from inner diff
11:  2667df4fa5 = 11:  e572510c52 range-diff: suppress line count in outer diff
12:  47cd8c6733 = 12:  45605db760 range-diff: add section header instead of diff header
13:  f67fd5dd9a = 13:  89a27fbeaa range-diff: add filename to inner diff
14:  812893a5dc = 14:  8bee2c525f range-diff: add headers to the outer hunk header

Comments

Ramsay Jones July 11, 2019, 10:09 p.m. UTC | #1
On 11/07/2019 17:08, Thomas Gummerer wrote:
> Thanks Junio for the comment on the previous round [1].  This round
> reanmes the struct we're using in apply.c to 'struct gitdiff_data',
> and updates the commit message of 7/14 to reflect the new name of the
> renamed function.
> 
> [1]: https://public-inbox.org/git/20190708163315.29912-1-t.gummerer@gmail.com/
> 
> Thomas Gummerer (14):
>   apply: replace marc.info link with public-inbox
>   apply: only pass required data to skip_tree_prefix
>   apply: only pass required data to git_header_name
>   apply: only pass required data to check_header_line
>   apply: only pass required data to find_name_*
>   apply: only pass required data to gitdiff_* functions
>   apply: make parse_git_diff_header public
>   range-diff: fix function parameter indentation
>   range-diff: split lines manually
>   range-diff: don't remove funcname from inner diff
>   range-diff: suppress line count in outer diff
>   range-diff: add section header instead of diff header
>   range-diff: add filename to inner diff
>   range-diff: add headers to the outer hunk header
> 
>  apply.c                | 186 ++++++++++++++++++-----------------------
>  apply.h                |  48 +++++++++++
>  diff.c                 |   5 +-
>  diff.h                 |   1 +
>  range-diff.c           | 124 +++++++++++++++++++--------
>  t/t3206-range-diff.sh  | 124 ++++++++++++++++++++++-----
>  t/t3206/history.export |  84 ++++++++++++++++++-
>  7 files changed, 409 insertions(+), 163 deletions(-)


Yes, the patch I just sent related to the previous version of
this series. However, I believe it still applies to this version
(looking at the range-diff below).

ATB,
Ramsay Jones

> Range-diff against v3:
>  1:  ef2245edda =  1:  ef2245edda apply: replace marc.info link with public-inbox
>  2:  94578fa45c =  2:  94578fa45c apply: only pass required data to skip_tree_prefix
>  3:  988269a68e =  3:  988269a68e apply: only pass required data to git_header_name
>  4:  a2c1ef3f5f =  4:  a2c1ef3f5f apply: only pass required data to check_header_line
>  5:  0f4cfe21cb =  5:  0f4cfe21cb apply: only pass required data to find_name_*
>  6:  07a271518d !  6:  42665e5295 apply: only pass required data to gitdiff_* functions
>     @@ -28,7 +28,7 @@
>       #include "rerere.h"
>       #include "apply.h"
>       
>     -+struct parse_git_header_state {
>     ++struct gitdiff_data {
>      +	struct strbuf *root;
>      +	int linenr;
>      +	int p_value;
>     @@ -42,7 +42,7 @@
>       }
>       
>      -static int gitdiff_hdrend(struct apply_state *state,
>     -+static int gitdiff_hdrend(struct parse_git_header_state *state,
>     ++static int gitdiff_hdrend(struct gitdiff_data *state,
>       			  const char *line,
>       			  struct patch *patch)
>       {
>     @@ -51,7 +51,7 @@
>       #define DIFF_NEW_NAME 1
>       
>      -static int gitdiff_verify_name(struct apply_state *state,
>     -+static int gitdiff_verify_name(struct parse_git_header_state *state,
>     ++static int gitdiff_verify_name(struct gitdiff_data *state,
>       			       const char *line,
>       			       int isnull,
>       			       char **name,
>     @@ -77,7 +77,7 @@
>       }
>       
>      -static int gitdiff_oldname(struct apply_state *state,
>     -+static int gitdiff_oldname(struct parse_git_header_state *state,
>     ++static int gitdiff_oldname(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -86,7 +86,7 @@
>       }
>       
>      -static int gitdiff_newname(struct apply_state *state,
>     -+static int gitdiff_newname(struct parse_git_header_state *state,
>     ++static int gitdiff_newname(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -95,7 +95,7 @@
>       }
>       
>      -static int gitdiff_oldmode(struct apply_state *state,
>     -+static int gitdiff_oldmode(struct parse_git_header_state *state,
>     ++static int gitdiff_oldmode(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -103,7 +103,7 @@
>       }
>       
>      -static int gitdiff_newmode(struct apply_state *state,
>     -+static int gitdiff_newmode(struct parse_git_header_state *state,
>     ++static int gitdiff_newmode(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -111,7 +111,7 @@
>       }
>       
>      -static int gitdiff_delete(struct apply_state *state,
>     -+static int gitdiff_delete(struct parse_git_header_state *state,
>     ++static int gitdiff_delete(struct gitdiff_data *state,
>       			  const char *line,
>       			  struct patch *patch)
>       {
>     @@ -120,7 +120,7 @@
>       }
>       
>      -static int gitdiff_newfile(struct apply_state *state,
>     -+static int gitdiff_newfile(struct parse_git_header_state *state,
>     ++static int gitdiff_newfile(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -129,7 +129,7 @@
>       }
>       
>      -static int gitdiff_copysrc(struct apply_state *state,
>     -+static int gitdiff_copysrc(struct parse_git_header_state *state,
>     ++static int gitdiff_copysrc(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -141,7 +141,7 @@
>       }
>       
>      -static int gitdiff_copydst(struct apply_state *state,
>     -+static int gitdiff_copydst(struct parse_git_header_state *state,
>     ++static int gitdiff_copydst(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -153,7 +153,7 @@
>       }
>       
>      -static int gitdiff_renamesrc(struct apply_state *state,
>     -+static int gitdiff_renamesrc(struct parse_git_header_state *state,
>     ++static int gitdiff_renamesrc(struct gitdiff_data *state,
>       			     const char *line,
>       			     struct patch *patch)
>       {
>     @@ -165,7 +165,7 @@
>       }
>       
>      -static int gitdiff_renamedst(struct apply_state *state,
>     -+static int gitdiff_renamedst(struct parse_git_header_state *state,
>     ++static int gitdiff_renamedst(struct gitdiff_data *state,
>       			     const char *line,
>       			     struct patch *patch)
>       {
>     @@ -177,7 +177,7 @@
>       }
>       
>      -static int gitdiff_similarity(struct apply_state *state,
>     -+static int gitdiff_similarity(struct parse_git_header_state *state,
>     ++static int gitdiff_similarity(struct gitdiff_data *state,
>       			      const char *line,
>       			      struct patch *patch)
>       {
>     @@ -186,7 +186,7 @@
>       }
>       
>      -static int gitdiff_dissimilarity(struct apply_state *state,
>     -+static int gitdiff_dissimilarity(struct parse_git_header_state *state,
>     ++static int gitdiff_dissimilarity(struct gitdiff_data *state,
>       				 const char *line,
>       				 struct patch *patch)
>       {
>     @@ -195,7 +195,7 @@
>       }
>       
>      -static int gitdiff_index(struct apply_state *state,
>     -+static int gitdiff_index(struct parse_git_header_state *state,
>     ++static int gitdiff_index(struct gitdiff_data *state,
>       			 const char *line,
>       			 struct patch *patch)
>       {
>     @@ -204,7 +204,7 @@
>        * into the next diff. Tell the parser to break out.
>        */
>      -static int gitdiff_unrecognized(struct apply_state *state,
>     -+static int gitdiff_unrecognized(struct parse_git_header_state *state,
>     ++static int gitdiff_unrecognized(struct gitdiff_data *state,
>       				const char *line,
>       				struct patch *patch)
>       {
>     @@ -212,7 +212,7 @@
>       			    struct patch *patch)
>       {
>       	unsigned long offset;
>     -+	struct parse_git_header_state parse_hdr_state;
>     ++	struct gitdiff_data parse_hdr_state;
>       
>       	/* A git diff has explicit new/delete information, so we don't guess */
>       	patch->is_new = 0;
>     @@ -228,7 +228,7 @@
>       		static const struct opentry {
>       			const char *str;
>      -			int (*fn)(struct apply_state *, const char *, struct patch *);
>     -+			int (*fn)(struct parse_git_header_state *, const char *, struct patch *);
>     ++			int (*fn)(struct gitdiff_data *, const char *, struct patch *);
>       		} optable[] = {
>       			{ "@@ -", gitdiff_hdrend },
>       			{ "--- ", gitdiff_oldname },
>  7:  9cb6732a5f !  7:  3068fda8a9 apply: make parse_git_header public
>     @@ -1,9 +1,12 @@
>      Author: Thomas Gummerer <t.gummerer@gmail.com>
>      
>     -    apply: make parse_git_header public
>     +    apply: make parse_git_diff_header public
>      
>     -    Make parse_git_header a "public" function in apply.h, so we can re-use
>     -    it in range-diff in a subsequent commit.
>     +    Make 'parse_git_header()' (renamed to 'parse_git_diff_header()') a
>     +    "public" function in apply.h, so we can re-use it in range-diff in a
>     +    subsequent commit.  We're renaming the function to make it clearer in
>     +    other parts of the codebase that we're talking about a diff header and
>     +    not just any header.
>      
>          Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
>      
>     @@ -70,7 +73,7 @@
>      +			  struct patch *patch)
>       {
>       	unsigned long offset;
>     - 	struct parse_git_header_state parse_hdr_state;
>     + 	struct gitdiff_data parse_hdr_state;
>      @@
>       	 * or removing or adding empty files), so we get
>       	 * the default name from the header.
>     @@ -100,7 +103,7 @@
>      +	for (offset = len ; size > 0 ; offset += len, size -= len, line += len, (*linenr)++) {
>       		static const struct opentry {
>       			const char *str;
>     - 			int (*fn)(struct parse_git_header_state *, const char *, struct patch *);
>     + 			int (*fn)(struct gitdiff_data *, const char *, struct patch *);
>      @@
>       			res = p->fn(&parse_hdr_state, line + oplen, patch);
>       			if (res < 0)
>  8:  76a11ce995 =  8:  781d054cab range-diff: fix function parameter indentation
>  9:  6f70e7faa6 =  9:  68a2953310 range-diff: split lines manually
> 10:  6618cdff2c = 10:  8ae95d053b range-diff: don't remove funcname from inner diff
> 11:  2667df4fa5 = 11:  e572510c52 range-diff: suppress line count in outer diff
> 12:  47cd8c6733 = 12:  45605db760 range-diff: add section header instead of diff header
> 13:  f67fd5dd9a = 13:  89a27fbeaa range-diff: add filename to inner diff
> 14:  812893a5dc = 14:  8bee2c525f range-diff: add headers to the outer hunk header
>
Johannes Schindelin July 12, 2019, 10:44 a.m. UTC | #2
Hi Thomas,

On Thu, 11 Jul 2019, Thomas Gummerer wrote:

> Thanks Junio for the comment on the previous round [1].  This round
> reanmes the struct we're using in apply.c to 'struct gitdiff_data',
> and updates the commit message of 7/14 to reflect the new name of the
> renamed function.

Yep, and the range-diff looks good to me, too.

Thank you!
Dscho

>
> [1]: https://public-inbox.org/git/20190708163315.29912-1-t.gummerer@gmail.com/
>
> Thomas Gummerer (14):
>   apply: replace marc.info link with public-inbox
>   apply: only pass required data to skip_tree_prefix
>   apply: only pass required data to git_header_name
>   apply: only pass required data to check_header_line
>   apply: only pass required data to find_name_*
>   apply: only pass required data to gitdiff_* functions
>   apply: make parse_git_diff_header public
>   range-diff: fix function parameter indentation
>   range-diff: split lines manually
>   range-diff: don't remove funcname from inner diff
>   range-diff: suppress line count in outer diff
>   range-diff: add section header instead of diff header
>   range-diff: add filename to inner diff
>   range-diff: add headers to the outer hunk header
>
>  apply.c                | 186 ++++++++++++++++++-----------------------
>  apply.h                |  48 +++++++++++
>  diff.c                 |   5 +-
>  diff.h                 |   1 +
>  range-diff.c           | 124 +++++++++++++++++++--------
>  t/t3206-range-diff.sh  | 124 ++++++++++++++++++++++-----
>  t/t3206/history.export |  84 ++++++++++++++++++-
>  7 files changed, 409 insertions(+), 163 deletions(-)
>
> Range-diff against v3:
>  1:  ef2245edda =  1:  ef2245edda apply: replace marc.info link with public-inbox
>  2:  94578fa45c =  2:  94578fa45c apply: only pass required data to skip_tree_prefix
>  3:  988269a68e =  3:  988269a68e apply: only pass required data to git_header_name
>  4:  a2c1ef3f5f =  4:  a2c1ef3f5f apply: only pass required data to check_header_line
>  5:  0f4cfe21cb =  5:  0f4cfe21cb apply: only pass required data to find_name_*
>  6:  07a271518d !  6:  42665e5295 apply: only pass required data to gitdiff_* functions
>     @@ -28,7 +28,7 @@
>       #include "rerere.h"
>       #include "apply.h"
>
>     -+struct parse_git_header_state {
>     ++struct gitdiff_data {
>      +	struct strbuf *root;
>      +	int linenr;
>      +	int p_value;
>     @@ -42,7 +42,7 @@
>       }
>
>      -static int gitdiff_hdrend(struct apply_state *state,
>     -+static int gitdiff_hdrend(struct parse_git_header_state *state,
>     ++static int gitdiff_hdrend(struct gitdiff_data *state,
>       			  const char *line,
>       			  struct patch *patch)
>       {
>     @@ -51,7 +51,7 @@
>       #define DIFF_NEW_NAME 1
>
>      -static int gitdiff_verify_name(struct apply_state *state,
>     -+static int gitdiff_verify_name(struct parse_git_header_state *state,
>     ++static int gitdiff_verify_name(struct gitdiff_data *state,
>       			       const char *line,
>       			       int isnull,
>       			       char **name,
>     @@ -77,7 +77,7 @@
>       }
>
>      -static int gitdiff_oldname(struct apply_state *state,
>     -+static int gitdiff_oldname(struct parse_git_header_state *state,
>     ++static int gitdiff_oldname(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -86,7 +86,7 @@
>       }
>
>      -static int gitdiff_newname(struct apply_state *state,
>     -+static int gitdiff_newname(struct parse_git_header_state *state,
>     ++static int gitdiff_newname(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -95,7 +95,7 @@
>       }
>
>      -static int gitdiff_oldmode(struct apply_state *state,
>     -+static int gitdiff_oldmode(struct parse_git_header_state *state,
>     ++static int gitdiff_oldmode(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -103,7 +103,7 @@
>       }
>
>      -static int gitdiff_newmode(struct apply_state *state,
>     -+static int gitdiff_newmode(struct parse_git_header_state *state,
>     ++static int gitdiff_newmode(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -111,7 +111,7 @@
>       }
>
>      -static int gitdiff_delete(struct apply_state *state,
>     -+static int gitdiff_delete(struct parse_git_header_state *state,
>     ++static int gitdiff_delete(struct gitdiff_data *state,
>       			  const char *line,
>       			  struct patch *patch)
>       {
>     @@ -120,7 +120,7 @@
>       }
>
>      -static int gitdiff_newfile(struct apply_state *state,
>     -+static int gitdiff_newfile(struct parse_git_header_state *state,
>     ++static int gitdiff_newfile(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -129,7 +129,7 @@
>       }
>
>      -static int gitdiff_copysrc(struct apply_state *state,
>     -+static int gitdiff_copysrc(struct parse_git_header_state *state,
>     ++static int gitdiff_copysrc(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -141,7 +141,7 @@
>       }
>
>      -static int gitdiff_copydst(struct apply_state *state,
>     -+static int gitdiff_copydst(struct parse_git_header_state *state,
>     ++static int gitdiff_copydst(struct gitdiff_data *state,
>       			   const char *line,
>       			   struct patch *patch)
>       {
>     @@ -153,7 +153,7 @@
>       }
>
>      -static int gitdiff_renamesrc(struct apply_state *state,
>     -+static int gitdiff_renamesrc(struct parse_git_header_state *state,
>     ++static int gitdiff_renamesrc(struct gitdiff_data *state,
>       			     const char *line,
>       			     struct patch *patch)
>       {
>     @@ -165,7 +165,7 @@
>       }
>
>      -static int gitdiff_renamedst(struct apply_state *state,
>     -+static int gitdiff_renamedst(struct parse_git_header_state *state,
>     ++static int gitdiff_renamedst(struct gitdiff_data *state,
>       			     const char *line,
>       			     struct patch *patch)
>       {
>     @@ -177,7 +177,7 @@
>       }
>
>      -static int gitdiff_similarity(struct apply_state *state,
>     -+static int gitdiff_similarity(struct parse_git_header_state *state,
>     ++static int gitdiff_similarity(struct gitdiff_data *state,
>       			      const char *line,
>       			      struct patch *patch)
>       {
>     @@ -186,7 +186,7 @@
>       }
>
>      -static int gitdiff_dissimilarity(struct apply_state *state,
>     -+static int gitdiff_dissimilarity(struct parse_git_header_state *state,
>     ++static int gitdiff_dissimilarity(struct gitdiff_data *state,
>       				 const char *line,
>       				 struct patch *patch)
>       {
>     @@ -195,7 +195,7 @@
>       }
>
>      -static int gitdiff_index(struct apply_state *state,
>     -+static int gitdiff_index(struct parse_git_header_state *state,
>     ++static int gitdiff_index(struct gitdiff_data *state,
>       			 const char *line,
>       			 struct patch *patch)
>       {
>     @@ -204,7 +204,7 @@
>        * into the next diff. Tell the parser to break out.
>        */
>      -static int gitdiff_unrecognized(struct apply_state *state,
>     -+static int gitdiff_unrecognized(struct parse_git_header_state *state,
>     ++static int gitdiff_unrecognized(struct gitdiff_data *state,
>       				const char *line,
>       				struct patch *patch)
>       {
>     @@ -212,7 +212,7 @@
>       			    struct patch *patch)
>       {
>       	unsigned long offset;
>     -+	struct parse_git_header_state parse_hdr_state;
>     ++	struct gitdiff_data parse_hdr_state;
>
>       	/* A git diff has explicit new/delete information, so we don't guess */
>       	patch->is_new = 0;
>     @@ -228,7 +228,7 @@
>       		static const struct opentry {
>       			const char *str;
>      -			int (*fn)(struct apply_state *, const char *, struct patch *);
>     -+			int (*fn)(struct parse_git_header_state *, const char *, struct patch *);
>     ++			int (*fn)(struct gitdiff_data *, const char *, struct patch *);
>       		} optable[] = {
>       			{ "@@ -", gitdiff_hdrend },
>       			{ "--- ", gitdiff_oldname },
>  7:  9cb6732a5f !  7:  3068fda8a9 apply: make parse_git_header public
>     @@ -1,9 +1,12 @@
>      Author: Thomas Gummerer <t.gummerer@gmail.com>
>
>     -    apply: make parse_git_header public
>     +    apply: make parse_git_diff_header public
>
>     -    Make parse_git_header a "public" function in apply.h, so we can re-use
>     -    it in range-diff in a subsequent commit.
>     +    Make 'parse_git_header()' (renamed to 'parse_git_diff_header()') a
>     +    "public" function in apply.h, so we can re-use it in range-diff in a
>     +    subsequent commit.  We're renaming the function to make it clearer in
>     +    other parts of the codebase that we're talking about a diff header and
>     +    not just any header.
>
>          Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
>
>     @@ -70,7 +73,7 @@
>      +			  struct patch *patch)
>       {
>       	unsigned long offset;
>     - 	struct parse_git_header_state parse_hdr_state;
>     + 	struct gitdiff_data parse_hdr_state;
>      @@
>       	 * or removing or adding empty files), so we get
>       	 * the default name from the header.
>     @@ -100,7 +103,7 @@
>      +	for (offset = len ; size > 0 ; offset += len, size -= len, line += len, (*linenr)++) {
>       		static const struct opentry {
>       			const char *str;
>     - 			int (*fn)(struct parse_git_header_state *, const char *, struct patch *);
>     + 			int (*fn)(struct gitdiff_data *, const char *, struct patch *);
>      @@
>       			res = p->fn(&parse_hdr_state, line + oplen, patch);
>       			if (res < 0)
>  8:  76a11ce995 =  8:  781d054cab range-diff: fix function parameter indentation
>  9:  6f70e7faa6 =  9:  68a2953310 range-diff: split lines manually
> 10:  6618cdff2c = 10:  8ae95d053b range-diff: don't remove funcname from inner diff
> 11:  2667df4fa5 = 11:  e572510c52 range-diff: suppress line count in outer diff
> 12:  47cd8c6733 = 12:  45605db760 range-diff: add section header instead of diff header
> 13:  f67fd5dd9a = 13:  89a27fbeaa range-diff: add filename to inner diff
> 14:  812893a5dc = 14:  8bee2c525f range-diff: add headers to the outer hunk header
>
> --
> 2.22.0.510.g264f2c817a
>