summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-10-23 03:12:45 -0400
committerJune McEnroe <june@causal.agency>2019-10-23 03:12:45 -0400
commitf4ba2638c774e0dedf4cf2e965218b3600c1e1ba (patch)
tree16991c4f3bd8e8924ee9adc1cc5591f6ca4ccc4d
parentFix rest parsing (diff)
downloadpounce-f4ba2638c774e0dedf4cf2e965218b3600c1e1ba.tar.gz
pounce-f4ba2638c774e0dedf4cf2e965218b3600c1e1ba.zip
Set an initial loop cap
-rw-r--r--bounce.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/bounce.c b/bounce.c
index 3e30d0c..e91ed7f 100644
--- a/bounce.c
+++ b/bounce.c
@@ -35,7 +35,7 @@ static struct {
 
 static void loopAdd(int fd, struct Client *client) {
 	if (loop.len == loop.cap) {
-		loop.cap *= 2;
+		loop.cap = (loop.cap ? loop.cap * 2 : 4);
 		loop.fds = realloc(loop.fds, sizeof(struct pollfd) * loop.cap);
 		loop.clients = realloc(loop.clients, sizeof(struct Client *) * loop.cap);
 		if (!loop.fds || !loop.clients) err(EX_OSERR, "realloc");
@@ -48,9 +48,9 @@ static void loopAdd(int fd, struct Client *client) {
 }
 
 static void loopRemove(size_t i) {
-	loop.fds[i] = loop.fds[loop.len - 1];
-	loop.clients[i] = loop.clients[loop.len - 1];
 	loop.len--;
+	loop.fds[i] = loop.fds[loop.len];
+	loop.clients[i] = loop.clients[loop.len];
 }
 
 static char *censor(char *arg) {
ogmsg'> 2018-09-14Check width of entire next word including codesJune McEnroe This results in a tiny bit of premature wrapping for color codes, but that isn't a problem. 2018-09-14Remove word handling from formatParseJune McEnroe 2018-09-14Apply consecutive formatting codes at onceJune McEnroe Fixes the failing splits test. 2018-09-14Add tests for formatParseJune McEnroe With one currently failing so you know they're worth it. 2018-09-13Preview with nick in input windowJune McEnroe 2018-09-13Never send PRIVMSG to TagStatus or TagVerboseJune McEnroe 2018-09-13Move color selection to format.cJune McEnroe 2018-09-13Fix len for format->split at end of stringJune McEnroe 2018-09-13Avoid uninitialized x in uiReadJune McEnroe 2018-09-13Add IRCDefault to colors enumJune McEnroe 2018-09-13Return a format->split even at the end of the stringJune McEnroe 2018-09-13Fix weird tab-complete after commaJune McEnroe I have no idea why I did this. 2018-09-13Rewrite UI againJune McEnroe The persistent topic is gone and the status line is now at the top. The status formatting still needs to be reworked. I also want to try showing the nick in the input window so it really looks like your next message. 2018-09-12Add note about C-oJune McEnroe Why are there so few well usable ctrl key bindings? 2018-09-12Use formatParse split to position input cursorJune McEnroe 2018-09-12Factor out IRC formatting parsingJune McEnroe 2018-09-11Add /help equivalent to /manJune McEnroe 2018-09-11Don't render every PM as a pingJune McEnroe 2018-09-11Add urlOpenMatchJune McEnroe 2018-09-10Depend on man.sh for chroot.tar targetJune McEnroe 2018-09-10Set LESSSECURE=1 in man.shJune McEnroe Ridiculous. 2018-09-10Add /man commandJune McEnroe 2018-09-10Install man page in chrootJune McEnroe 2018-09-10Install man pageJune McEnroe 2018-09-10Split keys into subsections and document colorsJune McEnroe 2018-09-10Add "blank" lines to chatte.1June McEnroe 2018-09-10Document key bindings in chatte.1June McEnroe 2018-09-08Document slash commands in chatte.1June McEnroe