- i = min (ce, RB_CONTIGPUT(&tp->t_out));
- bcopy(cp, tp->t_out.rb_tl, i);
- tp->t_out.rb_tl = RB_ROLLOVER(&tp->t_out, tp->t_out.rb_tl+i);
- i = ce - i;
+ i = ce;
+ ce = min (ce, RB_CONTIGPUT(&tp->t_out));
+ bcopy(cp, tp->t_out.rb_tl, ce);
+ tp->t_out.rb_tl = RB_ROLLOVER(&tp->t_out,
+ tp->t_out.rb_tl + ce);
+ i -= ce;
+ if (i > 0) {
+ int ii;
+
+ ii = min (i, RB_CONTIGPUT(&tp->t_out));
+ bcopy(cp + ce, tp->t_out.rb_tl, ii);
+ tp->t_out.rb_tl = RB_ROLLOVER(&tp->t_out,
+ tp->t_out.rb_tl + ii);
+ i -= ii;
+ ce += ii;
+ }