filterOut
Remove all instances of the string needle. Designed to run after event processing and before drawing.
Parameters
- self:*TextEntryWidget
- *TextEntryWidget
- needle:[]const u8
- []const u8
Source
Implementation
pub fn filterOut(self: *TextEntryWidget, needle: []const u8) void {
if (needle.len == 0) {
return;
}
var i: usize = 0;
var j: usize = 0;
const n = self.len;
while (i < n) {
if (std.mem.startsWith(u8, self.text[i..], needle)) {
self.len -= needle.len;
var sel = self.textLayout.selection;
if (sel.start > i) sel.start -= needle.len;
if (sel.cursor > i) sel.cursor -= needle.len;
if (sel.end > i) sel.end -= needle.len;
self.text_changed = true;
i += needle.len;
} else {
self.text[j] = self.text[i];
i += 1;
j += 1;
}
}
if (j < self.text.len)
self.text[j] = 0;
}