mirror of
				https://github.com/Tha14/toxic.git
				synced 2025-11-04 12:16:52 +01:00 
			
		
		
		
	slight simplification for command list iteration
This commit is contained in:
		@@ -55,11 +55,11 @@ static struct cmd_func global_commands[] = {
 | 
			
		||||
    { "/quit",      cmd_quit          },
 | 
			
		||||
    { "/requests",  cmd_requests      },
 | 
			
		||||
    { "/status",    cmd_status        },
 | 
			
		||||
 | 
			
		||||
#ifdef _AUDIO
 | 
			
		||||
    { "/lsdev",     cmd_list_devices  },
 | 
			
		||||
    { "/sdev",      cmd_change_device },
 | 
			
		||||
#endif /* _AUDIO */
 | 
			
		||||
    { NULL,          NULL             },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct cmd_func chat_commands[] = {
 | 
			
		||||
@@ -68,7 +68,6 @@ static struct cmd_func chat_commands[] = {
 | 
			
		||||
    { "/join",      cmd_join_group  },
 | 
			
		||||
    { "/savefile",  cmd_savefile    },
 | 
			
		||||
    { "/sendfile",  cmd_sendfile    },
 | 
			
		||||
 | 
			
		||||
#ifdef _AUDIO
 | 
			
		||||
    { "/call",      cmd_call        },
 | 
			
		||||
    { "/answer",    cmd_answer      },
 | 
			
		||||
@@ -78,6 +77,7 @@ static struct cmd_func chat_commands[] = {
 | 
			
		||||
    { "/mute",      cmd_mute        },
 | 
			
		||||
    { "/sense",     cmd_sense       },
 | 
			
		||||
#endif /* _AUDIO */
 | 
			
		||||
    { NULL,          NULL           },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* 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 */
 | 
			
		||||
static int do_command(WINDOW *w, ToxWindow *self, Tox *m, int num_args, int num_cmds,
 | 
			
		||||
                      struct cmd_func *commands, char (*args)[MAX_STR_SIZE])
 | 
			
		||||
static int do_command(WINDOW *w, ToxWindow *self, Tox *m, int num_args, struct cmd_func *commands,
 | 
			
		||||
                      char (*args)[MAX_STR_SIZE])
 | 
			
		||||
{
 | 
			
		||||
    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) {
 | 
			
		||||
            (commands[i].func)(w, self, m, num_args - 1, args);
 | 
			
		||||
            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 */
 | 
			
		||||
    switch (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;
 | 
			
		||||
 | 
			
		||||
            break;
 | 
			
		||||
@@ -167,7 +167,7 @@ void execute(WINDOW *w, ToxWindow *self, Tox *m, const char *input, int mode)
 | 
			
		||||
            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;
 | 
			
		||||
 | 
			
		||||
    line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid command.");
 | 
			
		||||
 
 | 
			
		||||
@@ -28,14 +28,6 @@
 | 
			
		||||
 | 
			
		||||
#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 {
 | 
			
		||||
    GLOBAL_COMMAND_MODE,
 | 
			
		||||
    CHAT_COMMAND_MODE,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user