[ekg2-commit] r4113 - in trunk/plugins: irc ncurses: trunk/plugins/irc/input.c trunk/plugins/irc/input.h trunk/plugins/irc/irc.c trunk/plugins/ncurses/old.c

SVN commit svn w toxygen.net
Śro, 16 Lip 2008, 14:23:01 CEST


Author: darkjames
Date: 2008-07-16 14:23:00 +0200 (Wed, 16 Jul 2008)
New Revision: 4113

Modified:
   trunk/plugins/irc/input.c
   trunk/plugins/irc/input.h
   trunk/plugins/irc/irc.c
   trunk/plugins/ncurses/old.c
Log:
- format raw-irctopic to something which ncurses can understand.



Modified: trunk/plugins/irc/input.c
===================================================================
--- trunk/plugins/irc/input.c	2008-07-15 20:58:27 UTC (rev 4112)
+++ trunk/plugins/irc/input.c	2008-07-16 12:23:00 UTC (rev 4113)
@@ -77,7 +77,7 @@
 	return ret;
 }
 
-char *irc_ircoldcolstr_to_ekgcolstr(session_t *sess, char *str, int strip)
+char *irc_ircoldcolstr_to_ekgcolstr_nf(session_t *sess, char *str, int strip)
 {
 	int		col, oldstrip = strip;
 	char		mirc_sux_so_much[16] =  "WkbgrypRYGcCBPKw";
@@ -85,7 +85,8 @@
 	char		*p;
 	string_t	s;
 
-	if(!(str && xstrlen(str))) return xstrdup("");
+	if (!str || !(*str))
+		return xstrdup("");
 
 	s = string_init("");
 	if (strip)
@@ -133,12 +134,24 @@
 	}
 	if (oldstrip)
 		string_append(s, "%n");
-	p = format_string(s->str);
-	string_free(s, 1);
-	return p;
+	return string_free(s, 0);
 }
 
+char *irc_ircoldcolstr_to_ekgcolstr(session_t *sess, char *str, int strip)
+{
+	char *format;
+	char *formatted;
 
+	if (!str || !(*str))
+		return xstrdup("");
+	
+	format = irc_ircoldcolstr_to_ekgcolstr_nf(sess, str, strip);
+	formatted = format_string(format);
+
+	xfree(format);
+	return formatted;
+}
+
 /*
  *
  * http://www.irchelp.org/irchelp/rfc/ctcpspec.html

Modified: trunk/plugins/irc/input.h
===================================================================
--- trunk/plugins/irc/input.h	2008-07-15 20:58:27 UTC (rev 4112)
+++ trunk/plugins/irc/input.h	2008-07-16 12:23:00 UTC (rev 4113)
@@ -22,6 +22,7 @@
 #include "irc.h"
 
 char *irc_ircoldcolstr_to_ekgcolstr(session_t *s, char *str, int strip);
+char *irc_ircoldcolstr_to_ekgcolstr_nf(session_t *sess, char *str, int strip);
 char *ctcp_parser(session_t *sess, int ispriv, char *sender, char *recp, char *s);
 
 

Modified: trunk/plugins/irc/irc.c
===================================================================
--- trunk/plugins/irc/irc.c	2008-07-15 20:58:27 UTC (rev 4112)
+++ trunk/plugins/irc/irc.c	2008-07-16 12:23:00 UTC (rev 4113)
@@ -1523,7 +1523,7 @@
 		if ((tmp = SOP(_005_CHANTYPES)) && 
 		     xstrchr(tmp, targ[4]) && 
 		     (chanp = irc_find_channel((j->channels), targ))) {
-			*top   = xstrdup(chanp->topic);
+			*top   = irc_ircoldcolstr_to_ekgcolstr_nf(window_current->session, chanp->topic, 1);
 			*setby = xstrdup(chanp->topicby);
 			*modes = xstrdup(chanp->mode_str);
 			return 1;

Modified: trunk/plugins/ncurses/old.c
===================================================================
--- trunk/plugins/ncurses/old.c	2008-07-15 20:58:27 UTC (rev 4112)
+++ trunk/plugins/ncurses/old.c	2008-07-16 12:23:00 UTC (rev 4113)
@@ -1431,7 +1431,7 @@
 			len = xstrlen(data[i].name);
 
 			if (!strncmp(p, data[i].name, len) && p[len] == '}') {
-				int percent_ok = (!xstrcmp(data[i].name, "activity") || !xstrcmp(data[i].name, "time"));	/* XXX */
+				int percent_ok = (!xstrcmp(data[i].name, "activity") || !xstrcmp(data[i].name, "time") || !xstrcmp(data[i].name, "irctopic"));	/* XXX */
 				char *text = data[i].text;
 				char *ftext = NULL;
                              	



Więcej informacji o liście dyskusyjnej ekg2-commit