hostapd_cli: Add completion for help command
Implement command completion support for help command. Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
This commit is contained in:
parent
01938838b5
commit
6cad0bff06
1 changed files with 35 additions and 1 deletions
|
@ -75,6 +75,7 @@ static int ping_interval = 5;
|
||||||
static int interactive = 0;
|
static int interactive = 0;
|
||||||
|
|
||||||
static void print_help(FILE *stream, const char *cmd);
|
static void print_help(FILE *stream, const char *cmd);
|
||||||
|
static char ** list_cmd_list(void);
|
||||||
|
|
||||||
|
|
||||||
static void usage(void)
|
static void usage(void)
|
||||||
|
@ -104,6 +105,24 @@ static void usage(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int get_cmd_arg_num(const char *str, int pos)
|
||||||
|
{
|
||||||
|
int arg = 0, i;
|
||||||
|
|
||||||
|
for (i = 0; i <= pos; i++) {
|
||||||
|
if (str[i] != ' ') {
|
||||||
|
arg++;
|
||||||
|
while (i <= pos && str[i] != ' ')
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arg > 0)
|
||||||
|
arg--;
|
||||||
|
return arg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int str_starts(const char *src, const char *match)
|
static int str_starts(const char *src, const char *match)
|
||||||
{
|
{
|
||||||
return os_strncmp(src, match, os_strlen(match)) == 0;
|
return os_strncmp(src, match, os_strlen(match)) == 0;
|
||||||
|
@ -754,6 +773,21 @@ static int hostapd_cli_cmd_help(struct wpa_ctrl *ctrl, int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static char ** hostapd_cli_complete_help(const char *str, int pos)
|
||||||
|
{
|
||||||
|
int arg = get_cmd_arg_num(str, pos);
|
||||||
|
char **res = NULL;
|
||||||
|
|
||||||
|
switch (arg) {
|
||||||
|
case 1:
|
||||||
|
res = list_cmd_list();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int hostapd_cli_cmd_license(struct wpa_ctrl *ctrl, int argc,
|
static int hostapd_cli_cmd_license(struct wpa_ctrl *ctrl, int argc,
|
||||||
char *argv[])
|
char *argv[])
|
||||||
{
|
{
|
||||||
|
@ -1259,7 +1293,7 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
|
||||||
{ "bss_tm_req", hostapd_cli_cmd_bss_tm_req, NULL, NULL },
|
{ "bss_tm_req", hostapd_cli_cmd_bss_tm_req, NULL, NULL },
|
||||||
{ "get_config", hostapd_cli_cmd_get_config, NULL,
|
{ "get_config", hostapd_cli_cmd_get_config, NULL,
|
||||||
"= show current configuration" },
|
"= show current configuration" },
|
||||||
{ "help", hostapd_cli_cmd_help, NULL,
|
{ "help", hostapd_cli_cmd_help, hostapd_cli_complete_help,
|
||||||
"= show this usage help" },
|
"= show this usage help" },
|
||||||
{ "interface", hostapd_cli_cmd_interface, NULL,
|
{ "interface", hostapd_cli_cmd_interface, NULL,
|
||||||
"[ifname] = show interfaces/select interface" },
|
"[ifname] = show interfaces/select interface" },
|
||||||
|
|
Loading…
Reference in a new issue