Raphael S.Carvalho
2013-Sep-16 00:53 UTC
[syslinux] [PATCH 2/2] com32: Fix a bug on history of commands.
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. 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
Raphael S Carvalho
2013-Sep-16 01:09 UTC
[syslinux] [PATCH 2/2] com32: Fix a bug on history of commands.
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 >