X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=pctb%2Fconvert.c;h=8b12f3a06c62f19214658dd2a1870e63bcbbe4a0;hb=4d7eb93b7c82da31f928349ac7c6cd551d78ca57;hp=d0c113cbcdcadc2c033b567c3a7f93f69ec8cefd;hpb=4903e3f2fbd534bde1bc3ebc4d84328297e0b388;p=ypp-sc-tools.web-live.git diff --git a/pctb/convert.c b/pctb/convert.c index d0c113c..8b12f3a 100644 --- a/pctb/convert.c +++ b/pctb/convert.c @@ -70,13 +70,12 @@ int main(int argc, char **argv) { } if (o_mode & mf_screenshot) { screenshots_file= fopen(o_screenshots_fn, "w"); eassert(screenshots_file); - if (o_single_page) - take_one_screenshot(); - else - take_screenshots(); + if (o_single_page) take_one_screenshot(); + else take_screenshots(); } else { screenshots_file= fopen(o_screenshots_fn, "r"); eassert(screenshots_file); - read_screenshots(); + if (o_single_page) read_one_screenshot(); + else read_screenshots(); } if (o_mode & mf_analyse) { analyse(); @@ -90,10 +89,12 @@ int main(int argc, char **argv) { DEFINE_VWRAPPERF(, progress) DEFINE_VWRAPPERF(, progress_log) +DEFINE_VWRAPPERF(, progress_spinner) +DEFINE_VWRAPPERF(, warning) static int last_progress_len; -void vprogress(const char *fmt, va_list al) { +static void vprogress_core(int spinner, const char *fmt, va_list al) { int r; if (o_quiet) return; @@ -105,6 +106,11 @@ void vprogress(const char *fmt, va_list al) { r= vfprintf(stderr,fmt,al); eassert(r>=0); + if (spinner) { + putc(spinner,stderr); + r++; + } + if (r < last_progress_len) { fprintf(stderr,"%*s", last_progress_len - r, ""); if (!r) putc('\r', stderr); @@ -114,6 +120,16 @@ void vprogress(const char *fmt, va_list al) { fflush(stderr); } +void vprogress(const char *fmt, va_list al) { vprogress_core(0,fmt,al); } +void vprogress_spinner(const char *fmt, va_list al) { + static const char spinchars[]="/-\\"; + static int spinner; + + vprogress_core(spinchars[spinner],fmt,al); + spinner++; + spinner %= (sizeof(spinchars)-1); +} + void vprogress_log(const char *fmt, va_list al) { if (o_quiet) return; @@ -122,3 +138,10 @@ void vprogress_log(const char *fmt, va_list al) { putc('\n',stderr); fflush(stderr); } + +void vwarning(const char *fmt, va_list al) { + progress(""); + fputs("warning: ",stderr); + vfprintf(stderr,fmt,al); + fflush(stderr); +}