diff --git a/src/types/persons.rs b/src/types/persons.rs index 020dc96..c9222e6 100644 --- a/src/types/persons.rs +++ b/src/types/persons.rs @@ -257,7 +257,11 @@ impl Person { } collect = true; - buf.write_char(if with_hyphen { c } else { ' ' })?; + if with_hyphen && c == '-' { + buf.write_char(c)?; + } else if delimiter.is_some() { + buf.write_char(' ')?; + } } continue; } @@ -533,6 +537,11 @@ mod tests { p.initials(&mut s, Some("."), true).unwrap(); assert_eq!("C. D.", s); + let mut s = String::new(); + let p = Person::from_strings(vec!["Dissmer", "Courtney Deliah"]).unwrap(); + p.initials(&mut s, None, true).unwrap(); + assert_eq!("CD", s); + let mut s = String::new(); let p = Person::from_strings(vec!["Günther", "Hans-Joseph"]).unwrap(); p.initials(&mut s, None, true).unwrap();