aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/pkg/fontconfig/char_set.zig
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-04 19:22:04 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-05 01:23:06 +0300
commit41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch)
tree3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/pkg/fontconfig/char_set.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/pkg/fontconfig/char_set.zig')
-rw-r--r--vendor/libghostty-vt/pkg/fontconfig/char_set.zig40
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/pkg/fontconfig/char_set.zig b/vendor/libghostty-vt/pkg/fontconfig/char_set.zig
new file mode 100644
index 00000000..b0e3a341
--- /dev/null
+++ b/vendor/libghostty-vt/pkg/fontconfig/char_set.zig
@@ -0,0 +1,40 @@
+const std = @import("std");
+const assert = std.debug.assert;
+const c = @import("c.zig").c;
+
+pub const CharSet = opaque {
+ pub fn create() *CharSet {
+ return @ptrCast(c.FcCharSetCreate());
+ }
+
+ pub fn destroy(self: *CharSet) void {
+ c.FcCharSetDestroy(self.cval());
+ }
+
+ pub fn addChar(self: *CharSet, cp: u32) bool {
+ return c.FcCharSetAddChar(self.cval(), cp) == c.FcTrue;
+ }
+
+ pub fn hasChar(self: *const CharSet, cp: u32) bool {
+ return c.FcCharSetHasChar(self.cvalConst(), cp) == c.FcTrue;
+ }
+
+ pub inline fn cval(self: *CharSet) *c.struct__FcCharSet {
+ return @ptrCast(self);
+ }
+
+ pub inline fn cvalConst(self: *const CharSet) *const c.struct__FcCharSet {
+ return @ptrCast(self);
+ }
+};
+
+test "create" {
+ const testing = std.testing;
+
+ var fs = CharSet.create();
+ defer fs.destroy();
+
+ try testing.expect(!fs.hasChar(0x20));
+ try testing.expect(fs.addChar(0x20));
+ try testing.expect(fs.hasChar(0x20));
+}