about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--handle.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/handle.c b/handle.c
index c602c23..7fba7f2 100644
--- a/handle.c
+++ b/handle.c
@@ -152,8 +152,10 @@ static void handle366(char *prefix, char *params) {
 	ircFmt("WHO %s\r\n", chan);
 }
 
-static char whoBuf[4096];
-static size_t whoLen;
+static struct {
+	char buf[4096];
+	size_t len;
+} who;
 
 static void handle352(char *prefix, char *params) {
 	(void)prefix;
@@ -163,21 +165,23 @@ static void handle352(char *prefix, char *params) {
 	shift(&params);
 	shift(&params);
 	char *nick = shift(&params);
-	whoLen += snprintf(
-		&whoBuf[whoLen], sizeof(whoBuf) - whoLen,
+	size_t cap = sizeof(who.buf) - who.len;
+	int len = snprintf(
+		&who.buf[who.len], cap,
 		"%s\3%d%s\3",
-		(whoLen ? ", " : ""), color(user), nick
+		(who.len ? ", " : ""), color(user), nick
 	);
+	if ((size_t)len < cap) who.len += len;
 }
 
 static void handle315(char *prefix, char *params) {
 	(void)prefix;
 	shift(&params);
 	char *chan = shift(&params);
-	whoLen = 0;
+	who.len = 0;
 	uiFmt(
 		L"In \3%d%s\3 are %s",
-		color(chan), chan, whoBuf
+		color(chan), chan, who.buf
 	);
 }
 
b7846d23d8e8e1d540dd0da5ce1e4b76c25486&follow=1'>Use BLACK LEFT-POINTING TRIANGLE for markerJune McEnroe 2018-08-07Reset attrs after addIRCJune McEnroe 2018-08-07Add tab complete UIJune McEnroe 2018-08-07Implement cycling tab completeJune McEnroe 2018-08-07Mark log when scrolling upJune McEnroe 2018-08-07Remove extraneous slash from unrecognized commandJune McEnroe 2018-08-07Highlight and beep pingsJune McEnroe 2018-08-07Factor out allocating conversion between wcs and mbsJune McEnroe 2018-08-07Match commands case-insensitivelyJune McEnroe 2018-08-07Convert input to multibyte before handlingJune McEnroe 2018-08-07Populate tab-complete listJune McEnroe 2018-08-07Fix /me formatting side-effectsJune McEnroe 2018-08-07Define ui.c BUF_LEN with enumJune McEnroe 2018-08-07Hack clang into checking uiFmt format stringsJune McEnroe 2018-08-07Handle PART and QUIT without messagesJune McEnroe 2018-08-07Make safe filling the who bufferJune McEnroe 2018-08-07Add reverse and reset IRC formatting codesJune McEnroe 2018-08-06Rewrite line editing again, add formattingJune McEnroe 2018-08-06Fix allocation size in vaswprintfJune McEnroe 2018-08-06Implement word wrappingJune McEnroe 2018-08-06Use wchar_t strings for all of UIJune McEnroe 2018-08-06Rename line editing functionsJune McEnroe 2018-08-05Initialize all possible color pairsJune McEnroe 2018-08-05Refactor color initializationJune McEnroe 2018-08-05Add ^L redrawJune McEnroe 2018-08-05Use 16 colors if availableJune McEnroe 2018-08-05Limit parsed colors to number of mIRC colorsJune McEnroe 2018-08-04Show source link on exitJune McEnroe 2018-08-04Implement line editing, scrollingJune McEnroe 2018-08-04Handle /topicJune McEnroe