#if defined(USE_TERMINFO)
static const struct progress_ttyinfo *curtty = 0;
static int putty(int ch) { return (putc(ch, curtty->fp)); }
-static void put_sequence(const struct progress_ttyinfo *tty,
- const char *p, unsigned nlines)
+void progress_put_sequence(const struct progress_ttyinfo *tty,
+ const char *p, unsigned nlines)
{ if (p) { curtty = tty; tputs(p, nlines, putty); } }
-static void set_fgcolour(const struct progress_ttyinfo *tty, int colour)
- { put_sequence(tty, tgoto(tty->cap.af, -1, colour), 1); }
-static void set_bgcolour(const struct progress_ttyinfo *tty, int colour)
- { put_sequence(tty, tgoto(tty->cap.ab, -1, colour), 1); }
+void progress_set_fgcolour(const struct progress_ttyinfo *tty, int colour)
+ { progress_put_sequence(tty, tgoto(tty->cap.af, -1, colour), 1); }
+void progress_set_bgcolour(const struct progress_ttyinfo *tty, int colour)
+ { progress_put_sequence(tty, tgoto(tty->cap.ab, -1, colour), 1); }
#elif defined(USE_TERMCAP)
static const struct progress_ttyinfo *curtty = 0;
static int putty(int ch) { return (putc(ch, curtty->fp)); }
-static void put_sequence(const struct progress_ttyinfo *tty,
- const char *p, unsigned nlines)
+void progress_put_sequence(const struct progress_ttyinfo *tty,
+ const char *p, unsigned nlines)
{ if (p) { curtty = tty; tputs(p, nlines, putty); } }
-static void set_fgcolour(const struct progress_ttyinfo *tty, int colour)
- { put_sequence(tty, tgoto(tty->cap.af, -1, colour), 1); }
-static void set_bgcolour(const struct progress_ttyinfo *tty, int colour)
- { put_sequence(tty, tgoto(tty->cap.ab, -1, colour), 1); }
+void progress_set_fgcolour(const struct progress_ttyinfo *tty, int colour)
+ { progress_put_sequence(tty, tgoto(tty->cap.af, -1, colour), 1); }
+void progress_set_bgcolour(const struct progress_ttyinfo *tty, int colour)
+ { progress_put_sequence(tty, tgoto(tty->cap.ab, -1, colour), 1); }
#else
-static void put_sequence(const struct progress_ttyinfo *tty,
- const char *p, unsigned nlines) { ; }
-static void set_fgcolour(const struct progress_ttyinfo *tty, int colour)
+void progress_put_sequence(const struct progress_ttyinfo *tty,
+ const char *p, unsigned nlines) { ; }
+void progress_set_fgcolour(const struct progress_ttyinfo *tty, int colour)
{ ; }
-static void set_bgcolour(const struct progress_ttyinfo *tty, int colour)
+void progress_set_bgcolour(const struct progress_ttyinfo *tty, int colour)
{ ; }
#endif
if (!tty->fp) return (-1);
- put_sequence(tty, tty->cap.cr, 1);
+ progress_put_sequence(tty, tty->cap.cr, 1);
if (progress->last_lines) {
if (f&CLRF_ALL)
{ ndel = progress->last_lines; nleave = 0; }
nleave = progress->last_lines - ndel;
}
if (!ndel)
- for (i = 1; i < nleave; i++) put_sequence(tty, tty->cap.up, 1);
+ for (i = 1; i < nleave; i++)
+ progress_put_sequence(tty, tty->cap.up, 1);
else {
- for (i = 1; i < ndel; i++) put_sequence(tty, tty->cap.up, 1);
- put_sequence(tty, tty->cap.cd, ndel);
- for (i = 0; i < nleave; i++) put_sequence(tty, tty->cap.up, 1);
+ for (i = 1; i < ndel; i++)
+ progress_put_sequence(tty, tty->cap.up, 1);
+ progress_put_sequence(tty, tty->cap.cd, ndel);
+ for (i = 0; i < nleave; i++)
+ progress_put_sequence(tty, tty->cap.up, 1);
}
}
progress->last_lines = 0;
clear_progress(progress, &render, 0);
for (item = progress->items; item; item = item->next) {
- if (f&f_any) put_sequence(tty, tty->cap.nw, 1);
+ if (f&f_any) progress_put_sequence(tty, tty->cap.nw, 1);
render.leftsz = render.rightsz = 0;
render.leftwd = render.rightwd = 0;
item->render(item, &render); progress->last_lines++; f |= f_any;
if (progress->last_lines > render.height) break;
}
- if (f&f_any) put_sequence(tty, tty->cap.cr, 1);
+ if (f&f_any) progress_put_sequence(tty, tty->cap.cr, 1);
free_render_state(&render);
return (0);
}
while (bar->nextpos <= here) {
switch (bar->state) {
- case LEFT_COLOUR: set_bgcolour(tty, 3); goto right;
- case LEFT_MONO: put_sequence(tty, tty->cap.me, 1); goto right;
+ case LEFT_COLOUR: progress_set_bgcolour(tty, 3); goto right;
+ case LEFT_MONO: progress_put_sequence(tty, tty->cap.me, 1); goto right;
case LEFT_SIMPLE: putc('|', tty->fp); goto right;
right: bar->state = RIGHT_ANY; bar->nextpos = render->width; break;
case RIGHT_ANY: bar->state = STOP; bar->nextpos = UINT_MAX; break;
bar.render = render; bar.pos = 0; bar.nextpos = frac*render->width + 0.5;
if (tty->cap.op) {
- set_fgcolour(tty, 0); bar.state = LEFT_COLOUR;
- if (bar.nextpos) set_bgcolour(tty, 2);
+ progress_set_fgcolour(tty, 0); bar.state = LEFT_COLOUR;
+ if (bar.nextpos) progress_set_bgcolour(tty, 2);
else advance_bar_state(&bar);
} else if (tty->cap.mr) {
if (bar.nextpos)
- { bar.state = LEFT_MONO; put_sequence(tty, tty->cap.mr, 1); }
+ { bar.state = LEFT_MONO; progress_put_sequence(tty, tty->cap.mr, 1); }
else
{ bar.state = RIGHT; bar.nextpos = render->width; }
} else
render->linebuf + render->linesz - render->rightsz,
render->rightsz);
- put_sequence(tty, tty->cap.me, 1);
- put_sequence(tty, tty->cap.op, 1);
+ progress_put_sequence(tty, tty->cap.me, 1);
+ progress_put_sequence(tty, tty->cap.op, 1);
return (0);
}
if (!tty->fp) return (-1);
- if (tty->cap.op) { set_fgcolour(tty, fg); set_bgcolour(tty, bg); }
- else if (tty->cap.mr) put_sequence(tty, tty->cap.mr, 1);
- if (tty->cap.md) put_sequence(tty, tty->cap.md, 1);
+ if (tty->cap.op)
+ { progress_set_fgcolour(tty, fg); progress_set_bgcolour(tty, bg); }
+ else if (tty->cap.mr)
+ progress_put_sequence(tty, tty->cap.mr, 1);
+ if (tty->cap.md)
+ progress_put_sequence(tty, tty->cap.md, 1);
put_str(tty->fp, render->linebuf, render->leftsz);
if (!render->rightsz && (tty->cap.f&TCF_BCE) && tty->cap.ce)
- put_sequence(tty, tty->cap.ce, 1);
+ progress_put_sequence(tty, tty->cap.ce, 1);
else {
put_spc(tty->fp, render->width - render->leftwd - render->rightwd);
put_str(tty->fp,
render->rightsz);
}
- put_sequence(tty, tty->cap.me, 1);
- put_sequence(tty, tty->cap.op, 1);
+ progress_put_sequence(tty, tty->cap.me, 1);
+ progress_put_sequence(tty, tty->cap.op, 1);
return (0);
}