about summary refs log tree commit diff
path: root/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'command.c')
-rw-r--r--command.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/command.c b/command.c
index eae865e..ef82d30 100644
--- a/command.c
+++ b/command.c
@@ -135,12 +135,17 @@ static void commandMe(uint id, char *params) {
 }
 
 static void commandMsg(uint id, char *params) {
+	if (!params) return;
 	char *nick = strsep(&params, " ");
 	uint msg = idFor(nick);
 	if (idColors[msg] == Default) {
 		idColors[msg] = completeColor(id, nick);
 	}
-	splitMessage("PRIVMSG", msg, params);
+	if (params) {
+		splitMessage("PRIVMSG", msg, params);
+	} else {
+		uiShowID(msg);
+	}
 }
 
 static void commandJoin(uint id, char *params) {
@@ -332,7 +337,7 @@ static void commandList(uint id, char *params) {
 
 static void commandWhois(uint id, char *params) {
 	(void)id;
-	if (!params) return;
+	if (!params) params = self.nick;
 	uint count = 1;
 	for (char *ch = params; *ch; ++ch) {
 		if (*ch == ',') count++;
@@ -350,12 +355,12 @@ static void commandWhowas(uint id, char *params) {
 
 static void commandNS(uint id, char *params) {
 	(void)id;
-	if (params) ircFormat("PRIVMSG NickServ :%s\r\n", params);
+	ircFormat("PRIVMSG NickServ :%s\r\n", (params ?: "HELP"));
 }
 
 static void commandCS(uint id, char *params) {
 	(void)id;
-	if (params) ircFormat("PRIVMSG ChanServ :%s\r\n", params);
+	ircFormat("PRIVMSG ChanServ :%s\r\n", (params ?: "HELP"));
 }
 
 static void commandQuery(uint id, char *params) {