summaryrefslogtreecommitdiff
path: root/utils/messages.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2010-10-05 19:14:46 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2010-10-05 19:14:46 +0000
commit6173bb0e6c3bf51cd463f7bc4f725429d9087b2b (patch)
treede3e013699742960b97ee4a5eda240908d0ea8e6 /utils/messages.c
parent195c1ea3193f169c6825eca1fc6207e138126e98 (diff)
downloadnetsurf-6173bb0e6c3bf51cd463f7bc4f725429d9087b2b.tar.gz
netsurf-6173bb0e6c3bf51cd463f7bc4f725429d9087b2b.tar.bz2
Merge treeview-redux to trunk
svn path=/trunk/netsurf/; revision=10865
Diffstat (limited to 'utils/messages.c')
-rw-r--r--utils/messages.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/messages.c b/utils/messages.c
index 2f3bc173e..6ad17c3dd 100644
--- a/utils/messages.c
+++ b/utils/messages.c
@@ -30,6 +30,8 @@
#include <stdbool.h>
#include <string.h>
#include <zlib.h>
+#include <stdarg.h>
+
#include "utils/log.h"
#include "utils/messages.h"
#include "utils/utils.h"
@@ -158,6 +160,35 @@ const char *messages_get_ctx(const char *key, struct hash_table *ctx)
return r ? r : key;
}
+/* exported interface documented in messages.h */
+char *messages_get_buff(const char *key, ...)
+{
+ const char *msg_fmt;
+ char *buff = NULL; /* formatted buffer to return */
+ int buff_len = 0;
+ va_list ap;
+
+ msg_fmt = messages_get_ctx(key, messages_hash);
+
+ va_start(ap, key);
+ buff_len = vsnprintf(buff, buff_len, msg_fmt, ap);
+ va_end(ap);
+
+ buff = malloc(buff_len + 1);
+
+ if (buff == NULL) {
+ LOG(("malloc failed"));
+ warn_user("NoMemory", 0);
+ } else {
+ va_start(ap, key);
+ vsnprintf(buff, buff_len + 1, msg_fmt, ap);
+ va_end(ap);
+ }
+
+ return buff;
+}
+
+
/**
* Fast lookup of a message by key from the standard Messages hash.
*