about summary refs log tree commit diff
path: root/bounce.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bounce.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/bounce.h b/bounce.h
index 2010d45..e17f216 100644
--- a/bounce.h
+++ b/bounce.h
@@ -152,17 +152,15 @@ static inline enum Cap capParse(const char *list, const char *values[CapBits]) {
 static inline const char *capList(enum Cap caps, const char *values[CapBits]) {
 	static char buf[1024];
 	buf[0] = '\0';
-	size_t len = 0;
+	char *ptr = buf, *end = &buf[sizeof(buf)];
 	for (size_t i = 0; i < ARRAY_LEN(CapNames); ++i) {
 		if (caps & (1 << i)) {
-			len += snprintf(
-				&buf[len], sizeof(buf) - len,
-				"%s%s%s%s",
-				(len ? " " : ""), CapNames[i],
-				(values && values[i] ? "=" : ""),
-				(values && values[i] ? values[i] : "")
+			ptr = seprintf(
+				ptr, end, "%s%s", (ptr > buf ? " " : ""), CapNames[i]
 			);
-			if (len >= sizeof(buf)) break;
+			if (values && values[i]) {
+				ptr = seprintf(ptr, end, "=%s", values[i]);
+			}
 		}
 	}
 	return buf;
Factor out line editing to edit.cJune McEnroe 2018-08-08Set log marker on FocusOut eventJune McEnroe 2018-08-08Color own messages 15June McEnroe 2018-08-08Use 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