summary refs log tree commit diff
diff options
context:
space:
mode:
-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;
to chrootJune McEnroe Needed by sh. 2018-08-04Define A_ITALIC if not definedJune McEnroe System ncurses on macOS doesn't define it. At least not in El Capitan. 2018-08-04Do not free const string portJune McEnroe 2018-08-04Split source into several filesJune McEnroe Can't believe I have to do this. 2018-08-04Exit on zero readJune McEnroe 2018-08-04Handle nick errorsJune McEnroe 2018-08-04Handle /nick and /quitJune McEnroe /quit doesn't actually... quit, right now. The only way to know that the connection is closed is tls_read returning zero, it seems. 2018-08-04Track own nickJune McEnroe 2018-08-04Word all status messages in presentJune McEnroe 2018-08-03Handle inputJune McEnroe This turned out a lot better than expected. Still a long way to go in terms of line-editing, but at least backspace works! 2018-08-03Track own usernameJune McEnroe So that we can colour our own messages correctly. 2018-08-03Use a wide pad for the topicJune McEnroe 2018-08-03Ignore NOTICEs not sent to the channelJune McEnroe 2018-08-03Handle KICK and NICKJune McEnroe 2018-08-03Continue on EINTR from pollJune McEnroe Resizing the terminal causes it. 2018-08-03Handle ACTIONsJune McEnroe 2018-08-03Use more octal char literalsJune McEnroe I might be coming around to octal. 2018-08-03Send a WHO in response to NAMES to get usernamesJune McEnroe Other than this slight hack, I think coloring by username rather than nick is a much better idea. 2018-08-03Colorize nicks and channelsJune McEnroe 2018-08-03Add support for mIRC colorsJune McEnroe 2018-08-03Handle bold, italic, underlineJune McEnroe 2018-08-03Add prift function for "prefix shift"June McEnroe Forgive me. 2018-08-03Link with -lcurseswJune McEnroe 2018-08-02Use libtls "compat" ciphersJune McEnroe irc.mozilla.org, using GnuTLS, doesn't support *any* of the "secure" ciphers! 2018-08-02Add UI and handle some kinds of server messagesJune McEnroe Seems like handling input is going to be the worst thing ever. 2018-08-02Add chroot.tar targetJune McEnroe