mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
slightly improve command_defs[]
* make the struct `const` * use designated initializers * remove `CMD_NOxyz` macros * fix function-pointer correctness of `sub_func[]` Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
This commit is contained in:
parent
e9aaba938b
commit
a45f05a45e
@ -1315,7 +1315,7 @@ cmd_ac_add_help(const char* const value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cmd_ac_add_cmd(Command* command)
|
cmd_ac_add_cmd(const Command* command)
|
||||||
{
|
{
|
||||||
autocomplete_add(commands_ac, command->cmd);
|
autocomplete_add(commands_ac, command->cmd);
|
||||||
autocomplete_add(help_ac, command->cmd + 1);
|
autocomplete_add(help_ac, command->cmd + 1);
|
||||||
|
@ -47,7 +47,7 @@ gboolean cmd_ac_exists(char* cmd);
|
|||||||
|
|
||||||
void cmd_ac_add(const char* const value);
|
void cmd_ac_add(const char* const value);
|
||||||
void cmd_ac_add_help(const char* const value);
|
void cmd_ac_add_help(const char* const value);
|
||||||
void cmd_ac_add_cmd(Command* command);
|
void cmd_ac_add_cmd(const Command* command);
|
||||||
void cmd_ac_add_alias(ProfAlias* alias);
|
void cmd_ac_add_alias(ProfAlias* alias);
|
||||||
void cmd_ac_add_alias_value(char* value);
|
void cmd_ac_add_alias_value(char* value);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -8430,12 +8430,11 @@ _cmd_execute(ProfWin* window, const char* const command, const char* const inp)
|
|||||||
ui_invalid_command_usage(cmd->cmd, cmd->setting_func);
|
ui_invalid_command_usage(cmd->cmd, cmd->setting_func);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
if (args[0] && cmd->sub_funcs[0][0]) {
|
if (args[0] && cmd->sub_funcs[0].cmd) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (cmd->sub_funcs[i][0]) {
|
while (cmd->sub_funcs[i].cmd) {
|
||||||
if (g_strcmp0(args[0], (char*)cmd->sub_funcs[i][0]) == 0) {
|
if (g_strcmp0(args[0], (char*)cmd->sub_funcs[i].cmd) == 0) {
|
||||||
gboolean (*func)(ProfWin * window, const char* const command, gchar** args) = cmd->sub_funcs[i][1];
|
gboolean result = cmd->sub_funcs[i].func(window, command, args);
|
||||||
gboolean result = func(window, command, args);
|
|
||||||
g_strfreev(args);
|
g_strfreev(args);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,11 @@ typedef struct cmd_t
|
|||||||
int min_args;
|
int min_args;
|
||||||
int max_args;
|
int max_args;
|
||||||
void (*setting_func)(void);
|
void (*setting_func)(void);
|
||||||
void* sub_funcs[50][2];
|
struct
|
||||||
|
{
|
||||||
|
const char* cmd;
|
||||||
|
gboolean (*func)(ProfWin* window, const char* const command, gchar** args);
|
||||||
|
} sub_funcs[50];
|
||||||
gboolean (*func)(ProfWin* window, const char* const command, gchar** args);
|
gboolean (*func)(ProfWin* window, const char* const command, gchar** args);
|
||||||
CommandHelp help;
|
CommandHelp help;
|
||||||
} Command;
|
} Command;
|
||||||
|
Loading…
Reference in New Issue
Block a user