# HG changeset patch # User Myhailo Danylenko # Date 1245056371 -7200 # Node ID 54029aba945248180f0af7213b458543c6a81583 # Parent f4a2c6f767d1dfbef104f3a4b13b7ad1401a8e70 Allow specifying nickname for bookmark diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/cs/hlp_room.txt --- 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ě. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/de/hlp_room.txt --- 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. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/en/hlp_room.txt --- 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. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/fr/hlp_room.txt --- 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). diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/it/hlp_room.txt --- 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. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/nl/hlp_room.txt --- 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. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/pl/hlp_room.txt --- 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. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/ru/hlp_room.txt --- 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 в буфере статуса. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/doc/help/uk/hlp_room.txt --- 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 у буфері стану. diff -r f4a2c6f767d1 -r 54029aba9452 mcabber/src/commands.c --- 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)