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>
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",
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);
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");