| 2519 | */ |
| 2520 | |
| 2521 | static const xmlChar * |
| 2522 | htmlParseName(htmlParserCtxtPtr ctxt) { |
| 2523 | const xmlChar *in; |
| 2524 | const xmlChar *ret; |
| 2525 | int count = 0; |
| 2526 | |
| 2527 | GROW; |
| 2528 | |
| 2529 | /* |
| 2530 | * Accelerator for simple ASCII names |
| 2531 | */ |
| 2532 | in = ctxt->input->cur; |
| 2533 | if (((*in >= 0x61) && (*in <= 0x7A)) || |
| 2534 | ((*in >= 0x41) && (*in <= 0x5A)) || |
| 2535 | (*in == '_') || (*in == ':')) { |
| 2536 | in++; |
| 2537 | while (((*in >= 0x61) && (*in <= 0x7A)) || |
| 2538 | ((*in >= 0x41) && (*in <= 0x5A)) || |
| 2539 | ((*in >= 0x30) && (*in <= 0x39)) || |
| 2540 | (*in == '_') || (*in == '-') || |
| 2541 | (*in == ':') || (*in == '.')) |
| 2542 | in++; |
| 2543 | |
| 2544 | if (in == ctxt->input->end) |
| 2545 | return(NULL); |
| 2546 | |
| 2547 | if ((*in > 0) && (*in < 0x80)) { |
| 2548 | count = in - ctxt->input->cur; |
| 2549 | ret = xmlDictLookup(ctxt->dict, ctxt->input->cur, count); |
| 2550 | if (ret == NULL) |
| 2551 | htmlErrMemory(ctxt); |
| 2552 | ctxt->input->cur = in; |
| 2553 | ctxt->input->col += count; |
| 2554 | return(ret); |
| 2555 | } |
| 2556 | } |
| 2557 | return(htmlParseNameComplex(ctxt)); |
| 2558 | } |
| 2559 | |
| 2560 | static const xmlChar * |
| 2561 | htmlParseNameComplex(xmlParserCtxtPtr ctxt) { |
no test coverage detected