diff options
-rw-r--r-- | src/libsystemd-terminal/unifont.c | 18 | ||||
-rw-r--r-- | src/libsystemd-terminal/unifont.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/libsystemd-terminal/unifont.c b/src/libsystemd-terminal/unifont.c index 7520015988..2acfa9821a 100644 --- a/src/libsystemd-terminal/unifont.c +++ b/src/libsystemd-terminal/unifont.c @@ -221,3 +221,21 @@ int unifont_lookup(unifont *u, unifont_glyph *out, uint32_t ucs4) { memcpy(out, &g, sizeof(g)); return 0; } + +void unifont_fallback(unifont_glyph *out) { + static const uint8_t fallback_data[] = { + /* unifont 0xfffd '�' (unicode replacement character) */ + 0x00, 0x00, 0x00, 0x7e, + 0x66, 0x5a, 0x5a, 0x7a, + 0x76, 0x76, 0x7e, 0x76, + 0x76, 0x7e, 0x00, 0x00, + }; + + assert(out); + + out->width = 8; + out->height = 16; + out->stride = 1; + out->cwidth = 1; + out->data = fallback_data; +} diff --git a/src/libsystemd-terminal/unifont.h b/src/libsystemd-terminal/unifont.h index 0ded61472f..30527cb3fa 100644 --- a/src/libsystemd-terminal/unifont.h +++ b/src/libsystemd-terminal/unifont.h @@ -54,3 +54,4 @@ unsigned int unifont_get_width(unifont *u); unsigned int unifont_get_height(unifont *u); unsigned int unifont_get_stride(unifont *u); int unifont_lookup(unifont *u, unifont_glyph *out, uint32_t ucs4); +void unifont_fallback(unifont_glyph *out); |