xdiff-interface: drop parse_hunk_header()
authorJeff King <peff@peff.net>
Fri, 2 Nov 2018 06:40:13 +0000 (02:40 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 5 Nov 2018 04:14:35 +0000 (13:14 +0900)
This function was used only for parsing the hunk headers generated by
xdiff. Now that we can use hunk callbacks to get that information
directly, it has outlived its usefulness.

Note to anyone who wants to resurrect it: the "len" parameter was
totally unused, meaning that the function could read past the end of the
"line" array. In practice this never happened, because we only used it
to parse xdiff's generated header lines. But it would be dangerous to
use it for other cases without fixing this defect.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
xdiff-interface.c
xdiff-interface.h
index a23adb3c45cf1a0c8a725869bd4d784d181b57da..de9c524d2f35ac74fff31da31bc6d944612d8366 100644 (file)
@@ -15,51 +15,6 @@ struct xdiff_emit_state {
        struct strbuf remainder;
 };
 
-static int parse_num(char **cp_p, int *num_p)
-{
-       char *cp = *cp_p;
-       int num = 0;
-
-       while ('0' <= *cp && *cp <= '9')
-               num = num * 10 + *cp++ - '0';
-       if (!(cp - *cp_p))
-               return -1;
-       *cp_p = cp;
-       *num_p = num;
-       return 0;
-}
-
-int parse_hunk_header(char *line, int len,
-                     int *ob, int *on,
-                     int *nb, int *nn)
-{
-       char *cp;
-       cp = line + 4;
-       if (parse_num(&cp, ob)) {
-       bad_line:
-               return error("malformed diff output: %s", line);
-       }
-       if (*cp == ',') {
-               cp++;
-               if (parse_num(&cp, on))
-                       goto bad_line;
-       }
-       else
-               *on = 1;
-       if (*cp++ != ' ' || *cp++ != '+')
-               goto bad_line;
-       if (parse_num(&cp, nb))
-               goto bad_line;
-       if (*cp == ',') {
-               cp++;
-               if (parse_num(&cp, nn))
-                       goto bad_line;
-       }
-       else
-               *nn = 1;
-       return -!!memcmp(cp, " @@", 3);
-}
-
 static int xdiff_out_hunk(void *priv_,
                          long old_begin, long old_nr,
                          long new_begin, long new_nr,
index 8af245eed9b43b5c9473d2dcb4beccbdafda7546..2d41fffd4c618b5d7b816146d9df684b195535e3 100644 (file)
@@ -23,9 +23,6 @@ int xdi_diff_outf(mmfile_t *mf1, mmfile_t *mf2,
                  xdiff_emit_line_fn line_fn,
                  void *consume_callback_data,
                  xpparam_t const *xpp, xdemitconf_t const *xecfg);
-int parse_hunk_header(char *line, int len,
-                     int *ob, int *on,
-                     int *nb, int *nn);
 int read_mmfile(mmfile_t *ptr, const char *filename);
 void read_mmblob(mmfile_t *ptr, const struct object_id *oid);
 int buffer_is_binary(const char *ptr, unsigned long size);