On Wed, Sep 7, 2016 at 6:45 PM, Jonathan Nieder <[email protected]> wrote:
> (+cc: Heiko)
> Jonathan Nieder wrote:
>
>> 'die_initial_contact' uses got_at_least_one_head to determine whether
>> it was on the first line but code paths added later that use
>> 'continue' don't populate it properly (see b06dcd7d, 40c155ff, and
>> 1a7141ff). We could do
>>
>> int first_line = 1;
>>
>> for (;; first_line = 0) {
>> ...
>> }
>>
>> and use !first_line instead of got_at_least_one_head (removing
>> got_at_least_one_head in the process since it has no other purpose).
>
> I got the history wrong. It looks like this was always confused
> by the 'continue' cases. Unless I'm missing something subtle ---
> thoughts?
I was a bit confused by the line
for (;; first_line = 0) {
at first, but the explanation of 'continue's make sense for this pattern.
However I'd rather prefer if we'd have
int first_line = 1;
for(;;) {
... // stuff with no continue here
if (len < 0)
die_initial_contact(!first_line);
first_line = 0;
... // here we may have some continues, but that doesn't matter
// w.r.t. first_line
}