changeset 1603:54029aba9452

Allow specifying nickname for bookmark
author Myhailo Danylenko <isbear@ukrpost.net>
date Mon, 15 Jun 2009 10:59:31 +0200
parents f4a2c6f767d1
children 351427ef0b4b
files mcabber/doc/help/cs/hlp_room.txt mcabber/doc/help/de/hlp_room.txt mcabber/doc/help/en/hlp_room.txt mcabber/doc/help/fr/hlp_room.txt mcabber/doc/help/it/hlp_room.txt mcabber/doc/help/nl/hlp_room.txt mcabber/doc/help/pl/hlp_room.txt mcabber/doc/help/ru/hlp_room.txt mcabber/doc/help/uk/hlp_room.txt mcabber/src/commands.c
diffstat 10 files changed, 31 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/doc/help/cs/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/cs/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [hodnota]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 Slouží pro správu konferenčních místností MUC (Multi-User Chat).
 
@@ -43,7 +43,7 @@
  Parametr 'print_status' definující, jaké změny stavů v místnosti se vypisují, má možnosti 'default' (výchozí), 'none' (žádné), 'in_and_out' (vstupy a výstupy z místnosti) nebo 'all' (všechny včetně změn stavů uživatelů).
  Parametr 'auto_whois' definující, zda se při vstupu uživatele provede příkaz "/room whois" pro zobrazení informací o uživateli, má možnosti 'default' (výchozí), 'off' (vypnuto) nebo 'on' (zapnuto).
  Pokud je hodnota 'default' (výchozí), použije se nastavení 'muc_print_status'/'muc_auto_whois' z konfiguračního souboru.
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Přidá ('add'), odstraní ('del') nebo zaktualizuje záložku. Výchozí je akce 'add'.
  Je-li nastaven parametr 'autojoin', dojde k automatickému vstupu do místnosti po připojení k serveru.
  K zobrazení přehledu záložek slouží příkaz "/room bookmark" spuštěný ve stavovém okně.
--- a/mcabber/doc/help/de/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/de/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [wert]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 Der "room" Befehl umfasst die Multi-User Chat (kurz MUC) Befehle.
 
@@ -44,7 +44,7 @@
  Für "print_status" sind folgende Werte möglich: "default", "none", "in_and_out", "all".
  Bei "auto_whois" sind die Werte "default", "off" und "on" gültig.
  Wenn man die Einstellungen auf "default" setzt, so werden die Optionen muc_print_status / muc_auto_whois benutzt.
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Zum Hinzufügen, Löschen und Ändern von Raum-Bookmarks.
  Wenn autojoin gesetzt ist, wird mcabber nach dem verbinden zum Server diesen MUC automatisch betreten.
  Um die Liste der Bookmarks zu sehen, benutze "/room bookmark", bei ausgewähltem Status Buffer.
--- a/mcabber/doc/help/en/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/en/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [value]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 The 'room' command handles Multi-User Chat room actions.
 
@@ -44,7 +44,7 @@
  For print_status, the possible values are "default", "none", "in_and_out", "all".
  For auto_whois, the possible values are "default", "off", "on".
  When the value is "default", the options muc_print_status / muc_auto_whois is used.
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Add, remove or update a bookmark (default is add).
  If autojoin is set, mcabber will automatically join the MUC room when it connects to the server.
  To see the list of bookmarks, use /room bookmark in the status buffer.
--- a/mcabber/doc/help/fr/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/fr/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [valeur]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 Cette commande permet de gérer les salons de discussions MUC (Multi-User Chat).
 
@@ -44,7 +44,7 @@
  Pour print_status, les valeurs possibles sont "default", "none", "in_and_out", "all".
  Pour auto_whois, les valeurs possibles sont "default", "off", "on".
  Si la valeur est "default", la configuration utilisée sera celle des options muc_print_status et muc_auto_whois.
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Ajoute, supprime ou met à jour le signet (par défaut, ajoute).
  Si "autojoin" est activé, mcabber entrera automatiquement dans la salle de conférence après s'être connecté au serveur.
  Pour visualiser la liste des signets, tapez /room bookmark dans la fenêtre d'état (status).
--- a/mcabber/doc/help/it/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/it/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [valore]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 Il comando 'room' gestisce le azioni per le stanze di chat multi-utente.
 
@@ -44,7 +44,7 @@
  Per l'opzione print_status i valori possibili sono "default", "none", "in_and_out", "all".
  Per auto_whois, i valori possibili sono "default", "off", "on".
  Quando il valore è impostato a "default", vengono usate le opzioni muc_print_status / muc_auto_whois.
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Aggiunge, rimuove o aggiorna un bookmark (di default aggiunge).
  Se è impostato l'autojoin, mcabber entrerà automaticamente nella stanza quando si connette al server.
  Per visualizzare l'elenco dei bookmark, utilizzare /room bookmark nel buffer di stato.
--- a/mcabber/doc/help/nl/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/nl/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [waarde]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 Het 'room' commando verzorgt de Multi-User Chat (MUC) room acties.
 
@@ -44,7 +44,7 @@
  Voor print_status zijn de mogelijke waarden "default", "none", "in_and_out", "all".
  Voor auto_whois zijn de mogelijke waarden "default", "off", "on".
  Indien de waarde gelijk is aan "default" worden de waarden gebruikt van de opties muc_print_status en muc_auto_whois.
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Toevoegen, verwijderen of aanpassen van een bookmark (standaard is toevoegen).
  Indien 'autojoin' actief is, zal mcabber automatisch de MUC chatroom betreden wanner het verbinding met de server heeft gemaakt.
  Om de list met bookmarks te zien, kan het commando `/room bookmark` in de status buffer worden gebruikt.
