Hello community,

here is the log from the commit of package irssi for openSUSE:Factory checked 
in at 2016-03-31 13:03:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/irssi (Old)
 and      /work/SRC/openSUSE:Factory/.irssi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "irssi"

Changes:
--------
--- /work/SRC/openSUSE:Factory/irssi/irssi.changes      2016-03-07 
13:27:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.irssi.new/irssi.changes 2016-03-31 
13:03:16.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Mar 26 19:12:55 UTC 2016 - idon...@suse.com
+
+- Update to version 0.8.19
+  * Fixed regression when joining and parting channels on IRCnet
+  * Fixed SASL EXTERNAL
+  * Fixed regression when not using SASL
+  * Fixed incorrect SSL disconnects when using SSL from modules/scripts
+  * Fixed regression where proxy_string could not be configured or
+       certain file transfers could not be accepted
+  * Fixed storing layout of !channels
+  * Fixed restoration of bracketed paste mode on quit
+  * Make the usage of meta-O for cursor keys configurable with
+       /set term_appkey_mode off
+
+-------------------------------------------------------------------

Old:
----
  irssi-0.8.18.tar.xz
  irssi-0.8.18.tar.xz.asc

New:
----
  irssi-0.8.19.tar.xz
  irssi-0.8.19.tar.xz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ irssi.spec ++++++
--- /var/tmp/diff_new_pack.0yMoEw/_old  2016-03-31 13:03:17.000000000 +0200
+++ /var/tmp/diff_new_pack.0yMoEw/_new  2016-03-31 13:03:17.000000000 +0200
@@ -19,7 +19,7 @@
 %bcond_with socks
 
 Name:           irssi
-Version:        0.8.18
+Version:        0.8.19
 Release:        0
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %if %{with socks}

++++++ irssi-0.8.18.tar.xz -> irssi-0.8.19.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/ChangeLog new/irssi-0.8.19/ChangeLog
--- old/irssi-0.8.18/ChangeLog  2016-02-08 21:16:18.000000000 +0100
+++ new/irssi-0.8.19/ChangeLog  2016-03-23 00:25:20.000000000 +0100
@@ -1,10 +1,119 @@
-commit 109b75f50b9a98fe190bb6802a0def1d94900fcc
+commit c43831574187cdb2323d123702aa687af24664d8
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Wed Mar 23 00:08:24 2016 +0100
+
+    tag as 0.8.19
+
+commit 6c0c0c60ad62e45664ee0c77ae3c926892de267c
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Tue Mar 22 16:54:34 2016 +0100
+
+    Make use of terminal application keys configurable
+    
+    adds a new setting term_appkey_mode which can enable or disable the use
+    of keyboard transmit (application keys) mode. Fixes #430
+
+commit 6572005d3d8071dc7faa1637986ed81692203e13
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Tue Mar 22 22:54:43 2016 +0100
+
+    Merge pull request #458 from ailin-nemui/fix_449
+    
+    Properly toggle bracketed paste mode on stop/cont
+
+commit 5ef2b958d94af940746f607fb56776852c6b0a4d
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Tue Mar 22 22:57:28 2016 +0100
+
+    Merge pull request #457 from ailin-nemui/fix_450
+    
+    fix race condition in terminal init
+
+commit c657b9c3b1bf867722f63892251b2294d6a87d56
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Tue Mar 22 15:25:13 2016 +0100
+
+    Merge pull request #447 from ailin-nemui/fix_dcc_help
+    
+    correct quoting in /help dcc
+
+commit 4a2ee3c34471c29b884f5b0bc2b6ad95b56f500b
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Tue Mar 22 15:23:37 2016 +0100
+
+    Merge pull request #446 from ailin-nemui/fix_445
+    
+    strip less whitespace from commands
+
+commit fe600dd5dc11c839c1fd90e77c4020c937e7c453
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Sun Mar 20 22:06:41 2016 +0100
+
+    Merge pull request #442 from LemonBoy/fix-435
+    
+    Do not assume any default value for statusmsg.
+
+commit 15296a0165007aece5ac732c1f53b0fc78ba9ba1
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Sun Mar 20 22:00:43 2016 +0100
+
+    Merge pull request #444 from LemonBoy/timeout-id
+    
+    Use 0 as a sentinel value for sasl_timeout
+
+commit 7d3fe66e50fc3c47783d9beb0474a4ed9d2d9953
+Author: TheLemonMan <lemon...@users.noreply.github.com>
+Date:   Thu Mar 17 22:07:57 2016 +0100
+
+    Merge pull request #439 from horgh/ssl-errors
+    
+    Clear error queue before SSL I/O operations
+
+commit d20872ac27c63f2c92775a12c99a7494148901ca
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Thu Mar 17 16:14:34 2016 +0100
+
+    Merge pull request #438 from dequis/sasl-timeout-disconnect
+    
+    Remove sasl timeout source when the server disconnects
+
+commit 4416942fcdd426385cc3ef7a912f9260627b8a39
+Author: Giuseppe <lemon...@users.noreply.github.com>
+Date:   Tue Mar 8 22:49:05 2016 +0100
+
+    Merge pull request #432 from grawity/fix-external
+    
+    fix SASL EXTERNAL
+
+commit 025f08d5fc69d6e9c28004f8f7af26f613b0e0fb
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Fri Jan 29 05:33:14 2016 +0100
+
+    Merge pull request #407 from irssi/ailin-nemui-perl-bugs
+    
+    Mention known Perl Bugs in perl.txt
+
+commit 22d772890e6f3b9622485fd83529f73891567e71
+Author: dx <d...@dxzone.com.ar>
+Date:   Tue Jan 26 03:25:07 2016 -0300
+
+    Merge pull request #405 from LemonBoy/serialize-channel-name
+    
+    Serialize the 'name' attribute of the CHANNEL_REC.
+
+commit 15f79a713f3e100a3b96b65e951fb37ae8994bdd
+Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
+Date:   Wed Mar 23 00:07:43 2016 +0100
+
+    set version to 0.8.18a-head
+
+commit b91f3c3025dc5cace2c14cb5b2da005400b5cd6a
 Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
 Date:   Mon Feb 8 14:53:17 2016 +0100
 
     tag as 0.8.18
 
