From cd793c5ab7689cc8cbc18277375b368060e5acfe Mon Sep 17 00:00:00 2001 From: Olivier Brunel Date: Fri, 10 Jan 2014 16:25:15 +0100 Subject: Remove log_cb, add ALPM_EVENT_LOG instead When ALPM emits a log message, it still goes through _alpm_log() but instead of calling a specific log callback, it goes as an event. Signed-off-by: Olivier Brunel Signed-off-by: Allan McRae --- src/pacman/callback.c | 36 ++++++++++++++++++------------------ src/pacman/callback.h | 4 ---- src/pacman/conf.c | 1 - src/util/cleanupdelta.c | 14 ++++++++------ src/util/testdb.c | 14 ++++++++------ src/util/testpkg.c | 14 ++++++++------ 6 files changed, 42 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 218772d5..cd77a312 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -270,6 +270,24 @@ void cb_event(alpm_event_t *event) ((alpm_event_database_missing_t *) event)->dbname); } break; + case ALPM_EVENT_LOG: + { + alpm_event_log_t *e = (alpm_event_log_t *) event; + if(!e->fmt || strlen(e->fmt) == 0) { + break; + } + + if(on_progress) { + char *string = NULL; + pm_vasprintf(&string, e->level, e->fmt, e->args); + if(string != NULL) { + output = alpm_list_add(output, string); + } + } else { + pm_vfprintf(stderr, e->level, e->fmt, e->args); + } + } + break; /* all the simple done events, with fallthrough for each */ case ALPM_EVENT_FILECONFLICTS_DONE: case ALPM_EVENT_CHECKDEPS_DONE: @@ -777,22 +795,4 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total) return; } -/* Callback to handle notifications from the library */ -void cb_log(alpm_loglevel_t level, const char *fmt, va_list args) -{ - if(!fmt || strlen(fmt) == 0) { - return; - } - - if(on_progress) { - char *string = NULL; - pm_vasprintf(&string, level, fmt, args); - if(string != NULL) { - output = alpm_list_add(output, string); - } - } else { - pm_vfprintf(stderr, level, fmt, args); - } -} - /* vim: set noet: */ diff --git a/src/pacman/callback.h b/src/pacman/callback.h index 18939939..f16f7fc8 100644 --- a/src/pacman/callback.h +++ b/src/pacman/callback.h @@ -40,10 +40,6 @@ void cb_dl_total(off_t total); /* callback to handle display of download progress */ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total); -/* callback to handle messages/notifications from pacman library */ -__attribute__((format(printf, 2, 0))) -void cb_log(alpm_loglevel_t level, const char *fmt, va_list args); - #endif /* _PM_CALLBACK_H */ /* vim: set noet: */ diff --git a/src/pacman/conf.c b/src/pacman/conf.c index 729c9cb6..f75f3a76 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -685,7 +685,6 @@ static int setup_libalpm(void) } config->handle = handle; - alpm_option_set_logcb(handle, cb_log); alpm_option_set_dlcb(handle, cb_dl_progress); alpm_option_set_eventcb(handle, cb_event); alpm_option_set_questioncb(handle, cb_question); diff --git a/src/util/cleanupdelta.c b/src/util/cleanupdelta.c index 4a67fc38..190e2c70 100644 --- a/src/util/cleanupdelta.c +++ b/src/util/cleanupdelta.c @@ -35,17 +35,19 @@ static void cleanup(int signum) exit(signum); } -__attribute__((format(printf, 2, 0))) -static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args) +static void output_cb(alpm_event_log_t *event) { - if(strlen(fmt)) { - switch(level) { + if(event->type != ALPM_EVENT_LOG) { + return; + } + if(strlen(event->fmt)) { + switch(event->level) { case ALPM_LOG_ERROR: printf("error: "); break; case ALPM_LOG_WARNING: printf("warning: "); break; /* case ALPM_LOG_DEBUG: printf("debug: "); break; */ default: return; } - vprintf(fmt, args); + vprintf(event->fmt, event->args); } } @@ -126,7 +128,7 @@ int main(int argc, char *argv[]) } /* let us get log messages from libalpm */ - alpm_option_set_logcb(handle, output_cb); + alpm_option_set_eventcb(handle, (alpm_cb_event) output_cb); checkdbs(dbnames); alpm_list_free(dbnames); diff --git a/src/util/testdb.c b/src/util/testdb.c index e3b331ab..4d1fd4c8 100644 --- a/src/util/testdb.c +++ b/src/util/testdb.c @@ -39,16 +39,18 @@ static void cleanup(int signum) exit(signum); } -__attribute__((format(printf, 2, 0))) -static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args) +static void output_cb(alpm_event_log_t *event) { - if(strlen(fmt)) { - switch(level) { + if(event->type != ALPM_EVENT_LOG) { + return; + } + if(strlen(event->fmt)) { + switch(event->level) { case ALPM_LOG_ERROR: printf("error: "); break; case ALPM_LOG_WARNING: printf("warning: "); break; default: return; } - vprintf(fmt, args); + vprintf(event->fmt, event->args); } } @@ -282,7 +284,7 @@ int main(int argc, char *argv[]) } /* let us get log messages from libalpm */ - alpm_option_set_logcb(handle, output_cb); + alpm_option_set_eventcb(handle, (alpm_cb_event) output_cb); if(!dbnames) { errors = check_localdb(); diff --git a/src/util/testpkg.c b/src/util/testpkg.c index cc7d9c2b..39807feb 100644 --- a/src/util/testpkg.c +++ b/src/util/testpkg.c @@ -23,18 +23,20 @@ #include -__attribute__((format(printf, 2, 0))) -static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args) +static void output_cb(alpm_event_log_t *event) { - if(fmt[0] == '\0') { + if(event->type != ALPM_EVENT_LOG) { return; } - switch(level) { + if(event->fmt[0] == '\0') { + return; + } + switch(event->level) { case ALPM_LOG_ERROR: printf("error: "); break; case ALPM_LOG_WARNING: printf("warning: "); break; default: return; /* skip other messages */ } - vprintf(fmt, args); + vprintf(event->fmt, event->args); } int main(int argc, char *argv[]) @@ -59,7 +61,7 @@ int main(int argc, char *argv[]) } /* let us get log messages from libalpm */ - alpm_option_set_logcb(handle, output_cb); + alpm_option_set_eventcb(handle, (alpm_cb_event) output_cb); /* set gpgdir to default */ alpm_option_set_gpgdir(handle, GPGDIR); -- cgit v1.2.3-70-g09d2