On Tue, Dec 29, 2015 at 08:11:13PM +0000, Stuart Henderson wrote:
> Picking up viq's old irssi update, now with an update to irssi-icb
> which fixes things (the in-tree irssi-icb was fairly broken when
> I tried it with irssi 0.8.17 before).
> 
> For irssi, compared to the previous diff, it installs irssi-config
> in the include dir so that irssi-icb can find it without patching
> the autoconf files, and there are minor whitespace changes.
> 
> irssi-otr and irssi-silc seem to work (though I'm not on an active
> silc network any more so just testing locally).
> 
> Could someone test irssi-xmpp please?

Seems still to work fine here. Thanks for the update!
 
> OK?
> 
> 
> Index: irssi/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/irssi/Makefile,v
> retrieving revision 1.59
> diff -u -p -r1.59 Makefile
> --- irssi/Makefile    14 Jun 2014 10:34:45 -0000      1.59
> +++ irssi/Makefile    29 Dec 2015 19:54:07 -0000
> @@ -4,18 +4,20 @@ SHARED_ONLY=        Yes
>  
>  COMMENT=     modular IRC client with many features (ipv6,socks,proxy)
>  
> -DISTNAME=    irssi-0.8.16
> +V=           0.8.17
> +DISTNAME=    irssi-$V
> +PKGSPEC=     irssi-=$V
> +EXTRACT_SUFX=        .tar.bz2
>  CATEGORIES=  net
> -REVISION=    0
>  
>  HOMEPAGE=    http://www.irssi.org/
>  
>  MAINTAINER=  Wiktor Izdebski <vic...@gmail.com>
>  
> -# GPL
> +# GPLv2+
>  PERMIT_PACKAGE_CDROM=        Yes
>  
> -MASTER_SITES=   ${HOMEPAGE}files/
> +MASTER_SITES=   https://github.com/irssi-import/irssi/releases/download/$V/
>  
>  WANTLIB=     c crypto m ncurses perl pthread ssl util \
>               pcre glib-2.0 gmodule-2.0
> @@ -25,9 +27,9 @@ MODULES=    devel/gettext
>  LIB_DEPENDS= devel/glib2
>  
>  LIBTOOL_FLAGS+=      --tag=disable-static
> -CONFIGURE_STYLE=gnu
> -MODGNU_CONFIG_GUESS_DIRS=${WRKSRC}
> -CONFIGURE_ARGS+=--with-pic \
> +CONFIGURE_STYLE= gnu
> +MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC}
> +CONFIGURE_ARGS+= --with-pic \
>               --with-proxy \
>               --with-perl=yes \
>               --with-perl-lib=${PREFIX}/libdata/perl5/site_perl
> @@ -51,5 +53,8 @@ FAKE_FLAGS= confdir="${PREFIX}/share/exa
>  
>  pre-configure:
>       ${SUBST_CMD} ${WRKSRC}/docs/irssi.1
> +
> +post-install:
> +     ${INSTALL_DATA} ${WRKSRC}/irssi-config ${PREFIX}/include/irssi/
>  
>  .include <bsd.port.mk>
> Index: irssi/distinfo
> ===================================================================
> RCS file: /cvs/ports/net/irssi/distinfo,v
> retrieving revision 1.19
> diff -u -p -r1.19 distinfo
> --- irssi/distinfo    2 Jun 2014 16:50:42 -0000       1.19
> +++ irssi/distinfo    29 Dec 2015 19:54:07 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (irssi-0.8.16.tar.gz) = aIsXYdmWYgdfGIImjJXoQxhsscLm5pbBYjsCRn8mAqU=
> -SIZE (irssi-0.8.16.tar.gz) = 1359539
> +SHA256 (irssi-0.8.17.tar.bz2) = PJYAytLt9Y8dAS/rwaC6hEJ0324zHAGp6TVGdwUWaAc=
> +SIZE (irssi-0.8.17.tar.bz2) = 1102196
> Index: irssi/patches/patch-docs_irssi_1
> ===================================================================
> RCS file: /cvs/ports/net/irssi/patches/patch-docs_irssi_1,v
> retrieving revision 1.4
> diff -u -p -r1.4 patch-docs_irssi_1
> --- irssi/patches/patch-docs_irssi_1  11 Oct 2009 15:23:51 -0000      1.4
> +++ irssi/patches/patch-docs_irssi_1  29 Dec 2015 19:54:07 -0000
> @@ -1,7 +1,7 @@
>  $OpenBSD: patch-docs_irssi_1,v 1.4 2009/10/11 15:23:51 okan Exp $
> ---- docs/irssi.1.orig        Sat Oct  6 11:38:21 2007
> -+++ docs/irssi.1     Wed Dec  3 22:58:13 2008
> -@@ -65,10 +65,10 @@ display brief usage message.
> +--- docs/irssi.1.orig        Sat Oct 11 09:42:36 2014
> ++++ docs/irssi.1     Tue Dec 29 16:47:56 2015
> +@@ -62,10 +62,10 @@ show a help message.
>   .SH SEE ALSO
>   .B Irssi
>   has been supplied with a huge amount of documentation. Check /help or look
> @@ -14,7 +14,7 @@ $OpenBSD: patch-docs_irssi_1,v 1.4 2009/
>   Global configuration file
>   .TP
>   .I ~/.irssi/config
> -@@ -83,13 +83,18 @@ Default irssi theme
> +@@ -80,13 +80,18 @@ Default irssi theme
>   .I ~/.irssi/away.log
>   Logged messages in away status
>   .TP
> Index: irssi/patches/patch-src_fe-common_core_Makefile_in
> ===================================================================
> RCS file: /cvs/ports/net/irssi/patches/patch-src_fe-common_core_Makefile_in,v
> retrieving revision 1.6
> diff -u -p -r1.6 patch-src_fe-common_core_Makefile_in
> --- irssi/patches/patch-src_fe-common_core_Makefile_in        2 Jun 2014 
> 16:50:42 -0000       1.6
> +++ irssi/patches/patch-src_fe-common_core_Makefile_in        29 Dec 2015 
> 19:54:07 -0000
> @@ -1,7 +1,7 @@
>  $OpenBSD: patch-src_fe-common_core_Makefile_in,v 1.6 2014/06/02 16:50:42 
> sthen Exp $
> ---- src/fe-common/core/Makefile.in.orig      Wed May 28 21:16:02 2014
> -+++ src/fe-common/core/Makefile.in   Sun Jun  1 14:45:13 2014
> -@@ -365,7 +365,7 @@ INCLUDES = \
> +--- src/fe-common/core/Makefile.in.orig      Sat Oct 11 09:58:14 2014
> ++++ src/fe-common/core/Makefile.in   Tue Dec 29 16:47:56 2015
> +@@ -365,7 +365,7 @@ AM_CPPFLAGS = \
>       -I$(top_srcdir)/src -I$(top_srcdir)/src/core/ \
>       $(GLIB_CFLAGS) \
>       -DHELPDIR=\""$(datadir)/irssi/help"\" \
> Index: irssi/patches/patch-src_fe-common_core_fe-core-commands_c
> ===================================================================
> RCS file: irssi/patches/patch-src_fe-common_core_fe-core-commands_c
> diff -N irssi/patches/patch-src_fe-common_core_fe-core-commands_c
> --- irssi/patches/patch-src_fe-common_core_fe-core-commands_c 10 Sep 2009 
> 21:31:42 -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -$OpenBSD: patch-src_fe-common_core_fe-core-commands_c,v 1.2 2009/09/10 
> 21:31:42 martynas Exp $
> -
> -Don't assume the size of time_t.
> -
> ---- src/fe-common/core/fe-core-commands.c.orig       Tue Jul 21 20:47:59 2009
> -+++ src/fe-common/core/fe-core-commands.c    Sat Aug  8 09:10:46 2009
> -@@ -177,7 +177,7 @@ static void cmd_uptime(char *data)
> -     g_return_if_fail(data != NULL);
> - 
> -     if (*data == '\0') {
> --            uptime = time(NULL) - client_start_time;
> -+            uptime = (long)difftime(time(NULL), client_start_time);
> -             printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE,
> -                       "Uptime: %ldd %ldh %ldm %lds",
> -                       uptime/3600/24, uptime/3600%24,
> Index: irssi/patches/patch-src_irc_proxy_listen_c
> ===================================================================
> RCS file: irssi/patches/patch-src_irc_proxy_listen_c
> diff -N irssi/patches/patch-src_irc_proxy_listen_c
> --- irssi/patches/patch-src_irc_proxy_listen_c        2 Jun 2014 16:50:42 
> -0000       1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,11 +0,0 @@
> -$OpenBSD: patch-src_irc_proxy_listen_c,v 1.2 2014/06/02 16:50:42 sthen Exp $
> ---- src/irc/proxy/listen.c.orig      Sun Jun  1 15:01:12 2014
> -+++ src/irc/proxy/listen.c   Sun Jun  1 15:01:31 2014
> -@@ -24,6 +24,7 @@
> - #include "servers-redirect.h"
> - #include "levels.h"
> - #include "settings.h"
> -+#include "misc.h"
> - 
> - #include "irc.h"
> - #include "irc-channels.h"
> Index: irssi/patches/patch-src_perl_Makefile_in
> ===================================================================
> RCS file: /cvs/ports/net/irssi/patches/patch-src_perl_Makefile_in,v
> retrieving revision 1.6
> diff -u -p -r1.6 patch-src_perl_Makefile_in
> --- irssi/patches/patch-src_perl_Makefile_in  2 Jun 2014 16:50:42 -0000       
> 1.6
> +++ irssi/patches/patch-src_perl_Makefile_in  29 Dec 2015 19:54:07 -0000
> @@ -1,7 +1,7 @@
>  $OpenBSD: patch-src_perl_Makefile_in,v 1.6 2014/06/02 16:50:42 sthen Exp $
> ---- src/perl/Makefile.in.orig        Wed May 28 21:16:03 2014
> -+++ src/perl/Makefile.in     Sun Jun  1 15:02:26 2014
> -@@ -378,7 +378,7 @@ INCLUDES = \
> +--- src/perl/Makefile.in.orig        Sat Oct 11 09:58:14 2014
> ++++ src/perl/Makefile.in     Tue Dec 29 16:47:56 2015
> +@@ -378,7 +378,7 @@ AM_CPPFLAGS = \
>       -I$(top_srcdir)/src/core \
>       -I$(top_srcdir)/src/fe-common/core \
>       $(GLIB_CFLAGS) \
> Index: irssi/pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/net/irssi/pkg/PLIST,v
> retrieving revision 1.20
> diff -u -p -r1.20 PLIST
> --- irssi/pkg/PLIST   14 Jun 2014 10:34:45 -0000      1.20
> +++ irssi/pkg/PLIST   29 Dec 2015 19:54:07 -0000
> @@ -1,6 +1,7 @@
>  @comment $OpenBSD: PLIST,v 1.20 2014/06/14 10:34:45 sthen Exp $
>  @bin bin/irssi
>  include/irssi/
> +include/irssi/irssi-config
>  include/irssi/irssi-config.h
>  include/irssi/irssi-version.h
>  include/irssi/src/
> @@ -140,15 +141,11 @@ libdata/perl5/site_perl/${MACHINE_ARCH}-
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/Irc/
> -@comment 
> libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/Irc/Irc.bs
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/Irc/Irc.so
> -@comment libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/Irssi.bs
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/Irssi.so
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/TextUI/
> -@comment 
> libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/TextUI/TextUI.bs
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/TextUI/TextUI.so
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/UI/
> -@comment libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/UI/UI.bs
>  libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd/auto/Irssi/UI/UI.so
>  @man man/man1/irssi.1
>  share/doc/irssi/
> @@ -238,8 +235,6 @@ share/irssi/help/hilight
>  share/irssi/help/ignore
>  share/irssi/help/info
>  share/irssi/help/invite
> -share/irssi/help/invitelist
> -share/irssi/help/ircnet
>  share/irssi/help/ison
>  share/irssi/help/join
>  share/irssi/help/kick
> @@ -266,7 +261,6 @@ share/irssi/help/nctcp
>  share/irssi/help/netsplit
>  share/irssi/help/network
>  share/irssi/help/nick
> -share/irssi/help/note
>  share/irssi/help/notice
>  share/irssi/help/notify
>  share/irssi/help/op
> @@ -284,17 +278,13 @@ share/irssi/help/reload
>  share/irssi/help/restart
>  share/irssi/help/rmreconns
>  share/irssi/help/rmrejoins
> -share/irssi/help/rping
>  share/irssi/help/save
> -share/irssi/help/say
>  share/irssi/help/sconnect
>  share/irssi/help/script
>  share/irssi/help/scrollback
>  share/irssi/help/server
> -share/irssi/help/servlist
>  share/irssi/help/set
>  share/irssi/help/silence
> -share/irssi/help/squery
>  share/irssi/help/squit
>  share/irssi/help/stats
>  share/irssi/help/statusbar
> @@ -311,7 +301,7 @@ share/irssi/help/unnotify
>  share/irssi/help/unquery
>  share/irssi/help/unsilence
>  share/irssi/help/upgrade
> -share/irssi/help/uping
> +share/irssi/help/uptime
>  share/irssi/help/userhost
>  share/irssi/help/ver
>  share/irssi/help/version
> @@ -319,10 +309,7 @@ share/irssi/help/voice
>  share/irssi/help/wait
>  share/irssi/help/wall
>  share/irssi/help/wallops
> -share/irssi/help/watch
>  share/irssi/help/who
>  share/irssi/help/whois
>  share/irssi/help/whowas
>  share/irssi/help/window
> -share/irssi/help/wjoin
> -share/irssi/help/wquery
> Index: irssi-icb/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/irssi-icb/Makefile,v
> retrieving revision 1.34
> diff -u -p -r1.34 Makefile
> --- irssi-icb/Makefile        24 Nov 2015 09:11:05 -0000      1.34
> +++ irssi-icb/Makefile        29 Dec 2015 19:54:07 -0000
> @@ -4,41 +4,26 @@ SHARED_ONLY=        Yes
>  
>  COMMENT=     ICB plugin for irssi
>  
> -DISTNAME=    irssi-icb-0.14
> -REVISION=    10
> -MASTER_SITES=   https://distfiles.nl/
> +DISTNAME=    irssi-icb-0.15
>  
>  CATEGORIES=     net
>  
> -BUILD_DEPENDS=       ${MODGNU_AUTOCONF_DEPENDS} \
> -             ${MODGNU_AUTOMAKE_DEPENDS} \
> -             net/irssi>=0.8.15p5 \
> +BUILD_DEPENDS=       net/irssi \
>               devel/glib2
>  RUN_DEPENDS= net/irssi
>  
> -# GPL
> +# GPLv2+
>  PERMIT_PACKAGE_CDROM=   Yes
>  
> -# Needs AC_PROG_LIBTOOL
> -BUILD_DEPENDS += devel/libtool
> +MASTER_SITES=   https://github.com/downloads/jperkin/irssi-icb/
> +
>  LIBTOOL_FLAGS=       --tag=disable-static
>  CONFIGURE_STYLE= gnu
> -AUTOCONF_VERSION=2.61
> -AUTOMAKE_VERSION=1.9
>  CONFIGURE_ARGS+= --with-irssi=${LOCALBASE}/include/irssi
>  
> -AUTO_ENV=    AUTOCONF_VERSION=${AUTOCONF_VERSION} \
> -             AUTOMAKE_VERSION=${AUTOMAKE_VERSION}
> -
> -pre-configure:
> -     cd ${WRKSRC} && ${AUTO_ENV} aclocal
> -     cd ${WRKSRC} && ${AUTO_ENV} automake\
> -             --add-missing -f --foreign
> -     cd ${WRKSRC} && ${AUTO_ENV} autoconf
> -
>  post-install:
>       ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/irssi
>       ${INSTALL_DATA} ${WRKSRC}/README \
> -                     ${PREFIX}/share/doc/irssi/icb-plugin.txt
> +             ${PREFIX}/share/doc/irssi/icb-plugin.txt
>  
>  .include <bsd.port.mk>
> Index: irssi-icb/distinfo
> ===================================================================
> RCS file: /cvs/ports/net/irssi-icb/distinfo,v
> retrieving revision 1.5
> diff -u -p -r1.5 distinfo
> --- irssi-icb/distinfo        9 Jan 2014 23:28:49 -0000       1.5
> +++ irssi-icb/distinfo        29 Dec 2015 19:54:07 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (irssi-icb-0.14.tar.gz) = NEP9e5fgtkoiRJSDuRfi5aqAsIsY3WTGIT9qO3Vkmyg=
> -SIZE (irssi-icb-0.14.tar.gz) = 172647
> +SHA256 (irssi-icb-0.15.tar.gz) = v4MpRI27ubhdfcnFOLSFelLTxA6cU11Rd3cjlsqotS4=
> +SIZE (irssi-icb-0.15.tar.gz) = 306973
> Index: irssi-icb/patches/patch-README
> ===================================================================
> RCS file: irssi-icb/patches/patch-README
> diff -N irssi-icb/patches/patch-README
> --- irssi-icb/patches/patch-README    21 Apr 2008 10:35:27 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -$OpenBSD: patch-README,v 1.1 2008/04/21 10:35:27 sthen Exp $
> ---- README.orig      Sat Apr 27 21:56:18 2002
> -+++ README   Sun Oct 21 15:31:29 2007
> -@@ -14,6 +14,10 @@ chatnets section:
> - 
> -  icbnet = { type = "ICB"; };
> - 
> -+You'll also need to add to your startup file:
> -+
> -+ LOAD icb
> -+
> - and then:
> - 
> -  /SERVER ADD -auto -icbnet icbnet default.icb.net
> Index: irssi-icb/patches/patch-configure_in
> ===================================================================
> RCS file: irssi-icb/patches/patch-configure_in
> diff -N irssi-icb/patches/patch-configure_in
> --- irssi-icb/patches/patch-configure_in      11 Jun 2010 13:56:33 -0000      
> 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,40 +0,0 @@
> -$OpenBSD: patch-configure_in,v 1.1 2010/06/11 13:56:33 dcoppa Exp $
> ---- configure.in.orig        Sun Nov 24 14:17:32 2002
> -+++ configure.in     Wed Jun  9 16:23:05 2010
> -@@ -9,7 +9,6 @@ AC_ISC_POSIX
> - AC_PROG_CC
> - AC_PROG_CPP
> - AC_STDC_HEADERS
> --AC_ARG_PROGRAM
> - AM_DISABLE_STATIC
> - AM_PROG_LIBTOOL
> - 
> -@@ -20,11 +19,11 @@ AC_ARG_WITH(irssi,
> - 
> - if test x$IRSSI_INCLUDE = x; then
> -   dnl * --with-irssi not given, try to find irssi
> --  if test -f ../irssi-config; then
> -+  if test -f ../irssi-version.h; then
> -     IRSSI_INCLUDE=".."
> --  elif test -f ../irssi/irssi-config; then
> -+  elif test -f ../irssi/irssi-version.h; then
> -     IRSSI_INCLUDE="../irssi"
> --  elif test -f ../../irssi/irssi-config; then
> -+  elif test -f ../../irssi/irssi-version.h; then
> -     IRSSI_INCLUDE="../../irssi"
> -   fi
> - fi
> -@@ -36,11 +35,11 @@ cd $old
> - 
> - AC_SUBST(IRSSI_INCLUDE)
> - 
> --if test ! -f $IRSSI_INCLUDE/irssi-config; then
> -+if test ! -f $IRSSI_INCLUDE/irssi-version.h; then
> -   AC_ERROR(Not irssi directory: $IRSSI_INCLUDE)
> - fi
> - 
> --AM_PATH_GLIB(1.2.0,,, gmodule)
> -+AM_PATH_GLIB_2_0(2.6.0,,, gmodule)
> - 
> - # gcc specific options
> - if test "x$ac_cv_prog_gcc" = "xyes"; then
> Index: irssi-icb/patches/patch-src_core_Makefile_am
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_Makefile_am
> diff -N irssi-icb/patches/patch-src_core_Makefile_am
> --- irssi-icb/patches/patch-src_core_Makefile_am      19 Oct 2011 09:47:26 
> -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,28 +0,0 @@
> -$OpenBSD: patch-src_core_Makefile_am,v 1.2 2011/10/19 09:47:26 dcoppa Exp $
> ---- src/core/Makefile.am.orig        Sat May  4 19:21:43 2002
> -+++ src/core/Makefile.am     Tue Oct 18 15:11:37 2011
> -@@ -1,7 +1,7 @@
> - moduledir = $(libdir)/irssi/modules
> - 
> - module_LTLIBRARIES = libicb_core.la
> --libicb_core_la_LDFLAGS = -avoid-version
> -+libicb_core_la_LDFLAGS = -module -avoid-version
> - 
> - INCLUDES = \
> -     $(GLIB_CFLAGS) \
> -@@ -12,6 +12,7 @@ libicb_core_la_SOURCES = \
> -     icb-channels.c \
> -     icb-commands.c \
> -     icb-core.c \
> -+    icb-nicklist.c \
> -     icb-queries.c \
> -     icb-servers-reconnect.c \
> -     icb-protocol.c \
> -@@ -22,6 +23,7 @@ noinst_HEADERS = \
> -     icb.h \
> -     icb-channels.h \
> -     icb-commands.h \
> -+    icb-nicklist.h \
> -     icb-protocol.h \
> -     icb-queries.h \
> -     icb-servers.h \
> Index: irssi-icb/patches/patch-src_core_Makefile_in
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_Makefile_in
> diff -N irssi-icb/patches/patch-src_core_Makefile_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ irssi-icb/patches/patch-src_core_Makefile_in      29 Dec 2015 19:54:07 
> -0000
> @@ -0,0 +1,39 @@
> +$OpenBSD$
> +
> +pkgsrc patch-src_core_Makefile.in r1.1
> +
> +--- src/core/Makefile.in.orig        Tue Jun 14 00:18:30 2011
> ++++ src/core/Makefile.in     Tue Dec 29 18:55:41 2015
> +@@ -72,7 +72,7 @@ LTLIBRARIES = $(module_LTLIBRARIES)
> + libicb_core_la_LIBADD =
> + am_libicb_core_la_OBJECTS = icb-channels.lo icb-commands.lo \
> +     icb-core.lo icb-queries.lo icb-servers-reconnect.lo \
> +-    icb-protocol.lo icb-servers.lo icb-session.lo
> ++    icb-nicklist.lo icb-protocol.lo icb-servers.lo icb-session.lo
> + libicb_core_la_OBJECTS = $(am_libicb_core_la_OBJECTS)
> + AM_V_lt = $(am__v_lt_$(V))
> + am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
> +@@ -246,6 +246,7 @@ libicb_core_la_SOURCES = \
> +     icb-core.c \
> +     icb-queries.c \
> +     icb-servers-reconnect.c \
> ++    icb-nicklist.c \
> +     icb-protocol.c \
> +     icb-servers.c \
> +     icb-session.c
> +@@ -254,6 +255,7 @@ noinst_HEADERS = \
> +     icb.h \
> +     icb-channels.h \
> +     icb-commands.h \
> ++    icb-nicklist.h \
> +     icb-protocol.h \
> +     icb-queries.h \
> +     icb-servers.h \
> +@@ -336,6 +338,7 @@ distclean-compile:
> + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icb-channels.Plo@am__quote@
> + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icb-commands.Plo@am__quote@
> + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icb-core.Plo@am__quote@
> ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icb-nicklist.Plo@am__quote@
> + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icb-protocol.Plo@am__quote@
> + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icb-queries.Plo@am__quote@
> + @AMDEP_TRUE@@am__include@ 
> @am__quote@./$(DEPDIR)/icb-servers-reconnect.Plo@am__quote@
> Index: irssi-icb/patches/patch-src_core_icb-channels_c
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_icb-channels_c
> diff -N irssi-icb/patches/patch-src_core_icb-channels_c
> --- irssi-icb/patches/patch-src_core_icb-channels_c   11 Jun 2010 13:56:33 
> -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -$OpenBSD: patch-src_core_icb-channels_c,v 1.1 2010/06/11 13:56:33 dcoppa Exp 
> $
> ---- src/core/icb-channels.c.orig     Wed Jun  9 15:44:50 2010
> -+++ src/core/icb-channels.c  Wed Jun  9 15:45:33 2010
> -@@ -42,7 +42,7 @@ ICB_CHANNEL_REC *icb_channel_create(ICB_SERVER_REC *se
> - void icb_change_channel(ICB_SERVER_REC *server, const char *channel,
> -                     int automatic)
> - {
> --    if (g_strcasecmp(server->group->name, channel) == 0)
> -+    if (g_ascii_strcasecmp(server->group->name, channel) == 0)
> -             return;
> - 
> -     channel_destroy(CHANNEL(server->group));
> Index: irssi-icb/patches/patch-src_core_icb-commands_c
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_icb-commands_c
> diff -N irssi-icb/patches/patch-src_core_icb-commands_c
> --- irssi-icb/patches/patch-src_core_icb-commands_c   21 Apr 2008 10:35:27 
> -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,32 +0,0 @@
> -$OpenBSD: patch-src_core_icb-commands_c,v 1.1 2008/04/21 10:35:27 sthen Exp $
> ---- src/core/icb-commands.c.orig     Sat May  4 18:21:43 2002
> -+++ src/core/icb-commands.c  Sun Oct 21 15:31:29 2007
> -@@ -29,9 +29,10 @@ static char *icb_commands[] = {
> -     "whois", "p", "delete", "cp", "rname",
> -     "phone", "addr", "email", "text", "www",
> -     "read", "write", "secure", "nosecure", "info", "?",
> --
> -     "invite", "v", "echoback", "name", "motd", "topic", "status",
> --    "boot", "pass", "drop", "shutdown", "wall",
> -+    "boot", "pass", "drop", "shutdown", "wall", "away", "noaway",
> -+    "nobeep", "cancel", "exclude", "news", "notify", "s_help",
> -+    "shuttime", "whereis", "hush", "talk",
> -         NULL
> - };
> - 
> -@@ -108,7 +109,6 @@ void icb_commands_init(void)
> - 
> -     /* adds also some aliases known to IRC users :) */
> -     command_bind_icb("quote", NULL, (SIGNAL_FUNC) cmd_quote);
> --    command_bind_icb("w", NULL, (SIGNAL_FUNC) cmd_who);
> -     command_bind_icb("who", NULL, (SIGNAL_FUNC) cmd_who);
> -         command_bind_icb("nick", NULL, (SIGNAL_FUNC) cmd_name);
> -         command_bind_icb("kick", NULL, (SIGNAL_FUNC) cmd_boot);
> -@@ -126,7 +126,6 @@ void icb_commands_deinit(void)
> -             command_unbind(*cmd, (SIGNAL_FUNC) cmd_self);
> - 
> -     command_unbind("quote", (SIGNAL_FUNC) cmd_quote);
> --    command_unbind("w", (SIGNAL_FUNC) cmd_who);
> -         command_unbind("who", (SIGNAL_FUNC) cmd_who);
> -         command_unbind("nick", (SIGNAL_FUNC) cmd_name);
> -         command_unbind("kick", (SIGNAL_FUNC) cmd_boot);
> Index: irssi-icb/patches/patch-src_core_icb-nicklist_c
> ===================================================================
> RCS file: /cvs/ports/net/irssi-icb/patches/patch-src_core_icb-nicklist_c,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_core_icb-nicklist_c
> --- irssi-icb/patches/patch-src_core_icb-nicklist_c   14 Jun 2011 10:22:16 
> -0000      1.1
> +++ irssi-icb/patches/patch-src_core_icb-nicklist_c   29 Dec 2015 19:54:07 
> -0000
> @@ -1,6 +1,9 @@
> -$OpenBSD: patch-src_core_icb-nicklist_c,v 1.1 2011/06/14 10:22:16 sthen Exp $
> ---- src/core/icb-nicklist.c.orig     Tue Jun 14 10:29:57 2011
> -+++ src/core/icb-nicklist.c  Tue Jun 14 10:29:57 2011
> +$OpenBSD$
> +
> +pkgsrc patch-am, r1.2
> +
> +--- src/core/icb-nicklist.c.orig     Tue Dec 29 18:53:05 2015
> ++++ src/core/icb-nicklist.c  Tue Dec 29 18:53:05 2015
>  @@ -0,0 +1,44 @@
>  +/*
>  + icb-nicklist.c : irssi
> Index: irssi-icb/patches/patch-src_core_icb-nicklist_h
> ===================================================================
> RCS file: /cvs/ports/net/irssi-icb/patches/patch-src_core_icb-nicklist_h,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_core_icb-nicklist_h
> --- irssi-icb/patches/patch-src_core_icb-nicklist_h   14 Jun 2011 10:22:16 
> -0000      1.1
> +++ irssi-icb/patches/patch-src_core_icb-nicklist_h   29 Dec 2015 19:54:07 
> -0000
> @@ -1,6 +1,9 @@
> -$OpenBSD: patch-src_core_icb-nicklist_h,v 1.1 2011/06/14 10:22:16 sthen Exp $
> ---- src/core/icb-nicklist.h.orig     Tue Jun 14 10:29:41 2011
> -+++ src/core/icb-nicklist.h  Tue Jun 14 10:29:41 2011
> +$OpenBSD$
> +
> +pkgsrc patch-an, r1.2
> +
> +--- src/core/icb-nicklist.h.orig     Tue Dec 29 18:53:26 2015
> ++++ src/core/icb-nicklist.h  Tue Dec 29 18:53:26 2015
>  @@ -0,0 +1,33 @@
>  +/*
>  + icb-nicklist.h : irssi
> Index: irssi-icb/patches/patch-src_core_icb-protocol_c
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_icb-protocol_c
> diff -N irssi-icb/patches/patch-src_core_icb-protocol_c
> --- irssi-icb/patches/patch-src_core_icb-protocol_c   19 Oct 2011 09:47:26 
> -0000      1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,136 +0,0 @@
> -$OpenBSD: patch-src_core_icb-protocol_c,v 1.4 2011/10/19 09:47:26 dcoppa Exp 
> $
> -
> -Break lines longer than 255 chars
> -
> ---- src/core/icb-protocol.c.orig     Sat May  4 19:21:44 2002
> -+++ src/core/icb-protocol.c  Tue Oct 18 15:19:39 2011
> -@@ -121,9 +121,93 @@ static void icb_login(ICB_SERVER_REC *server)
> - 
> - void icb_send_open_msg(ICB_SERVER_REC *server, const char *text)
> - {
> --        icb_send_cmd(server, 'b', text, NULL);
> -+    size_t remain;
> -+
> -+    /*
> -+     * ICB has 255 byte line length limit, and public messages are sent
> -+     * out with our nickname, so split text accordingly.
> -+     *
> -+     * 250 = 255 - 'b' - 1 space after nick - ^A - nul - extra
> -+     *
> -+     * Taken from ircII's icb.c, thanks phone :-)
> -+     */
> -+    remain = 250 - strlen(server->connrec->nick);
> -+
> -+    while(*text) {
> -+            char buf[256], *sendbuf;
> -+            size_t len, copylen;
> -+
> -+            len = strlen(text);
> -+            copylen = remain;
> -+            if (len > remain) {
> -+                    int i;
> -+
> -+                    /* try to split on a word boundary */
> -+                    for (i = 1; i < 128 && i < len; i++) {
> -+                            if (isspace(text[remain - i])) {
> -+                                    copylen -= i - 1;
> -+                                    break;
> -+                            }
> -+                    }
> -+                    strncpy(buf, text, copylen);
> -+                    buf[copylen] = 0;
> -+                    sendbuf = buf;
> -+            } else {
> -+                    sendbuf = (char *)text;
> -+            }
> -+            icb_send_cmd(server, 'b', sendbuf, NULL);
> -+            text += len > copylen ? copylen : len;
> -+    }
> - }
> - 
> -+void icb_send_private_msg(ICB_SERVER_REC *server, const char *target,
> -+            const char *text)
> -+{
> -+    size_t mylen, targlen, remain;
> -+
> -+    /*
> -+     * ICB has 255 byte line length limit.  Private messages are sent
> -+     * out with our nickname, but received with the target nickname,
> -+     * so deduct the larger of the two in addition to other parts.
> -+     *
> -+     * 248 = 255 - 'hm' - 1 space after nick - ^A's - nul - extra
> -+     *
> -+     * Taken from ircII's icb.c, thanks phone :-)
> -+     */
> -+    mylen = strlen(server->connrec->nick);
> -+    targlen = strlen(target);
> -+    if (mylen > targlen) {
> -+            remain = 248 - mylen;
> -+    } else {
> -+            remain = 248 - targlen;
> -+    }
> -+    while(*text) {
> -+            char buf[256], *sendbuf;
> -+            size_t len, copylen;
> -+
> -+            len = strlen(text);
> -+            copylen = remain;
> -+            if (len > remain) {
> -+                    int i;
> -+
> -+                    /* try to split on a word boundary */
> -+                    for (i = 1; i < 128 && i < len; i++) {
> -+                            if (isspace(text[remain - i])) {
> -+                                    copylen -= i - 1;
> -+                                    break;
> -+                            }
> -+                    }
> -+                    strncpy(buf, text, copylen);
> -+                    buf[copylen] = 0;
> -+                    sendbuf = g_strconcat(target, " ", buf, NULL);
> -+            } else {
> -+                    sendbuf = g_strconcat(target, " ", text, NULL);
> -+            }
> -+            icb_send_cmd(server, 'h', "m", sendbuf, NULL);
> -+            text += len > copylen ? copylen : len;
> -+    }
> -+}
> -+
> - void icb_command(ICB_SERVER_REC *server, const char *cmd,
> -              const char *args, const char *id)
> - {
> -@@ -293,6 +377,20 @@ static void event_cmdout(ICB_SERVER_REC *server, const
> -         g_strfreev(args);
> - }
> - 
> -+static void event_status(ICB_SERVER_REC *server, const char *data)
> -+{
> -+    char **args, *event;
> -+
> -+    args = g_strsplit(data, "\001", -1);
> -+    if (args[0] != NULL) {
> -+            event = g_strdup_printf("icb status %s", 
> g_ascii_strdown(args[0], strlen(args[0])));
> -+            if (!signal_emit(event, 2, server, args))
> -+                        signal_emit("default icb status", 2, server, args);
> -+                g_free(event);
> -+    }
> -+        g_strfreev(args);
> -+}
> -+
> - void icb_protocol_init(void)
> - {
> -         signal_add("server connected", (SIGNAL_FUNC) sig_server_connected);
> -@@ -300,6 +398,7 @@ void icb_protocol_init(void)
> -         signal_add("icb event login", (SIGNAL_FUNC) event_login);
> -         signal_add("icb event ping", (SIGNAL_FUNC) event_ping);
> -         signal_add("icb event cmdout", (SIGNAL_FUNC) event_cmdout);
> -+        signal_add("icb event status", (SIGNAL_FUNC) event_status);
> - }
> - 
> - void icb_protocol_deinit(void)
> -@@ -309,4 +408,5 @@ void icb_protocol_deinit(void)
> -         signal_remove("icb event login", (SIGNAL_FUNC) event_login);
> -         signal_remove("icb event ping", (SIGNAL_FUNC) event_ping);
> -         signal_remove("icb event cmdout", (SIGNAL_FUNC) event_cmdout);
> -+        signal_remove("icb event status", (SIGNAL_FUNC) event_status);
> - }
> Index: irssi-icb/patches/patch-src_core_icb-protocol_h
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_icb-protocol_h
> diff -N irssi-icb/patches/patch-src_core_icb-protocol_h
> --- irssi-icb/patches/patch-src_core_icb-protocol_h   4 Jun 2010 14:16:22 
> -0000       1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -$OpenBSD: patch-src_core_icb-protocol_h,v 1.1 2010/06/04 14:16:22 phessler 
> Exp $
> -
> -Break lines longer than 255 chars
> -
> ---- src/core/icb-protocol.h.orig     Sat May  4 19:21:44 2002
> -+++ src/core/icb-protocol.h  Fri Jun  4 10:12:25 2010
> -@@ -4,6 +4,8 @@
> - #define ICB_PROTOCOL_LEVEL 1
> - 
> - void icb_send_open_msg(ICB_SERVER_REC *server, const char *text);
> -+void icb_send_private_msg(ICB_SERVER_REC *server, const char *target,
> -+            const char *text);
> - void icb_command(ICB_SERVER_REC *server, const char *cmd,
> -              const char *args, const char *id);
> - void icb_protocol(ICB_SERVER_REC *server, const char *level,
> Index: irssi-icb/patches/patch-src_core_icb-servers_c
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_icb-servers_c
> diff -N irssi-icb/patches/patch-src_core_icb-servers_c
> --- irssi-icb/patches/patch-src_core_icb-servers_c    14 Jun 2011 10:22:16 
> -0000      1.3
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,56 +0,0 @@
> -$OpenBSD: patch-src_core_icb-servers_c,v 1.3 2011/06/14 10:22:16 sthen Exp $
> -
> -Break lines longer than 255 chars
> -
> ---- src/core/icb-servers.c.orig      Tue May 28 17:56:34 2002
> -+++ src/core/icb-servers.c   Tue Jun 14 10:31:10 2011
> -@@ -39,6 +39,9 @@ SERVER_REC *icb_server_init_connect(SERVER_CONNECT_REC
> -     server = g_new0(ICB_SERVER_REC, 1);
> -     server->chat_type = ICB_PROTOCOL;
> - 
> -+    server->silentwho = FALSE;
> -+    server->updatenicks = FALSE;
> -+
> -         server->recvbuf_size = 256;
> -     server->recvbuf = g_malloc(server->recvbuf_size);
> - 
> -@@ -93,17 +96,17 @@ static void channels_join(SERVER_REC *server, const ch
> -     icb_change_channel(ICB_SERVER(server), channel, automatic);
> - }
> - 
> --static int isnickflag_func(char flag)
> -+static int isnickflag_func(SERVER_REC *server, char flag)
> - {
> -         return flag == '*';
> - }
> - 
> - static int ischannel_func(SERVER_REC *server, const char *data)
> - {
> --        return g_strcasecmp(ICB_SERVER(server)->group->name, data) == 0;
> -+        return g_ascii_strcasecmp(ICB_SERVER(server)->group->name, data) == 
> 0;
> - }
> - 
> --static const char *get_nick_flags(void)
> -+static const char *get_nick_flags(SERVER_REC *server)
> - {
> -     static const char flags[] = { '*', '\0', '\0' };
> -         return flags;
> -@@ -113,7 +116,6 @@ static void send_message(SERVER_REC *server, const cha
> -                      const char *msg, int target_type)
> - {
> -     ICB_SERVER_REC *icbserver;
> --        char *str;
> - 
> -         icbserver = ICB_SERVER(server);
> -     g_return_if_fail(server != NULL);
> -@@ -125,9 +127,7 @@ static void send_message(SERVER_REC *server, const cha
> -                 icb_send_open_msg(icbserver, msg);
> -     } else {
> -             /* private message */
> --                str = g_strconcat(target, " ", msg, NULL);
> --            icb_command(icbserver, "m", str, NULL);
> --                g_free(str);
> -+            icb_send_private_msg(icbserver, target, msg);
> -     }
> - }
> - 
> Index: irssi-icb/patches/patch-src_core_icb-servers_h
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_core_icb-servers_h
> diff -N irssi-icb/patches/patch-src_core_icb-servers_h
> --- irssi-icb/patches/patch-src_core_icb-servers_h    14 Jun 2011 10:22:16 
> -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-src_core_icb-servers_h,v 1.1 2011/06/14 10:22:16 sthen Exp $
> ---- src/core/icb-servers.h.orig      Tue Jun 14 10:29:08 2011
> -+++ src/core/icb-servers.h   Tue Jun 14 10:29:19 2011
> -@@ -31,6 +31,9 @@ struct _ICB_SERVER_REC {
> -     unsigned char *sendbuf;
> -     int sendbuf_size;
> - 
> -+    int silentwho;          /* silence /who output when updating nicks */
> -+    int updatenicks;        /* parse /who output for topic/nicks */
> -+
> -     unsigned char *recvbuf;
> -     int recvbuf_size, recvbuf_pos;
> -         int recvbuf_next_packet;
> Index: irssi-icb/patches/patch-src_fe-common_Makefile_am
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_fe-common_Makefile_am
> diff -N irssi-icb/patches/patch-src_fe-common_Makefile_am
> --- irssi-icb/patches/patch-src_fe-common_Makefile_am 19 Oct 2011 09:47:26 
> -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -$OpenBSD: patch-src_fe-common_Makefile_am,v 1.1 2011/10/19 09:47:26 dcoppa 
> Exp $
> ---- src/fe-common/Makefile.am.orig   Tue Oct 18 15:12:19 2011
> -+++ src/fe-common/Makefile.am        Tue Oct 18 15:12:30 2011
> -@@ -1,7 +1,7 @@
> - moduledir = $(libdir)/irssi/modules
> - 
> - module_LTLIBRARIES = libfe_icb.la
> --libfe_icb_la_LDFLAGS = -avoid-version
> -+libfe_icb_la_LDFLAGS = -module -avoid-version
> - 
> - INCLUDES = \
> -     $(GLIB_CFLAGS) \
> Index: irssi-icb/patches/patch-src_fe-common_fe-icb_c
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_fe-common_fe-icb_c
> diff -N irssi-icb/patches/patch-src_fe-common_fe-icb_c
> --- irssi-icb/patches/patch-src_fe-common_fe-icb_c    19 Oct 2011 09:47:26 
> -0000      1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,488 +0,0 @@
> -$OpenBSD: patch-src_fe-common_fe-icb_c,v 1.4 2011/10/19 09:47:26 dcoppa Exp $
> ---- src/fe-common/fe-icb.c.orig      Sat Apr 27 22:56:18 2002
> -+++ src/fe-common/fe-icb.c   Tue Oct 18 15:20:42 2011
> -@@ -18,33 +18,73 @@
> -     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
> USA
> - */
> - 
> -+#include <time.h>
> -+
> - #include "module.h"
> - #include "module-formats.h"
> - #include "signals.h"
> - #include "commands.h"
> - #include "servers-setup.h"
> - #include "levels.h"
> -+#include "nicklist.h"
> - 
> - #include "icb.h"
> - #include "icb-servers.h"
> - #include "icb-channels.h"
> -+#include "icb-nicklist.h"
> - #include "icb-protocol.h"
> - 
> - #include "printtext.h"
> - #include "themes.h"
> - 
> --static void event_status(ICB_SERVER_REC *server, const char *data)
> -+static void icb_change_topic(ICB_SERVER_REC *server, const char *topic,
> -+                         const char *setby, time_t settime)
> - {
> --    char **args;
> -+    if (topic != NULL) {
> -+            g_free_not_null(server->group->topic);
> -+            server->group->topic = g_strdup(topic);
> -+    }
> - 
> --    /* FIXME: status messages should probably divided into their own
> --       signals so irssi could track joins, parts, etc. */
> --    args = icb_split(data, 2);
> --    printformat(server, server->group->name, MSGLEVEL_CRAP,
> --                ICBTXT_STATUS, args[0], args[1]);
> --        icb_split_free(args);
> -+    if (setby != NULL) {
> -+            g_free_not_null(server->group->topic_by);
> -+            server->group->topic_by = g_strdup(setby);
> -+    }
> -+
> -+    server->group->topic_time = settime;
> -+
> -+    signal_emit("channel topic changed", 1, server->group);
> - }
> - 
> -+/*
> -+ * ICB makes it hard to keep track of nicks:
> -+ *
> -+ *  - moderators can come and go, and even return with a different nick, 
> while
> -+ *    still retaining their moderator status
> -+ *
> -+ *  - group moderator can change at any time, if the moderator is off-group
> -+ *    while changing nick
> -+ *
> -+ *  - users can be moderator of multiple groups simultaneously, but can only
> -+ *    be in one group at a time
> -+ *
> -+ * So for now we don't bother to track the moderator, just the group nicks
> -+ */
> -+static void icb_update_nicklist(ICB_SERVER_REC *server)
> -+{
> -+    /*
> -+     * In theory we should be able to just send '/who <group>' and parse,
> -+     * but the problem is that ICB does not send any kind of end-of-who
> -+     * marker when only listing one group, and sending a separate command
> -+     * isn't guaranteed to come back in the right order.
> -+     *
> -+     * So we're forced do perform a full /who and then match against our
> -+     * groupname.  A full /who is terminated with a 'Total: ' line which we
> -+     * can use as EOF>
> -+     */
> -+    server->silentwho = TRUE;
> -+    icb_command(server, "w", "", NULL);
> -+}
> -+
> - static void event_error(ICB_SERVER_REC *server, const char *data)
> - {
> -     printformat(server, NULL, MSGLEVEL_CRAP, ICBTXT_ERROR, data);
> -@@ -84,15 +124,351 @@ static void event_personal(ICB_SERVER_REC *server, con
> -         icb_split_free(args);
> - }
> - 
> -+static void idle_time(char *buf, size_t bufsize, time_t idle)
> -+{
> -+#define MIN_LEN             60UL
> -+#define HOUR_LEN    3600UL
> -+#define DAY_LEN             86400UL
> -+#define WEEK_LEN    604800UL
> -+
> -+    if (idle >= WEEK_LEN)
> -+            snprintf(buf, bufsize, "%2dw%2dd",
> -+                     (int)(idle/WEEK_LEN), (int)((idle%WEEK_LEN)/DAY_LEN));
> -+    else if (idle >= DAY_LEN)
> -+            snprintf(buf, bufsize, "%2dd%2dh",
> -+                     (int)(idle/DAY_LEN), (int)((idle%DAY_LEN)/HOUR_LEN));
> -+    else if (idle >= HOUR_LEN)
> -+            snprintf(buf, bufsize, "%2dh%2dm",
> -+                     (int)(idle/HOUR_LEN), (int)((idle%HOUR_LEN)/MIN_LEN));
> -+    else if (idle >= MIN_LEN)
> -+            snprintf(buf, bufsize, "%2dm%2ds",
> -+                     (int)(idle/MIN_LEN), (int)(idle%MIN_LEN));
> -+    else
> -+            snprintf(buf, bufsize, "   %2ds", (int)idle);
> -+}
> -+
> -+static void cmdout_co(ICB_SERVER_REC *server, char **args)
> -+{
> -+    char *p, *group, *topic;
> -+    int len;
> -+
> -+    static const char match_group[] = "Group: ";
> -+    static const char match_topic[] = "Topic: ";
> -+    static const char match_topicunset[] = "(None)";
> -+    static const char match_topicis[] = "The topic is";
> -+    static const char match_total[] = "Total: ";
> -+
> -+    /*
> -+     * Use 'co' as the marker to denote wl lines have finished, so
> -+     * reset the nick updates
> -+     */
> -+    server->updatenicks = FALSE;
> -+
> -+    /* If we're running in silent mode, parse the output for nicks/topic */
> -+    if (server->silentwho) {
> -+
> -+            /* Match group lines */
> -+            len = strlen(match_group);
> -+            if (strncmp(args[0], match_group, len) == 0) {
> -+
> -+                    group = g_strdup(args[0] + len);
> -+                    p = strchr(group, ' ');
> -+                    *p = '\0';
> -+
> -+                    /* Check for our particular group */
> -+                    len = strlen(group);
> -+                    if (g_ascii_strncasecmp(group, server->group->name, 
> len) == 0) {
> -+
> -+                            /* Start matching nicks */
> -+                            server->updatenicks = TRUE;
> -+
> -+                            p = strstr(args[0], match_topic);
> -+                            if (p != NULL && p != args[0]) {
> -+                                    topic = p + strlen(match_topic);
> -+                                    if (topic != NULL) {
> -+                                            len = strlen(match_topicunset);
> -+                                            if (strncmp(topic,
> -+                                                        match_topicunset,
> -+                                                        len) != 0) {
> -+
> -+                                                    /* No way to find who 
> set the topic, mark as unknown */
> -+                                                    
> icb_change_topic(server, topic, "unknown", time(NULL));
> -+                                            }
> -+                                    }
> -+                            }
> -+                    }
> -+                    g_free(group);
> -+            }
> -+
> -+            /*
> -+             * End of /who output, stop silent mode and signal front-end
> -+             * to display /names list
> -+             */
> -+            len = strlen(match_total);
> -+            if (strncmp(args[0], match_total, len) == 0) {
> -+                    server->silentwho = FALSE;
> -+                    signal_emit("channel joined", 1, server->group);
> -+            }
> -+    } else {
> -+            /* Now that /topic works correctly, ignore server output */
> -+            len = strlen(match_topicis);
> -+            if (strncmp(args[0], match_topicis, len) != 0) {
> -+                    printtext(server, NULL, MSGLEVEL_CRAP, "%s", args[0]);
> -+            }
> -+    }
> -+}
> -+
> -+static void cmdout_wl(ICB_SERVER_REC *server, char **args)
> -+{
> -+    struct tm *logintime;
> -+    char logbuf[20];
> -+    char idlebuf[20];
> -+    char line[255];
> -+    time_t temptime;
> -+    int op;
> -+
> -+    /* "wl" : In a who listing, a line of output listing a user. Has the 
> following format:
> -+
> -+    * Field 1: String indicating whether user is moderator or not. Usually 
> "*" for
> -+    * moderator, and " " for not.
> -+    * Field 2: Nickname of user.
> -+    * Field 3: Number of seconds user has been idle.
> -+    * Field 4: Response Time. No longer in use.
> -+    * Field 5: Login Time. Unix time_t format. Seconds since Jan. 1, 1970 
> GMT.
> -+    * Field 6: Username of user.
> -+    * Field 7: Hostname of user.
> -+    * Field 8: Registration status.
> -+    */
> -+    temptime = strtol(args[4], NULL, 10);
> -+    logintime = gmtime(&temptime);
> -+    strftime(logbuf, sizeof(logbuf), "%b %e %H:%M", logintime);
> -+    temptime = strtol(args[2], NULL, 10);
> -+    idle_time(idlebuf, sizeof(idlebuf), temptime);
> -+
> -+    /* Update nicklist */
> -+    if (server->updatenicks) {
> -+            op = FALSE;
> -+#ifdef NO_MOD_SUPPORT_YET
> -+            switch(args[0][0]) {
> -+            case '*':
> -+            case 'm':
> -+                    op = TRUE;
> -+                    break;
> -+            }
> -+#endif
> -+            icb_nicklist_insert(server->group, args[1], op);
> -+    }
> -+    if (!server->silentwho) {
> -+            snprintf(line, sizeof(line), "*** %c%-14.14s %6.6s %12.12s 
> %s@%s %s",
> -+                      args[0][0] == ' '?' ':'*', args[1], idlebuf, logbuf, 
> args[5],
> -+                      args[6], args[7]);
> -+            printtext(server, NULL, MSGLEVEL_CRAP, line);
> -+    }
> -+}
> -+
> - static void cmdout_default(ICB_SERVER_REC *server, char **args)
> - {
> -     char *data;
> - 
> -     data = g_strjoinv(" ", args+1);
> --    printtext(server, server->group->name, MSGLEVEL_CRAP, "%s", data);
> -+    if (!server->silentwho) {
> -+            printtext(server, NULL, MSGLEVEL_CRAP, "%s", data);
> -+    }
> -         g_free(data);
> - }
> - 
> -+/*
> -+ * args0 = "Arrive"
> -+ * args0 = "<nickname> (<user>@<host>) entered group"
> -+ */
> -+static void status_arrive(ICB_SERVER_REC *server, char **args)
> -+{
> -+    char *nick, *p;
> -+
> -+    nick = g_strdup(args[1]);
> -+    p = strchr(nick, ' ');
> -+    *p = '\0';
> -+    /* XXX: new arrivals can still be moderator */
> -+    icb_nicklist_insert(server->group, nick, FALSE);
> -+        g_free(nick);
> -+
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+/*
> -+ * args0 = "Depart"
> -+ * args1 = "<nickname> (<user>@<host>) just left"
> -+ */
> -+static void status_depart(ICB_SERVER_REC *server, char **args)
> -+{
> -+    NICK_REC *nickrec;
> -+    char *nick, *p;
> -+
> -+    nick = g_strdup(args[1]);
> -+    p = strchr(nick, ' ');
> -+    *p = '\0';
> -+
> -+    nickrec = nicklist_find(CHANNEL(server->group), nick);
> -+    if (nickrec != NULL) {
> -+            nicklist_remove(CHANNEL(server->group), nickrec);
> -+    }
> -+    g_free(nick);
> -+
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+/*
> -+ * args0 = "Sign-on"
> -+ * args1 = "<nickname> (<user>@<host>) entered group"
> -+ */
> -+static void status_signon(ICB_SERVER_REC *server, char **args)
> -+{
> -+    char *nick, *p;
> -+
> -+    nick = g_strdup(args[1]);
> -+    p = strchr(nick, ' ');
> -+    *p = '\0';
> -+
> -+    icb_nicklist_insert(server->group, nick, FALSE);
> -+
> -+        g_free(nick);
> -+
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+/*
> -+ * args0 = "Sign-off"
> -+ * args1 = "<nickname> (<user>@<host>) has signed off."
> -+ */
> -+static void status_signoff(ICB_SERVER_REC *server, char **args)
> -+{
> -+    NICK_REC *nickrec;
> -+    char *nick, *p;
> -+
> -+    nick = g_strdup(args[1]);
> -+    p = strchr(nick, ' ');
> -+    *p = '\0';
> -+
> -+    nickrec = nicklist_find(CHANNEL(server->group), nick);
> -+    if (nickrec != NULL) {
> -+            nicklist_remove(CHANNEL(server->group), nickrec);
> -+    }
> -+    g_free(nick);
> -+
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+/*
> -+ * In theory should be status_status() but that's just silly :-)
> -+ *
> -+ * args0 = "Status"
> -+ * args0 = "You are now in group <group>[ as moderator]"
> -+ */
> -+static void status_join(ICB_SERVER_REC *server, char **args)
> -+{
> -+    icb_update_nicklist(server);
> -+
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+/*
> -+ * args0 = "Name"
> -+ * args1 = "<oldnick> changed nickname to <newnick>"
> -+ */
> -+static void status_name(ICB_SERVER_REC *server, char **args)
> -+{
> -+    NICK_REC *nickrec;
> -+    char *oldnick, *newnick, *p;
> -+
> -+    oldnick = g_strdup(args[1]);
> -+    p = strchr(oldnick, ' ');
> -+    if (p != NULL) *p = '\0';
> -+
> -+    p = g_strdup(args[1]);
> -+    newnick = strrchr(p, ' ');
> -+    if (newnick != NULL)
> -+           newnick++;
> -+
> -+    nickrec = nicklist_find(CHANNEL(server->group), oldnick);
> -+    if (nickrec != NULL)
> -+            nicklist_rename(SERVER(server), oldnick, newnick);
> -+
> -+    /* Update our own nick */
> -+    if (strcmp(oldnick, server->connrec->nick) == 0) {
> -+            server_change_nick(SERVER(server), newnick);
> -+            g_free(server->connrec->nick);
> -+            server->connrec->nick = g_strdup(newnick);
> -+    }
> -+
> -+    g_free(oldnick);
> -+    g_free(p);
> -+
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+/*
> -+ * args0 = "Topic"
> -+ * args1 = "<nickname> changed the topic to "<topic>"
> -+ */
> -+static void status_topic(ICB_SERVER_REC *server, char **args)
> -+{
> -+    char *topic, *setby, *p1, *p2;
> -+
> -+    p1 = strchr(args[1], '"');
> -+    p2 = strrchr(args[1], '"');
> -+
> -+    if (p1++) {
> -+            topic = g_strdup(p1);
> -+            p2 = strrchr(topic, '"');
> -+            *p2 = '\0';
> -+
> -+            setby = g_strdup(args[1]);
> -+            p2 = strchr(setby, ' ');
> -+            *p2 = '\0';
> -+
> -+            icb_change_topic(server, topic, setby, time(NULL));
> -+
> -+            g_free(topic);
> -+            g_free(setby);
> -+    }
> -+
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+/*
> -+ * args0 = "Pass"
> -+ * args1 = "<nickname> just passed you moderation of group <group>"
> -+ * args1 = "<nickname> has passed moderation to <nickname>"
> -+ * args1 = "<nickname> is now mod."
> -+ *
> -+ * If the moderator signs off and you are passed moderation, then the third
> -+ * args1 is used.
> -+ *
> -+ */
> -+static void status_pass(ICB_SERVER_REC *server, char **args)
> -+{
> -+    /*
> -+     * Eventually we might want to track this, for now just print status
> -+     * to the group window
> -+     */
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> -+static void status_default(ICB_SERVER_REC *server, char **args)
> -+{
> -+    /* Send messages to the group window by default */
> -+    printformat(server, server->group->name, MSGLEVEL_CRAP,
> -+                ICBTXT_STATUS, args[0], args[1]);
> -+}
> -+
> - static void sig_server_add_fill(SERVER_SETUP_REC *rec,
> -                             GHashTable *optlist)
> - {
> -@@ -109,13 +485,23 @@ void fe_icb_init(void)
> - {
> -     theme_register(fecommon_icb_formats);
> - 
> --    signal_add("icb event status", (SIGNAL_FUNC) event_status);
> -         signal_add("icb event error", (SIGNAL_FUNC) event_error);
> -         signal_add("icb event important", (SIGNAL_FUNC) event_important);
> -         signal_add("icb event beep", (SIGNAL_FUNC) event_beep);
> -         signal_add("icb event open", (SIGNAL_FUNC) event_open);
> -         signal_add("icb event personal", (SIGNAL_FUNC) event_personal);
> -+        signal_add("icb cmdout co", (SIGNAL_FUNC) cmdout_co);
> -+        signal_add("icb cmdout wl", (SIGNAL_FUNC) cmdout_wl);
> -         signal_add("default icb cmdout", (SIGNAL_FUNC) cmdout_default);
> -+        signal_add("icb status arrive", (SIGNAL_FUNC) status_arrive);
> -+        signal_add("icb status depart", (SIGNAL_FUNC) status_depart);
> -+        signal_add("icb status sign-on", (SIGNAL_FUNC) status_signon);
> -+        signal_add("icb status sign-off", (SIGNAL_FUNC) status_signoff);
> -+        signal_add("icb status status", (SIGNAL_FUNC) status_join);
> -+        signal_add("icb status topic", (SIGNAL_FUNC) status_topic);
> -+        signal_add("icb status name", (SIGNAL_FUNC) status_name);
> -+        signal_add("icb status pass", (SIGNAL_FUNC) status_pass);
> -+        signal_add("default icb status", (SIGNAL_FUNC) status_default);
> - 
> -     signal_add("server add fill", (SIGNAL_FUNC) sig_server_add_fill);
> -     command_set_options("server add", "-icbnet");
> -@@ -125,13 +511,23 @@ void fe_icb_init(void)
> - 
> - void fe_icb_deinit(void)
> - {
> --        signal_remove("icb event status", (SIGNAL_FUNC) event_status);
> -         signal_remove("icb event error", (SIGNAL_FUNC) event_error);
> -         signal_remove("icb event important", (SIGNAL_FUNC) event_important);
> -         signal_remove("icb event beep", (SIGNAL_FUNC) event_beep);
> -         signal_remove("icb event open", (SIGNAL_FUNC) event_open);
> -         signal_remove("icb event personal", (SIGNAL_FUNC) event_personal);
> -+        signal_remove("icb cmdout co", (SIGNAL_FUNC) cmdout_co);
> -+        signal_remove("icb cmdout wl", (SIGNAL_FUNC) cmdout_wl);
> -         signal_remove("default icb cmdout", (SIGNAL_FUNC) cmdout_default);
> -+        signal_remove("icb status arrive", (SIGNAL_FUNC) status_arrive);
> -+        signal_remove("icb status depart", (SIGNAL_FUNC) status_depart);
> -+        signal_remove("icb status sign-on", (SIGNAL_FUNC) status_signon);
> -+        signal_remove("icb status sign-off", (SIGNAL_FUNC) status_signoff);
> -+        signal_remove("icb status status", (SIGNAL_FUNC) status_join);
> -+        signal_remove("icb status topic", (SIGNAL_FUNC) status_topic);
> -+        signal_remove("icb status name", (SIGNAL_FUNC) status_name);
> -+        signal_remove("icb status pass", (SIGNAL_FUNC) status_pass);
> -+        signal_remove("default icb status", (SIGNAL_FUNC) status_default);
> - 
> -     signal_remove("server add fill", (SIGNAL_FUNC) sig_server_add_fill);
> - }
> Index: irssi-icb/patches/patch-src_fe-common_module-formats_c
> ===================================================================
> RCS file: 
> /cvs/ports/net/irssi-icb/patches/patch-src_fe-common_module-formats_c,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_fe-common_module-formats_c
> --- irssi-icb/patches/patch-src_fe-common_module-formats_c    21 Apr 2008 
> 10:35:27 -0000      1.1
> +++ irssi-icb/patches/patch-src_fe-common_module-formats_c    29 Dec 2015 
> 19:54:07 -0000
> @@ -1,14 +1,15 @@
> -$OpenBSD: patch-src_fe-common_module-formats_c,v 1.1 2008/04/21 10:35:27 
> sthen Exp $
> ---- src/fe-common/module-formats.c.orig      Sat Apr 27 21:56:18 2002
> -+++ src/fe-common/module-formats.c   Sun Oct 21 15:31:29 2007
> -@@ -30,7 +30,9 @@ FORMAT_REC fecommon_icb_formats[] = {
> +$OpenBSD$
> +
> +pkgsrc patch-src_fe-common_module-formats.c r1.1
> +
> +--- src/fe-common/module-formats.c.orig      Mon Jun 13 19:10:41 2011
> ++++ src/fe-common/module-formats.c   Tue Dec 29 18:55:00 2015
> +@@ -30,7 +30,7 @@ FORMAT_REC fecommon_icb_formats[] = {
>       { "status", "[$0] $1", 2, { 0, 0 } },
>       { "important", "[$0!] $1", 2, { 0, 0 } },
>       { "status", "{error [Error]} $0", 1, { 0 } },
> --    { "beep", "[beep] $1 beeps you", 1, { 0 } },
> -+    { "beep", "[beep] $0 wants to annoy you.", 1, { 0 } },
> -+    { "who_header", " Nickname        Idle Sign-On      Account", 0 },
> -+    { "who_list", "$0$[13]1 $[-6]2 $[12]3 $4@$5 $6", 7, { 0, 0, 0, 0, 0, 0, 
> 0 } },
> +-    { "beep", "[Beep] $1 beeps you", 1, { 0 } },
> ++    { "beep", "[Beep] $0 beeps you", 1, { 0 } },
>   
>       { NULL, NULL, 0 }
>   };
> Index: irssi-icb/patches/patch-src_fe-common_module-formats_h
> ===================================================================
> RCS file: irssi-icb/patches/patch-src_fe-common_module-formats_h
> diff -N irssi-icb/patches/patch-src_fe-common_module-formats_h
> --- irssi-icb/patches/patch-src_fe-common_module-formats_h    21 Apr 2008 
> 10:35:27 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -$OpenBSD: patch-src_fe-common_module-formats_h,v 1.1 2008/04/21 10:35:27 
> sthen Exp $
> ---- src/fe-common/module-formats.h.orig      Sat Apr 27 21:56:18 2002
> -+++ src/fe-common/module-formats.h   Sun Oct 21 15:31:29 2007
> -@@ -8,7 +8,9 @@ enum {
> -     ICBTXT_STATUS,
> -     ICBTXT_IMPORTANT,
> -     ICBTXT_ERROR,
> --    ICBTXT_BEEP
> -+    ICBTXT_BEEP,
> -+    ICBTXT_WHO_HEADER,
> -+    ICBTXT_WHO_LIST
> - };
> - 
> - extern FORMAT_REC fecommon_icb_formats[];
> Index: irssi-otr/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/irssi-otr/Makefile,v
> retrieving revision 1.4
> diff -u -p -r1.4 Makefile
> --- irssi-otr/Makefile        12 Jan 2015 00:13:53 -0000      1.4
> +++ irssi-otr/Makefile        29 Dec 2015 19:54:07 -0000
> @@ -5,6 +5,7 @@ SHARED_ONLY = Yes
>  COMMENT =    OTR (off the record) encryption support for irssi
>  
>  V =          1.0.1
> +REVISION =   0
>  DISTNAME =   irssi-otr-$V
>  
>  CATEGORIES = net security
> Index: irssi-silc/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/irssi-silc/Makefile,v
> retrieving revision 1.32
> diff -u -p -r1.32 Makefile
> --- irssi-silc/Makefile       22 Jan 2015 15:18:43 -0000      1.32
> +++ irssi-silc/Makefile       29 Dec 2015 19:54:07 -0000
> @@ -5,7 +5,7 @@ SHARED_ONLY=  Yes
>  COMMENT=     SILC plugin for irssi
>  
>  DISTNAME=    irssi-silc-1.1.8
> -REVISION=    5
> +REVISION=    6
>  
>  CATEGORIES=  net
>  
> Index: irssi-xmpp/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/irssi-xmpp/Makefile,v
> retrieving revision 1.5
> diff -u -p -r1.5 Makefile
> --- irssi-xmpp/Makefile       10 Jan 2014 23:57:32 -0000      1.5
> +++ irssi-xmpp/Makefile       29 Dec 2015 19:54:07 -0000
> @@ -5,7 +5,7 @@ SHARED_ONLY=          Yes
>  COMMENT=             XMPP plugin for irssi
>  
>  DISTNAME=            irssi-xmpp-0.52
> -REVISION =           2
> +REVISION =           3
>  
>  CATEGORIES=          net
>  
> 

Reply via email to