struct rmsd rmsd; /* running mean and standard deviation */
int have_terminfo;
int utf8_mode;
+ int machine_readable;
};
struct progress_bar *
if (bar == NULL)
return NULL;
- bar->utf8_mode = STREQ (nl_langinfo (CODESET), "UTF-8");
+ if (flags & PROGRESS_BAR_MACHINE_READABLE) {
+ bar->machine_readable = 1;
+ bar->utf8_mode = 0;
+ bar->have_terminfo = 0;
+ } else {
+ bar->machine_readable = 0;
+
+ bar->utf8_mode = STREQ (nl_langinfo (CODESET), "UTF-8");
- bar->have_terminfo = 0;
+ bar->have_terminfo = 0;
- term = getenv ("TERM");
- if (term) {
- if (tgetent (NULL, term) == 1)
- bar->have_terminfo = 1;
+ term = getenv ("TERM");
+ if (term) {
+ if (tgetent (NULL, term) == 1)
+ bar->have_terminfo = 1;
+ }
}
/* Call this to ensure the other fields are in a reasonable state.
double ratio;
const char *s_open, *s_dot, *s_dash, *s_close;
- if (bar->utf8_mode) {
- s_open = "\u27e6"; s_dot = "\u2589"; s_dash = "\u2550"; s_close = "\u27e7";
- } else {
- s_open = "["; s_dot = "#"; s_dash = "-"; s_close = "]";
- }
-
- if (bar->have_terminfo == 0) {
+ if (bar->machine_readable || bar->have_terminfo == 0) {
dumb:
printf ("%" PRIu64 "/%" PRIu64 "\n", position, total);
} else {
fputs (" 100% ", stdout);
}
+ if (bar->utf8_mode) {
+ s_open = "\u27e6";
+ s_dot = "\u2589";
+ s_dash = "\u2550";
+ s_close = "\u27e7";
+ } else {
+ s_open = "["; s_dot = "#"; s_dash = "-"; s_close = "]";
+ }
+
fputs (s_open, stdout);
if (!pulse_mode) {
*
* Function returns a handle, or NULL if there was an error.
*/
+#define PROGRESS_BAR_MACHINE_READABLE 1
extern struct progress_bar *progress_bar_init (unsigned flags);
/* This should be called at the start of each command. */