On Mon, 21 Feb 2005, Kurt Stas wrote:

> Hi,
>
> IRCu topics are like this:
> -!- Topic set by Cyhiraeth [Mon Feb 14 14:42:10 2005]
>
> Is there any possibility to change it to:
>
> -!- Topic set by Cyhiraeth [EMAIL PROTECTED] [Mon Feb 14 14:42:10
> 2005]
>
> With a patch or will it be like this in the next version?

No idea about the next version, but if you're looking for a patch it
shouldn't be much more difficult than shown below. This list is relatively
dead so I guess we'll see if anyone wakes up (if for no other reason than
just to flame the patch ;)

The idea is to increase the size of struct channel::topic nick enough to
fit the extra info and then just shove [EMAIL PROTECTED] in (instead of
copying cli_name()) when the topic is changed. If the topic is set by a
user. It'll bloat struct channel by some 74 bytes (depending on your
config of course).

And the patch below is not really that well tested; It compiles, it boots,
it seems to do what it should (on a single server anyway). But of course
the standard disclaimer applies. It's only meant to illustrate a point, it
may eat your data. And I won't be responsible for it :) And I'm not sure
clients will get it either (irssi seems to, as does mIRC).


diff -ur ircu2.10.11.07/include/channel.h 
ircu2.10.11.07-patched/include/channel.h
--- ircu2.10.11.07/include/channel.h    2003-11-01 12:19:07.000000000 +0200
+++ ircu2.10.11.07-patched/include/channel.h    2005-03-09 23:05:29.000000000 
+0200
@@ -216,7 +216,7 @@
   struct SLink*      banlist;
   struct Mode        mode;
   char               topic[TOPICLEN + 1];
-  char               topic_nick[NICKLEN + 1];
+  char               topic_nick[NICKLEN + USERLEN + HOSTLEN + 3];
   char               chname[1];
 };

diff -ur ircu2.10.11.07/ircd/m_topic.c ircu2.10.11.07-patched/ircd/m_topic.c
--- ircu2.10.11.07/ircd/m_topic.c       2004-09-18 05:17:47.000000000 +0300
+++ ircu2.10.11.07-patched/ircd/m_topic.c       2005-03-09 23:06:53.000000000 
+0200
@@ -115,7 +115,16 @@
    newtopic=ircd_strncmp(chptr->topic,topic,TOPICLEN)!=0;
    /* setting a topic */
    ircd_strncpy(chptr->topic, topic, TOPICLEN);
-   ircd_strncpy(chptr->topic_nick, cli_name(sptr), NICKLEN);
+   if (IsUser(sptr)) {
+     struct User *user = cli_user(sptr);
+     ircd_snprintf(sptr, chptr->topic_nick, sizeof(chptr->topic_nick),
+                   "[EMAIL PROTECTED]", cli_name(sptr), user->username,
+                    user->host);
+   } else {
+     ircd_strncpy(chptr->topic_nick, cli_name(sptr),
+                  sizeof(chptr->topic_nick) - 1);
+   }
+
    chptr->topic_time = CurrentTime;
    /* Fixed in 2.10.11: Don't propagate local topics */
    if (!IsLocalChannel(chptr->chname))


-J
--
Jukka Ollila <[EMAIL PROTECTED]>
                                                "Voisko joku halata mua?"

Reply via email to