summaryrefslogtreecommitdiffstats
path: root/client/client.c
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-02-27 23:00:19 +0100
committerMartin Mares <mj@ucw.cz>2000-02-27 23:00:19 +0100
commite69e4ed9349ee28262fe74f70e7e52c181d5d098 (patch)
tree33dcb70e608d36460ff7ac0484cc438c7f9a7289 /client/client.c
parentde30342f97490e3a3626c4a5fbf3352d1d0aa9c8 (diff)
downloadbird-e69e4ed9349ee28262fe74f70e7e52c181d5d098.tar
bird-e69e4ed9349ee28262fe74f70e7e52c181d5d098.zip
Support expansion of command abbreviations.
Client considered finished (modulo bugs).
Diffstat (limited to 'client/client.c')
-rw-r--r--client/client.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/client/client.c b/client/client.c
index 9c6b4ae..1e0496e 100644
--- a/client/client.c
+++ b/client/client.c
@@ -79,6 +79,8 @@ extern Function *rl_last_func;
static void
got_line(char *cmd_buffer)
{
+ char *cmd;
+
if (!cmd_buffer)
{
cleanup();
@@ -86,12 +88,22 @@ got_line(char *cmd_buffer)
}
if (cmd_buffer[0])
{
- add_history(cmd_buffer);
- /* FIXME: Builtin commands: exit, ... */
- server_send(cmd_buffer);
- input_hidden = -1;
- io_loop(0);
- input_hidden = 0;
+ cmd = cmd_expand(cmd_buffer);
+ if (cmd)
+ {
+ add_history(cmd);
+ puts(cmd);
+ if (!strcmp(cmd, "exit") || !strcmp(cmd, "quit"))
+ {
+ cleanup();
+ exit(0);
+ }
+ server_send(cmd);
+ input_hidden = -1;
+ io_loop(0);
+ input_hidden = 0;
+ free(cmd);
+ }
}
free(cmd_buffer);
}