@@ -100,27 +100,20 @@ pub fn serialize_identifier(value: &str, css: &mut ~str) {
100
100
let mut c = iter. next ( ) . unwrap ( ) ;
101
101
if c == '-' {
102
102
c = match iter. next ( ) {
103
- None => {
104
- css. push_str ( "\\ -" ) ;
105
- return
106
- }
107
- Some ( c) => {
108
- css. push_char ( '-' ) ;
109
- c
110
- } ,
103
+ None => { css. push_str ( "\\ -" ) ; return } ,
104
+ Some ( c) => { css. push_char ( '-' ) ; c } ,
111
105
}
112
106
} ;
113
- match c {
114
- 'A' ..'Z' | 'a' ..'z' | '_' => css. push_char ( c) ,
115
- _ if c > '\x7F' => css. push_char ( c) ,
116
- '\n' => css. push_str ( "\\ A " ) ,
117
- '\r' => css. push_str ( "\\ D " ) ,
118
- '\x0C' => css. push_str ( "\\ C " ) ,
119
- '0' ..'9' => css. push_str ( format ! ( "\\ \\ 3{} " , c) ) ,
120
- _ => { css. push_char ( '\\' ) ; css. push_char ( c) } ,
121
- }
107
+ serialize_char ( c, css, /* is_start = */ true ) ;
122
108
for c in iter {
109
+ serialize_char ( c, css, /* is_start = */ false ) ;
110
+ }
111
+
112
+ #[ inline]
113
+ fn serialize_char ( c : char , css : & mut ~str , is_start : bool ) {
123
114
match c {
115
+ '0' ..'9' if is_start => css. push_str ( format ! ( "\\ \\ 3{} " , c) ) ,
116
+ '-' if is_start => css. push_str ( "\\ -" ) ,
124
117
'0' ..'9' | 'A' ..'Z' | 'a' ..'z' | '_' | '-' => css. push_char ( c) ,
125
118
_ if c > '\x7F' => css. push_char ( c) ,
126
119
'\n' => css. push_str ( "\\ A " ) ,
0 commit comments