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? 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