diff options
author | Raphael S.Carvalho <raphael.scarv@gmail.com> | 2013-09-17 16:52:10 -0300 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2013-09-30 15:18:31 +0100 |
commit | 4ebdc72e001a4bd9f7280e0599e78be116740382 (patch) | |
tree | ba099685c441c3b2e17e45591459db9eccdcba42 | |
parent | f8d12e155ba38e9887bba4389a3d386978722044 (diff) | |
download | syslinux-4ebdc72e001a4bd9f7280e0599e78be116740382.tar.gz syslinux-4ebdc72e001a4bd9f7280e0599e78be116740382.tar.xz syslinux-4ebdc72e001a4bd9f7280e0599e78be116740382.zip |
com32: Fix a bug on history of commands.
Previously, even zero-length commands would be added to the history when
they shoudn't, e.g: just typing enter.
For example, if you type: FOO -> (ENTER) -> (ENTER),
then to get FOO from the history you would have to press the UP key
twice. It also saves a bit of memory.
Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r-- | com32/elflink/ldlinux/cli.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/com32/elflink/ldlinux/cli.c b/com32/elflink/ldlinux/cli.c index a50124c3..6ff30c64 100644 --- a/com32/elflink/ldlinux/cli.c +++ b/com32/elflink/ldlinux/cli.c @@ -461,11 +461,14 @@ const char *edit_cmdline(const char *input, int top /*, int width */ , printf("\033[?7h"); - /* Add the command to the history */ - comm_counter = malloc(sizeof(struct cli_command)); - comm_counter->command = malloc(sizeof(char) * (strlen(ret) + 1)); - strcpy(comm_counter->command, ret); - list_add(&(comm_counter->list), &cli_history_head); + /* Add the command to the history if its length is larger than 0 */ + len = strlen(ret); + if (len > 0) { + comm_counter = malloc(sizeof(struct cli_command)); + comm_counter->command = malloc(sizeof(char) * (len + 1)); + strcpy(comm_counter->command, ret); + list_add(&(comm_counter->list), &cli_history_head); + } return len ? ret : NULL; } |