Junio C Hamano <[email protected]> writes:
> David Kastrup <[email protected]> writes:
>
>> Ok, I now wrote
>>
>> for (p = buf;; num++, p++) {
>> p = memchr(p, '\n', end - p);
>> if (!p)
>> break;
>> }
>
> Looks still wrong (perhaps this is a taste issue).
>
> num++ is not "loop control", but the real action of this
> loop to count lines. It is better left inside.
Ok.
> p++ is "loop control", and belongs to the third part of
> for(;;).
No, it isn't. The "real" loop control is the p = memchr line. p++ only
skips over the newline.
> Isn't the normal continuation condition "p < end"?
memchr returns NULL when not finding anything any more.
> so something like
>
> for (p = buf; p < end; p++) {
> p = find the end of this line
> if (!p)
> break;
> num++;
> }
>
> perhaps?
Would crash on incomplete last line.
--
David Kastrup
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html