From dc65374aa6ccd54fd4b61cacb7bd57b7d756043d Mon Sep 17 00:00:00 2001 From: John Tytgat Date: Sat, 5 Jun 2004 15:03:59 +0000 Subject: [project @ 2004-06-05 15:03:59 by joty] Created content_set_status() : one centralised place where status_message in the content struct is updated in a fail safe way. svn path=/import/netsurf/; revision=928 --- content/content.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'content/content.c') 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 -#include +#include +#include #include +#include #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; @@ -229,6 +231,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. * -- cgit v1.2.3