about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/autocomplete.c2
-rw-r--r--src/tools/autocomplete.h2
-rw-r--r--src/xmpp/bookmark.c12
3 files changed, 12 insertions, 4 deletions
diff --git a/src/tools/autocomplete.c b/src/tools/autocomplete.c
index 4981b690..974ed570 100644
--- a/src/tools/autocomplete.c
+++ b/src/tools/autocomplete.c
@@ -133,7 +133,7 @@ autocomplete_get_list(Autocomplete ac)
 }
 
 gboolean
-autocomplete_contains(Autocomplete ac, char *value)
+autocomplete_contains(Autocomplete ac, const char *value)
 {
     GSList *curr = ac->items;
 
diff --git a/src/tools/autocomplete.h b/src/tools/autocomplete.h
index fadd6e88..57c6015a 100644
--- a/src/tools/autocomplete.h
+++ b/src/tools/autocomplete.h
@@ -57,5 +57,5 @@ char * autocomplete_param_no_with_func(char *input, int *size, char *command,
 
 void autocomplete_reset(Autocomplete ac);
 
-gboolean autocomplete_contains(Autocomplete ac, char *value);
+gboolean autocomplete_contains(Autocomplete ac, const char *value);
 #endif
diff --git a/src/xmpp/bookmark.c b/src/xmpp/bookmark.c
index 0ed58ecb..e31a5795 100644
--- a/src/xmpp/bookmark.c
+++ b/src/xmpp/bookmark.c
@@ -61,6 +61,10 @@ bookmark_request(void)
 static gboolean
 _bookmark_add(const char *jid, const char *nick, gboolean autojoin)
 {
+    gboolean added = TRUE;
+    if (autocomplete_contains(bookmark_ac, jid)) {
+        added = FALSE;
+    }
     /* TODO: send request */
     /* TODO: manage bookmark_list */
 
@@ -68,12 +72,16 @@ _bookmark_add(const char *jid, const char *nick, gboolean autojoin)
     autocomplete_remove(bookmark_ac, jid);
     autocomplete_add(bookmark_ac, jid);
 
-    return FALSE;
+    return added;
 }
 
 static gboolean
 _bookmark_remove(const char *jid, gboolean autojoin)
 {
+    gboolean removed = FALSE;
+    if (autocomplete_contains(bookmark_ac, jid)) {
+        removed = TRUE;
+    }
     /* TODO: manage bookmark_list */
     if (autojoin) {
         /* TODO: just set autojoin=0 */
@@ -82,7 +90,7 @@ _bookmark_remove(const char *jid, gboolean autojoin)
         autocomplete_remove(bookmark_ac, jid);
     }
 
-    return FALSE;
+    return removed;
 }
 
 static const GList *