summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--chat.h1
-rw-r--r--complete.c12
-rw-r--r--handle.c3
3 files changed, 16 insertions, 0 deletions
diff --git a/chat.h b/chat.h
index aec5a68..6eeed60 100644
--- a/chat.h
+++ b/chat.h
@@ -154,6 +154,7 @@ void completeReject(void);
 void completeAdd(size_t id, const char *str, enum Color color);
 void completeTouch(size_t id, const char *str, enum Color color);
 void completeRemove(size_t id, const char *str);
+void completeClear(size_t id);
 
 FILE *configOpen(const char *path, const char *mode);
 int getopt_config(
diff --git a/complete.c b/complete.c
index 5067512..437bb7d 100644
--- a/complete.c
+++ b/complete.c
@@ -122,3 +122,15 @@ void completeRemove(size_t id, const char *str) {
 		free(node);
 	}
 }
+
+void completeClear(size_t id) {
+	struct Node *next = NULL;
+	for (struct Node *node = head; node; node = next) {
+		next = node->next;
+		if (node->id != id) continue;
+		if (match == node) match = NULL;
+		detach(node);
+		free(node->str);
+		free(node);
+	}
+}
diff --git a/handle.c b/handle.c
index 4faabba..b73d200 100644
--- a/handle.c
+++ b/handle.c
@@ -212,6 +212,9 @@ static void handleJoin(struct Message *msg) {
 static void handlePart(struct Message *msg) {
 	require(msg, true, 1);
 	size_t id = idFor(msg->params[0]);
+	if (self.nick && !strcmp(msg->nick, self.nick)) {
+		completeClear(id);
+	}
 	completeRemove(id, msg->nick);
 	uiFormat(
 		id, Cold, tagTime(msg),
/commit/home/.ssh/config?id=9f28585f6ae90ec9d407d4da172608d9c16bb575&follow=1'>SendEnv LANGJune McEnroe 2018-08-27Add New Order — TemptationJune McEnroe 2018-08-26Add NetBSD to install.shJune McEnroe 2018-08-24Show hostname in title over SSHJune McEnroe 2018-08-23Alias bc='bc -l'June McEnroe 2018-08-20Update usage of scheme in READMEJune McEnroe 2018-08-20Use scheme.h in fbatt and fbclockJune McEnroe 2018-08-20Generate scheme.hJune McEnroe 2018-08-20Add dependencies on gfx.hJune McEnroe 2018-08-18Add Blondie — Heart of GlassJune McEnroe Why didn't I know about this song? I love it. 2018-08-18Set FCEDIT=$EDITORJune McEnroe 2018-08-18Only post commits with bodies to MastodonJune McEnroe 2018-08-18Run tf/cfg link script with /bin/shJune McEnroe 2018-08-18Run {,s,t}up with /bin/shJune McEnroe 2018-08-18Use whence instead of typeJune McEnroe type is an alias for whence -v and is more for human consumption. 2018-08-18Cut off path components until right prompt fitsJune McEnroe Keeps paths valid (from somehwere) rather than abrupt truncation. 2018-08-17Add "private" alias to source encrypted fileJune McEnroe Why is there no easy way to *edit* an encrypted file? 2018-08-17Add vim mapping to add a #includeJune McEnroe