Junio C Hamano <gits...@pobox.com> writes:

> David Kastrup <d...@gnu.org> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to