struct ttyprogress_render render;
struct ttyprogress_item *item;
struct tty *tty = progress->tty;
- struct tty_attr save;
- uint32 modes;
+ struct tty_state save;
unsigned f = 0;
#define f_any 1u
setup_render_state(progress, &render);
clear_progress(progress, 0);
- modes = tty->st.modes; tty_setmodes(tty, TTMF_AUTOM, 0);
- save = tty->st.attr;
+ save = tty->st;
for (item = progress->items; item; item = item->next) {
if (f&f_any) tty_move(tty, TTOF_YCUR | TTOF_XHOME, 1, 0);
item->render(item, &render); progress->last_lines++; f |= f_any;
if (progress->last_lines > tty->ht) break;
}
- tty_setmodes(tty, MASK32, modes); tty_setattr(tty, &save);
+ tty_restore(tty, &save);
fflush(tty->fpout);
return (0);