2017-09-18 09:23:25

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ] tools: Only add unique entries to readline history

From: Luiz Augusto von Dentz <[email protected]>

Don't add duplicate commands to historym this is similar to what
HISTCONTROL=ignoredups does.
---
client/main.c | 3 ++-
tools/bluetooth-player.c | 4 +++-
tools/btmgmt.c | 3 ++-
tools/obex-client-tool.c | 3 ++-
tools/obexctl.c | 3 ++-
5 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/client/main.c b/client/main.c
index 2cb449fd5..282e84003 100644
--- a/client/main.c
+++ b/client/main.c
@@ -2644,7 +2644,8 @@ static void rl_handler(char *input)
if (!rl_release_prompt(input))
goto done;

- add_history(input);
+ if (history_search(input, -1))
+ add_history(input);

cmd = strtok_r(input, " ", &arg);
if (!cmd)
diff --git a/tools/bluetooth-player.c b/tools/bluetooth-player.c
index 9e199970d..c95b7497f 100644
--- a/tools/bluetooth-player.c
+++ b/tools/bluetooth-player.c
@@ -1086,7 +1086,9 @@ static void rl_handler(char *input)
goto done;

g_strstrip(input);
- add_history(input);
+
+ if (history_search(input, -1))
+ add_history(input);

argv = g_strsplit(input, " ", -1);
if (argv == NULL)
diff --git a/tools/btmgmt.c b/tools/btmgmt.c
index e7ea69937..e454d864d 100644
--- a/tools/btmgmt.c
+++ b/tools/btmgmt.c
@@ -4664,7 +4664,8 @@ static void rl_handler(char *input)
if (prompt_input(input))
goto done;

- add_history(input);
+ if (history_search(input, -1))
+ add_history(input);

if (wordexp(input, &w, WRDE_NOCMD))
goto done;
diff --git a/tools/obex-client-tool.c b/tools/obex-client-tool.c
index d0ba8a651..d74ac77a1 100644
--- a/tools/obex-client-tool.c
+++ b/tools/obex-client-tool.c
@@ -242,7 +242,8 @@ static void parse_line(char *line_read)
return;
}

- add_history(line_read);
+ if (history_search(input, -1))
+ add_history(input);

g_shell_parse_argv(line_read, &argcp, &argvp, NULL);

diff --git a/tools/obexctl.c b/tools/obexctl.c
index 46943d682..ece50f682 100644
--- a/tools/obexctl.c
+++ b/tools/obexctl.c
@@ -2081,7 +2081,8 @@ static void rl_handler(char *input)
if (!strlen(input))
goto done;

- add_history(input);
+ if (history_search(input, -1))
+ add_history(input);

if (wordexp(input, &w, WRDE_NOCMD))
goto done;
--
2.13.5



2017-09-20 12:49:42

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ] tools: Only add unique entries to readline history

Hi,

