Mercurial > hg
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 } |