From: pk910 Date: Wed, 5 Oct 2011 18:34:55 +0000 (+0200) Subject: prevent numerics in the dynamic topic parts from being interpreted as color codes X-Git-Tag: v5.3~310 X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=94bc6f60e77fc91edcbb6653a1c7d71c566dfed5 prevent numerics in the dynamic topic parts from being interpreted as color codes --- diff --git a/src/cmd_neonserv_topic.c b/src/cmd_neonserv_topic.c index d3fc3d7..e20c6c4 100644 --- a/src/cmd_neonserv_topic.c +++ b/src/cmd_neonserv_topic.c @@ -107,10 +107,16 @@ CMD_BIND(neonserv_cmd_topic) { //now build the new topic and set it... topiclistpos = 0; b = row[2]; + char *topicpart, *debugbb; while((a = strstr(b, "%")) != NULL) { *a = '\0'; if(isdigit(a[1]) && a[1] - 48 > 0) { - topiclistpos += sprintf(topiclist + topiclistpos, "%s%s", b, advtopics[a[1] - 49]); + topicpart = advtopics[a[1] - 49]; + if(isdigit(topicpart[0]) && isdigit(b[strlen(b)-1])) + debugbb = "\002\002"; //double bold to prevent following digits used as color code + else + debugbb = ""; + topiclistpos += sprintf(topiclist + topiclistpos, "%s%s%s", b, debugbb, topicpart); b = a+2; } else { topiclistpos += sprintf(topiclist + topiclistpos, "%s%%", b); @@ -128,10 +134,15 @@ CMD_BIND(neonserv_cmd_topic) { char topiclist[MAXLEN*2]; topiclist[0] = '\0'; int topiclistpos = 0; - b = row[2]; + b = row[2]; + char *debugbb; while((a = strstr(b, "*")) != NULL) { *a = '\0'; - topiclistpos += sprintf(topiclist + topiclistpos, "%s%s", b, newtopic); + if(isdigit(newtopic[0]) && isdigit(b[strlen(b)-1])) + debugbb = "\002\002"; //double bold to prevent following digits used as color code + else + debugbb = ""; + topiclistpos += sprintf(topiclist + topiclistpos, "%s%s%s", b, debugbb, newtopic); b = a+1; } topiclistpos += sprintf(topiclist + topiclistpos, "%s", b);