struct pakfire_progressbar;
-int pakfire_progressbar_create(
- struct pakfire_progressbar** progressbar, Pakfire pakfire, FILE* f);
+int pakfire_progressbar_create(struct pakfire_progressbar** progressbar, FILE* f);
struct pakfire_progressbar* pakfire_progressbar_ref(struct pakfire_progressbar* p);
struct pakfire_progressbar* pakfire_progressbar_unref(struct pakfire_progressbar* p);
#include <time.h>
#include <pakfire/i18n.h>
-#include <pakfire/logging.h>
-#include <pakfire/pakfire.h>
#include <pakfire/progressbar.h>
-#include <pakfire/types.h>
#include <pakfire/util.h>
#define REDRAW_TIMEOUT 100
};
struct pakfire_progressbar {
- Pakfire pakfire;
int nrefs;
enum pakfire_progressbar_status {
static int pakfire_progressbar_update_terminal_size(struct pakfire_progressbar* p) {
int fd = fileno(p->terminal.f);
+ // Set a default of 80x20
+ p->terminal.cols = 80;
+ p->terminal.rows = 20;
+
// Check if output file is a TTY
int r = isatty(fd);
- if (r != 1) {
- DEBUG(p->pakfire, "Output file descriptor %d is not a TTY: %s\n",
- fd, strerror(errno));
-
- // Set a default of 80x20
- p->terminal.cols = 80;
- p->terminal.rows = 20;
-
+ if (r != 1)
return 0;
- }
struct winsize w;
r = ioctl(fd, TIOCGWINSZ, &w);
- if (r) {
- ERROR(p->pakfire, "Could not determine terminal size: %s\n", strerror(errno));
+ if (r)
return r;
- }
// Save result
p->terminal.rows = w.ws_row;
static void pakfire_progressbar_free(struct pakfire_progressbar* p) {
pakfire_progressbar_free_widgets(p);
- pakfire_unref(p->pakfire);
free(p);
}
-int pakfire_progressbar_create(struct pakfire_progressbar** progressbar,
- Pakfire pakfire, FILE* f) {
+int pakfire_progressbar_create(struct pakfire_progressbar** progressbar, FILE* f) {
struct pakfire_progressbar* p = calloc(1, sizeof(*p));
if (!p)
return ENOMEM;
- p->pakfire = pakfire_ref(pakfire);
+ // Initialise reference counting
p->nrefs = 1;
// Set output to stdout if nothing was set
// Set start time
int r = clock_gettime(CLOCK_MONOTONIC, &p->time_start);
- if (r) {
- ERROR(p->pakfire, "Could not set start time: %s\n", strerror(errno));
+ if (r)
return r;
- }
return pakfire_progressbar_update(p, 0);
}