I did not try to start a polemic, but to give something to think about. There are more opinions on the matter and, as you may see, mine differs of yours. Is not a tragedy.
However, I think one should be more aware when supporting habit per se. Maybe adding "until" as an aliasing for "while not" would you seem more acceptable? Or, at least, accepting "do{/* code */}aslongas(/*condition*/);" as an alternative "do{/* code */}while(/*condition*/);" would be less disruptive? That way, people could use "do/while", but this will open the door for "do/ aslongas", if this is considered suitable. This will also avoid ambiguous cases like pointed out in this thread (i.e. the danger of interpreting "while(/ *condition*/;i++" as a ";" bug). This will break no compatibility. Robustness of relying solely on the code indentation ("}while();" instead of "while();") is not persuasive for me. Why dismissing an opportunity to avoid a potential bug? eles == Quote from Jonathan M Davis (jmdavisp...@gmail.com)'s article > Quality prevails over compatibility when the quality gain is deemed to > exceed the problems incurred by losing compatibility. > In this case, do-while works just fine. Lots of people are used to using it > and have never even heard of repeat-until, having never used Pascal or any > other language that used it. At this point, C's influence far outweights > Pascal's. > Also, AFAIK, do-while is not generally a major source of bugs. As such, > while another construct might be better, since the current one isn't much of > a problem, it's not worth breaking compatibility. If it were shown that do- > while was a big problem, then it might be. But at this point, do-while works > just fine, so it's not worth changing it. > - Jonathan M Davis