-commit 37f82c74c6b181d39327749c4ccea7587301f439
+commit 8ab537cf22371f9115002484b320719676dab86b
 Author: ailin-nemui <ailin-ne...@users.noreply.github.com>
 Date:   Mon Feb 8 21:03:35 2016 +0100
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/Makefile.in new/irssi-0.8.19/Makefile.in
--- old/irssi-0.8.18/Makefile.in        2016-02-08 21:22:35.000000000 +0100
+++ new/irssi-0.8.19/Makefile.in        2016-03-23 00:25:27.000000000 +0100
@@ -208,7 +208,7 @@
        $(top_srcdir)/src/perl/textui/Makefile.PL.in \
        $(top_srcdir)/src/perl/ui/Makefile.PL.in AUTHORS COPYING \
        ChangeLog INSTALL NEWS TODO acconfig.h build-aux/compile \
-       build-aux/config.guess build-aux/config.sub build-aux/depcomp \
+       build-aux/config.guess build-aux/config.sub \
        build-aux/install-sh build-aux/ltmain.sh build-aux/missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/NEWS new/irssi-0.8.19/NEWS
--- old/irssi-0.8.18/NEWS       2016-02-08 21:20:37.000000000 +0100
+++ new/irssi-0.8.19/NEWS       2016-03-23 00:23:24.000000000 +0100
@@ -1,3 +1,16 @@
+v0.8.19 2016-03-23  The Irssi team <st...@irssi.org>
+       - Fixed regression when joining and parting channels on IRCnet (#435)
+       - Fixed SASL EXTERNAL (#432)
+       - Fixed regression when not using SASL (#438)
+       - Fixed incorrect SSL disconnects when using SSL from modules/scripts
+         (#439)
+       - Fixed regression where proxy_string could not be configured or
+         certain file transfers could not be accepted (#445)
+       - Fixed storing layout of !channels (#183)
+       - Fixed restoration of bracketed paste mode on quit (#449)
+       - Make the usage of meta-O for cursor keys configurable with
+             /set term_appkey_mode off
+
 v0.8.18 2016-02-13  The Irssi team <st...@irssi.org>
        * Modules will now require to define a
              void MODULENAME ## _abicheck(int *version)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/configure new/irssi-0.8.19/configure
--- old/irssi-0.8.18/configure  2016-02-08 21:22:36.000000000 +0100
+++ new/irssi-0.8.19/configure  2016-03-23 00:25:26.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for irssi 0.8.18.
+# Generated by GNU Autoconf 2.69 for irssi 0.8.19.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
 # Identity of this package.
 PACKAGE_NAME='irssi'
 PACKAGE_TARNAME='irssi'
-PACKAGE_VERSION='0.8.18'
-PACKAGE_STRING='irssi 0.8.18'
+PACKAGE_VERSION='0.8.19'
+PACKAGE_STRING='irssi 0.8.19'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1384,7 +1384,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures irssi 0.8.18 to adapt to many kinds of systems.
+\`configure' configures irssi 0.8.19 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1454,7 +1454,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of irssi 0.8.18:";;
+     short | recursive ) echo "Configuration of irssi 0.8.19:";;
    esac
   cat <<\_ACEOF
 
@@ -1598,7 +1598,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-irssi configure 0.8.18
+irssi configure 0.8.19
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2200,7 +2200,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by irssi $as_me 0.8.18, which was
+It was created by irssi $as_me 0.8.19, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3069,7 +3069,7 @@
 
 # Define the identity of the package.
  PACKAGE='irssi'
- VERSION='0.8.18'
+ VERSION='0.8.19'
 
 
 # Some tools Automake needs.
@@ -15812,7 +15812,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by irssi $as_me 0.8.18, which was
+This file was extended by irssi $as_me 0.8.19, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15878,7 +15878,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-irssi config.status 0.8.18
+irssi config.status 0.8.19
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/configure.ac 
new/irssi-0.8.19/configure.ac
--- old/irssi-0.8.18/configure.ac       2016-02-08 21:20:37.000000000 +0100
+++ new/irssi-0.8.19/configure.ac       2016-03-23 00:24:11.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT(irssi, 0.8.18)
+AC_INIT(irssi, 0.8.19)
 AC_CONFIG_SRCDIR([src])
 AC_CONFIG_AUX_DIR(build-aux)
 AC_PREREQ(2.50)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/docs/help/dcc 
new/irssi-0.8.19/docs/help/dcc
--- old/irssi-0.8.18/docs/help/dcc      2016-02-08 21:16:18.000000000 +0100
+++ new/irssi-0.8.19/docs/help/dcc      2016-03-23 00:25:20.000000000 +0100
@@ -40,10 +40,10 @@
 %9Examples:%9
 
     /DCC CHAT mike
-    /DCC GET bob 'summer vacation.mkv'
-    /DCC SEND sarah documents/resume.pdf
+    /DCC GET bob summer vacation.mkv
+    /DCC SEND sarah "summer vacation.mkv"
     /DCC CLOSE get mike
-    /DCC CLOSE send bob 'summer vacation.mkv'
+    /DCC CLOSE send bob summer vacation.mkv
 
 %9See also:%9 CD
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/docs/help/in/dcc.in 
new/irssi-0.8.19/docs/help/in/dcc.in
--- old/irssi-0.8.18/docs/help/in/dcc.in        2016-01-20 23:08:07.000000000 
+0100
+++ new/irssi-0.8.19/docs/help/in/dcc.in        2016-03-23 00:08:36.000000000 
+0100
@@ -36,10 +36,10 @@
 %9Examples:%9
 
     /DCC CHAT mike
-    /DCC GET bob 'summer vacation.mkv'
-    /DCC SEND sarah documents/resume.pdf
+    /DCC GET bob summer vacation.mkv
+    /DCC SEND sarah "summer vacation.mkv"
     /DCC CLOSE get mike
-    /DCC CLOSE send bob 'summer vacation.mkv'
+    /DCC CLOSE send bob summer vacation.mkv
 
 %9See also:%9 CD
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/docs/perl.txt 
new/irssi-0.8.19/docs/perl.txt
--- old/irssi-0.8.18/docs/perl.txt      2016-02-08 21:20:37.000000000 +0100
+++ new/irssi-0.8.19/docs/perl.txt      2016-03-23 00:08:35.000000000 +0100
@@ -1193,3 +1193,7 @@
  --------------------
 * Calling die in 'script error' handler causes segfault (#101)
 * Storing and later using any Irssi object may result in use-after-free 
related crash
+  - Workaround: always acquire fresh objects
+* Calling $dcc->close from the "dcc created" signal will cause unstable 
behaviour and crashes (#386)
+  - Workaround: use "dcc request" signal instead AND call
+    &Irssi::signal_continue(@_); as the first thing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/irssi-config.h 
new/irssi-0.8.19/irssi-config.h
--- old/irssi-0.8.18/irssi-config.h     2016-02-08 21:16:29.000000000 +0100
+++ new/irssi-0.8.19/irssi-config.h     2016-03-23 00:25:31.000000000 +0100
@@ -108,7 +108,7 @@
 #define PACKAGE_NAME "irssi"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "irssi 0.8.18"
+#define PACKAGE_STRING "irssi 0.8.19"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "irssi"
@@ -117,7 +117,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.8.18"
+#define PACKAGE_VERSION "0.8.19"
 
 /* The size of `int', as computed by sizeof. */
 #define SIZEOF_INT 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/irssi-version.h 
new/irssi-0.8.19/irssi-version.h
--- old/irssi-0.8.18/irssi-version.h    2016-02-08 21:22:40.000000000 +0100
+++ new/irssi-0.8.19/irssi-version.h    2016-03-23 00:29:08.000000000 +0100
@@ -1,2 +1,2 @@
-#define IRSSI_VERSION_DATE 20160208
-#define IRSSI_VERSION_TIME 1453
+#define IRSSI_VERSION_DATE 20160323
+#define IRSSI_VERSION_TIME 8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/common.h 
new/irssi-0.8.19/src/common.h
--- old/irssi-0.8.18/src/common.h       2016-01-20 23:08:07.000000000 +0100
+++ new/irssi-0.8.19/src/common.h       2016-03-23 00:08:36.000000000 +0100
@@ -6,7 +6,7 @@
 #define IRSSI_GLOBAL_CONFIG "irssi.conf" /* config file name in /etc/ */
 #define IRSSI_HOME_CONFIG "config" /* config file name in ~/.irssi/ */
 
-#define IRSSI_ABI_VERSION 1
+#define IRSSI_ABI_VERSION 2
 
 #define DEFAULT_SERVER_ADD_PORT 6667
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/core/network-openssl.c 
new/irssi-0.8.19/src/core/network-openssl.c
--- old/irssi-0.8.18/src/core/network-openssl.c 2016-01-20 23:08:07.000000000 
+0100
+++ new/irssi-0.8.19/src/core/network-openssl.c 2016-03-23 00:08:35.000000000 
+0100
@@ -289,6 +289,7 @@
        const char *errstr;
        gchar *errmsg;
 
+       ERR_clear_error();
        ret1 = SSL_read(chan->ssl, buf, len);
        if(ret1 <= 0)
        {
@@ -334,6 +335,7 @@
        const char *errstr;
        gchar *errmsg;
 
+       ERR_clear_error();
        ret1 = SSL_write(chan->ssl, (const char *)buf, len);
        if(ret1 <= 0)
        {
@@ -471,6 +473,7 @@
        if(!(fd = g_io_channel_unix_get_fd(handle)))
                return NULL;
 
+       ERR_clear_error();
        ctx = SSL_CTX_new(SSLv23_client_method());
        if (ctx == NULL) {
                g_error("Could not allocate memory for SSL context");
@@ -489,6 +492,7 @@
                scert = convert_home(mycert);
                if (mypkey && *mypkey)
                        spkey = convert_home(mypkey);
+               ERR_clear_error();
                if (! SSL_CTX_use_certificate_file(ctx, scert, 
SSL_FILETYPE_PEM))
                        g_warning("Loading of client certificate '%s' failed: 
%s", mycert, ERR_reason_error_string(ERR_get_error()));
                else if (! SSL_CTX_use_PrivateKey_file(ctx, spkey ? spkey : 
scert, SSL_FILETYPE_PEM))
@@ -581,6 +585,7 @@
        X509 *cert;
        const char *errstr;
 
+       ERR_clear_error();
        ret = SSL_connect(chan->ssl);
        if (ret <= 0) {
                err = SSL_get_error(chan->ssl, ret);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-common/core/completion.c 
new/irssi-0.8.19/src/fe-common/core/completion.c
--- old/irssi-0.8.18/src/fe-common/core/completion.c    2016-02-08 
21:20:37.000000000 +0100
+++ new/irssi-0.8.19/src/fe-common/core/completion.c    2016-03-23 
00:08:36.000000000 +0100
@@ -757,7 +757,7 @@
        int len;
 
        if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTIONS |
-                           PARAM_FLAG_GETREST | PARAM_FLAG_STRIP_TRAILING_WS,
+                           PARAM_FLAG_GETREST,
                            "completion", &optlist, &key, &value))
                return;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-common/core/fe-settings.c 
new/irssi-0.8.19/src/fe-common/core/fe-settings.c
--- old/irssi-0.8.18/src/fe-common/core/fe-settings.c   2016-01-20 
23:08:07.000000000 +0100
+++ new/irssi-0.8.19/src/fe-common/core/fe-settings.c   2016-03-23 
00:08:36.000000000 +0100
@@ -109,7 +109,7 @@
        SETTINGS_REC *rec;
 
        if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST |
-                           PARAM_FLAG_OPTIONS | PARAM_FLAG_STRIP_TRAILING_WS,
+                           PARAM_FLAG_OPTIONS,
                            "set", &optlist, &key, &value))
                return;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-common/core/windows-layout.c 
new/irssi-0.8.19/src/fe-common/core/windows-layout.c
--- old/irssi-0.8.18/src/fe-common/core/windows-layout.c        2016-02-08 
21:20:37.000000000 +0100
+++ new/irssi-0.8.19/src/fe-common/core/windows-layout.c        2016-03-23 
00:08:35.000000000 +0100
@@ -168,12 +168,12 @@
                chat_protocol_find_id(item->chat_type);
        if (proto != NULL)
                iconfig_node_set_str(subnode, "chat_type", proto->name);
-       iconfig_node_set_str(subnode, "name", item->visible_name);
+       iconfig_node_set_str(subnode, "name", item->name);
 
        if (item->server != NULL) {
                iconfig_node_set_str(subnode, "tag", item->server->tag);
                if (IS_CHANNEL(item)) {
-                       rec = window_bind_add(window, item->server->tag, 
item->visible_name);
+                       rec = window_bind_add(window, item->server->tag, 
item->name);
                        if (rec != NULL)
                                rec->sticky = TRUE;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-text/gui-readline.c 
new/irssi-0.8.19/src/fe-text/gui-readline.c
--- old/irssi-0.8.18/src/fe-text/gui-readline.c 2016-02-08 21:20:37.000000000 
+0100
+++ new/irssi-0.8.19/src/fe-text/gui-readline.c 2016-03-23 00:08:36.000000000 
+0100
@@ -1039,6 +1039,7 @@
        paste_join_multiline = settings_get_bool("paste_join_multiline");
        paste_use_bracketed_mode = 
settings_get_bool("paste_use_bracketed_mode");
 
+       term_set_appkey_mode(settings_get_bool("term_appkey_mode"));
        /* Enable the bracketed paste mode on demand */
        term_set_bracketed_paste_mode(paste_use_bracketed_mode);
 }
@@ -1061,6 +1062,7 @@
        g_get_current_time(&last_keypress);
         input_listen_init(STDIN_FILENO);
 
+       settings_add_bool("lookandfeel", "term_appkey_mode", TRUE);
        settings_add_str("history", "scroll_page_count", "/2");
        settings_add_time("misc", "paste_detect_time", "5msecs");
        settings_add_bool("misc", "paste_use_bracketed_mode", FALSE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-text/term-terminfo.c 
new/irssi-0.8.19/src/fe-text/term-terminfo.c
--- old/irssi-0.8.18/src/fe-text/term-terminfo.c        2016-01-20 
23:08:07.000000000 +0100
+++ new/irssi-0.8.19/src/fe-text/term-terminfo.c        2016-03-23 
00:08:36.000000000 +0100
@@ -710,11 +710,3 @@
                }
        }
 }
-
-void term_set_bracketed_paste_mode(int enable)
-{
-       if (enable)
-               tputs("\e[?2004h", 0, term_putchar);
-       else
-               tputs("\e[?2004l", 0, term_putchar);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-text/term.h 
new/irssi-0.8.19/src/fe-text/term.h
--- old/irssi-0.8.18/src/fe-text/term.h 2016-01-20 23:08:07.000000000 +0100
+++ new/irssi-0.8.19/src/fe-text/term.h 2016-03-23 00:08:36.000000000 +0100
@@ -94,6 +94,7 @@
 
 void term_stop(void);
 
+void term_set_appkey_mode(int enable);
 void term_set_bracketed_paste_mode(int enable);
 
 /* keyboard input handling */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-text/terminfo-core.c 
new/irssi-0.8.19/src/fe-text/terminfo-core.c
--- old/irssi-0.8.18/src/fe-text/terminfo-core.c        2016-01-20 
23:08:07.000000000 +0100
+++ new/irssi-0.8.19/src/fe-text/terminfo-core.c        2016-03-23 
00:08:36.000000000 +0100
@@ -395,6 +395,20 @@
 {
 }
 
+static void terminfo_set_appkey_mode(TERM_REC *term, int set)
+{
+       if (term->TI_smkx && term->TI_rmkx)
+               tput(tparm(set ? term->TI_smkx : term->TI_rmkx));
+}
+
+static void term_dec_set_bracketed_paste_mode(int enable)
+{
+       if (enable)
+               tputs("\e[?2004h", 0, term_putchar);
+       else
+               tputs("\e[?2004l", 0, term_putchar);
+}
+
 static void term_fill_capabilities(TERM_REC *term)
 {
        int i, ival;
@@ -496,7 +510,7 @@
        }
 }
 
-static void terminfo_input_init(TERM_REC *term)
+static void terminfo_input_init0(TERM_REC *term)
 {
        tcgetattr(fileno(term->in), &term->old_tio);
        memcpy(&term->tio, &term->old_tio, sizeof(term->tio));
@@ -518,8 +532,11 @@
        term->tio.c_cc[VSUSP] = _POSIX_VDISABLE;
 #endif
 
-        tcsetattr(fileno(term->in), TCSADRAIN, &term->tio);
+}
 
+static void terminfo_input_init(TERM_REC *term)
+{
+        tcsetattr(fileno(term->in), TCSADRAIN, &term->tio);
 }
 
 static void terminfo_input_deinit(TERM_REC *term)
@@ -532,8 +549,11 @@
        if (term->TI_smcup)
                tput(tparm(term->TI_smcup));
 
-       if (term->TI_smkx)
-               tput(tparm(term->TI_smkx));
+       if (term->appkey_enabled)
+               terminfo_set_appkey_mode(term, TRUE);
+
+       if (term->bracketed_paste_enabled)
+               term_dec_set_bracketed_paste_mode(TRUE);
 
         terminfo_input_init(term);
 }
@@ -545,12 +565,15 @@
         /* move cursor to bottom of the screen */
        terminfo_move(0, term->height-1);
 
+       if (term->bracketed_paste_enabled)
+               term_dec_set_bracketed_paste_mode(FALSE);
+
        /* stop cup-mode */
        if (term->TI_rmcup)
                tput(tparm(term->TI_rmcup));
 
-       if (term->TI_rmkx)
-               tput(tparm(term->TI_rmkx));
+       if (term->appkey_enabled)
+               terminfo_set_appkey_mode(term, FALSE);
 
         /* reset input settings */
        terminfo_input_deinit(term);
@@ -673,10 +696,29 @@
        term->beep = term->TI_bel ? _beep : _ignore;
 
        terminfo_setup_colors(term, FALSE);
+       terminfo_input_init0(term);
         terminfo_cont(term);
         return 1;
 }
 
+void term_set_appkey_mode(int enable)
+{
+       if (current_term->appkey_enabled == enable)
+               return;
+
+       current_term->appkey_enabled = enable;
+       terminfo_set_appkey_mode(current_term, enable);
+}
+
+void term_set_bracketed_paste_mode(int enable)
+{
+       if (current_term->bracketed_paste_enabled == enable)
+               return;
+
+       current_term->bracketed_paste_enabled = enable;
+       term_dec_set_bracketed_paste_mode(enable);
+}
+
 TERM_REC *terminfo_core_init(FILE *in, FILE *out)
 {
        TERM_REC *old_term, *term;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/fe-text/terminfo-core.h 
new/irssi-0.8.19/src/fe-text/terminfo-core.h
--- old/irssi-0.8.18/src/fe-text/terminfo-core.h        2016-01-20 
23:08:07.000000000 +0100
+++ new/irssi-0.8.19/src/fe-text/terminfo-core.h        2016-03-23 
00:08:36.000000000 +0100
@@ -92,6 +92,10 @@
        /* Keyboard-transmit mode */
        const char *TI_smkx;
        const char *TI_rmkx;
+
+       /* Terminal mode states */
+       int appkey_enabled;
+       int bracketed_paste_enabled;
 };
 
 extern TERM_REC *current_term;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/irc/core/irc-servers.c 
new/irssi-0.8.19/src/irc/core/irc-servers.c
--- old/irssi-0.8.18/src/irc/core/irc-servers.c 2016-01-20 23:08:07.000000000 
+0100
+++ new/irssi-0.8.19/src/irc/core/irc-servers.c 2016-03-23 00:08:36.000000000 
+0100
@@ -78,17 +78,23 @@
        IRC_SERVER_REC *irc_server = (IRC_SERVER_REC *) server;
        char *chantypes, *statusmsg;
 
+       g_return_val_if_fail(data != NULL, FALSE);
+
+       /* empty string is no channel */
+       if (*data == '\0')
+               return FALSE;
+
        chantypes = g_hash_table_lookup(irc_server->isupport, "chantypes");
        if (chantypes == NULL)
                chantypes = "#&!+"; /* normal, local, secure, modeless */
-       statusmsg = g_hash_table_lookup(irc_server->isupport, "statusmsg");
-       if (statusmsg == NULL)
-               statusmsg = "@+";
 
-       while (strchr(statusmsg, *data) != NULL)
-               data++;
+       statusmsg = g_hash_table_lookup(irc_server->isupport, "statusmsg");
+       if (statusmsg != NULL)
+               data += strspn(data, statusmsg);
 
-       return strchr(chantypes, *data) != NULL;
+       /* strchr(3) considers the trailing NUL as part of the string, make sure
+        * we didn't advance too much. */
+       return *data != '\0' && strchr(chantypes, *data) != NULL;
 }
 
 static char **split_line(const SERVER_REC *server, const char *line,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/irc/core/sasl.c 
new/irssi-0.8.19/src/irc/core/sasl.c
--- old/irssi-0.8.18/src/irc/core/sasl.c        2016-01-20 23:08:07.000000000 
+0100
+++ new/irssi-0.8.19/src/irc/core/sasl.c        2016-03-23 00:08:35.000000000 
+0100
@@ -34,7 +34,7 @@
        irc_send_cmd_now(server, "AUTHENTICATE *");
        cap_finish_negotiation(server);
 
-       server->sasl_timeout = -1;
+       server->sasl_timeout = 0;
 
        signal_emit("server sasl failure", 2, server, "The authentication timed 
out");
 
@@ -64,9 +64,9 @@
        char *params, *error;
 
        /* Stop any pending timeout, if any */
-       if (server->sasl_timeout != -1) {
+       if (server->sasl_timeout != 0) {
                g_source_remove(server->sasl_timeout);
-               server->sasl_timeout = -1;
+               server->sasl_timeout = 0;
        }
 
        params = event_get_params(data, 2, NULL, &error);
@@ -81,9 +81,9 @@
 
 static void sasl_already(IRC_SERVER_REC *server, const char *data, const char 
*from)
 {
-       if (server->sasl_timeout != -1) {
+       if (server->sasl_timeout != 0) {
                g_source_remove(server->sasl_timeout);
-               server->sasl_timeout = -1;
+               server->sasl_timeout = 0;
        }
 
        signal_emit("server sasl success", 1, server);
@@ -94,9 +94,9 @@
 
 static void sasl_success(IRC_SERVER_REC *server, const char *data, const char 
*from)
 {
-       if (server->sasl_timeout != -1) {
+       if (server->sasl_timeout != 0) {
                g_source_remove(server->sasl_timeout);
-               server->sasl_timeout = -1;
+               server->sasl_timeout = 0;
        }
 
        signal_emit("server sasl success", 1, server);
@@ -114,9 +114,9 @@
        conn = server->connrec;
 
        /* Stop the timer */
-       if (server->sasl_timeout != -1) {
+       if (server->sasl_timeout != 0) {
                g_source_remove(server->sasl_timeout);
-               server->sasl_timeout = -1;
+               server->sasl_timeout = 0;
        }
 
        switch (conn->sasl_mechanism) {
@@ -145,7 +145,7 @@
 
                case SASL_MECHANISM_EXTERNAL:
                        /* Empty response */
-                       irc_send_cmdv(server, "+");
+                       irc_send_cmdv(server, "AUTHENTICATE +");
                        break;
        }
 
@@ -153,6 +153,20 @@
        server->sasl_timeout = g_timeout_add(SASL_TIMEOUT, (GSourceFunc) 
sasl_timeout, server);
 }
 
+static void sasl_disconnected(IRC_SERVER_REC *server)
+{
+       g_return_if_fail(server != NULL);
+
+       if (!IS_IRC_SERVER(server)) {
+               return;
+       }
+
+       if (server->sasl_timeout != 0) {
+               g_source_remove(server->sasl_timeout);
+               server->sasl_timeout = 0;
+       }
+}
+
 void sasl_init(void)
 {
        signal_add_first("server cap ack sasl", (SIGNAL_FUNC) sasl_start);
@@ -163,6 +177,7 @@
        signal_add_first("event 905", (SIGNAL_FUNC) sasl_fail);
        signal_add_first("event 906", (SIGNAL_FUNC) sasl_fail);
        signal_add_first("event 907", (SIGNAL_FUNC) sasl_already);
+       signal_add_first("server disconnected", (SIGNAL_FUNC) 
sasl_disconnected);
 }
 
 void sasl_deinit(void)
@@ -175,4 +190,5 @@
        signal_remove("event 905", (SIGNAL_FUNC) sasl_fail);
        signal_remove("event 906", (SIGNAL_FUNC) sasl_fail);
        signal_remove("event 907", (SIGNAL_FUNC) sasl_already);
+       signal_remove("server disconnected", (SIGNAL_FUNC) sasl_disconnected);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/irssi-0.8.18/src/irc/dcc/dcc.c 
new/irssi-0.8.19/src/irc/dcc/dcc.c
--- old/irssi-0.8.18/src/irc/dcc/dcc.c  2016-01-20 23:08:07.000000000 +0100
+++ new/irssi-0.8.19/src/irc/dcc/dcc.c  2016-03-23 00:08:36.000000000 +0100
@@ -496,8 +496,8 @@
 
        g_return_if_fail(data != NULL);
 
-       if (!cmd_get_params(data, &free_arg, 3 | PARAM_FLAG_GETREST |
-                           PARAM_FLAG_STRIP_TRAILING_WS, &typestr, &nick, 
&arg))
+       if (!cmd_get_params(data, &free_arg, 3 | PARAM_FLAG_GETREST,
+                           &typestr, &nick, &arg))
                return;
 
        if (*nick == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);




Reply via email to