On Fri, Apr 09, 2010 at 09:12:08PM -0400, Andy Walls wrote: > On Fri, 2010-04-09 at 01:04 +0200, David Härdeman wrote: > > +again: > > + IR_dprintk(2, "RC6 decode started at state %i (%i units, %ius)\n", > > + data->state, u, TO_US(duration)); > > + > > + if (DURATION(u) == 0 && data->state != STATE_FINISHED) > > + return 0; > > Isn't there a better way to structure the logic to break up two adjacent > pulse units than with goto's out of the switch back up to here? > > A do {} while() loop would have been much clearer. I just tried it, and I'm not convinced. The main problem is that you'll end up with: do { switch(b) { case c: if (x) break; else if (y) continue; while(a); Where the break statement will affect the switch() and the continue statement will affect the do-while() loop which is kinda confusing. Especially if you're so far down in the function body that the do-while() and switch() statements aren't visible any more. -- David Härdeman -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html