1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-23 01:13:01 +01:00

slight simplification for command list iteration

This commit is contained in:
Jfreegman 2014-09-02 02:23:44 -04:00
parent 2ce42ab057
commit 009095af24
No known key found for this signature in database
GPG Key ID: 3627F3144076AE63
2 changed files with 7 additions and 15 deletions

View File

@ -55,11 +55,11 @@ static struct cmd_func global_commands[] = {
{ "/quit", cmd_quit }, { "/quit", cmd_quit },
{ "/requests", cmd_requests }, { "/requests", cmd_requests },
{ "/status", cmd_status }, { "/status", cmd_status },
#ifdef _AUDIO #ifdef _AUDIO
{ "/lsdev", cmd_list_devices }, { "/lsdev", cmd_list_devices },
{ "/sdev", cmd_change_device }, { "/sdev", cmd_change_device },
#endif /* _AUDIO */ #endif /* _AUDIO */
{ NULL, NULL },
}; };
static struct cmd_func chat_commands[] = { static struct cmd_func chat_commands[] = {
@ -68,7 +68,6 @@ static struct cmd_func chat_commands[] = {
{ "/join", cmd_join_group }, { "/join", cmd_join_group },
{ "/savefile", cmd_savefile }, { "/savefile", cmd_savefile },
{ "/sendfile", cmd_sendfile }, { "/sendfile", cmd_sendfile },
#ifdef _AUDIO #ifdef _AUDIO
{ "/call", cmd_call }, { "/call", cmd_call },
{ "/answer", cmd_answer }, { "/answer", cmd_answer },
@ -78,6 +77,7 @@ static struct cmd_func chat_commands[] = {
{ "/mute", cmd_mute }, { "/mute", cmd_mute },
{ "/sense", cmd_sense }, { "/sense", cmd_sense },
#endif /* _AUDIO */ #endif /* _AUDIO */
{ NULL, NULL },
}; };
/* Parses input command and puts args into arg array. /* Parses input command and puts args into arg array.
@ -126,12 +126,12 @@ static int parse_command(WINDOW *w, ToxWindow *self, const char *input, char (*a
} }
/* Matches command to respective function. Returns 0 on match, 1 on no match */ /* Matches command to respective function. Returns 0 on match, 1 on no match */
static int do_command(WINDOW *w, ToxWindow *self, Tox *m, int num_args, int num_cmds, static int do_command(WINDOW *w, ToxWindow *self, Tox *m, int num_args, struct cmd_func *commands,
struct cmd_func *commands, char (*args)[MAX_STR_SIZE]) char (*args)[MAX_STR_SIZE])
{ {
int i; int i;
for (i = 0; i < num_cmds; ++i) { for (i = 0; commands[i].name != NULL; ++i) {
if (strcmp(args[0], commands[i].name) == 0) { if (strcmp(args[0], commands[i].name) == 0) {
(commands[i].func)(w, self, m, num_args - 1, args); (commands[i].func)(w, self, m, num_args - 1, args);
return 0; return 0;
@ -158,7 +158,7 @@ void execute(WINDOW *w, ToxWindow *self, Tox *m, const char *input, int mode)
Note: Global commands must come last in case of duplicate command names */ Note: Global commands must come last in case of duplicate command names */
switch (mode) { switch (mode) {
case CHAT_COMMAND_MODE: case CHAT_COMMAND_MODE:
if (do_command(w, self, m, num_args, CHAT_NUM_COMMANDS, chat_commands, args) == 0) if (do_command(w, self, m, num_args, chat_commands, args) == 0)
return; return;
break; break;
@ -167,7 +167,7 @@ void execute(WINDOW *w, ToxWindow *self, Tox *m, const char *input, int mode)
break; break;
} }
if (do_command(w, self, m, num_args, GLOBAL_NUM_COMMANDS, global_commands, args) == 0) if (do_command(w, self, m, num_args, global_commands, args) == 0)
return; return;
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid command."); line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid command.");

View File

@ -28,14 +28,6 @@
#define MAX_NUM_ARGS 4 /* Includes command */ #define MAX_NUM_ARGS 4 /* Includes command */
#ifdef _AUDIO
#define GLOBAL_NUM_COMMANDS 18
#define CHAT_NUM_COMMANDS 12
#else
#define GLOBAL_NUM_COMMANDS 16
#define CHAT_NUM_COMMANDS 5
#endif /* _AUDIO */
enum { enum {
GLOBAL_COMMAND_MODE, GLOBAL_COMMAND_MODE,
CHAT_COMMAND_MODE, CHAT_COMMAND_MODE,