comparison mcabber/src/commands.c @ 490:af6e31e32d9e

Add "/room privmsg"
author Mikael Berthe <mikael@lilotux.net>
date Sat, 08 Oct 2005 00:29:02 +0200
parents 9e8519078e00
children 321ae11e7ddb
comparison
equal deleted inserted replaced
489:21ab22a60bcb 490:af6e31e32d9e
157 compl_add_category_word(COMPL_ROOM, "invite"); 157 compl_add_category_word(COMPL_ROOM, "invite");
158 compl_add_category_word(COMPL_ROOM, "join"); 158 compl_add_category_word(COMPL_ROOM, "join");
159 compl_add_category_word(COMPL_ROOM, "leave"); 159 compl_add_category_word(COMPL_ROOM, "leave");
160 compl_add_category_word(COMPL_ROOM, "names"); 160 compl_add_category_word(COMPL_ROOM, "names");
161 compl_add_category_word(COMPL_ROOM, "nick"); 161 compl_add_category_word(COMPL_ROOM, "nick");
162 compl_add_category_word(COMPL_ROOM, "privmsg");
162 compl_add_category_word(COMPL_ROOM, "remove"); 163 compl_add_category_word(COMPL_ROOM, "remove");
163 compl_add_category_word(COMPL_ROOM, "topic"); 164 compl_add_category_word(COMPL_ROOM, "topic");
164 compl_add_category_word(COMPL_ROOM, "unlock"); 165 compl_add_category_word(COMPL_ROOM, "unlock");
165 } 166 }
166 167
1083 g_free(roomname); 1084 g_free(roomname);
1084 buddylist_build(); 1085 buddylist_build();
1085 update_roster = TRUE; 1086 update_roster = TRUE;
1086 } else if (!strncasecmp(arg, "invite", 6)) { 1087 } else if (!strncasecmp(arg, "invite", 6)) {
1087 const gchar *roomname; 1088 const gchar *roomname;
1088 gchar*jid; 1089 gchar* jid;
1089 arg += 6; 1090 arg += 6;
1090 if (*arg++ != ' ') { 1091 if (*arg++ != ' ') {
1091 scr_LogPrint(LPRINT_NORMAL, "Wrong or missing parameter"); 1092 scr_LogPrint(LPRINT_NORMAL, "Wrong or missing parameter");
1092 return; 1093 return;
1093 } 1094 }
1150 return; 1151 return;
1151 } 1152 }
1152 cmd = g_strdup_printf("join %s %s", buddy_getjid(bud), arg); 1153 cmd = g_strdup_printf("join %s %s", buddy_getjid(bud), arg);
1153 do_room(cmd); 1154 do_room(cmd);
1154 g_free(cmd); 1155 g_free(cmd);
1156 } else if (!strncasecmp(arg, "privmsg", 7)) {
1157 gchar *nick, *cmd;
1158 arg += 7;
1159 if (*arg++ != ' ') {
1160 scr_LogPrint(LPRINT_NORMAL, "Wrong or missing parameter");
1161 return;
1162 }
1163 for (; *arg && *arg == ' '; arg++)
1164 ;
1165 if (!(buddy_gettype(bud) & ROSTER_TYPE_ROOM)) {
1166 scr_LogPrint(LPRINT_NORMAL, "This isn't a chatroom");
1167 return;
1168 }
1169 if (!*arg) {
1170 scr_LogPrint(LPRINT_NORMAL, "Missing parameter");
1171 return;
1172 }
1173 nick = g_strdup(arg);
1174 arg = strchr(nick, ' ');
1175 if (!arg) {
1176 scr_LogPrint(LPRINT_NORMAL, "Missing parameter");
1177 return;
1178 }
1179 *arg++ = 0;
1180 for (; *arg && *arg == ' '; arg++)
1181 ;
1182 cmd = g_strdup_printf("%s/%s %s", buddy_getjid(bud), nick, arg);
1183 do_say_to(cmd);
1184 g_free(cmd);
1185 g_free(nick);
1155 } else if (!strcasecmp(arg, "remove")) { 1186 } else if (!strcasecmp(arg, "remove")) {
1156 if (!(buddy_gettype(bud) & ROSTER_TYPE_ROOM)) { 1187 if (!(buddy_gettype(bud) & ROSTER_TYPE_ROOM)) {
1157 scr_LogPrint(LPRINT_NORMAL, "This isn't a chatroom"); 1188 scr_LogPrint(LPRINT_NORMAL, "This isn't a chatroom");
1158 return; 1189 return;
1159 } 1190 }