diff --git a/external/progressmeter.c b/external/progressmeter.c index adc9728..0bc58b1 100644 --- a/external/progressmeter.c +++ b/external/progressmeter.c @@ -40,7 +40,6 @@ #define DEFAULT_WINSIZE 80 #define MAX_WINSIZE 512 #define PADDING 1 /* padding between the progress indicators */ -#define UPDATE_INTERVAL 1 /* update the progress meter every second */ #define STALL_TIME 5 /* we're stalled after this many seconds */ /* determines whether we can output to the terminal */ @@ -58,7 +57,7 @@ static void setscreensize(void); void refresh_progress_meter(void); /* signal handler for updating the progress meter */ -static void update_progress_meter(int); +void update_progress_meter(int); static time_t start; /* start progress */ static time_t last_update; /* last progress update */ @@ -243,7 +242,7 @@ refresh_progress_meter(void) } /*ARGSUSED*/ -static void +void update_progress_meter(int ignore) { int save_errno; diff --git a/external/progressmeter.h b/external/progressmeter.h index bd533f7..47de322 100644 --- a/external/progressmeter.h +++ b/external/progressmeter.h @@ -37,5 +37,8 @@ #include #endif +#define UPDATE_INTERVAL 1 /* update the progress meter every second */ + void start_progress_meter(char *, off_t, off_t *); void stop_progress_meter(void); +void update_progress_meter(int ignore); diff --git a/summary.c b/summary.c index d13bd93..c1b5638 100644 --- a/summary.c +++ b/summary.c @@ -36,6 +36,7 @@ #include "tools.h" #include "pkgin.h" +#include "progressmeter.h" static const struct Summary { const int type; @@ -278,7 +279,8 @@ parse_entry(struct Summary sum, int pkgid, char *line) if (!check_yesno(DEFAULT_NO)) exit(EXIT_FAILURE); check_machine_arch = 0; - alarm(1); /* Restart progress XXX: UPDATE_INTERVAL */ + signal(SIGALRM, update_progress_meter); + alarm(UPDATE_INTERVAL); } return; }