* [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