monitor: Add clear command
The monitor screen can be cluttered after executing commands like `info qtree`. It is useful to have a command to clear current screen, just like linux `clear` command do. This patch has been tested under monitors using stdio, vc, tcp socket, unix socket and serial interfaces. Signed-off-by: Alano Song <AlanoSong@163.com> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org> Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org> Message-ID: <20260504174914.122607-5-dave@treblig.org> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
committed by
Markus Armbruster
parent
675dd677ea
commit
ea017f67ce
@@ -20,6 +20,20 @@ SRST
|
||||
Show the help for all commands or just for command *cmd*.
|
||||
ERST
|
||||
|
||||
{
|
||||
.name = "clear",
|
||||
.args_type = "",
|
||||
.params = "",
|
||||
.help = "clear the monitor screen",
|
||||
.cmd = hmp_clear,
|
||||
.flags = "p",
|
||||
},
|
||||
|
||||
SRST
|
||||
``clear``
|
||||
Clear the monitor screen.
|
||||
ERST
|
||||
|
||||
{
|
||||
.name = "commit",
|
||||
.args_type = "device:B",
|
||||
|
||||
@@ -165,6 +165,7 @@ void hmp_trace_event(Monitor *mon, const QDict *qdict);
|
||||
void hmp_trace_file(Monitor *mon, const QDict *qdict);
|
||||
void hmp_info_trace_events(Monitor *mon, const QDict *qdict);
|
||||
void hmp_help(Monitor *mon, const QDict *qdict);
|
||||
void hmp_clear(Monitor *mon, const QDict *qdict);
|
||||
void hmp_info_help(Monitor *mon, const QDict *qdict);
|
||||
void hmp_info_sync_profile(Monitor *mon, const QDict *qdict);
|
||||
void hmp_info_history(Monitor *mon, const QDict *qdict);
|
||||
|
||||
@@ -219,6 +219,17 @@ void hmp_help(Monitor *mon, const QDict *qdict)
|
||||
hmp_help_cmd(mon, qdict_get_try_str(qdict, "name"));
|
||||
}
|
||||
|
||||
void hmp_clear(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
/*
|
||||
* Send an ANSI escape sequence:
|
||||
* "\x1b[H" - move cursor to top-left
|
||||
* "\x1b[2J" - clear visible screen
|
||||
* "\x1b[3J" - clear scrollback
|
||||
*/
|
||||
monitor_printf(mon, "\x1b[H\x1b[2J\x1b[3J");
|
||||
}
|
||||
|
||||
void hmp_info_help(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
hmp_help_cmd(mon, "info");
|
||||
|
||||
Reference in New Issue
Block a user