patch: move yielding "\n" to the end of loop
The original logic makes it harder to reason about - it yields the "\n"
character belonging to the last line in the next loop iteration.
The new code is in theory a little bit slower. But is more readable. It
makes the following changes easier to read.
Differential Revision: https://phab.mercurial-scm.org/D3210
== Local
Ready.
Un and Deux
Eins und Zwei
One and Two
Eins und Zwei
Uno und Due
== Remote
Ready.
REQ: foo?one=Vo&two=Efvy
-> Vo!boe!Efvy
Un and Deux
REQ: bar?b=Fjot&a=[xfj
-> Fjot!voe![xfj
Eins und Zwei
REQ: batch?cmds=foo:one=Pof,two=Uxp;bar:b=Fjot,a=[xfj;bar:b=Vop,a=Evf
-> Pof!boe!Uxp;Fjot!voe![xfj;Vop!voe!Evf
One and Two
Eins und Zwei
Uno und Due