|
@@ -152,11 +152,43 @@ static void efi_handle_sgr ( struct ansiesc_context *ctx __unused,
|
152
|
152
|
conout->SetAttribute ( conout, efi_attr );
|
153
|
153
|
}
|
154
|
154
|
|
|
155
|
+/**
|
|
156
|
+ * Handle ANSI DECTCEM set (show cursor)
|
|
157
|
+ *
|
|
158
|
+ * @v ctx ANSI escape sequence context
|
|
159
|
+ * @v count Parameter count
|
|
160
|
+ * @v params List of graphic rendition aspects
|
|
161
|
+ */
|
|
162
|
+static void efi_handle_dectcem_set ( struct ansiesc_context *ctx __unused,
|
|
163
|
+ unsigned int count __unused,
|
|
164
|
+ int params[] __unused ) {
|
|
165
|
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *conout = efi_systab->ConOut;
|
|
166
|
+
|
|
167
|
+ conout->EnableCursor ( conout, TRUE );
|
|
168
|
+}
|
|
169
|
+
|
|
170
|
+/**
|
|
171
|
+ * Handle ANSI DECTCEM reset (hide cursor)
|
|
172
|
+ *
|
|
173
|
+ * @v ctx ANSI escape sequence context
|
|
174
|
+ * @v count Parameter count
|
|
175
|
+ * @v params List of graphic rendition aspects
|
|
176
|
+ */
|
|
177
|
+static void efi_handle_dectcem_reset ( struct ansiesc_context *ctx __unused,
|
|
178
|
+ unsigned int count __unused,
|
|
179
|
+ int params[] __unused ) {
|
|
180
|
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *conout = efi_systab->ConOut;
|
|
181
|
+
|
|
182
|
+ conout->EnableCursor ( conout, FALSE );
|
|
183
|
+}
|
|
184
|
+
|
155
|
185
|
/** EFI console ANSI escape sequence handlers */
|
156
|
186
|
static struct ansiesc_handler efi_ansiesc_handlers[] = {
|
157
|
187
|
{ ANSIESC_CUP, efi_handle_cup },
|
158
|
188
|
{ ANSIESC_ED, efi_handle_ed },
|
159
|
189
|
{ ANSIESC_SGR, efi_handle_sgr },
|
|
190
|
+ { ANSIESC_DECTCEM_SET, efi_handle_dectcem_set },
|
|
191
|
+ { ANSIESC_DECTCEM_RESET, efi_handle_dectcem_reset },
|
160
|
192
|
{ 0, NULL }
|
161
|
193
|
};
|
162
|
194
|
|