diff options
author | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2009-12-17 01:42:43 (EST) |
---|---|---|
committer | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2009-12-17 01:42:43 (EST) |
commit | 259ead07dd49045a49916c042032527e7d0be52f (patch) | |
tree | 9fe538c6246e4a5fcedf0c2ce3bb963e490aea56 /libopkg/opkg_message.c | |
parent | f832a817aea9b59067f09fc262111b3d2f57b435 (diff) |
Add a message callback function to the config struct for libopkg users.
git-svn-id: http://opkg.googlecode.com/svn/trunk@496 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg/opkg_message.c')
-rw-r--r-- | libopkg/opkg_message.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libopkg/opkg_message.c b/libopkg/opkg_message.c index a21a1a2..81afc97 100644 --- a/libopkg/opkg_message.c +++ b/libopkg/opkg_message.c @@ -78,14 +78,26 @@ opkg_message (message_level_t level, const char *fmt, ...) { va_list ap; - if (conf && (conf->verbosity < level)) + if (conf->verbosity < level) return; + if (conf->opkg_vmessage) { + /* Pass the message to libopkg users. */ + va_start (ap, fmt); + conf->opkg_vmessage(level, fmt, ap); + va_end (ap); + return; + } + va_start (ap, fmt); if (level == ERROR) { - char msg[256]; - vsnprintf(msg, 256, fmt, ap); +#define MSG_LEN 256 + char msg[MSG_LEN]; + if (vsnprintf(msg, MSG_LEN, fmt, ap) >= MSG_LEN) { + fprintf(stderr, "%s: Message truncated!\n", + __FUNCTION__); + } push_error_list(msg); } else vprintf(fmt, ap); |