aboutsummaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2022-03-14 22:38:24 +0000
committerMichael Brown <mcb30@ipxe.org>2022-03-15 17:27:18 +0000
commitba93c9134ce9d9edcba117b690fbbdd35b3e066b (patch)
tree91e226e7af8ffda69ac68e16a7be03778128e4d0 /src/core
parent2ff3385e0078edda43e13ebfc9978fbcc5db311a (diff)
downloadipxe-ba93c9134ce9d9edcba117b690fbbdd35b3e066b.tar.gz
[fbcon] Support Unicode character output
Accumulate UTF-8 characters in fbcon_putchar(), and require the frame buffer console's .glyph() method to accept Unicode character values. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/fbcon.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/fbcon.c b/src/core/fbcon.c
index 44a56e105..ff3132ac7 100644
--- a/src/core/fbcon.c
+++ b/src/core/fbcon.c
@@ -446,6 +446,11 @@ void fbcon_putchar ( struct fbcon *fbcon, int character ) {
if ( character < 0 )
return;
+ /* Accumulate Unicode characters */
+ character = utf8_accumulate ( &fbcon->utf8, character );
+ if ( character == 0 )
+ return;
+
/* Handle control characters */
switch ( character ) {
case '\r':