summaryrefslogtreecommitdiff
path: root/src/colors.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/colors.zig')
-rw-r--r--src/colors.zig13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/colors.zig b/src/colors.zig
index bb366fc0..8e608590 100644
--- a/src/colors.zig
+++ b/src/colors.zig
@@ -316,6 +316,19 @@ fn invalidateThemeDependentRasters(p: *Pardes) void {
};
}
+/// Themes whose names share `name`'s first letter, a line of them, for a
+/// Theme given a name there is none of: all of them (ThemeSel) are too many
+/// for a message or a refused write.
+pub fn themesNear(buf: []u8, name: []const u8) []const u8 {
+ var w = std.Io.Writer.fixed(buf);
+ for (themes) |t| {
+ if (name.len > 0 and std.ascii.toLower(t.name[0]) != std.ascii.toLower(name[0])) continue;
+ if (w.buffered().len + t.name.len + 1 > buf.len) break;
+ w.print("{s}{s}", .{ if (w.buffered().len > 0) " " else "", t.name }) catch break;
+ }
+ return w.buffered();
+}
+
pub fn setThemeIndex(p: *Pardes, index: usize) void {
if (index >= themes.len or
(p.custom_theme == null and p.theme_file_path.get().len == 0 and