s - the buffer into which the character shall be delivered
TODO: Overruns.
*/
-#define DELIVER( x ) if ( status->i < status->n ) status->s[status->i] = x; ++(status->i)
+#define DELIVER( x ) do { if ( status->i < status->n ) status->s[status->i] = x; ++(status->i); } while ( 0 )
/* TODO: Left / right alignment - requires track-keeping of width and printed chars.
"Father function", die für right alignment "tail recursive" gerufen wird, und
++(status->this);
}
}
- if ( status->i == status->n )
+ if ( status->i >= status->n )
{
- status->s[status->i] = '\0';
+ status->s[status->n - 1] = '\0';
}
}