On Mon, Apr 28, 2014 at 10:54:21AM +0200, Roberto E. Vargas Caballero wrote: > > - for(++x; x < term.col && !term.tabs[x]; ++x) > > + while(++x < term.col && !term.tabs[x]) > ... > > - for(--x; x > 0 && !term.tabs[x]; --x) > > + while(--x > 0 && !term.tabs[x]) > > I'm sorry, but this patch is incorrect, because it is implementation defined > when side effects of expressions are applied, so x of !term.tabs[x] can > be x before decrement, or x after decrement.
&& is a sequence point According to ISO IEC 9899:1999: """ The following are the sequence points described in 5.1.2.3: ... - The end of the first operand of the following operators: logical AND && (6.5.13); logical OR || (6.5.14); conditional ? (6.5.15); comma , (6.5.17). ... """