From 8bf3f0dec1f6c8726626854fd3ce4f068450f375 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Thu, 31 Mar 2011 23:11:14 +0200 Subject: [PATCH] Mailinglist client: don't add roomname to subject if its already there --- citadel/modules/network/serv_network.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/citadel/modules/network/serv_network.c b/citadel/modules/network/serv_network.c index 4518740bf..a5492eb69 100644 --- a/citadel/modules/network/serv_network.c +++ b/citadel/modules/network/serv_network.c @@ -712,17 +712,26 @@ void network_spool_msg(long msgnum, void *userdata) { msg->cm_fields['U'] = strdup("(no subject)"); } - len = strlen(msg->cm_fields['U']); - rlen = strlen(CC->room.QRname); - pCh = strstr(msg->cm_fields['U'], CC->room.QRname); + len = strlen(msg->cm_fields['U']); + pCh = strstr(msg->cm_fields['U'], CC->room.QRname); if ((pCh == NULL) || - (*(pCh + rlen) != ']') || + (*(pCh + len) != ']') || (pCh == msg->cm_fields['U']) || (*(pCh - 1) != '[') ) { char *pBuff; + rlen = strlen(CC->room.QRname); + rlen += len + 4; + pBuff = malloc (rlen * sizeof(char)); + + snprintf(pBuff, rlen, "[%s] %s", CC->room.QRname, msg->cm_fields['U']); + free(msg->cm_fields['U']); + msg->cm_fields['U'] = pBuff; + } + /* else we won't modify the buffer, since the roomname is already here. */ + rlen += len + 4; pBuff = malloc (rlen * sizeof(char)); -- 2.30.2