summaryrefslogtreecommitdiff
path: root/chat
diff options
context:
space:
mode:
authorwiz <wiz>2004-03-29 11:05:44 +0000
committerwiz <wiz>2004-03-29 11:05:44 +0000
commitf0b2fb170491f458cdbf1d2ba723a204a1377aa7 (patch)
tree3615a09ef3482f707809a56a2b6effcbbf1deb78 /chat
parent96d07549faf1e639b0dd97b7a2dbcd47418583f2 (diff)
downloadpkgsrc-f0b2fb170491f458cdbf1d2ba723a204a1377aa7.tar.gz
Add same patches as to irssi-icb (requested by salo):
Better support /who and /whereis. Divert server messages to the server window instead of the channel window. Bump PKGREVISION to 8. Compile-tested only.
Diffstat (limited to 'chat')
-rw-r--r--chat/silc-client-icb/Makefile4
-rw-r--r--chat/silc-client-icb/distinfo4
-rw-r--r--chat/silc-client-icb/patches/patch-ac12
-rw-r--r--chat/silc-client-icb/patches/patch-ad98
4 files changed, 115 insertions, 3 deletions
diff --git a/chat/silc-client-icb/Makefile b/chat/silc-client-icb/Makefile
index 2c1b5c91f91..68155e15092 100644
--- a/chat/silc-client-icb/Makefile
+++ b/chat/silc-client-icb/Makefile
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.10 2004/02/18 14:40:35 salo Exp $
+# $NetBSD: Makefile,v 1.11 2004/03/29 11:05:44 wiz Exp $
#
DISTNAME= irssi-icb-0.14
PKGNAME= ${DISTNAME:S/irssi/silc-client/}
-PKGREVISION= 7
+PKGREVISION= 8
CATEGORIES= chat
MASTER_SITES= http://www.irssi.org/files/plugins/icb/
DISTFILES= ${DISTNAME}.tar.gz ${SILC_CLIENT_DISTFILE}
diff --git a/chat/silc-client-icb/distinfo b/chat/silc-client-icb/distinfo
index 0397dfe1196..38120c43293 100644
--- a/chat/silc-client-icb/distinfo
+++ b/chat/silc-client-icb/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.7 2004/01/14 19:26:44 salo Exp $
+$NetBSD: distinfo,v 1.8 2004/03/29 11:05:44 wiz Exp $
SHA1 (irssi-icb-0.14.tar.gz) = 31d7a5d04a896e0e19db44b4d76b7ac85af1a5d4
Size (irssi-icb-0.14.tar.gz) = 172647 bytes
@@ -6,3 +6,5 @@ SHA1 (silc-client-1.0.1.tar.bz2) = e53a8f9577282734723fe9ad8eaf5d3bce035048
Size (silc-client-1.0.1.tar.bz2) = 1404404 bytes
SHA1 (patch-aa) = aa93fcebd8e8baba7dd34688a4d4fcef22061594
SHA1 (patch-ab) = fc4a2725f6e235c55b3c481da5a7c3b31c1a4b58
+SHA1 (patch-ac) = b9a7443be1356b56efff6263b9387684686ff194
+SHA1 (patch-ad) = c270c35891164c9e42696e2ffc84d1e7ffaaaa2a
diff --git a/chat/silc-client-icb/patches/patch-ac b/chat/silc-client-icb/patches/patch-ac
new file mode 100644
index 00000000000..5be0b5961df
--- /dev/null
+++ b/chat/silc-client-icb/patches/patch-ac
@@ -0,0 +1,12 @@
+$NetBSD: patch-ac,v 1.1 2004/03/29 11:05:45 wiz Exp $
+
+--- src/core/icb-commands.c.orig Sat May 4 19:21:43 2002
++++ src/core/icb-commands.c
+@@ -32,6 +32,7 @@ static char *icb_commands[] = {
+
+ "invite", "v", "echoback", "name", "motd", "topic", "status",
+ "boot", "pass", "drop", "shutdown", "wall",
++ "whereis",
+ NULL
+ };
+
diff --git a/chat/silc-client-icb/patches/patch-ad b/chat/silc-client-icb/patches/patch-ad
new file mode 100644
index 00000000000..36cbf6bf29a
--- /dev/null
+++ b/chat/silc-client-icb/patches/patch-ad
@@ -0,0 +1,98 @@
+$NetBSD: patch-ad,v 1.1 2004/03/29 11:05:45 wiz Exp $
+
+--- src/fe-common/fe-icb.c.orig Sat Apr 27 22:56:18 2002
++++ src/fe-common/fe-icb.c
+@@ -18,6 +18,8 @@
+ 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"
+@@ -84,12 +86,67 @@ static void event_personal(ICB_SERVER_RE
+ 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_wl(ICB_SERVER_REC *server, char **args)
++{
++ struct tm *logintime;
++ char logbuf[20];
++ char idlebuf[20];
++ char line[255];
++ time_t temptime;
++
++ /* "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);
++
++ 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);
++ printtext(server, NULL, MSGLEVEL_CRAP, "%s", data);
+ g_free(data);
+ }
+
+@@ -115,6 +172,7 @@ void fe_icb_init(void)
+ 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 wl", (SIGNAL_FUNC) cmdout_wl);
+ signal_add("default icb cmdout", (SIGNAL_FUNC) cmdout_default);
+
+ signal_add("server add fill", (SIGNAL_FUNC) sig_server_add_fill);
+@@ -131,6 +189,7 @@ void fe_icb_deinit(void)
+ 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 wl", (SIGNAL_FUNC) cmdout_wl);
+ signal_remove("default icb cmdout", (SIGNAL_FUNC) cmdout_default);
+
+ signal_remove("server add fill", (SIGNAL_FUNC) sig_server_add_fill);