Mercurial > hg
comparison mcabber/src/commands.c @ 132:6531bcf030ae
[/trunk] Changeset 145 by mikael
* Add /say command.
author | mikael |
---|---|
date | Thu, 28 Apr 2005 14:41:16 +0000 |
parents | 60694c9ddde3 |
children | faf534be8ff0 |
comparison
equal
deleted
inserted
replaced
131:6efdcd9346dd | 132:6531bcf030ae |
---|---|
34 void do_roster(char *arg); | 34 void do_roster(char *arg); |
35 void do_clear(char *arg); | 35 void do_clear(char *arg); |
36 void do_status(char *arg); | 36 void do_status(char *arg); |
37 void do_add(char *arg); | 37 void do_add(char *arg); |
38 void do_group(char *arg); | 38 void do_group(char *arg); |
39 void do_say(char *arg); | |
39 | 40 |
40 // Global variable for the commands list | 41 // Global variable for the commands list |
41 static GSList *Commands; | 42 static GSList *Commands; |
42 | 43 |
43 | 44 |
72 cmd_add("quit", "Exit the software", 0, 0, NULL); | 73 cmd_add("quit", "Exit the software", 0, 0, NULL); |
73 //cmd_add("rename"); | 74 //cmd_add("rename"); |
74 //cmd_add("request_auth"); | 75 //cmd_add("request_auth"); |
75 cmd_add("roster", "Manipulate the roster/buddylist", COMPL_ROSTER, 0, | 76 cmd_add("roster", "Manipulate the roster/buddylist", COMPL_ROSTER, 0, |
76 &do_roster); | 77 &do_roster); |
77 cmd_add("say", "Say something to the selected buddy", 0, 0, NULL); | 78 cmd_add("say", "Say something to the selected buddy", 0, 0, &do_say); |
78 //cmd_add("search"); | 79 //cmd_add("search"); |
79 //cmd_add("send_auth"); | 80 //cmd_add("send_auth"); |
80 cmd_add("status", "Show or set your status", COMPL_STATUS, 0, &do_status); | 81 cmd_add("status", "Show or set your status", COMPL_STATUS, 0, &do_status); |
81 | 82 |
82 // Status category | 83 // Status category |
165 int process_line(char *line) | 166 int process_line(char *line) |
166 { | 167 { |
167 char *p; | 168 char *p; |
168 cmd *curcmd; | 169 cmd *curcmd; |
169 | 170 |
170 if (*line == 0 || *line != '/') { | 171 if (!*line) { // User only pressed enter |
171 scr_set_chatmode(TRUE); | |
172 if (current_buddy) { | 172 if (current_buddy) { |
173 scr_set_chatmode(TRUE); | |
173 buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, TRUE); | 174 buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, TRUE); |
174 | 175 scr_ShowBuddyWindow(); |
175 if (!*line) | |
176 scr_ShowBuddyWindow(); | |
177 else | |
178 send_message(line); // FIXME: are we talking to a _buddy_? | |
179 } | 176 } |
177 return 0; | |
178 } | |
179 | |
180 if (*line != '/') { | |
181 do_say(line); | |
180 return 0; | 182 return 0; |
181 } | 183 } |
182 | 184 |
183 /* It is a command */ | 185 /* It is a command */ |
184 // Remove trailing spaces: | 186 // Remove trailing spaces: |
313 | 315 |
314 buddylist_build(); | 316 buddylist_build(); |
315 update_roster = TRUE; | 317 update_roster = TRUE; |
316 } | 318 } |
317 | 319 |
320 void do_say(char *arg) | |
321 { | |
322 gpointer bud = BUDDATA(current_buddy); | |
323 | |
324 scr_set_chatmode(TRUE); | |
325 if (current_buddy) { | |
326 if (!(buddy_gettype(bud) & ROSTER_TYPE_USER)) { | |
327 scr_LogPrint("This is not a user"); | |
328 return; | |
329 } | |
330 buddy_setflags(bud, ROSTER_FLAG_LOCK, TRUE); | |
331 send_message(arg); | |
332 } else { | |
333 scr_LogPrint("Who are you talking to??"); | |
334 } | |
335 } | |
336 |