On Friday 08 of April 2005 14:21, Tobias Anton wrote: > Am Donnerstag, 7. April 2005 19:24 schrieb Lubos Lunak: > > > What about a > > > "do ... while (!necessary);" > > > or even a > > > "do { ... continue; } while (false);" > > > loop? > > > > Just curious, what benefits should this exactly bring, other than > > affecting cvs annotate for 100+ lines and making Dijkstra happy? > > Readability. Every single backward goto can be expressed by a loop. A loop > is easier to read because you don't have to look up any label's position to > figure out whether a "continue" or "break" results in a backward or forward > jump. > > Comparing your backward goto to a loop, I don't see any advantage of the > backward goto. The main disadvantage of the backward goto: The exit > condition is not clear, whereas a loop would make it clear. Maybe if the code was written with a loop in mind, but the JPEG loader is written as linear code that just needs to go back in one place. I even tried to make it a loop first, but after getting it wrong two times I simply gave up (I did the mistake of trying to use a flag to bail out instead of the other way around, and that was pretty non-trivial). > Finally, > introducing a loop makes no difference in the number of lines at all: > > -again: > + do { > > - // don't return until necessary! > - goto again; > > + } while (state == decompressStarted); > > As you can see, this patch replaces 2 lines of code, not 100+, so your > argument is wrong. And reindents 100+ lines. *shrug* but if you care so much about it, why don't you simply commit that thing above? When nobody complained when I posted the patch for review I thought that simply nobody cared. > If you care about code indentation, things are > different, admitted, but I care for cvs annotate less than for the code > itself. A flaw of our SCM should not affect the developed software, > otherwise it's a bad SCM. > > Cheers > -- Tobias -- Lubos Lunak KDE developer --------------------------------------------------------------------- SuSE CR, s.r.o. e-mail: l.lunak@suse.cz , l.lunak@kde.org Drahobejlova 27 tel: +420 2 9654 2373 190 00 Praha 9 fax: +420 2 9654 2374 Czech Republic http://www.suse.cz/