Add fix-compile-warning-xmpp_c, refresh queue
authorMyhailo Danylenko <isbear@isbear.org.ua>
Fri, 09 Dec 2016 02:12:34 +0200
changeset 92 66f7e2aa040c
parent 91 51d326d5cb92
child 93 d59df8a9413d
Add fix-compile-warning-xmpp_c, refresh queue
add-cmake.diff
add-offline-message.diff
fix-compile-warning-xmpp_c.diff
fix-date-fill.diff
guard-xmpp-password.diff
modularize-extcmd.diff
roster-state-colors.diff
separate-extcmd.diff
series
switch-to-experimental.diff
timeformat.diff
use-gslice.diff
--- a/add-cmake.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/add-cmake.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,6 +1,6 @@
 # HG changeset patch
 # Parent 386f3b8646a61ba6af61609ff67f2da2cc70251e
-# Parent  3ac5a22405458457d067b59e4e31cb1cda415f13
+# Parent  04c97ffb0b5a75641bb2e6c1fc762f0383bc265e
 Add possibility to build with CMake
 
 diff --git a/.hgignore b/.hgignore
@@ -35,7 +35,7 @@
 +
 +cmake_minimum_required ( VERSION 2.6 )
 +project ( mcabber C )
-+set ( PROJECT_VERSION "1.0.3-dev" )
++set ( PROJECT_VERSION "1.0.5-dev" )
 +
 +## User settable options
 +option ( ENABLE_DEBUG    "Enable debugging output"                       OFF ) # XXX is it really used?
--- a/add-offline-message.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/add-offline-message.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,11 +1,11 @@
 # HG changeset patch
 # Parent 99ffc1bfe836f0fe094e0a9e3564521a09b39458
-# Parent  6d9f7b9e620dde7a6fda44af197260f4ae8f4b13
+# Parent  7403b46ba9ed804804b57504d498b00d0aa71995
 Allow to specify status message, when going offline
 
-diff -r 6d9f7b9e620d mcabber/ChangeLog.api
---- a/mcabber/ChangeLog.api	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/ChangeLog.api	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/ChangeLog.api
+--- a/mcabber/ChangeLog.api	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/ChangeLog.api	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,3 +1,10 @@
 +experimental (46)
 +
@@ -17,7 +17,7 @@
  experimental (45)
  
   * Change branch to "experimental".
-@@ -45,6 +52,13 @@
+@@ -49,6 +56,13 @@
  
    -- Mikael Berthe, 2015-10-04
  
@@ -31,7 +31,7 @@
  experimental (43)
  
   * Change branch to "experimental".
-@@ -136,6 +150,13 @@
+@@ -140,6 +154,13 @@
  
    -- Mikael Berthe, 2013-09-29
  
@@ -45,7 +45,7 @@
  experimental (41)
  
   * Change branch to "experimental".
-@@ -154,6 +175,13 @@
+@@ -158,6 +179,13 @@
  
    -- Mikael Berthe, 2013-04-28
  
@@ -59,7 +59,7 @@
  experimental (39)
  
   * Change branch to "experimental".
-@@ -171,6 +199,13 @@
+@@ -175,6 +203,13 @@
  
    -- Mikael Berthe, 2012-11-28
  
@@ -73,7 +73,7 @@
  experimental (37)
  
   * Change branch to "experimental".
-@@ -189,6 +224,13 @@
+@@ -193,6 +228,13 @@
  
    -- Myhailo Danylenko, 2012-10-20
  
@@ -87,18 +87,18 @@
  experimental (35)
  
   * Change branch to "experimental".
-diff -r 6d9f7b9e620d mcabber/doc/help/cs/hlp.txt
---- a/mcabber/doc/help/cs/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/cs/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/cs/hlp.txt
+--- a/mcabber/doc/help/cs/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/cs/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Zobrazí nápovědu k příkazu nebo tématu.
  
 -Dostupné příkazy jsou: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Dostupné příkazy jsou: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/cs/hlp_disconnect.txt
---- a/mcabber/doc/help/cs/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/cs/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/cs/hlp_disconnect.txt
+--- a/mcabber/doc/help/cs/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/cs/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -107,27 +107,27 @@
  Ukončí spojení s Jabber serverem.
 +You can specify status message to disconnect with.
  Poznámka: Seznam kontaktů (roster) je přístupný pouze v době, kdy je spojení aktivní. Po odpojení od serveru je proto prázdný.
-diff -r 6d9f7b9e620d mcabber/doc/help/cs/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/cs/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/cs/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/cs/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [message]
 +
 +Terminate all connections and exit mcabber.
 +This command is the same as /QUIT, but you can specify status message to exit with.
-diff -r 6d9f7b9e620d mcabber/doc/help/de/hlp.txt
---- a/mcabber/doc/help/de/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/de/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/de/hlp.txt
+--- a/mcabber/doc/help/de/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/de/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Zeigt die Hilfe zu einem Befehl oder ein Thema an.
  Wenn kein Argument gegeben ist, wird diese Hilfe angezeigt.
 -Verfügbare Befehle: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Verfügbare Befehle: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/de/hlp_disconnect.txt
---- a/mcabber/doc/help/de/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/de/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/de/hlp_disconnect.txt
+--- a/mcabber/doc/help/de/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/de/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -136,27 +136,27 @@
  Die Verbindung zum Jabber Server trennen.
 +You can specify status message to disconnect with.
  Denke daran, dass der Roster nur verfügbar ist wenn man mit dem Jabber Server verbunden ist. Somit ist die Buddyliste auch leer, wenn man sich beim Server abmeldet.
-diff -r 6d9f7b9e620d mcabber/doc/help/de/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/de/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/de/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/de/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [message]
 +
 +Terminate all connections and exit mcabber.
 +This command is the same as /QUIT, but you can specify status message to exit with.
-diff -r 6d9f7b9e620d mcabber/doc/help/en/hlp.txt
---- a/mcabber/doc/help/en/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/en/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/en/hlp.txt
+--- a/mcabber/doc/help/en/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/en/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Display some help about a command or a topic.
  If no argument provided a usage of this command is printed.
 -Available commands: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Available commands: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/en/hlp_disconnect.txt
---- a/mcabber/doc/help/en/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/en/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/en/hlp_disconnect.txt
+--- a/mcabber/doc/help/en/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/en/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -165,27 +165,27 @@
  Terminate the connection to the Jabber server.
 +You can specify status message to disconnect with.
  Note: the roster is only available when the connection to the server is active, so the buddylist is empty when disconnected.
-diff -r 6d9f7b9e620d mcabber/doc/help/en/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/en/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/en/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/en/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [message]
 +
 +Terminate all connections and exit mcabber.
 +This command is the same as /QUIT, but you can specify status message to exit with.
-diff -r 6d9f7b9e620d mcabber/doc/help/fr/hlp.txt
---- a/mcabber/doc/help/fr/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/fr/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/fr/hlp.txt
+--- a/mcabber/doc/help/fr/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/fr/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -2,4 +2,4 @@
   /HELP [commande|+sujet]
  
  Affiche de l'aide sur la commande ou le sujet demandé.
 -Les commandes disponibles sont : add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Les commandes disponibles sont : add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/fr/hlp_disconnect.txt
---- a/mcabber/doc/help/fr/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/fr/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/fr/hlp_disconnect.txt
+--- a/mcabber/doc/help/fr/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/fr/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -194,27 +194,27 @@
  Ferme la connexion au serveur Jabber.
 +You can specify status message to disconnect with.
  Remarque : le roster n'est disponible que lorsque la connexion au serveur estactive, donc la liste de contacts est vide après déconnexion.
-diff -r 6d9f7b9e620d mcabber/doc/help/fr/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/fr/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/fr/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/fr/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [message]
 +
 +Terminate all connections and exit mcabber.
 +This command is the same as /QUIT, but you can specify status message to exit with.
-diff -r 6d9f7b9e620d mcabber/doc/help/it/hlp.txt
---- a/mcabber/doc/help/it/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/it/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/it/hlp.txt
+--- a/mcabber/doc/help/it/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/it/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Mostra l'help relativo a comando o ad argomento.
  Se non viene specificato alcun argomento, viene visualizzato l'utilizzo del comando corrente.
 -I comandi disponibili sono: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +I comandi disponibili sono: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/it/hlp_disconnect.txt
---- a/mcabber/doc/help/it/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/it/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/it/hlp_disconnect.txt
+--- a/mcabber/doc/help/it/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/it/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -223,27 +223,27 @@
  Termina la connessione con il serve Jabber.
 +You can specify status message to disconnect with.
  Nota: il roster è disponibile soltanto quando la connessione è attiva, quindi la lista dei contatti è vuota quando si è disconnessi.
-diff -r 6d9f7b9e620d mcabber/doc/help/it/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/it/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/it/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/it/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [message]
 +
 +Terminate all connections and exit mcabber.
 +This command is the same as /QUIT, but you can specify status message to exit with.
-diff -r 6d9f7b9e620d mcabber/doc/help/nl/hlp.txt
---- a/mcabber/doc/help/nl/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/nl/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/nl/hlp.txt
+--- a/mcabber/doc/help/nl/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/nl/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Toon informatie over een commando of onderwerp.
  Als geen argument is meegegeven, wordt een tekst over het gebruik van dit commando getoond.
 -Beschikbare commando's: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Beschikbare commando's: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/nl/hlp_disconnect.txt
