Re: [PATCH 8/8] diff: improve positioning of add/delete blocks in diffs
- From
Jacob Keller <jacob.keller@gmail.com>
- Date
- Aug 3, 2016, 22:29 UTC
- Message-ID
- <CA+P7+xo6q0pveVQdt1mynfsWq75DzBXsbPcgVYdd5s8rpO+97A@mail.gmail.com>
- In-Reply-To
- <7b0680ed7a10fc13acd8d7816a75ed05a5f9e28c.1470259583.git.mhagger@alum.mit.edu>
On Wed, Aug 3, 2016 at 3:00 PM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
Show 31 quoted lines
> +/*
> + * If a line is indented more than this, get_indent() just returns this value.
> + * This avoids having to do absurd amounts of work for data that are not
> + * human-readable text, and also ensures that the output of get_indent fits within
> + * an int.
> + */
> +#define MAX_INDENT 200
> +
> +/*
> + * Return the amount of indentation of the specified line, treating TAB as 8
> + * columns. Return -1 if line is empty or contains only whitespace. Clamp the
> + * output value at MAX_INDENT.
> + */
> +static int get_indent(xrecord_t *rec)
> +{
> + long i;
> + int ret = 0;
> +
> + for (i = 0; i < rec->size; i++) {
> + char c = rec->ptr[i];
> +
> + if (!XDL_ISSPACE(c))
> + return ret;
> + else if (c == ' ')
> + ret += 1;
> + else if (c == '\t')
> + ret += 8 - ret % 8;
> + /* ignore other whitespace characters */
> +
> + if (ret >= MAX_INDENT)
> + return MAX_INDENT;Should we return -1 here?
Show 7 quoted lines
> + } > + /* > + * We have reached the end of the line without finding any non-space > + * characters; i.e., the whole line consists of trailing spaces, which we > + * are not interested in. > + */ > + return -1;
It seems odd to be that a line with "199" spaces and nothing else will return "-1" but a line with 200 spaces and nothing else will return 200..? Would it be safe to just return -1 in both cases (if a line is all spaces or starts with more than 200 spaces just return -1)?
> +} > +