On Tue, Sep 19, 2017 at 10:08 AM, Luiz Augusto von Dentz
<[email protected]> wrote:
> Hi Eramoto,
>
> On Tue, Sep 19, 2017 at 5:14 AM, ERAMOTO Masaya
> <[email protected]> wrote:
>> Hi Luiz,
>>
>> On 09/18/2017 06:23 PM, Luiz Augusto von Dentz wrote:
>>> From: Luiz Augusto von Dentz <[email protected]>
>>>
>>> Don't add duplicate commands to historym this is similar to what
>>> HISTCONTROL=ignoredups does.
>>> ---
>>> client/main.c | 3 ++-
>>> tools/bluetooth-player.c | 4 +++-
>>> tools/btmgmt.c | 3 ++-
>>> tools/obex-client-tool.c | 3 ++-
>>> tools/obexctl.c | 3 ++-
>>> 5 files changed, 11 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/client/main.c b/client/main.c
>>> index 2cb449fd5..282e84003 100644
>>> --- a/client/main.c
>>> +++ b/client/main.c
>>> @@ -2644,7 +2644,8 @@ static void rl_handler(char *input)
>>> if (!rl_release_prompt(input))
>>> goto done;
>>>
>>> - add_history(input);
>>> + if (history_search(input, -1))
>>> + add_history(input);
>>>
>>
>> I think it is better to add g_strstrip(), since this patch adds a
>> command typed all characters to history and then adds the complemented
>> command to history when it have white-space.
>
> Yep, but as a separate change, this part of handling should really go
> into a common code so we don't have to keep duplicating this on every
> tool.
>
>>> cmd = strtok_r(input, " ", &arg);
>>> if (!cmd)
>>> diff --git a/tools/bluetooth-player.c b/tools/bluetooth-player.c
>>> index 9e199970d..c95b7497f 100644
>>> --- a/tools/bluetooth-player.c
>>> +++ b/tools/bluetooth-player.c
>>> @@ -1086,7 +1086,9 @@ static void rl_handler(char *input)
>>> goto done;
>>>
>>> g_strstrip(input);
>>> - add_history(input);
>>> +
>>> + if (history_search(input, -1))
>>> + add_history(input);
>>>
>>> argv = g_strsplit(input, " ", -1);
>>> if (argv == NULL)
>>> diff --git a/tools/btmgmt.c b/tools/btmgmt.c
>>> index e7ea69937..e454d864d 100644
>>> --- a/tools/btmgmt.c
>>> +++ b/tools/btmgmt.c
>>> @@ -4664,7 +4664,8 @@ static void rl_handler(char *input)
>>> if (prompt_input(input))
>>> goto done;
>>>
>>> - add_history(input);
>>> + if (history_search(input, -1))
>>> + add_history(input);
>>>
>>> if (wordexp(input, &w, WRDE_NOCMD))
>>> goto done;
>>> diff --git a/tools/obex-client-tool.c b/tools/obex-client-tool.c
>>> index d0ba8a651..d74ac77a1 100644
>>> --- a/tools/obex-client-tool.c
>>> +++ b/tools/obex-client-tool.c
>>> @@ -242,7 +242,8 @@ static void parse_line(char *line_read)
>>> return;
>>> }
>>>
>>> - add_history(line_read);
>>> + if (history_search(input, -1))
>>> + add_history(input);
>>
>> line_read is correct.
>
> Good catch, will fix it.
>
>>>
>>> g_shell_parse_argv(line_read, &argcp, &argvp, NULL);
>>>
>>> diff --git a/tools/obexctl.c b/tools/obexctl.c
>>> index 46943d682..ece50f682 100644
>>> --- a/tools/obexctl.c
>>> +++ b/tools/obexctl.c
>>> @@ -2081,7 +2081,8 @@ static void rl_handler(char *input)
>>> if (!strlen(input))
>>> goto done;
>>>
>>> - add_history(input);
>>> + if (history_search(input, -1))
>>> + add_history(input);
>>>
>>> if (wordexp(input, &w, WRDE_NOCMD))
>>> goto done;
>>>
>>
>>
>> Regards,
>> Eramoto
>>

Applied.

--
Luiz Augusto von Dentz

2017-09-19 07:08:35

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ] tools: Only add unique entries to readline history

Hi Eramoto,

On Tue, Sep 19, 2017 at 5:14 AM, ERAMOTO Masaya
<[email protected]> wrote:
> Hi Luiz,
>
> On 09/18/2017 06:23 PM, Luiz Augusto von Dentz wrote:
>> From: Luiz Augusto von Dentz <[email protected]>
>>
>> Don't add duplicate commands to historym this is similar to what
>> HISTCONTROL=ignoredups does.
>> ---
>> client/main.c | 3 ++-
>> tools/bluetooth-player.c | 4 +++-
>> tools/btmgmt.c | 3 ++-
>> tools/obex-client-tool.c | 3 ++-
>> tools/obexctl.c | 3 ++-
>> 5 files changed, 11 insertions(+), 5 deletions(-)
>>
>> diff --git a/client/main.c b/client/main.c
>> index 2cb449fd5..282e84003 100644
>> --- a/client/main.c
>> +++ b/client/main.c
>> @@ -2644,7 +2644,8 @@ static void rl_handler(char *input)
>> if (!rl_release_prompt(input))
>> goto done;
>>
>> - add_history(input);
>> + if (history_search(input, -1))
>> + add_history(input);
>>
>
> I think it is better to add g_strstrip(), since this patch adds a
> command typed all characters to history and then adds the complemented
> command to history when it have white-space.

Yep, but as a separate change, this part of handling should really go
into a common code so we don't have to keep duplicating this on every
tool.

>> cmd = strtok_r(input, " ", &arg);
>> if (!cmd)
>> diff --git a/tools/bluetooth-player.c b/tools/bluetooth-player.c
>> index 9e199970d..c95b7497f 100644
>> --- a/tools/bluetooth-player.c
>> +++ b/tools/bluetooth-player.c
>> @@ -1086,7 +1086,9 @@ static void rl_handler(char *input)
>> goto done;
>>
>> g_strstrip(input);
>> - add_history(input);
>> +
>> + if (history_search(input, -1))
>> + add_history(input);
>>
>> argv = g_strsplit(input, " ", -1);
>> if (argv == NULL)
>> diff --git a/tools/btmgmt.c b/tools/btmgmt.c
>> index e7ea69937..e454d864d 100644
>> --- a/tools/btmgmt.c
>> +++ b/tools/btmgmt.c
>> @@ -4664,7 +4664,8 @@ static void rl_handler(char *input)
>> if (prompt_input(input))
>> goto done;
>>
>> - add_history(input);
>> + if (history_search(input, -1))
>> + add_history(input);
>>
>> if (wordexp(input, &w, WRDE_NOCMD))
>> goto done;
>> diff --git a/tools/obex-client-tool.c b/tools/obex-client-tool.c
>> index d0ba8a651..d74ac77a1 100644
>> --- a/tools/obex-client-tool.c
>> +++ b/tools/obex-client-tool.c
>> @@ -242,7 +242,8 @@ static void parse_line(char *line_read)
>> return;
>> }
>>
>> - add_history(line_read);
>> + if (history_search(input, -1))
>> + add_history(input);
>
> line_read is correct.

