diff options
author | Andrew Gregory <andrew.gregory.8@gmail.com> | 2014-09-28 17:45:35 -0400 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-09-30 12:56:21 +1000 |
commit | b52ed49d75ff77ef4f6ad2bef576184bda9b98d0 (patch) | |
tree | b4c7f71acf22f05302ebaf76967f18521a713275 /src/pacman | |
parent | 31b98626003fec9e33483152552906a601c072d4 (diff) |
Revert "Remove log_cb, add ALPM_EVENT_LOG instead"
Moving logging to the event callback caused warnings
under clang due to non-literal format strings and
silenced all log messages when --print was used.
This reverts commit cd793c5ab7689cc8cbc18277375b368060e5acfe.
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Conflicts:
lib/libalpm/alpm.h
src/pacman/callback.c
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src/pacman')
-rw-r--r-- | src/pacman/callback.c | 36 | ||||
-rw-r--r-- | src/pacman/callback.h | 4 | ||||
-rw-r--r-- | src/pacman/conf.c | 1 |
3 files changed, 23 insertions, 18 deletions
diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 1d68db4c..4993382d 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -281,24 +281,6 @@ void cb_event(alpm_event_t *event) event->database_missing.dbname); } break; - case ALPM_EVENT_LOG: - { - alpm_event_log_t *e = &event->log; - 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; case ALPM_EVENT_PACNEW_CREATED: { alpm_event_pacnew_created_t *e = &event->pacnew_created; @@ -862,4 +844,22 @@ 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 e4941fc7..5480c73d 100644 --- a/src/pacman/callback.h +++ b/src/pacman/callback.h @@ -39,6 +39,10 @@ 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 0e483f77..8b298ccf 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -684,6 +684,7 @@ 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); |