---- a/mcabber/doc/help/nl/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/nl/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/nl/hlp_disconnect.txt
+--- a/mcabber/doc/help/nl/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/nl/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -252,27 +252,27 @@
  Beëindig de verbinding met de Jabber server.
 +You can specify status message to disconnect with.
  NB: het Roster is alleen beschikbaar indien er een actieve verbinding met de server bestaat. De buddylijst is dus leeg indien niet verbonden.
-diff -r 6d9f7b9e620d mcabber/doc/help/nl/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/nl/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/nl/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/nl/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [message]
 +
 +Terminate all connections and exit mcabber.
 +This command is the same as /QUIT, but you can specify status message to exit with.
-diff -r 6d9f7b9e620d mcabber/doc/help/pl/hlp.txt
---- a/mcabber/doc/help/pl/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/pl/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/pl/hlp.txt
+--- a/mcabber/doc/help/pl/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/pl/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Wyświetla pomoc dotyczącą danego polecenia lub tematu.
  Jeśli nie podano żadnego argumentu, zostanie wyświetlona pomoc o sposobie użycia.
 -Dostępne polecenia: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Dostępne polecenia: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/pl/hlp_disconnect.txt
---- a/mcabber/doc/help/pl/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/pl/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/pl/hlp_disconnect.txt
+--- a/mcabber/doc/help/pl/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/pl/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -283,27 +283,27 @@
 \ No newline at end of file
 +You can specify status message to disconnect with.
 +Uwaga: roster dostępny jest tylko gdy połączenie do serwera jest aktywne, zatem jeżeli nie jesteś połączony lista kontaktów jest pusta.
-diff -r 6d9f7b9e620d mcabber/doc/help/pl/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/pl/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/pl/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/pl/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [message]
 +
 +Terminate all connections and exit mcabber.
 +This command is the same as /QUIT, but you can specify status message to exit with.
-diff -r 6d9f7b9e620d mcabber/doc/help/ru/hlp.txt
---- a/mcabber/doc/help/ru/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/ru/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/ru/hlp.txt
+--- a/mcabber/doc/help/ru/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/ru/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Отображает файл помощи о запрошенной команде или топике.
  Если выполнить без аргументов, будут отображены допустимые команды.
 -Допустимые команды: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Допустимые команды: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/ru/hlp_disconnect.txt
---- a/mcabber/doc/help/ru/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/ru/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/ru/hlp_disconnect.txt
+--- a/mcabber/doc/help/ru/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/ru/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -312,9 +312,9 @@
  Завершает соединение с Jabber-сервером.
 +Вы можете указать сообщение статуса при выходе.
  Примечание: список контактов доступен только когда соединение с сервером активно, поэтому список контактов пуст при завершении соединения.
-diff -r 6d9f7b9e620d mcabber/doc/help/ru/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/ru/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/ru/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/ru/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,6 @@
 +
 + /EXIT [сообщение]
