qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts
@ 2024-06-13  8:06 Manos Pitsidianakis
  2024-06-13  8:06 ` [PATCH v1 1/3] util/readline.c:fix lints for readline_handle_byte Manos Pitsidianakis
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Manos Pitsidianakis @ 2024-06-13  8:06 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé

Some commonly used readline shortcuts are missing from our 
implementation. This series adds:

- Control-n next line, same as Down arrow key
- Control-p previous line, same as Up arrow key
- Control-u erase line starting from cursor

Manos Pitsidianakis (3):
  util/readline.c:fix lints for readline_handle_byte
  util/readline.c: add C-n, C-p shortcuts
  util/readline.c: add C-u shortcut

 util/readline.c | 35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)


base-commit: f3e8cc47de2bc537d4991e883a85208e4e1c0f98
-- 
γαῖα πυρί μιχθήτω



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v1 1/3] util/readline.c:fix lints for readline_handle_byte
  2024-06-13  8:06 [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Manos Pitsidianakis
@ 2024-06-13  8:06 ` Manos Pitsidianakis
  2024-06-13  8:06 ` [PATCH v1 2/3] util/readline.c: add C-n, C-p shortcuts Manos Pitsidianakis
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Manos Pitsidianakis @ 2024-06-13  8:06 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé

While they do not give warnings under our current buildsystem
configuration, my clang's language server daemon was complaining about
missing default: labels in switch statements.

While at it, add /* fallthrough */ annotations where appropriate.

This is a purely style and not functional change.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
---
 util/readline.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/util/readline.c b/util/readline.c
index 494a3d924e..ded31b04b7 100644
--- a/util/readline.c
+++ b/util/readline.c
@@ -405,7 +405,7 @@ void readline_handle_byte(ReadLineState *rs, int ch)
         case 12:
             readline_clear_screen(rs);
             break;
-        case 10:
+        case 10: /* fallthrough */
         case 13:
             rs->cmd_buf[rs->cmd_buf_size] = '\0';
             if (!rs->read_password) {
@@ -425,7 +425,7 @@ void readline_handle_byte(ReadLineState *rs, int ch)
         case 27:
             rs->esc_state = IS_ESC;
             break;
-        case 127:
+        case 127: /* fallthrough */
         case 8:
             readline_backspace(rs);
             break;
@@ -452,11 +452,11 @@ void readline_handle_byte(ReadLineState *rs, int ch)
         break;
     case IS_CSI:
         switch (ch) {
-        case 'A':
+        case 'A': /* fallthrough */
         case 'F':
             readline_up_char(rs);
             break;
-        case 'B':
+        case 'B': /* fallthrough */
         case 'E':
             readline_down_char(rs);
             break;
@@ -480,12 +480,15 @@ void readline_handle_byte(ReadLineState *rs, int ch)
             case 4:
                 readline_eol(rs);
                 break;
+            default:
+                break;
             }
             break;
         default:
             break;
         }
         rs->esc_state = IS_NORM;
+        /* fallthrough */
     the_end:
         break;
     case IS_SS3:
@@ -496,9 +499,13 @@ void readline_handle_byte(ReadLineState *rs, int ch)
         case 'H':
             readline_bol(rs);
             break;
+        default:
+            break;
         }
         rs->esc_state = IS_NORM;
         break;
+    default:
+        break;
     }
     readline_update(rs);
 }
-- 
γαῖα πυρί μιχθήτω



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v1 2/3] util/readline.c: add C-n, C-p shortcuts
  2024-06-13  8:06 [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Manos Pitsidianakis
  2024-06-13  8:06 ` [PATCH v1 1/3] util/readline.c:fix lints for readline_handle_byte Manos Pitsidianakis
@ 2024-06-13  8:06 ` Manos Pitsidianakis
  2024-06-13  8:06 ` [PATCH v1 3/3] util/readline.c: add C-u shortcut Manos Pitsidianakis
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Manos Pitsidianakis @ 2024-06-13  8:06 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé

C-n and C-p are the default bindings for readline's next-history and
previous-history respectively. They have the same functionality as the
Down and Up arrow keys.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
---
 util/readline.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/util/readline.c b/util/readline.c
index ded31b04b7..0b627d62ad 100644
--- a/util/readline.c
+++ b/util/readline.c
@@ -418,6 +418,14 @@ void readline_handle_byte(ReadLineState *rs, int ch)
             rs->last_cmd_buf_size = 0;
             rs->readline_func(rs->opaque, rs->cmd_buf, rs->readline_opaque);
             break;
+        case 14:
+            /* ^N Next line in history */
+            readline_down_char(rs);
+            break;
+        case 16:
+            /* ^P Prev line in history */
+            readline_up_char(rs);
+            break;
         case 23:
             /* ^W */
             readline_backword(rs);
