diff options
author | Chantry Xavier <shiningxc@gmail.com> | 2007-12-03 22:57:54 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-12-04 01:43:12 +0100 |
commit | 72dae726910bce78647fb47ccfbba657b229ffb4 (patch) | |
tree | f8cbb1007255f07f2d7fc47548d8175cd77f0288 /src/pacman/util.c | |
parent | 0d1cb037566f3327315cf946d2443abb114b623a (diff) | |
download | pacman-72dae726910bce78647fb47ccfbba657b229ffb4.tar.gz pacman-72dae726910bce78647fb47ccfbba657b229ffb4.tar.xz |
Delay output during progress bar
This fixes the output issue related to the progress bar by delaying the
output. We can decide later (post-release) if we like this method or we want
to switch to something else.
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
[Dan: just some minor cleanups]
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'src/pacman/util.c')
-rw-r--r-- | src/pacman/util.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/pacman/util.c b/src/pacman/util.c index 89313c83..d8bcb823 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -526,6 +526,41 @@ int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...) return(ret); } +int pm_vasprintf(char **string, pmloglevel_t level, const char *format, va_list args) +{ + int ret = 0; + char *msg = NULL; + + /* if current logmask does not overlap with level, do not print msg */ + if(!(config->logmask & level)) { + return ret; + } + + /* print the message using va_arg list */ + ret = vasprintf(&msg, format, args); + + /* print a prefix to the message */ + switch(level) { + case PM_LOG_DEBUG: + asprintf(string, _("debug: %s"), msg); + break; + case PM_LOG_ERROR: + asprintf(string, _("error: %s"), msg); + break; + case PM_LOG_WARNING: + asprintf(string, _("warning: %s"), msg); + break; + case PM_LOG_FUNCTION: + asprintf(string, _("function: %s"), msg); + break; + default: + break; + } + free(msg); + + return(ret); +} + int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list args) { int ret = 0; |