# HG changeset patch # User Mikael Berthe # Date 1135020745 -3600 # Node ID b75f4105ce32fe4e5445c0d58cfa474d576a4303 # Parent 028c01940490d8b92d609b7cfa24773797d30736 Use a larger buffer for commands like /info Thus we can display big status messages (up to ~4kB). diff -r 028c01940490 -r b75f4105ce32 mcabber/src/commands.c --- a/mcabber/src/commands.c Sat Dec 17 18:39:04 2005 +0100 +++ b/mcabber/src/commands.c Mon Dec 19 20:32:25 2005 +0100 @@ -874,16 +874,16 @@ type = buddy_gettype(bud); esub = buddy_getsubscription(bud); - buffer = g_new(char, 128); + buffer = g_new(char, 4096); if (jid) { GSList *resources; char *bstr = "unknown"; - snprintf(buffer, 127, "jid: <%s>", jid); + snprintf(buffer, 4095, "jid: <%s>", jid); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); if (name) { - snprintf(buffer, 127, "Name: %s", name); + snprintf(buffer, 4095, "Name: %s", name); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); } @@ -914,15 +914,15 @@ rst_msg = buddy_getstatusmsg(bud, resources->data); rst_time = buddy_getstatustime(bud, resources->data); - snprintf(buffer, 127, "Resource: [%c] (%d) %s", imstatus2char[rstatus], + snprintf(buffer, 4095, "Resource: [%c] (%d) %s", imstatus2char[rstatus], rprio, (char*)resources->data); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); if (rst_msg) { - snprintf(buffer, 127, "Status message: %s", rst_msg); + snprintf(buffer, 4095, "Status message: %s", rst_msg); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); } if (rst_time) { - char tbuf[256]; + char tbuf[128]; strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time)); snprintf(buffer, 127, "Status timestamp: %s", tbuf); @@ -952,8 +952,8 @@ jid = buddy_getjid(bud); - buffer = g_new(char, 128); - snprintf(buffer, 127, "Room members:"); + buffer = g_new(char, 4096); + strncpy(buffer, "Room members:", 127); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); resources = buddy_getresources(bud); @@ -964,11 +964,11 @@ rstatus = buddy_getstatus(bud, resources->data); rst_msg = buddy_getstatusmsg(bud, resources->data); - snprintf(buffer, 127, "[%c] %s", imstatus2char[rstatus], + snprintf(buffer, 4095, "[%c] %s", imstatus2char[rstatus], (char*)resources->data); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); if (rst_msg) { - snprintf(buffer, 127, "Status message: %s", rst_msg); + snprintf(buffer, 4095, "Status message: %s", rst_msg); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); } } @@ -1547,16 +1547,16 @@ affil = buddy_getaffil(bud, nick); realjid = buddy_getrjid(bud, nick); - buffer = g_new(char, 128); + buffer = g_new(char, 4096); - snprintf(buffer, 127, "Whois [%s]", nick); + snprintf(buffer, 4095, "Whois [%s]", nick); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); - snprintf(buffer, 127, "Status : [%c] %s", imstatus2char[rstatus], + snprintf(buffer, 4095, "Status : [%c] %s", imstatus2char[rstatus], rst_msg); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); if (rst_time) { - char tbuf[256]; + char tbuf[128]; strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time)); snprintf(buffer, 127, "Timestamp: %s", tbuf); @@ -1564,15 +1564,15 @@ } if (realjid) { - snprintf(buffer, 127, "JID : <%s>", realjid); + snprintf(buffer, 4095, "JID : <%s>", realjid); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); } - snprintf(buffer, 127, "Role : %s", strroles[role]); + snprintf(buffer, 4095, "Role : %s", strroles[role]); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); - snprintf(buffer, 127, "Affiliat.: %s", straffil[affil]); + snprintf(buffer, 4095, "Affiliat.: %s", straffil[affil]); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); - snprintf(buffer, 127, "Priority : %d", rprio); + snprintf(buffer, 4095, "Priority : %d", rprio); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); scr_WriteIncomingMessage(jid, "End of WHOIS", 0, HBB_PREFIX_INFO);