X-Git-Url: https://git.distorted.org.uk/~mdw/dvdrip/blobdiff_plain/dc53ebfaa3fb887f962b574c6bafa45b160fc765..be805677f5dccd3643a82aad9f90f756cedddf72:/multiprogress.h?ds=inline diff --git a/multiprogress.h b/multiprogress.h index 1db97a8..f5147c4 100644 --- a/multiprogress.h +++ b/multiprogress.h @@ -10,13 +10,15 @@ struct progress_ttyinfo { struct { /* terminal capabilities */ unsigned f; /* various flags */ #define TCF_BCE 1u /* erases to background colour */ - const char *cr, *up, *ce, *cd; /* cursor motion */ + const char *cr, *nw, *up, *ce, *cd; /* cursor motion */ const char *mr, *md, *me; /* reverse video, bold */ const char *af, *ab, *op; /* colour */ + char pc; /* pad character (termcap) */ } cap; - unsigned defwd, defht; /* default width and height */ + unsigned defwd, defht; /* default width and height */ }; -#define PROGRESS_TTYINFO_INIT { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } +#define PROGRESS_TTYINFO_INIT \ + { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 80, 25 } struct progress_state { struct progress_ttyinfo tty; /* terminal state */ @@ -34,7 +36,7 @@ struct progress_render_state { char *tempbuf; size_t tempsz; /* scratch buffer */ size_t leftsz, rightsz; /* left and right cursors */ unsigned leftwd, rightwd; /* left and right widths */ - char *old_bc, *old_up; /* old fixup strings */ + char *old_bc, *old_up, old_pc; /* saved `termcap' globals */ }; struct progress_item { @@ -48,16 +50,15 @@ struct progress_item { extern int progress_init(struct progress_state */*progress*/); extern void progress_free(struct progress_state */*progress*/); -extern int progress_clear(struct progress_state */*progress*/); - -extern int progress_update(struct progress_state */*progress*/); - extern int progress_additem(struct progress_state */*progress*/, struct progress_item */*item*/); extern int progress_removeitem(struct progress_state */*progress*/, struct progress_item */*item*/); +extern int progress_clear(struct progress_state */*progress*/); + +extern int progress_update(struct progress_state */*progress*/); extern int progress_vputleft(struct progress_render_state */*render*/, const char */*fmt*/, va_list /*ap*/);