| 1954 | } |
| 1955 | |
| 1956 | static char_t* parse_eol(char_t* s, char_t end_quote) |
| 1957 | { |
| 1958 | gap g; |
| 1959 | |
| 1960 | while (true) |
| 1961 | { |
| 1962 | while (!PUGI__IS_CHARTYPE(*s, ct_parse_attr)) ++s; |
| 1963 | |
| 1964 | if (*s == end_quote) |
| 1965 | { |
| 1966 | *g.flush(s) = 0; |
| 1967 | |
| 1968 | return s + 1; |
| 1969 | } |
| 1970 | else if (*s == '\r') |
| 1971 | { |
| 1972 | *s++ = '\n'; |
| 1973 | |
| 1974 | if (*s == '\n') g.push(s, 1); |
| 1975 | } |
| 1976 | else if (opt_escape::value && *s == '&') |
| 1977 | { |
| 1978 | s = strconv_escape(s, g); |
| 1979 | } |
| 1980 | else if (!*s) |
| 1981 | { |
| 1982 | return 0; |
| 1983 | } |
| 1984 | else ++s; |
| 1985 | } |
| 1986 | } |
| 1987 | |
| 1988 | static char_t* parse_simple(char_t* s, char_t end_quote) |
| 1989 | { |
nothing calls this directly
no test coverage detected