summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOlivier Brunel <jjk@jjacky.com>2014-01-10 16:25:15 +0100
committerAllan McRae <allan@archlinux.org>2014-03-03 11:25:54 +1000
commitcd793c5ab7689cc8cbc18277375b368060e5acfe (patch)
treea910fef22528f58f2abb38f89a1df354f8f35d62 /src
parent28dbd5551ee75e843019e6f067ed069daaabba0b (diff)
downloadpacman-cd793c5ab7689cc8cbc18277375b368060e5acfe.tar.xz
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 <jjk@jjacky.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r--src/pacman/callback.c36
-rw-r--r--src/pacman/callback.h4
-rw-r--r--src/pacman/conf.c1
-rw-r--r--src/util/cleanupdelta.c14
-rw-r--r--src/util/testdb.c14
-rw-r--r--src/util/testpkg.c14
6 files changed, 42 insertions, 41 deletions
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 <alpm.h>
-__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);