summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNicolas Pitre <npitre@baylibre.com>2026-01-28 01:56:01 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-03-13 11:15:58 +0300
commit5eb608319bb56464674a71b4a66ea65c6c435d64 (patch)
tree05a2a6678533792992d43c01c9cf4f8d2635aeb3 /include
parenta7b9ce39fbe4ae2919fe4f7ac16c293cb6632d30 (diff)
downloadlinux-5eb608319bb56464674a71b4a66ea65c6c435d64.tar.xz
vt: save/restore unicode screen buffer for alternate screen
The alternate screen support added by commit 23743ba64709 ("vt: add support for smput/rmput escape codes") only saves and restores the regular screen buffer (vc_origin), but completely ignores the corresponding unicode screen buffer (vc_uni_lines) creating a messed-up display. Add vc_saved_uni_lines to save the unicode screen buffer when entering the alternate screen, and restore it when leaving. Also ensure proper cleanup in reset_terminal() and vc_deallocate(). Fixes: 23743ba64709 ("vt: add support for smput/rmput escape codes") Cc: stable <stable@kernel.org> Signed-off-by: Nicolas Pitre <npitre@baylibre.com> Link: https://patch.msgid.link/5o2p6qp3-91pq-0p17-or02-1oors4417ns7@onlyvoer.pbz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/console_struct.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/console_struct.h b/include/linux/console_struct.h
index 13b35637bd5a..d5ca855116df 100644
--- a/include/linux/console_struct.h
+++ b/include/linux/console_struct.h
@@ -160,6 +160,7 @@ struct vc_data {
struct uni_pagedict **uni_pagedict_loc; /* [!] Location of uni_pagedict variable for this console */
u32 **vc_uni_lines; /* unicode screen content */
u16 *vc_saved_screen;
+ u32 **vc_saved_uni_lines;
unsigned int vc_saved_cols;
unsigned int vc_saved_rows;
/* additional information is in vt_kern.h */