@@ -1070,26 +1070,6 @@ pub fn subslice_offset(outer: &str, inner: &str) -> uint {
10701070 }
10711071}
10721072
1073- /// Escape each char in `s` with char::escape_default.
1074- pub fn escape_default( s : & str ) -> ~str {
1075- let mut out: ~str = ~"";
1076- out. reserve_at_least ( s. len ( ) ) ;
1077- for s. iter( ) . advance |c| {
1078- out. push_str( char:: escape_default( c) ) ;
1079- }
1080- out
1081- }
1082-
1083- /// Escape each char in `s` with char::escape_unicode.
1084- pub fn escape_unicode( s : & str ) -> ~str {
1085- let mut out: ~str = ~"";
1086- out. reserve_at_least ( s. len ( ) ) ;
1087- for s. iter( ) . advance |c| {
1088- out. push_str( char:: escape_unicode( c) ) ;
1089- }
1090- out
1091- }
1092-
10931073/// Unsafe operations
10941074pub mod raw {
10951075 use cast;
@@ -1588,11 +1568,24 @@ impl<'self> StrSlice<'self> for &'self str {
15881568 }
15891569
15901570 /// Escape each char in `s` with char::escape_default.
1591- #[inline]
1592- fn escape_default(&self) -> ~str { escape_default(*self) }
1571+ fn escape_default(&self) -> ~str {
1572+ let mut out: ~str = ~" ";
1573+ out.reserve_at_least(self.len());
1574+ for self.iter().advance |c| {
1575+ out.push_str(char::escape_default(c));
1576+ }
1577+ out
1578+ }
1579+
15931580 /// Escape each char in `s` with char::escape_unicode.
1594- #[inline]
1595- fn escape_unicode(&self) -> ~str { escape_unicode(*self) }
1581+ fn escape_unicode(&self) -> ~str {
1582+ let mut out: ~str = ~" ";
1583+ out.reserve_at_least(self.len());
1584+ for self.iter().advance |c| {
1585+ out.push_str(char::escape_unicode(c));
1586+ }
1587+ out
1588+ }
15961589
15971590 /// Returns a string with leading and trailing whitespace removed
15981591 #[inline]
@@ -3176,30 +3169,27 @@ mod tests {
31763169
31773170 #[test]
31783171 fn test_escape_unicode() {
3179- assert_eq!(escape_unicode(" abc"), ~"\\ x61\\ x62\\ x63" ) ;
3180- assert_eq!( escape_unicode( "a c" ) , ~"\\ x61\\ x20\\ x63");
3181- assert_eq!(escape_unicode("\r \n \t " ) , ~"\\ x0d\\ x0a\\ x09");
3182- assert_eq!(escape_unicode(" ' \" \\ ") , ~"\\ x27\\ x22\\ x5c");
3183- assert!(escape_unicode("\x00 \x01 \xfe \xff " ) ==
3184- ~"\\ x00\\ x01\\ xfe\\ xff");
3185- assert_eq!(escape_unicode("\u0100 \uffff " ) , ~"\\ u0100\\ uffff");
3186- assert!(escape_unicode("\U 00010000\U 0010ffff" ) ==
3187- ~"\\ U00010000 \\ U0010ffff ");
3188- assert_eq!(escape_unicode(" ab\ufb00 ") , ~"\\ x61\\ x62\\ ufb00");
3189- assert_eq!(escape_unicode("\U 0001d4ea\r " ) , ~"\\ U0001d4ea \\ x0d");
3172+ assert_eq!(" abc".escape_unicode(), ~"\\ x61\\ x62\\ x63" ) ;
3173+ assert_eq!( "a c" . escape_unicode( ) , ~"\\ x61\\ x20\\ x63");
3174+ assert_eq!("\r \n \t " . escape_unicode( ) , ~"\\ x0d\\ x0a\\ x09");
3175+ assert_eq!(" ' \" \\ ". escape_unicode( ) , ~"\\ x27\\ x22\\ x5c");
3176+ assert_eq!("\x00 \x01 \xfe \xff " . escape_unicode( ) , ~"\\ x00\\ x01\\ xfe\\ xff");
3177+ assert_eq!("\u0100 \uffff " . escape_unicode( ) , ~"\\ u0100\\ uffff");
3178+ assert_eq!("\U 00010000\U 0010ffff" . escape_unicode( ) , ~"\\ U00010000 \\ U0010ffff ");
3179+ assert_eq!(" ab\ufb00 ". escape_unicode( ) , ~"\\ x61\\ x62\\ ufb00");
3180+ assert_eq!("\U 0001d4ea\r " . escape_unicode( ) , ~"\\ U0001d4ea \\ x0d");
31903181 }
31913182
31923183 #[test]
31933184 fn test_escape_default() {
3194- assert_eq!(escape_default(" abc"), ~" abc");
3195- assert_eq!(escape_default(" a c"), ~" a c");
3196- assert_eq!(escape_default("\r \n \t " ) , ~"\\ r\\ n\\ t");
3197- assert_eq!(escape_default(" ' \" \\ ") , ~"\\ ' \\ \" \\ \\ ") ;
3198- assert_eq!( escape_default( "\u0100 \uffff " ) , ~"\\ u0100\\ uffff");
3199- assert!(escape_default("\U 00010000\U 0010ffff" ) ==
3200- ~"\\ U00010000 \\ U0010ffff ");
3201- assert_eq!(escape_default(" ab\ufb00 ") , ~"ab\\ ufb00");
3202- assert_eq!(escape_default("\U 0001d4ea\r " ) , ~"\\ U0001d4ea \\ r");
3185+ assert_eq!(" abc".escape_default(), ~" abc");
3186+ assert_eq!(" a c".escape_default(), ~" a c");
3187+ assert_eq!("\r \n \t " . escape_default( ) , ~"\\ r\\ n\\ t");
3188+ assert_eq!(" ' \" \\ ". escape_default( ) , ~"\\ ' \\ \" \\ \\ ") ;
3189+ assert_eq!( "\u0100 \uffff " . escape_default( ) , ~"\\ u0100\\ uffff");
3190+ assert_eq!("\U 00010000\U 0010ffff" . escape_default( ) , ~"\\ U00010000 \\ U0010ffff ");
3191+ assert_eq!(" ab\ufb00 ". escape_default( ) , ~"ab\\ ufb00");
3192+ assert_eq!("\U 0001d4ea\r " . escape_default( ) , ~"\\ U0001d4ea \\ r");
32033193 }
32043194
32053195 #[test]
0 commit comments