Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 626:b75f4105ce32
Use a larger buffer for commands like /info
Thus we can display big status messages (up to ~4kB).
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Mon, 19 Dec 2005 20:32:25 +0100 |
parents | 028c01940490 |
children | 423c24e5875a |
comparison
equal
deleted
inserted
replaced
625:028c01940490 | 626:b75f4105ce32 |
---|---|
872 jid = buddy_getjid(bud); | 872 jid = buddy_getjid(bud); |
873 name = buddy_getname(bud); | 873 name = buddy_getname(bud); |
874 type = buddy_gettype(bud); | 874 type = buddy_gettype(bud); |
875 esub = buddy_getsubscription(bud); | 875 esub = buddy_getsubscription(bud); |
876 | 876 |
877 buffer = g_new(char, 128); | 877 buffer = g_new(char, 4096); |
878 | 878 |
879 if (jid) { | 879 if (jid) { |
880 GSList *resources; | 880 GSList *resources; |
881 char *bstr = "unknown"; | 881 char *bstr = "unknown"; |
882 | 882 |
883 snprintf(buffer, 127, "jid: <%s>", jid); | 883 snprintf(buffer, 4095, "jid: <%s>", jid); |
884 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 884 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
885 if (name) { | 885 if (name) { |
886 snprintf(buffer, 127, "Name: %s", name); | 886 snprintf(buffer, 4095, "Name: %s", name); |
887 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 887 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
888 } | 888 } |
889 | 889 |
890 if (type == ROSTER_TYPE_USER) bstr = "user"; | 890 if (type == ROSTER_TYPE_USER) bstr = "user"; |
891 else if (type == ROSTER_TYPE_ROOM) bstr = "chatroom"; | 891 else if (type == ROSTER_TYPE_ROOM) bstr = "chatroom"; |
912 rprio = buddy_getresourceprio(bud, resources->data); | 912 rprio = buddy_getresourceprio(bud, resources->data); |
913 rstatus = buddy_getstatus(bud, resources->data); | 913 rstatus = buddy_getstatus(bud, resources->data); |
914 rst_msg = buddy_getstatusmsg(bud, resources->data); | 914 rst_msg = buddy_getstatusmsg(bud, resources->data); |
915 rst_time = buddy_getstatustime(bud, resources->data); | 915 rst_time = buddy_getstatustime(bud, resources->data); |
916 | 916 |
917 snprintf(buffer, 127, "Resource: [%c] (%d) %s", imstatus2char[rstatus], | 917 snprintf(buffer, 4095, "Resource: [%c] (%d) %s", imstatus2char[rstatus], |
918 rprio, (char*)resources->data); | 918 rprio, (char*)resources->data); |
919 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 919 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
920 if (rst_msg) { | 920 if (rst_msg) { |
921 snprintf(buffer, 127, "Status message: %s", rst_msg); | 921 snprintf(buffer, 4095, "Status message: %s", rst_msg); |
922 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 922 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
923 } | 923 } |
924 if (rst_time) { | 924 if (rst_time) { |
925 char tbuf[256]; | 925 char tbuf[128]; |
926 | 926 |
927 strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time)); | 927 strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time)); |
928 snprintf(buffer, 127, "Status timestamp: %s", tbuf); | 928 snprintf(buffer, 127, "Status timestamp: %s", tbuf); |
929 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 929 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
930 } | 930 } |
950 return; | 950 return; |
951 } | 951 } |
952 | 952 |
953 jid = buddy_getjid(bud); | 953 jid = buddy_getjid(bud); |
954 | 954 |
955 buffer = g_new(char, 128); | 955 buffer = g_new(char, 4096); |
956 snprintf(buffer, 127, "Room members:"); | 956 strncpy(buffer, "Room members:", 127); |
957 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 957 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
958 | 958 |
959 resources = buddy_getresources(bud); | 959 resources = buddy_getresources(bud); |
960 for ( ; resources ; resources = g_slist_next(resources) ) { | 960 for ( ; resources ; resources = g_slist_next(resources) ) { |
961 enum imstatus rstatus; | 961 enum imstatus rstatus; |
962 const char *rst_msg; | 962 const char *rst_msg; |
963 | 963 |
964 rstatus = buddy_getstatus(bud, resources->data); | 964 rstatus = buddy_getstatus(bud, resources->data); |
965 rst_msg = buddy_getstatusmsg(bud, resources->data); | 965 rst_msg = buddy_getstatusmsg(bud, resources->data); |
966 | 966 |
967 snprintf(buffer, 127, "[%c] %s", imstatus2char[rstatus], | 967 snprintf(buffer, 4095, "[%c] %s", imstatus2char[rstatus], |
968 (char*)resources->data); | 968 (char*)resources->data); |
969 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 969 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
970 if (rst_msg) { | 970 if (rst_msg) { |
971 snprintf(buffer, 127, "Status message: %s", rst_msg); | 971 snprintf(buffer, 4095, "Status message: %s", rst_msg); |
972 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 972 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
973 } | 973 } |
974 } | 974 } |
975 | 975 |
976 g_free(buffer); | 976 g_free(buffer); |
1545 | 1545 |
1546 role = buddy_getrole(bud, nick); | 1546 role = buddy_getrole(bud, nick); |
1547 affil = buddy_getaffil(bud, nick); | 1547 affil = buddy_getaffil(bud, nick); |
1548 realjid = buddy_getrjid(bud, nick); | 1548 realjid = buddy_getrjid(bud, nick); |
1549 | 1549 |
1550 buffer = g_new(char, 128); | 1550 buffer = g_new(char, 4096); |
1551 | 1551 |
1552 snprintf(buffer, 127, "Whois [%s]", nick); | 1552 snprintf(buffer, 4095, "Whois [%s]", nick); |
1553 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 1553 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
1554 snprintf(buffer, 127, "Status : [%c] %s", imstatus2char[rstatus], | 1554 snprintf(buffer, 4095, "Status : [%c] %s", imstatus2char[rstatus], |
1555 rst_msg); | 1555 rst_msg); |
1556 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 1556 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
1557 | 1557 |
1558 if (rst_time) { | 1558 if (rst_time) { |
1559 char tbuf[256]; | 1559 char tbuf[128]; |
1560 | 1560 |
1561 strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time)); | 1561 strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time)); |
1562 snprintf(buffer, 127, "Timestamp: %s", tbuf); | 1562 snprintf(buffer, 127, "Timestamp: %s", tbuf); |
1563 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 1563 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
1564 } | 1564 } |
1565 | 1565 |
1566 if (realjid) { | 1566 if (realjid) { |
1567 snprintf(buffer, 127, "JID : <%s>", realjid); | 1567 snprintf(buffer, 4095, "JID : <%s>", realjid); |
1568 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 1568 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
1569 } | 1569 } |
1570 | 1570 |
1571 snprintf(buffer, 127, "Role : %s", strroles[role]); | 1571 snprintf(buffer, 4095, "Role : %s", strroles[role]); |
1572 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 1572 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
1573 snprintf(buffer, 127, "Affiliat.: %s", straffil[affil]); | 1573 snprintf(buffer, 4095, "Affiliat.: %s", straffil[affil]); |
1574 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 1574 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
1575 snprintf(buffer, 127, "Priority : %d", rprio); | 1575 snprintf(buffer, 4095, "Priority : %d", rprio); |
1576 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 1576 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
1577 | 1577 |
1578 scr_WriteIncomingMessage(jid, "End of WHOIS", 0, HBB_PREFIX_INFO); | 1578 scr_WriteIncomingMessage(jid, "End of WHOIS", 0, HBB_PREFIX_INFO); |
1579 | 1579 |
1580 g_free(buffer); | 1580 g_free(buffer); |