svn commit: r303487 - head/usr.bin/indent

Bruce Evans brde at optusnet.com.au
Fri Jul 29 23:53:23 UTC 2016


On Fri, 29 Jul 2016, Piotr Stefaniak wrote:

> On 2016-07-29 18:28, Pedro F. Giffuni wrote:
>> 
>> Log:
>>   indent(1): fix struct termination detection.
>> 
>>   Small style cleanup while here.
>
> Wrong commit message. Actually committed here is: Support "f" and "F" 
> floating constant suffixes.
>> ...

Also: Add large style bug in the fix.

>> Modified: head/usr.bin/indent/lexi.c
>> ==============================================================================
>> --- head/usr.bin/indent/lexi.c	Fri Jul 29 16:25:09 2016 
>> (r303486)
>> +++ head/usr.bin/indent/lexi.c	Fri Jul 29 16:28:51 2016 
>> (r303487)
>> @@ -191,15 +191,13 @@ lexi(void)
>>  		    }
>>  		}
>>  	    while (1) {
>> -		if (!(seensfx & 1) &&
>> -			(*buf_ptr == 'U' || *buf_ptr == 'u')) {
>> +		if (!(seensfx & 1) && (*buf_ptr == 'U' || *buf_ptr == 'u')) {
>>  		    CHECK_SIZE_TOKEN;
>>  		    *e_token++ = *buf_ptr++;
>>  		    seensfx |= 1;
>>  		    continue;
>>  		}
>> -        	if (!(seensfx & 2) &&
>> -			(*buf_ptr == 'L' || *buf_ptr == 'l')) {
>> +		if (!(seensfx & 2) && strchr("fFlL", *buf_ptr)) {

indent's style is mostly bad, but this doesn't seem to involve using
boolean tests for non-boolean str*() functions.  indent didn't use
strchr() before, but it always does explict comparisons with 0 for
strcmp() and strncmp().  strstr() doesn't even return an integer,
so an explicit comparison is even more needed for it.  Except the
"found" test doesn't require negative logic like !strcmp().

>>  		    CHECK_SIZE_TOKEN;
>>  		    if (buf_ptr[1] == buf_ptr[0])
>>  		        *e_token++ = *buf_ptr++;

Bruce


More information about the svn-src-all mailing list