summaryrefslogtreecommitdiff
path: root/content/content.c
diff options
context:
space:
mode:
Diffstat (limited to 'content/content.c')
-rw-r--r--content/content.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/content/content.c b/content/content.c
index be4331884..a002c04fd 100644
--- a/content/content.c
+++ b/content/content.c
@@ -13,8 +13,10 @@
*/
#include <assert.h>
-#include <string.h>
+#include <stdarg.h>
+#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "netsurf/utils/config.h"
#include "netsurf/content/content.h"
#include "netsurf/css/css.h"
@@ -183,7 +185,7 @@ struct content * content_create(char *url)
c->source_data = 0;
c->source_size = 0;
c->mime_type = 0;
- strcpy(c->status_message, messages_get("Loading"));
+ content_set_status(c, messages_get("Loading"));
user_sentinel = xcalloc(1, sizeof(*user_sentinel));
user_sentinel->callback = 0;
user_sentinel->p1 = user_sentinel->p2 = 0;
@@ -230,6 +232,26 @@ void content_set_type(struct content *c, content_type type,
/**
+ * Updates content with new status.
+ *
+ * The textual status contained in the content is updated with given string.
+ *
+ * \param status_message new textual status
+ */
+void content_set_status(struct content *c, const char *status_message, ...)
+{
+ va_list ap;
+ int len;
+
+ va_start(ap, status_message);
+ if ((len = vsnprintf(c->status_message, sizeof(c->status_message), status_message, ap)) < 0
+ || len >= sizeof(c->status_message))
+ c->status_message[sizeof(c->status_message) - 1] = '\0';
+ va_end(ap);
+}
+
+
+/**
* Process a block of source data.
*
* Calls the process_data function for the content.