MCPcopy Create free account
hub / github.com/Genivia/ugrep / xml

Method xml

src/output.cpp:2199–2257  ·  view source on GitHub ↗

output in XML

Source from the content-addressed store, hash-verified

2197
2198// output in XML
2199void Output::xml(const char *data, size_t size)
2200{
2201 const char *s = data;
2202 const char *e = data + size;
2203 const char *t = s;
2204
2205 while (s < e)
2206 {
2207 int c = *s;
2208
2209 if ((c & 0x80) == 0)
2210 {
2211 switch (c)
2212 {
2213 case '&':
2214 str(t, s - t);
2215 t = s + 1;
2216 str("&amp;", 5);
2217 break;
2218
2219 case '<':
2220 str(t, s - t);
2221 t = s + 1;
2222 str("&lt;", 4);
2223 break;
2224
2225 case '>':
2226 str(t, s - t);
2227 t = s + 1;
2228 str("&gt;", 4);
2229 break;
2230
2231 case '"':
2232 str(t, s - t);
2233 t = s + 1;
2234 str("&quot;", 6);
2235 break;
2236
2237 case 0x7f:
2238 str(t, s - t);
2239 t = s + 1;
2240 str("&#x7f;", 6);
2241 break;
2242
2243 default:
2244 if (c < 0x20)
2245 {
2246 str(t, s - t);
2247 t = s + 1;
2248 str("&#", 2);
2249 num(c);
2250 chr(';');
2251 }
2252 }
2253 }
2254 ++s;
2255 }
2256 str(t, s - t);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected