From 09bc7a7c9ed9b42e2fd245c084ecd5323c479081 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 9 May 2021 15:21:23 -0700 Subject: [PATCH] enforce that params need to be comptime known for make_csi_sequence --- src/lib.zig | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/lib.zig b/src/lib.zig index c2db394242cb48beab0c67732f28f83b0b55bbae..c1296a1757c548135b6e9d86d3e1f9fe099ce0fd 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -52,7 +52,7 @@ pub const escape = struct { pub const RIS = ascii.ESC.s() ++ "c"; }; -fn make_csi_sequence(comptime c: []const u8, x: anytype) []const u8 { +fn make_csi_sequence(comptime c: []const u8, comptime x: anytype) []const u8 { return escape.CSI ++ _join(";", arr_i_to_s(x)) ++ c; } @@ -65,20 +65,20 @@ fn arr_i_to_s(x: anytype) [][]const u8 { } pub const csi = struct { - pub fn CursorUp(n: i32) []const u8 { return make_csi_sequence("A", .{n}); } - pub fn CursorDown(n: i32) []const u8 { return make_csi_sequence("B", .{n}); } - pub fn CursorForward(n: i32) []const u8 { return make_csi_sequence("C", .{n}); } - pub fn CursorBack(n: i32) []const u8 { return make_csi_sequence("D", .{n}); } - pub fn CursorNextLine(n: i32) []const u8 { return make_csi_sequence("E", .{n}); } - pub fn CursorPrevLine(n: i32) []const u8 { return make_csi_sequence("F", .{n}); } - pub fn CursorHorzAbs(n: i32) []const u8 { return make_csi_sequence("G", .{n}); } - pub fn CursorPos(n: i32, m: i32) []const u8 { return make_csi_sequence("H", .{n, m}); } - pub fn EraseInDisplay(n: i32) []const u8 { return make_csi_sequence("J", .{n}); } - pub fn EraseInLine(n: i32) []const u8 { return make_csi_sequence("K", .{n}); } - pub fn ScrollUp(n: i32) []const u8 { return make_csi_sequence("S", .{n}); } - pub fn ScrollDown(n: i32) []const u8 { return make_csi_sequence("T", .{n}); } - pub fn HorzVertPos(n: i32, m: i32) []const u8 { return make_csi_sequence("f", .{n, m}); } - pub fn SGR(ns: anytype) []const u8 { return make_csi_sequence("m", ns); } + pub fn CursorUp(comptime n: i32) []const u8 { return make_csi_sequence("A", .{n}); } + pub fn CursorDown(comptime n: i32) []const u8 { return make_csi_sequence("B", .{n}); } + pub fn CursorForward(comptime n: i32) []const u8 { return make_csi_sequence("C", .{n}); } + pub fn CursorBack(comptime n: i32) []const u8 { return make_csi_sequence("D", .{n}); } + pub fn CursorNextLine(comptime n: i32) []const u8 { return make_csi_sequence("E", .{n}); } + pub fn CursorPrevLine(comptime n: i32) []const u8 { return make_csi_sequence("F", .{n}); } + pub fn CursorHorzAbs(comptime n: i32) []const u8 { return make_csi_sequence("G", .{n}); } + pub fn CursorPos(comptime n: i32, m: i32) []const u8 { return make_csi_sequence("H", .{n, m}); } + pub fn EraseInDisplay(comptime n: i32) []const u8 { return make_csi_sequence("J", .{n}); } + pub fn EraseInLine(comptime n: i32) []const u8 { return make_csi_sequence("K", .{n}); } + pub fn ScrollUp(comptime n: i32) []const u8 { return make_csi_sequence("S", .{n}); } + pub fn ScrollDown(comptime n: i32) []const u8 { return make_csi_sequence("T", .{n}); } + pub fn HorzVertPos(comptime n: i32, m: i32) []const u8 { return make_csi_sequence("f", .{n, m}); } + pub fn SGR(comptime ns: anytype) []const u8 { return make_csi_sequence("m", ns); } }; pub const style = struct { -- 2.54.0