comparison mcabber/src/commands.c @ 486:2a6a8ebb813b

Add "/room invite"
author Mikael Berthe <mikael@lilotux.net>
date Fri, 07 Oct 2005 18:54:52 +0200
parents 00e2d3821a5b
children 9e8519078e00
comparison
equal deleted inserted replaced
485:55aa45eb7ece 486:2a6a8ebb813b
151 compl_add_category_word(COMPL_MULTILINE, "begin"); 151 compl_add_category_word(COMPL_MULTILINE, "begin");
152 compl_add_category_word(COMPL_MULTILINE, "send"); 152 compl_add_category_word(COMPL_MULTILINE, "send");
153 compl_add_category_word(COMPL_MULTILINE, "verbatim"); 153 compl_add_category_word(COMPL_MULTILINE, "verbatim");
154 154
155 // Room category 155 // Room category
156 compl_add_category_word(COMPL_ROOM, "invite");
156 compl_add_category_word(COMPL_ROOM, "join"); 157 compl_add_category_word(COMPL_ROOM, "join");
157 compl_add_category_word(COMPL_ROOM, "leave"); 158 compl_add_category_word(COMPL_ROOM, "leave");
158 compl_add_category_word(COMPL_ROOM, "names"); 159 compl_add_category_word(COMPL_ROOM, "names");
159 compl_add_category_word(COMPL_ROOM, "nick"); 160 compl_add_category_word(COMPL_ROOM, "nick");
160 compl_add_category_word(COMPL_ROOM, "remove"); 161 compl_add_category_word(COMPL_ROOM, "remove");
1079 jb_room_join(roomname, nick); 1080 jb_room_join(roomname, nick);
1080 1081
1081 g_free(roomname); 1082 g_free(roomname);
1082 buddylist_build(); 1083 buddylist_build();
1083 update_roster = TRUE; 1084 update_roster = TRUE;
1085 } else if (!strncasecmp(arg, "invite", 6)) {
1086 const gchar *roomname;
1087 gchar*jid;
1088 arg += 6;
1089 if (*arg++ != ' ') {
1090 scr_LogPrint(LPRINT_NORMAL, "Wrong or missing parameter");
1091 return;
1092 }
1093 for (; *arg && *arg == ' '; arg++)
1094 ;
1095 if (!(buddy_gettype(bud) & ROSTER_TYPE_ROOM)) {
1096 scr_LogPrint(LPRINT_NORMAL, "This isn't a chatroom");
1097 return;
1098 }
1099 if (!*arg) {
1100 scr_LogPrint(LPRINT_NORMAL, "Missing parameter");
1101 return;
1102 }
1103 jid = g_strdup(arg);
1104 arg = strchr(jid, ' ');
1105 if (arg) {
1106 *arg++ = 0;
1107 for (; *arg && *arg == ' '; arg++)
1108 ;
1109 if (!*arg) arg = NULL;
1110 }
1111 roomname = buddy_getjid(bud);
1112 jb_room_invite(roomname, jid, arg);
1113 scr_LogPrint(LPRINT_LOGNORM, "Invitation sent to <%s>", jid);
1114 g_free(jid);
1084 } else if (!strncasecmp(arg, "leave", 5)) { 1115 } else if (!strncasecmp(arg, "leave", 5)) {
1085 gchar *roomid, *utf8_nickname; 1116 gchar *roomid, *utf8_nickname;
1086 arg += 5; 1117 arg += 5;
1087 for (; *arg && *arg == ' '; arg++) 1118 for (; *arg && *arg == ' '; arg++)
1088 ; 1119 ;
1095 jb_setstatus(offline, roomid, arg); 1126 jb_setstatus(offline, roomid, arg);
1096 g_free(utf8_nickname); 1127 g_free(utf8_nickname);
1097 g_free(roomid); 1128 g_free(roomid);
1098 buddy_setnickname(bud, NULL); 1129 buddy_setnickname(bud, NULL);
1099 buddy_del_all_resources(bud); 1130 buddy_del_all_resources(bud);
1100 scr_LogPrint(LPRINT_NORMAL, "You have left %s", buddy_getjid(bud)); 1131 scr_LogPrint(LPRINT_LOGNORM, "You have left %s", buddy_getjid(bud));
1101 } else if (!strcasecmp(arg, "names")) { 1132 } else if (!strcasecmp(arg, "names")) {
1102 if (!(buddy_gettype(bud) & ROSTER_TYPE_ROOM)) { 1133 if (!(buddy_gettype(bud) & ROSTER_TYPE_ROOM)) {
1103 scr_LogPrint(LPRINT_NORMAL, "This isn't a chatroom"); 1134 scr_LogPrint(LPRINT_NORMAL, "This isn't a chatroom");
1104 return; 1135 return;
1105 } 1136 }