INCLUDE_RE over RAW text: /#[ \t]*include[ \t]+"([^"\n]+)"/g
(raw: &[u8], out: &mut Vec<String>)
| 954 | } |
| 955 | |
| 956 | /// INCLUDE_RE over RAW text: /#[ \t]*include[ \t]+"([^"\n]+)"/g |
| 957 | fn scan_includes(raw: &[u8], out: &mut Vec<String>) { |
| 958 | let mut pos = 0usize; |
| 959 | while pos < raw.len() { |
| 960 | let Some(h) = find_bytes(raw, b"#", pos) else { break }; |
| 961 | let mut i = skip_sp_tab(raw, h + 1); |
| 962 | if raw.len() < i + 7 || &raw[i..i + 7] != b"include" { |
| 963 | pos = h + 1; |
| 964 | continue; |
| 965 | } |
| 966 | i += 7; |
| 967 | let q = skip_sp_tab(raw, i); |
| 968 | if q == i || raw.get(q) != Some(&b'"') { |
| 969 | pos = h + 1; |
| 970 | continue; |
| 971 | } |
| 972 | let mut j = q + 1; |
| 973 | while j < raw.len() && raw[j] != b'"' && raw[j] != b'\n' { |
| 974 | j += 1; |
| 975 | } |
| 976 | if j > q + 1 && j < raw.len() && raw[j] == b'"' { |
| 977 | out.push(bytes_to_string(&raw[q + 1..j])); |
| 978 | pos = j + 1; |
| 979 | } else { |
| 980 | pos = h + 1; |
| 981 | } |
| 982 | } |
| 983 | } |
| 984 | |
| 985 | // ---------- struct field parsing ---------- |
no test coverage detected