X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/mLib/blobdiff_plain/e82eb4b16c632551930ca8bfb2b4e2e58c1ee16a..9a5e5808ff09935b8562d7bf93b3ada040d96669:/ui/ttyprogress.c diff --git a/ui/ttyprogress.c b/ui/ttyprogress.c index dc023d5..768e276 100644 --- a/ui/ttyprogress.c +++ b/ui/ttyprogress.c @@ -433,8 +433,7 @@ int ttyprogress_update(struct ttyprogress *progress) 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 @@ -442,8 +441,7 @@ int ttyprogress_update(struct ttyprogress *progress) 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); @@ -452,7 +450,7 @@ int ttyprogress_update(struct ttyprogress *progress) 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);