Re: [PATCH v4 16/21] range-diff --dual-color: fix bogus white-space warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Johannes Schindelin via GitGitGadget" <gitgitgadget@xxxxxxxxx>
writes:

> @@ -177,8 +178,16 @@ static unsigned ws_check_emit_1(const char *line, int len, unsigned ws_rule,
>  	if (trailing_whitespace == -1)
>  		trailing_whitespace = len;
>  
> +	if ((ws_rule & WS_IGNORE_FIRST_SPACE) && len && line[0] == ' ') {
> +		if (stream)
> +			fwrite(line, 1, 1, stream);
> +		written++;
> +		if (!trailing_whitespace)
> +			trailing_whitespace++;
> +	}
> +
>  	/* Check indentation */
> -	for (i = 0; i < trailing_whitespace; i++) {
> +	for (i = written; i < trailing_whitespace; i++) {

It is pleasing to see that with a surprisingly clean and small
change like this we can exempt the initial space byte from
SP-before-HT check and from Indent-with-non-tab at the same time.

Very nice.

One reason why a surprisingly small special case is required is
perhaps because we are blessed with the original code being clean
[*1*], and the fact that a line[0] that is not ' ' will not trigger
any indentation related whitespace errors without this special case,
I guess.

>  		if (line[i] == ' ')
>  			continue;
>  		if (line[i] != '\t')


[Footnote]

*1* ws.c used to be almost all my code long time ago, but most of
    the shape of the current whitespace_error checking code comes from
    c1795bb08aa which is not mine, and I can say good things about it
    without feeling embarrassingly boasty ;-)



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux