diff options
-rw-r--r-- | client/client.c | 28 | ||||
-rw-r--r-- | client/cmds.m4 | 1 | ||||
-rw-r--r-- | client/commands.c | 2 |
3 files changed, 23 insertions, 8 deletions
diff --git a/client/client.c b/client/client.c index ea44cdd8..8b01ce38 100644 --- a/client/client.c +++ b/client/client.c @@ -76,6 +76,22 @@ extern int _rl_vis_botlin; extern void _rl_move_vert(int); extern Function *rl_last_func; +static int +handle_internal_command(char *cmd) +{ + if (!strncmp(cmd, "exit", 4) || !strncmp(cmd, "quit", 4)) + { + cleanup(); + exit(0); + } + if (!strncmp(cmd, "help", 4)) + { + puts("Press `?' for context sensitive help."); + return 1; + } + return 0; +} + static void got_line(char *cmd_buffer) { @@ -92,15 +108,13 @@ got_line(char *cmd_buffer) if (cmd) { add_history(cmd); - if (!strcmp(cmd, "exit") || !strcmp(cmd, "quit")) + if (!handle_internal_command(cmd)) { - cleanup(); - exit(0); + server_send(cmd); + input_hidden = -1; + io_loop(0); + input_hidden = 0; } - server_send(cmd); - input_hidden = -1; - io_loop(0); - input_hidden = 0; free(cmd); } else diff --git a/client/cmds.m4 b/client/cmds.m4 index d24bbb09..1cbb4f92 100644 --- a/client/cmds.m4 +++ b/client/cmds.m4 @@ -8,3 +8,4 @@ CF_CLI(QUIT,,, [[Quit the client]]) CF_CLI(EXIT,,, [[Exit the client]]) +CF_CLI(HELP,,, [[Description of the help system]]) diff --git a/client/commands.c b/client/commands.c index 697cff6d..7612b64c 100644 --- a/client/commands.c +++ b/client/commands.c @@ -294,7 +294,7 @@ cmd_expand(char *cmd) } if (!n->cmd) { - puts("No such command."); + puts("No such command. Press `?' for help."); return NULL; } b = xmalloc(strlen(n->cmd->command) + strlen(args) + 1); |