[syslinux] [PATCH 2/2] com32: Fix a bug on history of commands.
Raphael S Carvalho
raphael.scarv at gmail.com
Sun Sep 15 18:09:31 PDT 2013
On Sun, Sep 15, 2013 at 9:53 PM, Raphael S.Carvalho
<raphael.scarv at gmail.com> wrote:
> Previously, even non-length commands were added to history, but
> it 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.
Matt Fleming, please consider the commit message below instead. It
fixes my grammar mistakes:
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 at gmail.com>
---
>
> Signed-off-by: Raphael S.Carvalho <raphael.scarv at gmail.com>
> ---
> 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 b70224a..d661119 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;
> }
> --
> 1.7.2.5
>
More information about the Syslinux
mailing list