Add prift function for "prefix shift"
Forgive me.
This commit is contained in:
		
							parent
							
								
									d2d421735e
								
							
						
					
					
						commit
						c383f9f3a7
					
				
							
								
								
									
										27
									
								
								chat.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								chat.c
									
									
									
									
									
								
							@ -126,6 +126,9 @@ static void clientFmt(const char *format, ...) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef void (*Handler)(char *prefix, char *params);
 | 
					typedef void (*Handler)(char *prefix, char *params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static char *prift(char **prefix) {
 | 
				
			||||||
 | 
						return strsep(prefix, "!@");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
static char *shift(char **params) {
 | 
					static char *shift(char **params) {
 | 
				
			||||||
	char *rest = *params;
 | 
						char *rest = *params;
 | 
				
			||||||
	if (!rest) errx(EX_PROTOCOL, "expected param");
 | 
						if (!rest) errx(EX_PROTOCOL, "expected param");
 | 
				
			||||||
@ -147,20 +150,20 @@ static void handlePing(char *prefix, char *params) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void handleJoin(char *prefix, char *params) {
 | 
					static void handleJoin(char *prefix, char *params) {
 | 
				
			||||||
	char *nick = strsep(&prefix, "!");
 | 
						char *nick = prift(&prefix);
 | 
				
			||||||
	char *chan = shift(¶ms);
 | 
						char *chan = shift(¶ms);
 | 
				
			||||||
	uiFmt("--> %s arrived in %s", nick, chan);
 | 
						uiFmt("--> %s arrived in %s", nick, chan);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static void handlePart(char *prefix, char *params) {
 | 
					static void handlePart(char *prefix, char *params) {
 | 
				
			||||||
	char *nick = strsep(&prefix, "!");
 | 
						char *nick = prift(&prefix);
 | 
				
			||||||
	char *chan = shift(¶ms);
 | 
						char *chan = shift(¶ms);
 | 
				
			||||||
	char *reason = shift(¶ms);
 | 
						char *mesg = shift(¶ms);
 | 
				
			||||||
	uiFmt("<-- %s left %s, \"%s\"", nick, chan, reason);
 | 
						uiFmt("<-- %s left %s, \"%s\"", nick, chan, mesg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static void handleQuit(char *prefix, char *params) {
 | 
					static void handleQuit(char *prefix, char *params) {
 | 
				
			||||||
	char *nick = strsep(&prefix, "!");
 | 
						char *nick = prift(&prefix);
 | 
				
			||||||
	char *reason = shift(¶ms);
 | 
						char *mesg = shift(¶ms);
 | 
				
			||||||
	uiFmt("<-- %s left, \"%s\"", nick, reason);
 | 
						uiFmt("<-- %s left, \"%s\"", nick, mesg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void handle332(char *prefix, char *params) {
 | 
					static void handle332(char *prefix, char *params) {
 | 
				
			||||||
@ -168,15 +171,15 @@ static void handle332(char *prefix, char *params) {
 | 
				
			|||||||
	shift(¶ms);
 | 
						shift(¶ms);
 | 
				
			||||||
	char *chan = shift(¶ms);
 | 
						char *chan = shift(¶ms);
 | 
				
			||||||
	char *topic = shift(¶ms);
 | 
						char *topic = shift(¶ms);
 | 
				
			||||||
	uiTopic(topic);
 | 
					 | 
				
			||||||
	uiFmt("--- The sign in %s reads, \"%s\"", chan, topic);
 | 
						uiFmt("--- The sign in %s reads, \"%s\"", chan, topic);
 | 
				
			||||||
 | 
						uiTopic(topic);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static void handleTopic(char *prefix, char *params) {
 | 
					static void handleTopic(char *prefix, char *params) {
 | 
				
			||||||
	char *nick = strsep(&prefix, "!");
 | 
						char *nick = prift(&prefix);
 | 
				
			||||||
	char *chan = shift(¶ms);
 | 
						char *chan = shift(¶ms);
 | 
				
			||||||
	char *topic = shift(¶ms);
 | 
						char *topic = shift(¶ms);
 | 
				
			||||||
	uiTopic(topic);
 | 
					 | 
				
			||||||
	uiFmt("--- %s placed a new sign in %s, \"%s\"", nick, chan, topic);
 | 
						uiFmt("--- %s placed a new sign in %s, \"%s\"", nick, chan, topic);
 | 
				
			||||||
 | 
						uiTopic(topic);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void handle353(char *prefix, char *params) {
 | 
					static void handle353(char *prefix, char *params) {
 | 
				
			||||||
@ -190,13 +193,13 @@ static void handle353(char *prefix, char *params) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void handlePrivmsg(char *prefix, char *params) {
 | 
					static void handlePrivmsg(char *prefix, char *params) {
 | 
				
			||||||
	char *nick = strsep(&prefix, "!");
 | 
						char *nick = prift(&prefix);
 | 
				
			||||||
	shift(¶ms);
 | 
						shift(¶ms);
 | 
				
			||||||
	char *message = shift(¶ms);
 | 
						char *message = shift(¶ms);
 | 
				
			||||||
	uiFmt("<%s> %s", nick, message);
 | 
						uiFmt("<%s> %s", nick, message);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static void handleNotice(char *prefix, char *params) {
 | 
					static void handleNotice(char *prefix, char *params) {
 | 
				
			||||||
	char *nick = strsep(&prefix, "!");
 | 
						char *nick = prift(&prefix);
 | 
				
			||||||
	shift(¶ms);
 | 
						shift(¶ms);
 | 
				
			||||||
	char *message = shift(¶ms);
 | 
						char *message = shift(¶ms);
 | 
				
			||||||
	uiFmt("-%s- %s", nick, message);
 | 
						uiFmt("-%s- %s", nick, message);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user