summaryrefslogtreecommitdiffstats
path: root/libopkg/opkg_message.c
diff options
context:
space:
mode:
authorgraham.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)
commit259ead07dd49045a49916c042032527e7d0be52f (patch)
tree9fe538c6246e4a5fcedf0c2ce3bb963e490aea56 /libopkg/opkg_message.c
parentf832a817aea9b59067f09fc262111b3d2f57b435 (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.c18
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);