| 2132 | } |
| 2133 | |
| 2134 | static char_t* parse_wconv(char_t* s, char_t end_quote) |
| 2135 | { |
| 2136 | gap g; |
| 2137 | |
| 2138 | while (true) |
| 2139 | { |
| 2140 | while (!PUGI__IS_CHARTYPE(*s, ct_parse_attr_ws)) |
| 2141 | ++s; |
| 2142 | |
| 2143 | if (*s == end_quote) |
| 2144 | { |
| 2145 | *g.flush(s) = 0; |
| 2146 | |
| 2147 | return s + 1; |
| 2148 | } |
| 2149 | else if (PUGI__IS_CHARTYPE(*s, ct_space)) |
| 2150 | { |
| 2151 | if (*s == '\r') |
| 2152 | { |
| 2153 | *s++ = ' '; |
| 2154 | |
| 2155 | if (*s == '\n') |
| 2156 | g.push(s, 1); |
| 2157 | } |
| 2158 | else |
| 2159 | *s++ = ' '; |
| 2160 | } |
| 2161 | else if (opt_escape::value && *s == '&') |
| 2162 | { |
| 2163 | s = strconv_escape(s, g); |
| 2164 | } |
| 2165 | else if (!*s) |
| 2166 | { |
| 2167 | return 0; |
| 2168 | } |
| 2169 | else |
| 2170 | ++s; |
| 2171 | } |
| 2172 | } |
| 2173 | |
| 2174 | static char_t* parse_eol(char_t* s, char_t end_quote) |
| 2175 | { |
nothing calls this directly
no test coverage detected