about summary refs log tree commit diff stats
path: root/src/plugins/api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/api.c')
-rw-r--r--src/plugins/api.c84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/plugins/api.c b/src/plugins/api.c
index e0b2afb1..d4109937 100644
--- a/src/plugins/api.c
+++ b/src/plugins/api.c
@@ -561,3 +561,87 @@ api_chat_unset_titlebar_enctext(const char *const barejid)
 
     return 1;
 }
+
+int
+api_chat_set_incoming_char(const char *const barejid, const char *const ch)
+{
+    if (ch == NULL) {
+        return 0;
+    }
+
+    if (strlen(ch) != 1) {
+        return 0;
+    }
+
+    if (barejid == NULL) {
+        return 0;
+    }
+
+    ProfChatWin *chatwin = wins_get_chat(barejid);
+    if (chatwin == NULL) {
+        return 0;
+    }
+
+    chatwin_set_incoming_char(chatwin, ch);
+
+    return 1;
+}
+
+int
+api_chat_unset_incoming_char(const char *const barejid)
+{
+    if (barejid == NULL) {
+        return 0;
+    }
+
+    ProfChatWin *chatwin = wins_get_chat(barejid);
+    if (chatwin == NULL) {
+        return 0;
+    }
+
+    chatwin_unset_incoming_char(chatwin);
+
+    return 1;
+}
+
+int
+api_chat_set_outgoing_char(const char *const barejid, const char *const ch)
+{
+    if (ch == NULL) {
+        return 0;
+    }
+
+    if (strlen(ch) != 1) {
+        return 0;
+    }
+
+    if (barejid == NULL) {
+        return 0;
+    }
+
+    ProfChatWin *chatwin = wins_get_chat(barejid);
+    if (chatwin == NULL) {
+        return 0;
+    }
+
+    chatwin_set_outgoing_char(chatwin, ch);
+
+    return 1;
+}
+
+int
+api_chat_unset_outgoing_char(const char *const barejid)
+{
+    if (barejid == NULL) {
+        return 0;
+    }
+
+    ProfChatWin *chatwin = wins_get_chat(barejid);
+    if (chatwin == NULL) {
+        return 0;
+    }
+
+    chatwin_unset_outgoing_char(chatwin);
+
+    return 1;
+}