--- a/mcabber/doc/help/pl/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/pl/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [wartość]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 Polecenie 'room' służy do obsługi wieloużytkownikowych chat-room'ów.
 
@@ -44,6 +44,6 @@
  Możliwe wartości dla print_status: "default" (domyślne), "none" (wyłączone), "in_and_out" (wejścia i wyjścia), "all" (wszystkie).
  Możliwe wartości dla auto_whois: "default" (domyślne), "off" (wyłączone), "on" (włączone).
  Jeżeli została wybrana wartość "default", używane są ustawienia muc_print_status / muc_auto_whois.
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Dodaje, usuwa, aktualizuje zakładki (domyślnie dodaje).
  Jeśli ustawiona jest opcja "autojoin", mcabber automatycznie dołączy do danego MUC po połączeniu z serwerem.
--- a/mcabber/doc/help/ru/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/ru/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [value]
- /ROOM bookmark [add|del] [-autojoin|+autojoin]
+ /ROOM bookmark [add|del] [-autojoin|+autojoin] [-|nick]
 
 Команда 'room' работает с конференциями (Multi-User Chat room).
 
@@ -44,7 +44,7 @@
  Для опции "print_status" доступны следующие значения "default", "none", "in_and_out", "all".
  Для опции "auto_whois" возможные значения "default", "off", "on".
  Когда опция выставлена в "default" используются параметры "muc_print_status" / "muc_auto_whois".
-/room bookmark [add|del] [-autojoin|+autojoin]
+/room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
  Добавить, удалить или обновить закладку (по умолчанию: add - добавить)
  Если включена опция autojoin, mcabber автоматически подключается к конференции после соединения с Jabber-сервером.
  Чтобы просмотреть список закладок, используйте команду /room bookmark в буфере статуса.
--- a/mcabber/doc/help/uk/hlp_room.txt	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/doc/help/uk/hlp_room.txt	Mon Jun 15 10:59:31 2009 +0200
@@ -2,7 +2,7 @@
  /ROOM join|leave|names|nick|remove|topic|unlock|destroy
  /ROOM privmsg|invite|whois|kick|ban|unban|role|affil
  /ROOM setopt print_status|auto_whois [значення]
- /ROOM bookmark [add|del] [+autojoin|-autojoin]
+ /ROOM bookmark [add|del] [+autojoin|-autojoin] [-|nick]
 
 Команда, відповідальна за дії при багатокористувацькій розмові.
 
@@ -44,7 +44,7 @@
  print_status керує відображенням змін у статусі присутніх ("default", "none", "in_and_out", "all").
  auto_whois визначає, чи запитувати автоматично інформацію про новоприбульців до кімнати ("default", "off", "on").
  Коли встановлено "default", мають силу глобальні опції muc_print_status / muc_auto_whois.
-/room bookmark [add|del] [+autojoin|-autojoin]
+/room bookmark [add|del] [+autojoin|-autojoin] [-|nick]
  Додати, потерти, або замінити закладку (якщо не вказано - додасть).
  Якщо встановити автовхід, mcabber буде заходити в цю кімнату після з'єднання з сервером.
  Переглянути наявні закладки можна за допомогою /room bookmark у буфері стану.
--- a/mcabber/src/commands.c	Wed Sep 24 11:41:29 2008 +0200
+++ b/mcabber/src/commands.c	Mon Jun 15 10:59:31 2009 +0200
@@ -2817,17 +2817,19 @@
 {
   const char *roomid;
   const char *name = NULL, *nick = NULL;
+  char *tmpnick = NULL;
   enum room_autowhois autowhois = 0;
   enum room_printstatus printstatus = 0;
   enum { bm_add = 0, bm_del = 1 } action = 0;
   int autojoin = 0;
+  int nick_set = 0;
 
   if (arg && *arg) {
-    // /room bookmark [add|del] [[+|-]autojoin]
+    // /room bookmark [add|del] [[+|-]autojoin] [-|nick]
     char **paramlst;
     char **pp;
 
-    paramlst = split_arg(arg, 2, 0); // At most 2 parameters
+    paramlst = split_arg(arg, 3, 0); // At most 3 parameters
     for (pp = paramlst; *pp; pp++) {
       if (!strcasecmp(*pp, "add"))
         action = bm_add;
@@ -2837,6 +2839,12 @@
         autojoin = 0;
       else if (!strcasecmp(*pp, "+autojoin") || !strcasecmp(*pp, "autojoin"))
         autojoin = 1;
+      else if (!strcmp(*pp, "-"))
+        nick_set = 1;
+      else {
+        nick_set = 1;
+        nick = tmpnick = to_utf8 (*pp);
+      }
     }
     free_arg_lst(paramlst);
   }
@@ -2845,13 +2853,15 @@
 
   if (action == bm_add) {
     name = buddy_getname(bud);
-    nick = buddy_getnickname(bud);
+    if (!nick_set)
+      nick = buddy_getnickname(bud);
     printstatus = buddy_getprintstatus(bud);
     autowhois   = buddy_getautowhois(bud);
   }
 
   xmpp_set_storage_bookmark(roomid, name, nick, NULL, autojoin,
                             printstatus, autowhois);
+  g_free (tmpnick);
 }
 
 static void display_all_bookmarks(void)