chiark
/
gitweb
/
~mdw
/
mLib
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
@@@ tty cleanup
[mLib]
/
ui
/
ttyprogress.c
diff --git
a/ui/ttyprogress.c
b/ui/ttyprogress.c
index dc023d5b34260c3ad1a41adb4041834e1edaf2dc..768e2768f8afc1070bdba2b0da07d376f5c68217 100644
(file)
--- 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 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
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);
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);
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;
}
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);
fflush(tty->fpout);
return (0);