Allow using up to a UTF-32 codepoint as a password asterisk (closes #715)

Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
AnErrupTion
2025-03-06 21:16:24 +01:00
parent f2ca72eace
commit e19a23b54c
4 changed files with 6 additions and 4 deletions

View File

@@ -28,6 +28,8 @@ animation = none
animation_timeout_sec = 0 animation_timeout_sec = 0
# The character used to mask the password # The character used to mask the password
# You can either type it directly as a UTF-8 character (like *), or use a UTF-32
# codepoint (for example 0x2022 for a bullet point)
# If null, the password will be hidden # If null, the password will be hidden
# Note: you can use a # by escaping it like so: \# # Note: you can use a # by escaping it like so: \#
asterisk = * asterisk = *

View File

@@ -8,7 +8,7 @@ const Bigclock = enums.Bigclock;
animation: Animation = .none, animation: Animation = .none,
animation_timeout_sec: u12 = 0, animation_timeout_sec: u12 = 0,
asterisk: ?u8 = '*', asterisk: ?u32 = '*',
auth_fails: u64 = 10, auth_fails: u64 = 10,
bg: u32 = 0x00000000, bg: u32 = 0x00000000,
bigclock: Bigclock = .none, bigclock: Bigclock = .none,

View File

@@ -202,7 +202,7 @@ pub fn drawConfinedLabel(self: TerminalBuffer, text: []const u8, x: usize, y: us
} }
} }
pub fn drawCharMultiple(self: TerminalBuffer, char: u8, x: usize, y: usize, length: usize) void { pub fn drawCharMultiple(self: TerminalBuffer, char: u32, x: usize, y: usize, length: usize) void {
const cell = utils.initCell(char, self.fg, self.bg); const cell = utils.initCell(char, self.fg, self.bg);
for (0..length) |xx| utils.putCell(x + xx, y, cell); for (0..length) |xx| utils.putCell(x + xx, y, cell);
} }

View File

@@ -19,9 +19,9 @@ visible_length: usize,
x: usize, x: usize,
y: usize, y: usize,
masked: bool, masked: bool,
maybe_mask: ?u8, maybe_mask: ?u32,
pub fn init(allocator: Allocator, buffer: *TerminalBuffer, masked: bool, maybe_mask: ?u8) Text { pub fn init(allocator: Allocator, buffer: *TerminalBuffer, masked: bool, maybe_mask: ?u32) Text {
const text = DynamicString.init(allocator); const text = DynamicString.init(allocator);
return .{ return .{