@@ -190,9 +190,7 @@ fn remove_ascii_ctrl(t: &mut String) {
190
190
}
191
191
192
192
fn remove_trailing_blanks ( t : & mut String ) {
193
- if let Some ( last) = t. rfind ( |c| c != ' ' ) {
194
- t. truncate ( last + 1 ) ;
195
- }
193
+ t. truncate ( t. trim_end ( ) . len ( ) ) ;
196
194
}
197
195
198
196
/// Replace all ASCII control codes with blank.
@@ -775,18 +773,23 @@ mod tests {
775
773
let mut s1 = String :: from ( "" ) ;
776
774
let mut s2 = String :: from ( " a b c " ) ;
777
775
let mut s3 = String :: from ( "\0 a\t b\r c\r \n " ) ;
776
+ let mut s4 = String :: from ( "abc\u{b3} " ) ;
778
777
remove_ascii_ctrl ( & mut s1) ;
779
778
remove_ascii_ctrl ( & mut s2) ;
780
779
remove_ascii_ctrl ( & mut s3) ;
780
+ remove_ascii_ctrl ( & mut s4) ;
781
781
assert_eq ! ( s1, String :: from( "" ) ) ;
782
782
assert_eq ! ( s2, String :: from( " a b c " ) ) ;
783
783
assert_eq ! ( s3, String :: from( " a b c " ) ) ;
784
+ assert_eq ! ( s4, String :: from( "abc\u{b3} " ) ) ;
784
785
remove_trailing_blanks ( & mut s1) ;
785
786
remove_trailing_blanks ( & mut s2) ;
786
787
remove_trailing_blanks ( & mut s3) ;
788
+ remove_trailing_blanks ( & mut s4) ;
787
789
assert_eq ! ( s1, String :: from( "" ) ) ;
788
790
assert_eq ! ( s2, String :: from( " a b c" ) ) ;
789
791
assert_eq ! ( s3, String :: from( " a b c" ) ) ;
792
+ assert_eq ! ( s4, String :: from( "abc\u{b3} " ) ) ;
790
793
}
791
794
792
795
#[ test]
0 commit comments