From: David Kastrup Date: Mon, 24 Sep 2007 14:10:36 GMT Subject: Re: [PATCH] Supplant the "while case ... break ;; esac" idiom Message-ID: <86fy14taqr.fsf@lola.quinscape.zz> In-Reply-To: Johannes Schindelin writes: > Hi, > > On Mon, 24 Sep 2007, Miles Bader wrote: > >> Eygene Ryabinkin writes: >> >> The comment "... holds only for a shell where [ is a builtin" doesn't >> >> make any sense to me >> > >> > The 'while case ...' construct does not invoke any external commands. >> > The 'while test ...' too, but only when 'test' is builtin. When >> > 'test' is the external binary you get one additional fork/exec per >> > each cycle. >> >> In practice that's not an issue though -- every reasonable shell has >> test as a builtin these days, so the "works when test is not a builtin" >> criteria is really important only for robustness. > > AAAAAAAAAAAAAARRRRRGGGHHHHHHHHHHHH! > > _Exactly_ the same reasoning can be said about the old code: _every_ > reasonable shell can grok the code that used to be there! There are no known shells that would not grok the proposed code, and the BSD shells don't grok the "code that used to be there". So what point is there in preserving compatibility with some mystical non-specified shell while breaking compatibility with actually existing shells? And by using a less human-readable idiom, to boot? -- David Kastrup