Good catch, will fix it.

>>
>> g_shell_parse_argv(line_read, &argcp, &argvp, NULL);
>>
>> diff --git a/tools/obexctl.c b/tools/obexctl.c
>> index 46943d682..ece50f682 100644
>> --- a/tools/obexctl.c
>> +++ b/tools/obexctl.c
>> @@ -2081,7 +2081,8 @@ static void rl_handler(char *input)
>> if (!strlen(input))
>> goto done;
>>
>> - add_history(input);
>> + if (history_search(input, -1))
>> + add_history(input);
>>
>> if (wordexp(input, &w, WRDE_NOCMD))
>> goto done;
>>
>
>
> Regards,
> Eramoto
>



--
Luiz Augusto von Dentz

2017-09-19 02:14:24

by ERAMOTO Masaya

[permalink] [raw]
Subject: Re: [PATCH BlueZ] tools: Only add unique entries to readline history

Hi Luiz,

On 09/18/2017 06:23 PM, Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> Don't add duplicate commands to historym this is similar to what
> HISTCONTROL=ignoredups does.
> ---
> client/main.c | 3 ++-
> tools/bluetooth-player.c | 4 +++-
> tools/btmgmt.c | 3 ++-
> tools/obex-client-tool.c | 3 ++-
> tools/obexctl.c | 3 ++-
> 5 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/client/main.c b/client/main.c
> index 2cb449fd5..282e84003 100644
> --- a/client/main.c
> +++ b/client/main.c
> @@ -2644,7 +2644,8 @@ static void rl_handler(char *input)
> if (!rl_release_prompt(input))
> goto done;
>
> - add_history(input);
> + if (history_search(input, -1))
> + add_history(input);
>

I think it is better to add g_strstrip(), since this patch adds a
command typed all characters to history and then adds the complemented
command to history when it have white-space.

> cmd = strtok_r(input, " ", &arg);
> if (!cmd)
> diff --git a/tools/bluetooth-player.c b/tools/bluetooth-player.c
> index 9e199970d..c95b7497f 100644
> --- a/tools/bluetooth-player.c
> +++ b/tools/bluetooth-player.c
> @@ -1086,7 +1086,9 @@ static void rl_handler(char *input)
> goto done;
>
> g_strstrip(input);
> - add_history(input);
> +
> + if (history_search(input, -1))
> + add_history(input);
>
> argv = g_strsplit(input, " ", -1);
> if (argv == NULL)
> diff --git a/tools/btmgmt.c b/tools/btmgmt.c
> index e7ea69937..e454d864d 100644
> --- a/tools/btmgmt.c
> +++ b/tools/btmgmt.c
> @@ -4664,7 +4664,8 @@ static void rl_handler(char *input)
> if (prompt_input(input))
> goto done;
>
> - add_history(input);
> + if (history_search(input, -1))
> + add_history(input);
>
> if (wordexp(input, &w, WRDE_NOCMD))
> goto done;
> diff --git a/tools/obex-client-tool.c b/tools/obex-client-tool.c
> index d0ba8a651..d74ac77a1 100644
> --- a/tools/obex-client-tool.c
> +++ b/tools/obex-client-tool.c
> @@ -242,7 +242,8 @@ static void parse_line(char *line_read)
> return;
> }
>
> - add_history(line_read);
> + if (history_search(input, -1))
> + add_history(input);

line_read is correct.

>
> g_shell_parse_argv(line_read, &argcp, &argvp, NULL);
>
> diff --git a/tools/obexctl.c b/tools/obexctl.c
> index 46943d682..ece50f682 100644
> --- a/tools/obexctl.c
> +++ b/tools/obexctl.c
> @@ -2081,7 +2081,8 @@ static void rl_handler(char *input)
> if (!strlen(input))
> goto done;
>
> - add_history(input);
> + if (history_search(input, -1))
> + add_history(input);
>
> if (wordexp(input, &w, WRDE_NOCMD))
> goto done;
>


Regards,
Eramoto