[dpdk-dev] lib/cmdline: support backspace key

Message ID 20171115155156.9566-1-xuemingl@mellanox.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Xueming Li Nov. 15, 2017, 3:51 p.m. UTC
  Support windows putty "\b"(Ctrl-H) backspace key.

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
---
 lib/librte_cmdline/cmdline_rdline.c | 1 +
 lib/librte_cmdline/cmdline_vt100.c  | 1 +
 lib/librte_cmdline/cmdline_vt100.h  | 1 +
 3 files changed, 3 insertions(+)
  

Comments

Olivier Matz Dec. 7, 2017, 2:28 p.m. UTC | #1
Hi Xueming,

On Wed, Nov 15, 2017 at 11:51:56PM +0800, Xueming Li wrote:
> Support windows putty "\b"(Ctrl-H) backspace key.
> 
> Signed-off-by: Xueming Li <xuemingl@mellanox.com>
> ---
>  lib/librte_cmdline/cmdline_rdline.c | 1 +
>  lib/librte_cmdline/cmdline_vt100.c  | 1 +
>  lib/librte_cmdline/cmdline_vt100.h  | 1 +
>  3 files changed, 3 insertions(+)
> 
> diff --git a/lib/librte_cmdline/cmdline_rdline.c b/lib/librte_cmdline/cmdline_rdline.c
> index 1ef2258d0..167657f4b 100644
> --- a/lib/librte_cmdline/cmdline_rdline.c
> +++ b/lib/librte_cmdline/cmdline_rdline.c
> @@ -331,6 +331,7 @@ rdline_char_in(struct rdline *rdl, char c)
>  
>  		/* delete 1 char from the left */
>  		case CMDLINE_KEY_BKSPACE:
> +		case CMDLINE_KEY_BKSPACE1:
>  			if(!cirbuf_del_tail_safe(&rdl->left)) {
>  				rdline_puts(rdl, vt100_bs);
>  				display_right_buffer(rdl, 1);

I would have used CMDLINE_KEY_BKSPACE2 instead of CMDLINE_KEY_BKSPACE1 :)

> diff --git a/lib/librte_cmdline/cmdline_vt100.c b/lib/librte_cmdline/cmdline_vt100.c
> index a253e8b6c..bb317507e 100644
> --- a/lib/librte_cmdline/cmdline_vt100.c
> +++ b/lib/librte_cmdline/cmdline_vt100.c
> @@ -95,6 +95,7 @@ const char *cmdline_vt100_commands[] = {
>  	"\020",
>  	"\016",
>  	"\033\144",
> +	"\b",
>  };
>  
>  void

You can reuse vt100_bs instead of '\b', which is defined in
cmdline_vt100.h (note that '\010' == '\b')


Thanks
Olivier
  

Patch

diff --git a/lib/librte_cmdline/cmdline_rdline.c b/lib/librte_cmdline/cmdline_rdline.c
index 1ef2258d0..167657f4b 100644
--- a/lib/librte_cmdline/cmdline_rdline.c
+++ b/lib/librte_cmdline/cmdline_rdline.c
@@ -331,6 +331,7 @@  rdline_char_in(struct rdline *rdl, char c)
 
 		/* delete 1 char from the left */
 		case CMDLINE_KEY_BKSPACE:
+		case CMDLINE_KEY_BKSPACE1:
 			if(!cirbuf_del_tail_safe(&rdl->left)) {
 				rdline_puts(rdl, vt100_bs);
 				display_right_buffer(rdl, 1);
diff --git a/lib/librte_cmdline/cmdline_vt100.c b/lib/librte_cmdline/cmdline_vt100.c
index a253e8b6c..bb317507e 100644
--- a/lib/librte_cmdline/cmdline_vt100.c
+++ b/lib/librte_cmdline/cmdline_vt100.c
@@ -95,6 +95,7 @@  const char *cmdline_vt100_commands[] = {
 	"\020",
 	"\016",
 	"\033\144",
+	"\b",
 };
 
 void
diff --git a/lib/librte_cmdline/cmdline_vt100.h b/lib/librte_cmdline/cmdline_vt100.h
index 963add8df..c803734fa 100644
--- a/lib/librte_cmdline/cmdline_vt100.h
+++ b/lib/librte_cmdline/cmdline_vt100.h
@@ -117,6 +117,7 @@  extern "C" {
 #define CMDLINE_KEY_CTRL_P 23
 #define CMDLINE_KEY_CTRL_N 24
 #define CMDLINE_KEY_META_D 25
+#define CMDLINE_KEY_BKSPACE1 26
 
 extern const char *cmdline_vt100_commands[];