mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Implemented help [command]
This commit is contained in:
parent
7972a9a8b4
commit
2f8a53fa35
106
src/command.c
106
src/command.c
@ -80,51 +80,61 @@ static struct cmd_t main_commands[] =
|
|||||||
{
|
{
|
||||||
{ "/help",
|
{ "/help",
|
||||||
_cmd_help,
|
_cmd_help,
|
||||||
{ "/help", "This help.",
|
{ "/help [command]", "This help, or help on a specific command",
|
||||||
{ "/help [command]",
|
{ "/help [command]",
|
||||||
|
"---------------"
|
||||||
"",
|
"",
|
||||||
"/help will list all commands with short help on what they do."
|
"/help will list all commands with short help on what they do.",
|
||||||
"/help [command] will give more detailed help on a specific command." } } },
|
"/help [command] will give more detailed help on a specific command.",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/connect",
|
{ "/connect",
|
||||||
_cmd_connect,
|
_cmd_connect,
|
||||||
{ "/connect user@host", "Login to jabber.",
|
{ "/connect user@host", "Login to jabber.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/prefs",
|
{ "/prefs",
|
||||||
_cmd_prefs,
|
_cmd_prefs,
|
||||||
{ "/prefs", "Show current preferences.",
|
{ "/prefs", "Show current preferences.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/msg",
|
{ "/msg",
|
||||||
_cmd_msg,
|
_cmd_msg,
|
||||||
{ "/msg user@host mesg", "Send mesg to user.",
|
{ "/msg user@host mesg", "Send mesg to user.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/tiny",
|
{ "/tiny",
|
||||||
_cmd_tiny,
|
_cmd_tiny,
|
||||||
{ "/tiny url", "Send url as tinyurl in current chat.",
|
{ "/tiny url", "Send url as tinyurl in current chat.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/ros",
|
{ "/ros",
|
||||||
_cmd_ros,
|
_cmd_ros,
|
||||||
{ "/ros", "List all contacts.",
|
{ "/ros", "List all contacts.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/who",
|
{ "/who",
|
||||||
_cmd_who,
|
_cmd_who,
|
||||||
{ "/who", "Find out who is online.",
|
{ "/who", "Find out who is online.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/close",
|
{ "/close",
|
||||||
_cmd_close,
|
_cmd_close,
|
||||||
{ "/close", "Close current chat window.",
|
{ "/close", "Close current chat window.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/quit",
|
{ "/quit",
|
||||||
_cmd_quit,
|
_cmd_quit,
|
||||||
{ "/quit", "Quit Profanity.",
|
{ "/quit", "Quit Profanity.",
|
||||||
{ "Ahh" } } }
|
{ "Ahh",
|
||||||
|
NULL } } }
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct cmd_t setting_commands[] =
|
static struct cmd_t setting_commands[] =
|
||||||
@ -132,26 +142,32 @@ static struct cmd_t setting_commands[] =
|
|||||||
{ "/beep",
|
{ "/beep",
|
||||||
_cmd_set_beep,
|
_cmd_set_beep,
|
||||||
{ "/beep on|off", "Enable/disable sound notifications.",
|
{ "/beep on|off", "Enable/disable sound notifications.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/notify",
|
{ "/notify",
|
||||||
_cmd_set_notify,
|
_cmd_set_notify,
|
||||||
{ "/notify on|off", "Enable/disable desktop notifications.",
|
{ "/notify on|off", "Enable/disable desktop notifications.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/flash",
|
{ "/flash",
|
||||||
_cmd_set_flash,
|
_cmd_set_flash,
|
||||||
{ "/flash on|off", "Enable/disable screen flash notifications.",
|
{ "/flash on|off", "Enable/disable screen flash notifications.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/showsplash",
|
{ "/showsplash",
|
||||||
_cmd_set_showsplash,
|
_cmd_set_showsplash,
|
||||||
{ "/showsplash on|off", "Enable/disable splash logo on startup.",
|
{ "/showsplash on|off", "Enable/disable splash logo on startup.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/chlog",
|
{ "/chlog",
|
||||||
_cmd_set_chlog,
|
_cmd_set_chlog,
|
||||||
{ "/chlog on|off", "Enable/disable chat logging.",
|
{ "/chlog on|off", "Enable/disable chat logging.",
|
||||||
{ "Ahh" } } }
|
{ "Ahh",
|
||||||
|
NULL } } }
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct cmd_t status_commands[] =
|
static struct cmd_t status_commands[] =
|
||||||
@ -159,27 +175,32 @@ static struct cmd_t status_commands[] =
|
|||||||
{ "/away",
|
{ "/away",
|
||||||
_cmd_away,
|
_cmd_away,
|
||||||
{ "/away [msg]", "Set status to away.",
|
{ "/away [msg]", "Set status to away.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/chat",
|
{ "/chat",
|
||||||
_cmd_chat,
|
_cmd_chat,
|
||||||
{ "/chat [msg]", "Set status to chat (available for chat).",
|
{ "/chat [msg]", "Set status to chat (available for chat).",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/dnd",
|
{ "/dnd",
|
||||||
_cmd_dnd,
|
_cmd_dnd,
|
||||||
{ "/dnd [msg]", "Set status to dnd (do not disturb.",
|
{ "/dnd [msg]", "Set status to dnd (do not disturb.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/online",
|
{ "/online",
|
||||||
_cmd_online,
|
_cmd_online,
|
||||||
{ "/online [msg]", "Set status to online.",
|
{ "/online [msg]", "Set status to online.",
|
||||||
{ "Ahh" } } },
|
{ "Ahh",
|
||||||
|
NULL } } },
|
||||||
|
|
||||||
{ "/xa",
|
{ "/xa",
|
||||||
_cmd_xa,
|
_cmd_xa,
|
||||||
{ "/xa [msg]", "Set status to xa (extended away).",
|
{ "/xa [msg]", "Set status to xa (extended away).",
|
||||||
{ "Ahh" } } }
|
{ "Ahh",
|
||||||
|
NULL } } }
|
||||||
};
|
};
|
||||||
|
|
||||||
static PAutocomplete commands_ac;
|
static PAutocomplete commands_ac;
|
||||||
@ -362,7 +383,50 @@ _cmd_quit(const char * const inp, struct cmd_help_t help)
|
|||||||
static gboolean
|
static gboolean
|
||||||
_cmd_help(const char * const inp, struct cmd_help_t help)
|
_cmd_help(const char * const inp, struct cmd_help_t help)
|
||||||
{
|
{
|
||||||
|
if (strcmp(inp, "/help") == 0) {
|
||||||
cons_help();
|
cons_help();
|
||||||
|
} else {
|
||||||
|
char *cmd;
|
||||||
|
cmd = strndup(inp+6, strlen(inp)-6);
|
||||||
|
char cmd_with_slash[1 + strlen(cmd) + 1];
|
||||||
|
sprintf(cmd_with_slash, "/%s", cmd);
|
||||||
|
|
||||||
|
const gchar **help_text = NULL;
|
||||||
|
|
||||||
|
unsigned int i;
|
||||||
|
for (i = 0; i < ARRAY_SIZE(main_commands); i++) {
|
||||||
|
struct cmd_t *pcmd = main_commands+i;
|
||||||
|
if (strcmp(pcmd->cmd, cmd_with_slash) == 0) {
|
||||||
|
help_text = pcmd->help.long_help;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(setting_commands); i++) {
|
||||||
|
struct cmd_t *pcmd = setting_commands+i;
|
||||||
|
if (strcmp(pcmd->cmd, cmd_with_slash) == 0) {
|
||||||
|
help_text = pcmd->help.long_help;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(status_commands); i++) {
|
||||||
|
struct cmd_t *pcmd = status_commands+i;
|
||||||
|
if (strcmp(pcmd->cmd, cmd_with_slash) == 0) {
|
||||||
|
help_text = pcmd->help.long_help;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cons_show("");
|
||||||
|
|
||||||
|
if (help_text != NULL) {
|
||||||
|
for (i = 0; help_text[i] != NULL; i++) {
|
||||||
|
cons_show(help_text[i]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cons_show("No such command.");
|
||||||
|
}
|
||||||
|
|
||||||
|
cons_show("");
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user