-- 
γαῖα πυρί μιχθήτω



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v1 3/3] util/readline.c: add C-u shortcut
  2024-06-13  8:06 [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Manos Pitsidianakis
  2024-06-13  8:06 ` [PATCH v1 1/3] util/readline.c:fix lints for readline_handle_byte Manos Pitsidianakis
  2024-06-13  8:06 ` [PATCH v1 2/3] util/readline.c: add C-n, C-p shortcuts Manos Pitsidianakis
@ 2024-06-13  8:06 ` Manos Pitsidianakis
  2024-06-13 13:08 ` [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Marc-André Lureau
  2024-06-18 10:40 ` Philippe Mathieu-Daudé
  4 siblings, 0 replies; 6+ messages in thread
From: Manos Pitsidianakis @ 2024-06-13  8:06 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé

Add support for the unix-line-discard readline action, which erases from
the cursor position up to the beginning of the line. The default
binding, C-u, was chosen.

This is useful to quickly erase command input while working on the
monitor interface.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
---
 util/readline.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/util/readline.c b/util/readline.c
index 0b627d62ad..0f19674f52 100644
--- a/util/readline.c
+++ b/util/readline.c
@@ -271,6 +271,14 @@ static void readline_hist_add(ReadLineState *rs, const char *cmdline)
     rs->hist_entry = -1;
 }
 
+static void readline_kill_line(ReadLineState *rs)
+{
+    while (rs->cmd_buf_index > 0) {
+        readline_backward_char(rs);
+        readline_delete_char(rs);
+    }
+}
+
 /* completion support */
 
 void readline_add_completion(ReadLineState *rs, const char *str)
@@ -426,6 +434,10 @@ void readline_handle_byte(ReadLineState *rs, int ch)
             /* ^P Prev line in history */
             readline_up_char(rs);
             break;
+        case 21:
+            /* ^U Kill backward from point to the beginning of the line. */
+            readline_kill_line(rs);
+            break;
         case 23:
             /* ^W */
             readline_backword(rs);
-- 
γαῖα πυρί μιχθήτω



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts
  2024-06-13  8:06 [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Manos Pitsidianakis
                   ` (2 preceding siblings ...)
  2024-06-13  8:06 ` [PATCH v1 3/3] util/readline.c: add C-u shortcut Manos Pitsidianakis
@ 2024-06-13 13:08 ` Marc-André Lureau
  2024-06-18 10:40 ` Philippe Mathieu-Daudé
  4 siblings, 0 replies; 6+ messages in thread
From: Marc-André Lureau @ 2024-06-13 13:08 UTC (permalink / raw)
  To: Manos Pitsidianakis; +Cc: qemu-devel, Philippe Mathieu-Daudé

[-- Attachment #1: Type: text/plain, Size: 744 bytes --]

Hi

On Thu, Jun 13, 2024 at 12:07 PM Manos Pitsidianakis <
manos.pitsidianakis@linaro.org> wrote:

> Some commonly used readline shortcuts are missing from our
> implementation. This series adds:
>
> - Control-n next line, same as Down arrow key
> - Control-p previous line, same as Up arrow key
> - Control-u erase line starting from cursor
>
> Manos Pitsidianakis (3):
>   util/readline.c:fix lints for readline_handle_byte
>   util/readline.c: add C-n, C-p shortcuts
>   util/readline.c: add C-u shortcut
>
>  util/readline.c | 35 +++++++++++++++++++++++++++++++----
>  1 file changed, 31 insertions(+), 4 deletions(-)
>
>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>


-- 
Marc-André Lureau

[-- Attachment #2: Type: text/html, Size: 1424 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts
  2024-06-13  8:06 [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Manos Pitsidianakis
                   ` (3 preceding siblings ...)
  2024-06-13 13:08 ` [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Marc-André Lureau
@ 2024-06-18 10:40 ` Philippe Mathieu-Daudé
  4 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-06-18 10:40 UTC (permalink / raw)
  To: Manos Pitsidianakis, qemu-devel

On 13/6/24 10:06, Manos Pitsidianakis wrote:
> Some commonly used readline shortcuts are missing from our
> implementation. This series adds:
> 
> - Control-n next line, same as Down arrow key
> - Control-p previous line, same as Up arrow key
> - Control-u erase line starting from cursor
> 
> Manos Pitsidianakis (3):
>    util/readline.c:fix lints for readline_handle_byte
>    util/readline.c: add C-n, C-p shortcuts
>    util/readline.c: add C-u shortcut

Series queued, thanks.



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-06-18 10:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-13  8:06 [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Manos Pitsidianakis
2024-06-13  8:06 ` [PATCH v1 1/3] util/readline.c:fix lints for readline_handle_byte Manos Pitsidianakis
2024-06-13  8:06 ` [PATCH v1 2/3] util/readline.c: add C-n, C-p shortcuts Manos Pitsidianakis
2024-06-13  8:06 ` [PATCH v1 3/3] util/readline.c: add C-u shortcut Manos Pitsidianakis
2024-06-13 13:08 ` [PATCH v1 0/3] util/readline.c: Add common but missing shortcuts Marc-André Lureau
2024-06-18 10:40 ` Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).