chiark / gitweb /
build-sys: mark systemd-firstboot man page as conditional
[elogind.git] / src / libsystemd-terminal / unifont.c
index 9e0f718665fb8b2eda2ac2434dc7efe1d10fbb40..2acfa9821ab2520e19f2604b25d025adaaba2c2f 100644 (file)
@@ -37,7 +37,7 @@
 #include <unistd.h>
 #include "macro.h"
 #include "unifont-def.h"
-#include "unifont-internal.h"
+#include "unifont.h"
 #include "util.h"
 
 struct unifont {
@@ -181,6 +181,18 @@ unifont *unifont_unref(unifont *u) {
         return NULL;
 }
 
+unsigned int unifont_get_width(unifont *u) {
+        assert(u);
+
+        return 8U;
+}
+
+unsigned int unifont_get_height(unifont *u) {
+        assert(u);
+
+        return 16U;
+}
+
 unsigned int unifont_get_stride(unifont *u) {
         assert(u);
 
@@ -209,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;
+}