Clear completion for ID on self-part
This commit is contained in:
		
							parent
							
								
									d314523b90
								
							
						
					
					
						commit
						8b7cc1a0ed
					
				
							
								
								
									
										1
									
								
								chat.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								chat.h
									
									
									
									
									
								
							@ -154,6 +154,7 @@ void completeReject(void);
 | 
				
			|||||||
void completeAdd(size_t id, const char *str, enum Color color);
 | 
					void completeAdd(size_t id, const char *str, enum Color color);
 | 
				
			||||||
void completeTouch(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 completeRemove(size_t id, const char *str);
 | 
				
			||||||
 | 
					void completeClear(size_t id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FILE *configOpen(const char *path, const char *mode);
 | 
					FILE *configOpen(const char *path, const char *mode);
 | 
				
			||||||
int getopt_config(
 | 
					int getopt_config(
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								complete.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								complete.c
									
									
									
									
									
								
							@ -122,3 +122,15 @@ void completeRemove(size_t id, const char *str) {
 | 
				
			|||||||
		free(node);
 | 
							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);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										3
									
								
								handle.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								handle.c
									
									
									
									
									
								
							@ -212,6 +212,9 @@ static void handleJoin(struct Message *msg) {
 | 
				
			|||||||
static void handlePart(struct Message *msg) {
 | 
					static void handlePart(struct Message *msg) {
 | 
				
			||||||
	require(msg, true, 1);
 | 
						require(msg, true, 1);
 | 
				
			||||||
	size_t id = idFor(msg->params[0]);
 | 
						size_t id = idFor(msg->params[0]);
 | 
				
			||||||
 | 
						if (self.nick && !strcmp(msg->nick, self.nick)) {
 | 
				
			||||||
 | 
							completeClear(id);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	completeRemove(id, msg->nick);
 | 
						completeRemove(id, msg->nick);
 | 
				
			||||||
	uiFormat(
 | 
						uiFormat(
 | 
				
			||||||
		id, Cold, tagTime(msg),
 | 
							id, Cold, tagTime(msg),
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user