Thanks to Ian for picking this out of Clippy's huge output dump: when
counting the things in a str that EditorCore would regard as
characters, we were using 'map' rather than 'filter' to pick out
things with positive terminal width, which had no effect on the
following .count(). So a Unicode combining character would display an
extra * in the masked password when _not_ editing it, compared to when
editing it.
pub fn count_edit_chars(text: &str) -> usize {
text.chars()
- .map(|c| UnicodeWidthChar::width(c).unwrap_or(0) > 0)
+ .filter(|c| UnicodeWidthChar::width(*c).unwrap_or(0) > 0)
.count()
}