@@ -322,18 +322,18 @@
 +
 +Эта команда завершает все активные соединения и выходит из mcabber`а.
 +Отличается от /QUIT тем, что позволяет указать сообщение статуса при выходе.
-diff -r 6d9f7b9e620d mcabber/doc/help/uk/hlp.txt
---- a/mcabber/doc/help/uk/hlp.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/uk/hlp.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/uk/hlp.txt
+--- a/mcabber/doc/help/uk/hlp.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/uk/hlp.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -3,4 +3,4 @@
  
  Друкує допоміжну інформацію про команду або вираз.
  Без аргументу друкує оце повідомлення.
 -Наявні команди: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
 +Наявні команди: add, alias, authorization, bind, buffer, carbons, chat_disable, clear, color, connect, del, disconnect, echo, event, exit, group, help, iline, info, module, move, msay, otr, otrpolicy, pgp, quit, rawxml, rename, request, room, roster, say_to, say, screen_refresh, set, source, status_to, status, version.
-diff -r 6d9f7b9e620d mcabber/doc/help/uk/hlp_disconnect.txt
---- a/mcabber/doc/help/uk/hlp_disconnect.txt	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/doc/help/uk/hlp_disconnect.txt	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/doc/help/uk/hlp_disconnect.txt
+--- a/mcabber/doc/help/uk/hlp_disconnect.txt	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/doc/help/uk/hlp_disconnect.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -1,5 +1,6 @@
  
 - /DISCONNECT
@@ -342,18 +342,18 @@
  Розірвати з'єднання з сервером.
 +Ви можете вказати повідомлення статусу відсутності.
  Майте на увазі, що список контактів зберігається на сервері, отож після від'єднання ви його більше не побачите.
-diff -r 6d9f7b9e620d mcabber/doc/help/uk/hlp_exit.txt
+diff -r 7403b46ba9ed mcabber/doc/help/uk/hlp_exit.txt
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/doc/help/uk/hlp_exit.txt	Sat Nov 07 14:54:34 2015 +0200
++++ b/mcabber/doc/help/uk/hlp_exit.txt	Fri Dec 09 01:48:44 2016 +0200
 @@ -0,0 +1,5 @@
 +
 + /EXIT [повідомлення]
 +
 +Закриває всі з’єднання та завершує мкаббер.
 +Відмінність цієї команди від /QUIT у тому, що ви можете вказати повідомлення статусу відсутності.
-diff -r 6d9f7b9e620d mcabber/mcabber/api.h
---- a/mcabber/mcabber/api.h	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/mcabber/api.h	Sat Nov 07 14:54:34 2015 +0200
+diff -r 7403b46ba9ed mcabber/mcabber/api.h
+--- a/mcabber/mcabber/api.h	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/mcabber/api.h	Fri Dec 09 01:48:44 2016 +0200
 @@ -4,8 +4,8 @@
  #include <glib.h>
  #include <mcabber/config.h> // For MCABBER_BRANCH
@@ -365,10 +365,10 @@
  
  #define MCABBER_BRANCH_EXPERIMENTAL 1
  
-diff -r 6d9f7b9e620d mcabber/mcabber/commands.c
---- a/mcabber/mcabber/commands.c	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/mcabber/commands.c	Sat Nov 07 14:54:34 2015 +0200
-@@ -94,6 +94,7 @@
+diff -r 7403b46ba9ed mcabber/mcabber/commands.c
+--- a/mcabber/mcabber/commands.c	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/mcabber/commands.c	Fri Dec 09 01:48:44 2016 +0200
+@@ -92,6 +92,7 @@
  static void do_echo(char *arg);
  static void do_module(char *arg);
  static void do_carbons(char *arg);
@@ -376,7 +376,7 @@
  
  static void room_bookmark(gpointer bud, char *arg);
  
-@@ -201,6 +202,7 @@
+@@ -199,6 +200,7 @@
    cmd_add("echo", "Display a string in the log window", 0, 0, &do_echo, NULL);
    cmd_add("event", "Process an event", COMPL_EVENTSID, COMPL_EVENTS, &do_event,
            NULL);
@@ -384,7 +384,7 @@
    cmd_add("group", "Change group display settings",
            COMPL_GROUP, COMPL_GROUPNAME, &do_group, NULL);
    cmd_add("help", "Display some help", COMPL_CMD, 0, &do_help, NULL);
-@@ -4194,7 +4196,9 @@
+@@ -4198,7 +4200,9 @@
  
  static void do_disconnect(char *arg)
  {
@@ -395,7 +395,7 @@
  }
  
  static void do_help(char *arg)
-@@ -4221,4 +4225,14 @@
+@@ -4225,4 +4229,14 @@
    }
  }
  
@@ -410,10 +410,10 @@
 +}
 +
  /* vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2:  For Vim users... */
-diff -r 6d9f7b9e620d mcabber/mcabber/main.c
---- a/mcabber/mcabber/main.c	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/mcabber/main.c	Sat Nov 07 14:54:34 2015 +0200
-@@ -89,7 +89,7 @@
+diff -r 7403b46ba9ed mcabber/mcabber/main.c
+--- a/mcabber/mcabber/main.c	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/mcabber/main.c	Fri Dec 09 01:48:44 2016 +0200
+@@ -96,7 +96,7 @@
  #ifndef MODULES_ENABLE
    fifo_deinit();
  #endif
@@ -422,7 +422,7 @@
    scr_terminate_curses();
  
    // Restore term settings, if needed.
-@@ -584,7 +584,7 @@
+@@ -634,7 +634,7 @@
  #ifdef HAVE_LIBOTR
    otr_terminate();
  #endif
@@ -431,10 +431,10 @@
  #ifdef HAVE_GPGME
    gpg_terminate();
  #endif
-diff -r 6d9f7b9e620d mcabber/mcabber/settings.c
---- a/mcabber/mcabber/settings.c	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/mcabber/settings.c	Sat Nov 07 14:54:34 2015 +0200
-@@ -439,7 +439,12 @@
+diff -r 7403b46ba9ed mcabber/mcabber/settings.c
+--- a/mcabber/mcabber/settings.c	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/mcabber/settings.c	Fri Dec 09 01:48:44 2016 +0200
+@@ -442,7 +442,12 @@
  // - if no message is found, return NULL
  const gchar *settings_get_status_msg(enum imstatus status)
  {
@@ -448,7 +448,7 @@
  
    if (rstatus) return rstatus;
  
-@@ -464,7 +469,7 @@
+@@ -467,7 +472,7 @@
          rstatus = settings_opt_get("message_away");
          break;
  
@@ -457,10 +457,10 @@
          break;
    }
    return rstatus;
-diff -r 6d9f7b9e620d mcabber/mcabber/xmpp.c
---- a/mcabber/mcabber/xmpp.c	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/mcabber/xmpp.c	Sat Nov 07 14:54:34 2015 +0200
-@@ -793,7 +793,7 @@
+diff -r 7403b46ba9ed mcabber/mcabber/xmpp.c
+--- a/mcabber/mcabber/xmpp.c	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/mcabber/xmpp.c	Fri Dec 09 01:48:44 2016 +0200
+@@ -802,7 +802,7 @@
  
  static void _try_to_reconnect(void)
  {
@@ -469,7 +469,7 @@
    if (AutoConnection)
      g_timeout_add_seconds(RECONNECTION_TIMEOUT + (random() % 90L),
                            xmpp_reconnect, NULL);
-@@ -1796,7 +1796,7 @@
+@@ -1784,7 +1784,7 @@
    LmMessageHandler *handler;
    GError *error = NULL;
  
@@ -478,7 +478,7 @@
  
    servername  = settings_opt_get("server");
    userjid     = settings_opt_get("jid");
-@@ -1976,7 +1976,7 @@
+@@ -1974,7 +1974,7 @@
    lm_message_node_set_attribute(y, "ver", ver);
  }
  
@@ -487,7 +487,7 @@
  {
    if (!lconnection)
      return;
-@@ -1984,7 +1984,7 @@
+@@ -1982,7 +1982,7 @@
      // Launch pre-disconnect internal hook
      hk_predisconnect();
      // Announce it to  everyone else
@@ -496,22 +496,22 @@
    }
    if (lm_connection_is_open(lconnection))
      lm_connection_close(lconnection, NULL);
-diff -r 6d9f7b9e620d mcabber/mcabber/xmpp.h
---- a/mcabber/mcabber/xmpp.h	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/mcabber/xmpp.h	Sat Nov 07 14:54:34 2015 +0200
-@@ -38,7 +38,7 @@
+diff -r 7403b46ba9ed mcabber/mcabber/xmpp.h
+--- a/mcabber/mcabber/xmpp.h	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/mcabber/xmpp.h	Fri Dec 09 01:48:44 2016 +0200
+@@ -36,7 +36,7 @@
+ extern LmSSL* lssl;
  
- void xmpp_init(void); /* private */
  int  xmpp_connect(void);
 -void xmpp_disconnect(void);
 +void xmpp_disconnect(const char *message);
  gboolean xmpp_is_online(void);
  
  void xmpp_room_join(const char *room, const char *nickname, const char *passwd);
-diff -r 6d9f7b9e620d mcabber/mcabberrc.example
---- a/mcabber/mcabberrc.example	Sat Nov 07 14:37:38 2015 +0200
-+++ b/mcabber/mcabberrc.example	Sat Nov 07 14:54:34 2015 +0200
-@@ -383,6 +383,9 @@
+diff -r 7403b46ba9ed mcabber/mcabberrc.example
+--- a/mcabber/mcabberrc.example	Fri Dec 09 01:38:32 2016 +0200
++++ b/mcabber/mcabberrc.example	Fri Dec 09 01:48:44 2016 +0200
+@@ -399,6 +399,9 @@
  #set message_notavail  = I'm not available
  #set message_away      = I'm away
  #
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fix-compile-warning-xmpp_c.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -0,0 +1,15 @@
+# HG changeset patch
+# Parent  47fd760f5cc95c229728b7da18891de2d86e01fc
+
+diff -r 47fd760f5cc9 -r 654fe24b69ae mcabber/mcabber/xmpp.c
+--- a/mcabber/mcabber/xmpp.c	Fri Dec 09 01:49:13 2016 +0200
++++ b/mcabber/mcabber/xmpp.c	Fri Dec 09 01:53:57 2016 +0200
+@@ -1329,7 +1329,7 @@
+                           lm_message_node_get_attribute(info, "name"),
+                           lm_message_node_get_attribute(info, "type"),
+                           lm_message_node_get_attribute(info, "xml:lang"));
+-        info = info->next;
++      info = info->next;
+     }
+ 
+     info = lm_message_node_get_child(query, "feature");
--- a/fix-date-fill.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/fix-date-fill.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,5 +1,6 @@
 # HG changeset patch
 # Parent 634cc23e8c1c5764623d17d12170b3fb7d67e5d9
+# Parent  d1357df25a61fc92b64302ae645cce5b14b452f2
 Fix empty prefix filling
 Not useful in vanilla, as there's no prefixes
 longer than that static string. Also not add spaces
@@ -7,10 +8,10 @@
 
 XXX: Not really sure about this all, why are we getting rid of spaces in the end?
 
-diff -r 634cc23e8c1c mcabber/mcabber/screen.c
---- a/mcabber/mcabber/screen.c	Fri Oct 17 22:42:07 2014 +0200
-+++ b/mcabber/mcabber/screen.c	Tue Nov 11 20:58:44 2014 +0200
-@@ -1087,9 +1087,9 @@
+diff -r d1357df25a61 mcabber/mcabber/screen.c
+--- a/mcabber/mcabber/screen.c	Fri Dec 09 01:38:42 2016 +0200
++++ b/mcabber/mcabber/screen.c	Fri Dec 09 01:48:22 2016 +0200
+@@ -1115,9 +1115,9 @@
  
    if (line->timestamp &&
        !(line->flags & (HBB_PREFIX_SPECIAL|HBB_PREFIX_CONT))) {
@@ -22,7 +23,7 @@
  
    if (!(line->flags & HBB_PREFIX_CONT)) {
      if (line->flags & HBB_PREFIX_INFO) {
-@@ -1129,13 +1129,12 @@
+@@ -1157,13 +1157,12 @@
          receiptflag = '-';
        g_snprintf(pref, preflen, "%s%c%c> ", date, receiptflag, cryptflag);
      } else if (line->flags & HBB_PREFIX_SPECIAL) {
--- a/guard-xmpp-password.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/guard-xmpp-password.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,19 +1,19 @@
 # HG changeset patch
-# Parent  6a07f127a10b06c5314e76713bebce46f40c602a
+# Parent  904e7cbbc385aa65d4c5507cd6524245cb289011
 Guard XMPP password with option guard
 
   * instead of filtering access to stored in public place
     restricted data, better store restricted data somewhere else
   * add xmpp_init() and xmpp_have_password (non-api)
 
-diff -r 6a07f127a10b mcabber/mcabber/commands.c
---- a/mcabber/mcabber/commands.c	Fri Mar 04 13:54:13 2016 +0200
-+++ b/mcabber/mcabber/commands.c	Fri Mar 04 13:55:29 2016 +0200
+diff -r 904e7cbbc385 mcabber/mcabber/commands.c
+--- a/mcabber/mcabber/commands.c	Fri Dec 09 01:41:18 2016 +0200
++++ b/mcabber/mcabber/commands.c	Fri Dec 09 01:47:05 2016 +0200
 @@ -2303,10 +2303,8 @@
  
  static void list_option_cb(char *k, char *v, void *f)
  {
--  if (strcmp(k, "password")) {
+-  if (strncmp(k, "password", 8) && strcmp(k, "pgp_passphrase")) {
 -    GSList **list = f;
 -    *list = g_slist_insert_sorted(*list, k, (GCompareFunc)strcmp);
 -  }
@@ -22,10 +22,10 @@
  }
  
  static void do_set(char *arg)
-diff -r 6a07f127a10b mcabber/mcabber/main.c
---- a/mcabber/mcabber/main.c	Fri Mar 04 13:54:13 2016 +0200
-+++ b/mcabber/mcabber/main.c	Fri Mar 04 13:55:29 2016 +0200
-@@ -451,6 +451,7 @@
+diff -r 904e7cbbc385 mcabber/mcabber/main.c
+--- a/mcabber/mcabber/main.c	Fri Dec 09 01:41:18 2016 +0200
++++ b/mcabber/mcabber/main.c	Fri Dec 09 01:47:05 2016 +0200
+@@ -460,6 +460,7 @@
    scr_init_locale_charset();
    ut_init_debug();
    help_init();
@@ -33,7 +33,7 @@
  
    /* Parsing config file... */
    ret = cfg_read_file(configFile, TRUE);
-@@ -472,19 +473,21 @@
+@@ -481,19 +482,21 @@
  
    /* If no password is stored, we ask for it before entering
       ncurses mode -- unless the username is unknown. */
@@ -57,10 +57,10 @@
        settings_set(SETTINGS_TYPE_OPTION, "password", pwd);
        g_free(pwd);
      }
-diff -r 6a07f127a10b mcabber/mcabber/xmpp.c
---- a/mcabber/mcabber/xmpp.c	Fri Mar 04 13:54:13 2016 +0200
-+++ b/mcabber/mcabber/xmpp.c	Fri Mar 04 13:55:29 2016 +0200
-@@ -23,6 +23,8 @@
+diff -r 904e7cbbc385 mcabber/mcabber/xmpp.c
+--- a/mcabber/mcabber/xmpp.c	Fri Dec 09 01:41:18 2016 +0200
++++ b/mcabber/mcabber/xmpp.c	Fri Dec 09 01:47:05 2016 +0200
+@@ -21,6 +21,8 @@
   */
  #include <stdlib.h>
  #include <string.h>
@@ -69,7 +69,7 @@
  
  #include "xmpp.h"
  #include "xmpp_helper.h"
-@@ -58,6 +60,9 @@
+@@ -56,6 +58,9 @@
  static enum imstatus mywantedstatus = available;
  gchar *mystatusmsg;
  
@@ -79,7 +79,7 @@
  char imstatus2char[imstatus_size+1] = {
      '_', 'o', 'f', 'd', 'n', 'a', 'i', '\0'
  };
-@@ -816,16 +821,15 @@
+@@ -814,16 +819,15 @@
    GError *error = NULL;
  
    if (success) {
@@ -98,7 +98,7 @@
                                      connection_auth_cb, NULL, FALSE, &error)) {
        scr_LogPrint(LPRINT_LOGNORM, "Failed to authenticate: %s",
                     error->message);
-@@ -1765,13 +1769,37 @@
+@@ -1763,13 +1767,37 @@
    }
  }
  
@@ -137,7 +137,7 @@
    char *dynresource = NULL;
  #ifndef LOUDMOUTH_USES_SHA256
    char fpr[FINGERPRINT_LENGTH] = {0};
-@@ -1790,7 +1818,6 @@
+@@ -1788,7 +1816,6 @@
  
    servername  = settings_opt_get("server");
    userjid     = settings_opt_get("jid");
@@ -145,7 +145,7 @@
    resource    = settings_opt_get("resource");
    proxy_host  = settings_opt_get("proxy_host");
    ssl_fpr     = settings_opt_get("ssl_fingerprint");
-@@ -1799,7 +1826,7 @@
+@@ -1797,7 +1824,7 @@
      scr_LogPrint(LPRINT_LOGNORM, "Your JID has not been specified!");
      return -1;
    }
@@ -154,9 +154,9 @@
      scr_LogPrint(LPRINT_LOGNORM, "Your password has not been specified!");
      return -1;
    }
-diff -r 6a07f127a10b mcabber/mcabber/xmpp.h
---- a/mcabber/mcabber/xmpp.h	Fri Mar 04 13:54:13 2016 +0200
-+++ b/mcabber/mcabber/xmpp.h	Fri Mar 04 13:55:29 2016 +0200
+diff -r 904e7cbbc385 mcabber/mcabber/xmpp.h
+--- a/mcabber/mcabber/xmpp.h	Fri Dec 09 01:41:18 2016 +0200
++++ b/mcabber/mcabber/xmpp.h	Fri Dec 09 01:47:05 2016 +0200
 @@ -34,7 +34,9 @@
  
  extern LmConnection* lconnection;
@@ -165,5 +165,5 @@
  
 +void xmpp_init(void); /* private */
  int  xmpp_connect(void);
- void xmpp_disconnect(void);
+ void xmpp_disconnect(const char *message);
  gboolean xmpp_is_online(void);
--- a/modularize-extcmd.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/modularize-extcmd.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  d4d77c56d8da7c9771579efe469440eb25947271
+# Parent  86cf5edde8624b3992557f29b5576388a57965ab
 Convert extcmd into a module
 
-diff -r d4d77c56d8da mcabber/configure.ac
---- a/mcabber/configure.ac	Sat Nov 07 17:28:17 2015 +0200
-+++ b/mcabber/configure.ac	Sat Nov 07 17:38:46 2015 +0200
-@@ -295,6 +295,7 @@
+diff -r 86cf5edde862 mcabber/configure.ac
+--- a/mcabber/configure.ac	Fri Dec 09 01:38:29 2016 +0200
++++ b/mcabber/configure.ac	Fri Dec 09 01:48:48 2016 +0200
+@@ -308,6 +308,7 @@
                   modules/beep/Makefile
                   modules/xttitle/Makefile
                   modules/fifo/Makefile
@@ -13,9 +13,9 @@
                   modules/urlregex/Makefile
                   doc/Makefile
                   doc/guide/Makefile
-diff -r d4d77c56d8da mcabber/mcabber/Makefile.am
---- a/mcabber/mcabber/Makefile.am	Sat Nov 07 17:28:17 2015 +0200
-+++ b/mcabber/mcabber/Makefile.am	Sat Nov 07 17:38:46 2015 +0200
+diff -r 86cf5edde862 mcabber/mcabber/Makefile.am
+--- a/mcabber/mcabber/Makefile.am	Fri Dec 09 01:38:29 2016 +0200
++++ b/mcabber/mcabber/Makefile.am	Fri Dec 09 01:48:48 2016 +0200
 @@ -7,8 +7,7 @@
  		  xmpp.c xmpp.h xmpp_helper.c xmpp_helper.h xmpp_defines.h \
  		  xmpp_iq.c xmpp_iq.h xmpp_iqrequest.c xmpp_iqrequest.h \
@@ -35,10 +35,10 @@
  endif
  
  #SUBDIRS =
-diff -r d4d77c56d8da mcabber/mcabber/hooks.c
---- a/mcabber/mcabber/hooks.c	Sat Nov 07 17:28:17 2015 +0200
-+++ b/mcabber/mcabber/hooks.c	Sat Nov 07 17:38:46 2015 +0200
-@@ -36,7 +36,10 @@
+diff -r 86cf5edde862 mcabber/mcabber/hooks.c
+--- a/mcabber/mcabber/hooks.c	Fri Dec 09 01:38:29 2016 +0200
++++ b/mcabber/mcabber/hooks.c	Fri Dec 09 01:48:48 2016 +0200
+@@ -34,7 +34,10 @@
  #include "utf8.h"
  #include "commands.h"
  #include "main.h"
@@ -87,7 +87,7 @@
  
    g_free(bmsg);
    g_free(mmsg);
-@@ -587,9 +596,11 @@
+@@ -586,9 +595,11 @@
    }
  #endif
  
@@ -99,7 +99,7 @@
  }
  
  void hk_mystatuschange(time_t timestamp, enum imstatus old_status,
-@@ -711,11 +722,13 @@
+@@ -710,11 +721,13 @@
    prev_muc_unread    = muc_unread;
    prev_muc_attention = muc_attention;
  
@@ -113,10 +113,10 @@
  }
  
  //  hk_presence_subscription_request(jid, message)
-diff -r d4d77c56d8da mcabber/mcabber/main.c
---- a/mcabber/mcabber/main.c	Sat Nov 07 17:28:17 2015 +0200
-+++ b/mcabber/mcabber/main.c	Sat Nov 07 17:38:46 2015 +0200
-@@ -50,9 +50,9 @@
+diff -r 86cf5edde862 mcabber/mcabber/main.c
+--- a/mcabber/mcabber/main.c	Fri Dec 09 01:38:29 2016 +0200
++++ b/mcabber/mcabber/main.c	Fri Dec 09 01:48:48 2016 +0200
+@@ -49,9 +49,9 @@
  #include "help.h"
  #include "events.h"
  #include "compl.h"
@@ -127,7 +127,7 @@
  # include "fifo.h"
  #endif
  
-@@ -509,9 +509,11 @@
+@@ -526,9 +526,11 @@
    }
  #endif
  
@@ -139,15 +139,15 @@
  
    optstring = settings_opt_get("roster_display_filter");
    if (optstring)
-diff -r d4d77c56d8da mcabber/modules/Makefile.am
---- a/mcabber/modules/Makefile.am	Sat Nov 07 17:28:17 2015 +0200
-+++ b/mcabber/modules/Makefile.am	Sat Nov 07 17:38:46 2015 +0200
+diff -r 86cf5edde862 mcabber/modules/Makefile.am
+--- a/mcabber/modules/Makefile.am	Fri Dec 09 01:38:29 2016 +0200
++++ b/mcabber/modules/Makefile.am	Fri Dec 09 01:48:48 2016 +0200
 @@ -1,1 +1,1 @@
 -SUBDIRS = beep xttitle fifo urlregex
 +SUBDIRS = beep xttitle fifo eventcmd urlregex
-diff -r d4d77c56d8da mcabber/modules/eventcmd/Makefile.am
+diff -r 86cf5edde862 mcabber/modules/eventcmd/Makefile.am
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/modules/eventcmd/Makefile.am	Sat Nov 07 17:38:46 2015 +0200
++++ b/mcabber/modules/eventcmd/Makefile.am	Fri Dec 09 01:48:48 2016 +0200
 @@ -0,0 +1,13 @@
 +
 +if INSTALL_HEADERS
@@ -162,9 +162,9 @@
 +				$(ENCHANT_CFLAGS)
 +endif
 +
-diff -r d4d77c56d8da mcabber/modules/eventcmd/eventcmd.c
+diff -r 86cf5edde862 mcabber/modules/eventcmd/eventcmd.c
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/modules/eventcmd/eventcmd.c	Sat Nov 07 17:38:46 2015 +0200
++++ b/mcabber/modules/eventcmd/eventcmd.c	Fri Dec 09 01:48:48 2016 +0200
 @@ -0,0 +1,221 @@
 +
 +/* Copyright 2009 Myhailo Danylenko
--- a/roster-state-colors.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/roster-state-colors.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,8 +1,10 @@
+# HG changeset patch
+# Parent  d4907cafba880f45f2dcf2ced4352c2adf1325ea
 Change roster item colors on chatstate change
 
-diff -r f17324b6c882 mcabber/contrib/themes/light.txt
---- a/mcabber/contrib/themes/light.txt	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/contrib/themes/light.txt	Tue Nov 11 22:35:16 2014 +0200
+diff -r d4907cafba88 mcabber/contrib/themes/light.txt
+--- a/mcabber/contrib/themes/light.txt	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/contrib/themes/light.txt	Fri Dec 09 01:48:40 2016 +0200
 @@ -14,7 +14,6 @@
  set color_bgrostersel  = green
  set color_rostersel    = yellow
@@ -11,9 +13,9 @@
  set color_readmark     = red
  
  # vim:set ft=conf:
-diff -r f17324b6c882 mcabber/contrib/themes/light2.txt
---- a/mcabber/contrib/themes/light2.txt	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/contrib/themes/light2.txt	Tue Nov 11 22:35:16 2014 +0200
+diff -r d4907cafba88 mcabber/contrib/themes/light2.txt
+--- a/mcabber/contrib/themes/light2.txt	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/contrib/themes/light2.txt	Fri Dec 09 01:48:40 2016 +0200
 @@ -14,7 +14,6 @@
  set color_bgrostersel  = black
  set color_rostersel    = brightgreen
@@ -22,9 +24,9 @@
  set color_readmark     = red
  
  # vim:set ft=conf:
-diff -r f17324b6c882 mcabber/contrib/themes/oliver.txt
---- a/mcabber/contrib/themes/oliver.txt	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/contrib/themes/oliver.txt	Tue Nov 11 22:35:16 2014 +0200
+diff -r d4907cafba88 mcabber/contrib/themes/oliver.txt
+--- a/mcabber/contrib/themes/oliver.txt	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/contrib/themes/oliver.txt	Fri Dec 09 01:48:40 2016 +0200
 @@ -14,7 +14,6 @@
  set color_bgrostersel  = yellow
  set color_rostersel    = blue
@@ -33,9 +35,9 @@
  set color_readmark     = red
  
  # vim:set ft=conf:
-diff -r f17324b6c882 mcabber/doc/help/en/hlp_color.txt
---- a/mcabber/doc/help/en/hlp_color.txt	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/doc/help/en/hlp_color.txt	Tue Nov 11 22:35:16 2014 +0200
+diff -r d4907cafba88 mcabber/doc/help/en/hlp_color.txt
+--- a/mcabber/doc/help/en/hlp_color.txt	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/doc/help/en/hlp_color.txt	Fri Dec 09 01:48:40 2016 +0200
 @@ -11,6 +11,7 @@
   Set a color rule (or overwrite, if it already exists).  The status is string containing all statuses the roster item can have for the rule to match, or * if any status is OK.  Wildcard is the file-matching wildcard that will be applied to JID.  Color is the wanted color.
   If color is -, the rule is removed.
@@ -44,9 +46,9 @@
  /color mucnick nick (color|-)
   Marks the nick to be colored by given color.  If a MUC has colored nicks, this one will be used.  If color is -, the color is marked as chosen automatically, which means it will not be used in 'preset' coloring mode, but will stay the same in 'on' coloring mode.
  /color muc (jid|.|*) [on|preset|off|-]
-diff -r f17324b6c882 mcabber/doc/help/uk/hlp_color.txt
---- a/mcabber/doc/help/uk/hlp_color.txt	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/doc/help/uk/hlp_color.txt	Tue Nov 11 22:35:16 2014 +0200
+diff -r d4907cafba88 mcabber/doc/help/uk/hlp_color.txt
+--- a/mcabber/doc/help/uk/hlp_color.txt	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/doc/help/uk/hlp_color.txt	Fri Dec 09 01:48:40 2016 +0200
 @@ -11,6 +11,7 @@
   Додає нове чи змінює існуюче правило кольору. "Статус" складений з літер статусу, до яких докладається це правило (наприклад "n_d?"). Зірочка ("*") відповідає будь-якому статусу. "Маска" подібна до файлової маски й докладається до jid. Правило встановлює колір контактів, що йому відповідають.
   Щоб вилучити правило, вкажіть колір "-".
@@ -55,10 +57,10 @@
  /color muc (jid|.|*) [on|preset|off|-]
   Встановлює режим забарвлення прізвиськ у чаті. Якщо замість jid вказано * режим докладається до всіх чатів, для яких не визначено особистого правила (з вказанням jid).
   У режимі on забарвлюються усі прізвиська, у режимі preset - лише ті, для яких колір встановлено командою /color mucnick, а режим off вимикає забарвлення прізвиськ. Режим - прибирає з вказаних jid особисті режими забарвлення. Тоді до них докладається глобальний. Глобальний режим прибрати не можна.
-diff -r f17324b6c882 mcabber/mcabber/screen.c
---- a/mcabber/mcabber/screen.c	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/mcabber/screen.c	Tue Nov 11 22:35:16 2014 +0200
-@@ -222,6 +222,8 @@
+diff -r d4907cafba88 mcabber/mcabber/screen.c
+--- a/mcabber/mcabber/screen.c	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/mcabber/screen.c	Fri Dec 09 01:48:40 2016 +0200
+@@ -229,6 +229,8 @@
  
  /* Functions */
  
@@ -67,7 +69,7 @@
  static int find_color(const char *name)
  {
    int result;
-@@ -445,7 +447,7 @@
+@@ -448,7 +450,7 @@
      "roster",
      "rostersel",
      "rosterselmsg",
@@ -76,7 +78,7 @@
      "info",
      "msgin",
      "readmark",
-@@ -519,10 +521,6 @@
+@@ -522,10 +524,6 @@
            init_pair(i+1, ((color) ? find_color(color) : COLOR_RED),
                      find_color(backselected));
            break;
@@ -87,7 +89,7 @@
        case COLOR_INFO:
            init_pair(i+1, ((color) ? find_color(color) : COLOR_WHITE),
                      find_color(background));
-@@ -826,6 +824,24 @@
+@@ -829,6 +827,24 @@
    settings_set_guard("color_rosternewmsg", scr_color_guard);
    settings_set_guard("color_timestamp", scr_color_guard);
  
@@ -112,7 +114,7 @@
    getmaxyx(stdscr, maxY, maxX);
    Log_Win_Height = DEFAULT_LOG_WIN_HEIGHT;
    // Note scr_draw_main_window() should be called early after scr_init_curses()
-@@ -2168,6 +2184,10 @@
+@@ -2200,6 +2216,10 @@
      // for unfolded groups.
      if (ismsg && (!isgrp || ishid)) {
        pending = '#';
@@ -123,7 +125,7 @@
      }
  
      if (ismuc) {
-@@ -2191,24 +2211,22 @@
+@@ -2223,24 +2243,22 @@
        for (n = 0; n < maxx; n++)
          waddch(rosterWnd, ' ');
      } else {
@@ -161,7 +163,7 @@
      }
  
      if (Roster_Width > prefix_length)
-@@ -2216,13 +2234,6 @@
+@@ -2248,13 +2266,6 @@
      else
        name[0] = 0;
  
@@ -175,9 +177,9 @@
      if (isgrp) {
        if (ishid) {
          int group_count = 0;
-diff -r f17324b6c882 mcabber/mcabber/screen.h
---- a/mcabber/mcabber/screen.h	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/mcabber/screen.h	Tue Nov 11 22:35:16 2014 +0200
+diff -r d4907cafba88 mcabber/mcabber/screen.h
+--- a/mcabber/mcabber/screen.h	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/mcabber/screen.h	Fri Dec 09 01:48:40 2016 +0200
 @@ -47,7 +47,7 @@
    COLOR_ROSTER,
    COLOR_ROSTERSEL,
@@ -187,10 +189,10 @@
    COLOR_INFO,
    COLOR_MSGIN,
    COLOR_READMARK,
-diff -r f17324b6c882 mcabber/mcabberrc.example
---- a/mcabber/mcabberrc.example	Tue Nov 11 21:21:09 2014 +0200
-+++ b/mcabber/mcabberrc.example	Tue Nov 11 22:35:16 2014 +0200
-@@ -429,16 +429,25 @@
+diff -r d4907cafba88 mcabber/mcabberrc.example
+--- a/mcabber/mcabberrc.example	Fri Dec 09 01:38:34 2016 +0200
++++ b/mcabber/mcabberrc.example	Fri Dec 09 01:48:40 2016 +0200
+@@ -457,16 +457,25 @@
  #set color_bgrostersel  = cyan
  #set color_rostersel    = blue
  #set color_rosterselmsg = red
--- a/separate-extcmd.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/separate-extcmd.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,8 +1,10 @@
+# HG changeset patch
+# Parent  4eeccf092a681b87a1a9d53f7de321f7653e1489
 Move extcmd code from hooks
 
-diff -r fd72b1e3bf26 mcabber/mcabber/Makefile.am
---- a/mcabber/mcabber/Makefile.am	Wed Nov 12 22:23:32 2014 +0200
-+++ b/mcabber/mcabber/Makefile.am	Wed Nov 12 22:24:18 2014 +0200
+diff -r 4eeccf092a68 mcabber/mcabber/Makefile.am
+--- a/mcabber/mcabber/Makefile.am	Fri Dec 09 01:38:25 2016 +0200
++++ b/mcabber/mcabber/Makefile.am	Fri Dec 09 01:48:53 2016 +0200
 @@ -7,7 +7,8 @@
  		  xmpp.c xmpp.h xmpp_helper.c xmpp_helper.h xmpp_defines.h \
  		  xmpp_iq.c xmpp_iq.h xmpp_iqrequest.c xmpp_iqrequest.h \
@@ -21,9 +23,9 @@
  			 $(top_builddir)/include/config.h
  
  if OTR
-diff -r fd72b1e3bf26 mcabber/mcabber/extcmd.c
+diff -r 4eeccf092a68 mcabber/mcabber/extcmd.c
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/mcabber/extcmd.c	Wed Nov 12 22:24:18 2014 +0200
++++ b/mcabber/mcabber/extcmd.c	Fri Dec 09 01:48:53 2016 +0200
 @@ -0,0 +1,152 @@
 +/*
 + * extcmd.c      -- External event handler command
@@ -177,9 +179,9 @@
 +}
 +
 +/* vim: set expandtab cindent cinoptions=>2\:2(0 ts=2 sw=2:  For Vim users... */
-diff -r fd72b1e3bf26 mcabber/mcabber/extcmd.h
+diff -r 4eeccf092a68 mcabber/mcabber/extcmd.h
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/mcabber/mcabber/extcmd.h	Wed Nov 12 22:24:18 2014 +0200
++++ b/mcabber/mcabber/extcmd.h	Fri Dec 09 01:48:53 2016 +0200
 @@ -0,0 +1,15 @@
 +#ifndef __MCABBER_EXTCMD_H__
 +#define __MCABBER_EXTCMD_H__ 1
@@ -196,10 +198,10 @@
 +void hk_ext_cmd(const char *bjid, const char *type, const char *info, const char *data);
 +
 +#endif
-diff -r fd72b1e3bf26 mcabber/mcabber/hooks.c
---- a/mcabber/mcabber/hooks.c	Wed Nov 12 22:23:32 2014 +0200
-+++ b/mcabber/mcabber/hooks.c	Wed Nov 12 22:24:18 2014 +0200
-@@ -24,6 +24,7 @@
+diff -r 4eeccf092a68 mcabber/mcabber/hooks.c
+--- a/mcabber/mcabber/hooks.c	Fri Dec 09 01:38:25 2016 +0200
++++ b/mcabber/mcabber/hooks.c	Fri Dec 09 01:48:53 2016 +0200
+@@ -22,6 +22,7 @@
  #include <string.h>
  #include <sys/types.h>
  #include <unistd.h>
@@ -207,7 +209,7 @@
  
  #include "hooks.h"
  #include "screen.h"
-@@ -35,6 +36,7 @@
+@@ -33,6 +34,7 @@
  #include "utf8.h"
  #include "commands.h"
  #include "main.h"
@@ -232,7 +234,7 @@
    gboolean attention = FALSE, mucprivmsg = FALSE;
    gboolean error_msg_subtype = (type == LM_MESSAGE_SUB_TYPE_ERROR);
  #ifdef MODULES_ENABLE
-@@ -374,19 +373,6 @@
+@@ -377,19 +376,6 @@
        (!is_room || (is_groupchat && log_muc_conf && !timestamp)))
      hlog_write_message(bjid, timestamp, 0, wmsg);
  
@@ -252,7 +254,7 @@
    // Display the sender in the log window
    if ((!is_groupchat) && !(message_flags & HBB_PREFIX_ERR) &&
        settings_opt_get_int("log_display_sender")) {
-@@ -413,12 +399,24 @@
+@@ -416,12 +402,24 @@
    }
  #endif
  
@@ -278,7 +280,7 @@
  
    // Beep, if enabled:
    // - if it's a private message
-@@ -496,7 +494,7 @@
+@@ -503,7 +501,7 @@
  #endif
  
    // External command
@@ -287,7 +289,7 @@
  
    g_free(bmsg);
    g_free(mmsg);
-@@ -511,10 +509,7 @@
+@@ -518,10 +516,7 @@
    char *bn;
    char *logsmsg;
    const char *rn = (resname ? resname : "");
@@ -299,8 +301,8 @@
  
    oldstat = roster_getstatus(bjid, resname);
  
-@@ -566,27 +561,28 @@
-   scr_draw_roster();
+@@ -572,27 +567,28 @@
+   build_buddylist = TRUE;
    hlog_write_status(bjid, timestamp, status, status_msg);
  
 +  newstatus[0] = imstatus2char[status];
@@ -332,7 +334,7 @@
  }
  
  void hk_mystatuschange(time_t timestamp, enum imstatus old_status,
-@@ -711,7 +707,7 @@
+@@ -717,7 +713,7 @@
    /* Call external command */
    str_unread = g_strdup_printf("%u %u %u %u", unread_count, attention_count,
                                 muc_unread, muc_attention);
@@ -341,7 +343,7 @@
    g_free(str_unread);
  }
  
-@@ -751,123 +747,4 @@
+@@ -757,123 +753,4 @@
    return 0;
  }
  
@@ -465,9 +467,9 @@
 -}
 -
  /* vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2:  For Vim users... */
-diff -r fd72b1e3bf26 mcabber/mcabber/hooks.h
---- a/mcabber/mcabber/hooks.h	Wed Nov 12 22:23:32 2014 +0200
-+++ b/mcabber/mcabber/hooks.h	Wed Nov 12 22:24:18 2014 +0200
+diff -r 4eeccf092a68 mcabber/mcabber/hooks.h
+--- a/mcabber/mcabber/hooks.h	Fri Dec 09 01:38:25 2016 +0200
++++ b/mcabber/mcabber/hooks.h	Fri Dec 09 01:48:53 2016 +0200
 @@ -67,9 +67,6 @@
  guint hk_subscription(LmMessageSubType mstype, const gchar *bjid,
                        const gchar *msg);
@@ -478,11 +480,11 @@
  #endif /* __MCABBER_HOOKS_H__ */
  
  /* vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2:  For Vim users... */
-diff -r fd72b1e3bf26 mcabber/mcabber/main.c
---- a/mcabber/mcabber/main.c	Wed Nov 12 22:23:32 2014 +0200
-+++ b/mcabber/mcabber/main.c	Wed Nov 12 22:24:18 2014 +0200
-@@ -19,14 +19,18 @@
-  * USA
+diff -r 4eeccf092a68 mcabber/mcabber/main.c
+--- a/mcabber/mcabber/main.c	Fri Dec 09 01:38:25 2016 +0200
++++ b/mcabber/mcabber/main.c	Fri Dec 09 01:48:53 2016 +0200
+@@ -17,14 +17,18 @@
+  * along with this program; if not, see <http://www.gnu.org/licenses/>.
   */
  
 -#include <stdio.h>
@@ -516,7 +518,7 @@
  
  #ifndef MODULES_ENABLE
  # include "fifo.h"
-@@ -351,10 +356,10 @@
+@@ -425,10 +430,10 @@
        case 'h':
        case '?':
          printf("Usage: %s [-h|-V|-f mcabberrc_file]\n\n", argv[0]);
@@ -529,7 +531,7 @@
        case 'f':
          configFile = g_strdup(optarg);
          break;
-@@ -363,7 +368,7 @@
+@@ -437,7 +442,7 @@
  
    if (optind < argc) {
      fprintf(stderr, "Usage: %s [-h|-V|-f mcabberrc_file]\n\n", argv[0]);
@@ -538,7 +540,7 @@
    }
  
    /* Initialize command system, roster and default key bindings */
-@@ -518,7 +523,7 @@
+@@ -644,7 +649,7 @@
  
    printf("\n\nThanks for using mcabber!\n");
  
--- a/series	Fri Mar 04 15:57:04 2016 +0200
+++ b/series	Fri Dec 09 02:12:34 2016 +0200
@@ -1,13 +1,14 @@
+fix-compile-warning-xmpp_c.diff
 switch-to-experimental.diff
 separate-extcmd.diff
 modularize-extcmd.diff
-guard-xmpp-password.diff
 add-offline-message.diff
 roster-state-colors.diff
 add-cmake.diff
 use-gslice.diff
 fix-date-fill.diff
 timeformat.diff
+guard-xmpp-password.diff
 cmdopts.diff
 move-rename-jid.diff
 templates.diff
--- a/switch-to-experimental.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/switch-to-experimental.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,10 +1,10 @@
 # HG changeset patch
-# Parent  3f04914d86436042efad7477cf6be0ab67cfcc8d
+# Parent  1f5f708d58a60e3027d4108f51f0c017bb9bc8f9
 [local] Switch to experimental branch and api version
 
-diff -r 3f04914d8643 mcabber/ChangeLog.api
---- a/mcabber/ChangeLog.api	Sat Feb 27 13:53:01 2016 +0100
-+++ b/mcabber/ChangeLog.api	Fri Mar 04 13:54:06 2016 +0200
+diff -r 1f5f708d58a6 mcabber/ChangeLog.api
+--- a/mcabber/ChangeLog.api	Mon Nov 21 20:58:58 2016 +0100
++++ b/mcabber/ChangeLog.api	Fri Dec 09 01:48:59 2016 +0200
 @@ -1,3 +1,12 @@
 +experimental (45)
 +
@@ -17,8 +17,8 @@
 +
  dev (41)
  
-  * Stable api 1.0.2:1
-@@ -38,6 +47,15 @@
+  * Stable api 1.0.4:1
+@@ -40,6 +49,15 @@
  
    -- Mikael Berthe, 2015-10-04
  
@@ -34,7 +34,7 @@
  dev (36)
  
   * Change prototype of gpg_encrypt()
-@@ -120,6 +138,15 @@
+@@ -122,6 +140,15 @@
  
    -- Mikael Berthe, 2013-09-29
  
@@ -50,7 +50,7 @@
  dev (26)
  
   * Changeset 69699ba3010f
-@@ -129,6 +156,15 @@
+@@ -131,6 +158,15 @@
  
    -- Mikael Berthe, 2013-04-28
  
@@ -66,7 +66,7 @@
  dev (25)
  
   * Stable api 0.10.2:1
-@@ -137,6 +173,15 @@
+@@ -139,6 +175,15 @@
  
    -- Mikael Berthe, 2012-11-28
  
@@ -82,7 +82,7 @@
  dev (24)
  
   * Changeset 0cb8ea02e472
-@@ -146,6 +191,15 @@
+@@ -148,6 +193,15 @@
  
    -- Myhailo Danylenko, 2012-10-20
  
@@ -98,7 +98,7 @@
  dev (23)
  
   * Changeset 8dc418af3e72
-@@ -167,6 +221,12 @@
+@@ -169,6 +223,12 @@
  
    -- Hermitifier, 2011-10-03
  
@@ -111,10 +111,10 @@
  dev (20)
  
   * Add cmd_set_safe() and cmd_is_safe()
-diff -r 3f04914d8643 mcabber/configure.ac
---- a/mcabber/configure.ac	Sat Feb 27 13:53:01 2016 +0100
-+++ b/mcabber/configure.ac	Fri Mar 04 13:54:06 2016 +0200
-@@ -293,7 +293,7 @@
+diff -r 1f5f708d58a6 mcabber/configure.ac
+--- a/mcabber/configure.ac	Mon Nov 21 20:58:58 2016 +0100
++++ b/mcabber/configure.ac	Fri Dec 09 01:48:59 2016 +0200
+@@ -297,7 +297,7 @@
  AM_CONDITIONAL([INSTALL_HEADERS], [test x$enable_modules != xno])
  
  # Prepare some config.h variables
@@ -123,9 +123,9 @@
  AC_DEFINE([MCABBER_VERSION], "AC_PACKAGE_VERSION", [Mcabber version string])
  
  # We need _GNU_SOURCE for strptime() and strcasestr()
-diff -r 3f04914d8643 mcabber/mcabber/api.h
---- a/mcabber/mcabber/api.h	Sat Feb 27 13:53:01 2016 +0100
-+++ b/mcabber/mcabber/api.h	Fri Mar 04 13:54:06 2016 +0200
+diff -r 1f5f708d58a6 mcabber/mcabber/api.h
+--- a/mcabber/mcabber/api.h	Mon Nov 21 20:58:58 2016 +0100
++++ b/mcabber/mcabber/api.h	Fri Dec 09 01:48:59 2016 +0200
 @@ -4,10 +4,10 @@
  #include <glib.h>
  #include <mcabber/config.h> // For MCABBER_BRANCH
--- a/timeformat.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/timeformat.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,5 +1,6 @@
 # HG changeset patch
 # Parent 66f6d14c851bd0280966a8263ff4119588775620
+# Parent  b31541d59f2a96959b96c7c4454d3da15a33addd
 [experimental] Allow user to modify time formatting
 
   * give user full control and full responsibility
@@ -9,9 +10,9 @@
     * time_prefix_len (normal prefix width + 5)
   * fall back to 0, if any of these unset
 
-diff -r 66f6d14c851b mcabber/mcabber/screen.c
---- a/mcabber/mcabber/screen.c	Tue Nov 11 23:42:00 2014 +0200
-+++ b/mcabber/mcabber/screen.c	Tue Nov 11 23:43:05 2014 +0200
+diff -r b31541d59f2a mcabber/mcabber/screen.c
+--- a/mcabber/mcabber/screen.c	Fri Dec 09 01:38:46 2016 +0200
++++ b/mcabber/mcabber/screen.c	Fri Dec 09 01:48:18 2016 +0200
 @@ -85,6 +85,7 @@
  static void scr_end_current_completion(void);
  static void scr_insert_text(const char*);
@@ -20,7 +21,7 @@
  
  static void scr_glog_print(const gchar *log_domain, GLogLevelFlags log_level,
                             const gchar *message, gpointer user_data);
-@@ -222,8 +223,6 @@
+@@ -229,8 +230,6 @@
  
  /* Functions */
  
@@ -29,7 +30,7 @@
  static int find_color(const char *name)
  {
    int result;
-@@ -875,38 +874,100 @@
+@@ -878,38 +877,100 @@
  static const char *timeprefixes[] = {
    "%m-%d %H:%M ",
    "%H:%M ",
--- a/use-gslice.diff	Fri Mar 04 15:57:04 2016 +0200
+++ b/use-gslice.diff	Fri Dec 09 02:12:34 2016 +0200
@@ -1,11 +1,12 @@
 # HG changeset patch
 # Parent c45500769f0c34734851c9079e57add63d083c25
+# Parent  a18571d686cd4eddcb55e356a8b82c0ac3990f49
 Use glib slices to allocate constant-size blocks
 
-diff -r c45500769f0c mcabber/mcabber/caps.c
---- a/mcabber/mcabber/caps.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/caps.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -52,7 +52,7 @@
+diff -r a18571d686cd mcabber/mcabber/caps.c
+--- a/mcabber/mcabber/caps.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/caps.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -50,7 +50,7 @@
    g_hash_table_destroy(c->identities);
    g_hash_table_destroy(c->features);
    g_hash_table_destroy(c->forms);
@@ -14,7 +15,7 @@
  }
  
  void identity_destroy(gpointer data)
-@@ -61,14 +61,14 @@
+@@ -59,14 +59,14 @@
    g_free(i->category);
    g_free(i->type);
    g_free(i->name);
@@ -31,7 +32,7 @@
  }
  
  void field_destroy(gpointer data)
-@@ -97,7 +97,7 @@
+@@ -95,7 +95,7 @@
  {
    if (!hash)
      return;
@@ -40,7 +41,7 @@
    c->features = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
    c->identities = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, identity_destroy);
    c->forms = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, form_destroy);
-@@ -158,7 +158,7 @@
+@@ -156,7 +156,7 @@
  
    c = g_hash_table_lookup(caps_cache, hash);
    if (c) {
@@ -49,7 +50,7 @@
  
      i->category = g_strdup(category);
      i->name = g_strdup(name);
-@@ -182,7 +182,7 @@
+@@ -180,7 +180,7 @@
      return;
    c = g_hash_table_lookup(caps_cache, hash);
    if (c) {
@@ -58,10 +59,10 @@
      char *f = g_strdup(formtype);
  
      d->fields = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, field_destroy);
-diff -r c45500769f0c mcabber/mcabber/commands.c
---- a/mcabber/mcabber/commands.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/commands.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -115,7 +115,7 @@
+diff -r a18571d686cd mcabber/mcabber/commands.c
+--- a/mcabber/mcabber/commands.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/commands.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -113,7 +113,7 @@
        gpointer userdata = command->userdata;
        Commands = g_slist_delete_link(Commands, sl_cmd);
        compl_del_category_word(COMPL_CMD, command->name);
@@ -70,7 +71,7 @@
        return userdata;
      }
    return NULL;
-@@ -127,7 +127,7 @@
+@@ -125,7 +125,7 @@
  gpointer cmd_add(const char *name, const char *help, guint flags_row1,
                   guint flags_row2, void (*f)(char*), gpointer userdata)
  {
@@ -115,7 +116,7 @@
    return msgbuf_utf8;
  }
  
-@@ -1906,7 +1906,7 @@
+@@ -1921,7 +1921,7 @@
    esub   = buddy_getsubscription(bud);
    on_srv = buddy_getonserverflag(bud);
  
@@ -124,7 +125,7 @@
  
    if (bjid) {
      GSList *resources, *p_res;
-@@ -2005,7 +2005,7 @@
+@@ -2020,7 +2020,7 @@
                   type == ROSTER_TYPE_GROUP ? "group" :
                   (type == ROSTER_TYPE_SPECIAL ? "special" : "unknown"));
    }
@@ -133,7 +134,7 @@
  
    // Tell the user if this item has an annotation.
    if (type == ROSTER_TYPE_USER ||
-@@ -2054,7 +2054,7 @@
+@@ -2069,7 +2069,7 @@
  
    bjid = buddy_getjid(bud);
  
@@ -142,7 +143,7 @@
    strncpy(buffer, "Room members:", 127);
    scr_WriteIncomingMessage(bjid, buffer, 0, HBB_PREFIX_INFO, 0);
  
-@@ -2114,7 +2114,7 @@
+@@ -2129,7 +2129,7 @@
    scr_WriteIncomingMessage(bjid, buffer, 0, HBB_PREFIX_INFO, 0);
  
    g_slist_free(resources);
@@ -151,7 +152,7 @@
  }
  
  static void move_group_member(gpointer bud, void *groupnamedata)
-@@ -3137,7 +3137,7 @@
+@@ -3163,7 +3163,7 @@
    affil = buddy_getaffil(bud, nick);
    realjid = buddy_getrjid(bud, nick);
  
@@ -160,7 +161,7 @@
  
    snprintf(buffer, 4095, "Whois [%s]", nick);
    scr_WriteIncomingMessage(bjid, buffer, 0, msg_flag, 0);
-@@ -3167,7 +3167,7 @@
+@@ -3193,7 +3193,7 @@
  
    scr_WriteIncomingMessage(bjid, "End of WHOIS", 0, msg_flag, 0);
  
@@ -169,10 +170,10 @@
    g_free(nick);
    if (paramlst)
      free_arg_lst(paramlst);
-diff -r c45500769f0c mcabber/mcabber/events.c
---- a/mcabber/mcabber/events.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/events.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -83,7 +83,7 @@
+diff -r a18571d686cd mcabber/mcabber/events.c
+--- a/mcabber/mcabber/events.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/events.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -81,7 +81,7 @@
      return NULL;
    }
  
@@ -199,10 +200,10 @@
    }
    g_slist_free(evs_list);
    evs_list = NULL;
-diff -r c45500769f0c mcabber/mcabber/hbuf.c
---- a/mcabber/mcabber/hbuf.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/hbuf.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -29,7 +29,6 @@
+diff -r a18571d686cd mcabber/mcabber/hbuf.c
+--- a/mcabber/mcabber/hbuf.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/hbuf.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -27,7 +27,6 @@
  #include "utf8.h"
  #include "screen.h"
  
@@ -210,7 +211,7 @@
  /* This is a private structure type */
  
  typedef struct {
-@@ -59,7 +58,7 @@
+@@ -57,7 +56,7 @@
  {
    GList *curr_elt = first_hbuf_elt;
  
@@ -219,7 +220,7 @@
    // - If there are '\n' in the string
    // - If length > width (and width != 0)
    while (curr_elt) {
-@@ -95,17 +94,21 @@
+@@ -93,17 +92,21 @@
        end = hbuf_b_curr->ptr_end;
        hbuf_b_curr->ptr_end = br;
        // Create another block
@@ -244,7 +245,7 @@
        // This is OK because insert_before(NULL) == append():
        *p_hbuf = g_list_insert_before(*p_hbuf, curr_elt->next, hbuf_b_curr);
      }
-@@ -138,7 +141,7 @@
+@@ -136,7 +139,7 @@
    textlen = strlen(text);
    hbb_blocksize = MAX(textlen+1, HBB_BLOCKSIZE);
  
@@ -253,7 +254,7 @@
    hbuf_block_elt->prefix.timestamp  = timestamp;
    hbuf_block_elt->prefix.flags      = prefix_flags;
    hbuf_block_elt->prefix.mucnicklen = mucnicklen;
-@@ -146,7 +149,7 @@
+@@ -144,7 +147,7 @@
    if (!*p_hbuf) {
      hbuf_block_elt->ptr  = g_new(char, hbb_blocksize);
      if (!hbuf_block_elt->ptr) {
@@ -262,7 +263,7 @@
        return;
      }
      hbuf_block_elt->flags  = HBB_FLAG_ALLOC | HBB_FLAG_PERSISTENT;
-@@ -208,7 +211,7 @@
+@@ -206,7 +209,7 @@
                  g_free(hbuf_b_elt->ptr);
                }
              }
@@ -271,7 +272,7 @@
              hbuf_head = *p_hbuf = g_list_delete_link(hbuf_head, hbuf_elt);
            }
            n--;
-@@ -245,7 +248,7 @@
+@@ -243,7 +246,7 @@
      if (hbuf_b_elt->flags & HBB_FLAG_ALLOC) {
        g_free(hbuf_b_elt->ptr);
      }
@@ -280,7 +281,7 @@
    }
  
    g_list_free(first_elt);
-@@ -275,7 +278,7 @@
+@@ -273,7 +276,7 @@
      // Is next line not-persistent?
      if (!(hbuf_b_next->flags & HBB_FLAG_PERSISTENT)) {
        hbuf_b_curr->ptr_end = hbuf_b_next->ptr_end;
@@ -289,7 +290,7 @@
        curr_elt = g_list_delete_link(curr_elt, next_elt);
      } else
        curr_elt = next_elt;
-@@ -309,8 +312,8 @@
+@@ -307,8 +310,8 @@
  //  hbuf_get_lines(hbuf, n)
  // Returns an array of n hbb_line pointers
  // (The first line will be the line currently pointed by hbuf)
@@ -300,7 +301,7 @@
  hbb_line **hbuf_get_lines(GList *hbuf, unsigned int n)
  {
    unsigned int i;
-@@ -349,7 +352,7 @@
+@@ -347,7 +350,7 @@
  
        blk = (hbuf_block*)(hbuf->data);
        maxlen = blk->ptr_end - blk->ptr;
@@ -309,9 +310,9 @@
        (*array_elt)->timestamp  = blk->prefix.timestamp;
        (*array_elt)->flags      = blk->prefix.flags;
        (*array_elt)->mucnicklen = blk->prefix.mucnicklen;
-diff -r c45500769f0c mcabber/mcabber/hooks.c
---- a/mcabber/mcabber/hooks.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/hooks.c	Wed Nov 12 03:30:06 2014 +0200
+diff -r a18571d686cd mcabber/mcabber/hooks.c
+--- a/mcabber/mcabber/hooks.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/hooks.c	Fri Dec 09 01:48:31 2016 +0200
 @@ -99,7 +99,7 @@
                       gint priority, gpointer userdata)
  {
@@ -330,10 +331,10 @@
      *hqueue = g_slist_delete_link(*hqueue, el);
      // Remove hook hash table entry if the hook queue is empty
      if (!*hqueue)
-diff -r c45500769f0c mcabber/mcabber/modules.c
---- a/mcabber/mcabber/modules.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/modules.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -176,7 +176,7 @@
+diff -r a18571d686cd mcabber/mcabber/modules.c
+--- a/mcabber/mcabber/modules.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/modules.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -174,7 +174,7 @@
    }
  
    { // Register module
@@ -342,7 +343,7 @@
  
      module->refcount     = 1;
      module->locked       = manual;
-@@ -267,7 +267,7 @@
+@@ -265,7 +265,7 @@
    // Output this here, as arg may point to module->name
    scr_LogPrint(LPRINT_LOGNORM, "Unloaded module %s.", module->name);
    g_free(module->name);
@@ -351,10 +352,10 @@
  
    return NULL;
  }
-diff -r c45500769f0c mcabber/mcabber/screen.c
---- a/mcabber/mcabber/screen.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/screen.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -1360,7 +1360,7 @@
+diff -r a18571d686cd mcabber/mcabber/screen.c
+--- a/mcabber/mcabber/screen.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/screen.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -1368,7 +1368,7 @@
          wattrset(win_entry->win, get_color(COLOR_GENERAL));
  
        g_free(line->text);
@@ -363,7 +364,7 @@
      } else {
        wclrtobot(win_entry->win);
        break;
-@@ -1374,7 +1374,7 @@
+@@ -1382,7 +1382,7 @@
        scr_buffer_scroll_lock(1);
      }
      g_free(line->text);
@@ -372,10 +373,10 @@
    } else if (autolock && win_entry->bd->lock) {
      scr_buffer_scroll_lock(0);
    }
-diff -r c45500769f0c mcabber/mcabber/settings.c
---- a/mcabber/mcabber/settings.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/settings.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -457,7 +457,7 @@
+diff -r a18571d686cd mcabber/mcabber/settings.c
+--- a/mcabber/mcabber/settings.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/settings.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -528,7 +528,7 @@
      // If value is 0, we do not need to create a structure (that's
      // the default value).
      if (value) {
@@ -384,7 +385,7 @@
        pgpdata->pgp_disabled = value;
        g_hash_table_insert(pgpopt, g_strdup(bjid), pgpdata);
      }
-@@ -497,7 +497,7 @@
+@@ -568,7 +568,7 @@
      // If value is 0, we do not need to create a structure (that's
      // the default value).
      if (value) {
@@ -393,7 +394,7 @@
        pgpdata->pgp_force = value;
        g_hash_table_insert(pgpopt, g_strdup(bjid), pgpdata);
      }
-@@ -537,7 +537,7 @@
+@@ -608,7 +608,7 @@
      // If keyid is NULL, we do not need to create a structure (that's
      // the default value).
      if (keyid) {
@@ -402,10 +403,10 @@
        pgpdata->pgp_keyid = g_strdup(keyid);
        g_hash_table_insert(pgpopt, g_strdup(bjid), pgpdata);
      }
-diff -r c45500769f0c mcabber/mcabber/xmpp_iq.c
---- a/mcabber/mcabber/xmpp_iq.c	Wed Nov 12 02:43:42 2014 +0200
-+++ b/mcabber/mcabber/xmpp_iq.c	Wed Nov 12 03:30:06 2014 +0200
-@@ -765,7 +765,7 @@
+diff -r a18571d686cd mcabber/mcabber/xmpp_iq.c
+--- a/mcabber/mcabber/xmpp_iq.c	Fri Dec 09 01:38:39 2016 +0200
++++ b/mcabber/mcabber/xmpp_iq.c	Fri Dec 09 01:48:31 2016 +0200
+@@ -791,7 +791,7 @@
      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
    }
  
@@ -414,7 +415,7 @@
  
    r = lm_message_new_iq_from_query(m, LM_MESSAGE_SUB_TYPE_RESULT);
    query = lm_message_node_add_child(r->node, "query", NULL);
-@@ -792,7 +792,7 @@
+@@ -818,7 +818,7 @@
  
    lm_connection_send(c, r, NULL);
    lm_message_unref(r);
@@ -423,7 +424,7 @@
    return LM_HANDLER_RESULT_REMOVE_MESSAGE;
  }
  
-@@ -820,7 +820,7 @@
+@@ -846,7 +846,7 @@
      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
    }
  
@@ -432,7 +433,7 @@
  
    r = lm_message_new_iq_from_query(m, LM_MESSAGE_SUB_TYPE_RESULT);
    query = lm_message_node_add_child(r->node, "time", NULL);
-@@ -857,7 +857,7 @@
+@@ -883,7 +883,7 @@
  
    lm_connection_send(c, r, NULL);
    lm_message_unref(r);