summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/content.c17
-rw-r--r--content/content_protected.h5
2 files changed, 22 insertions, 0 deletions
diff --git a/content/content.c b/content/content.c
index 353abeeb0..1a92e408b 100644
--- a/content/content.c
+++ b/content/content.c
@@ -678,6 +678,23 @@ void content_broadcast(struct content *c, content_msg msg,
}
}
+/* exported interface documented in content_protected.h */
+void content_broadcast_errorcode(struct content *c, nserror errorcode)
+{
+ struct content_user *user, *next;
+ union content_msg_data data;
+
+ assert(c);
+
+ data.errorcode = errorcode;
+
+ for (user = c->user_list->next; user != 0; user = next) {
+ next = user->next; /* user may be destroyed during callback */
+ if (user->callback != 0)
+ user->callback(c, CONTENT_MSG_ERRORCODE, data, user->pw);
+ }
+}
+
/**
* A window containing the content has been opened.
diff --git a/content/content_protected.h b/content/content_protected.h
index e39979768..ecbe17fc7 100644
--- a/content/content_protected.h
+++ b/content/content_protected.h
@@ -160,6 +160,11 @@ void content_set_error(struct content *c);
void content_set_status(struct content *c, const char *status_message);
void content_broadcast(struct content *c, content_msg msg,
union content_msg_data data);
+/**
+ * Send an errorcode message to all users.
+ */
+void content_broadcast_errorcode(struct content *c, nserror errorcode);
+
void content_add_error(struct content *c, const char *token,
unsigned int line);