MCPcopy Create free account
hub / github.com/Kitware/VTK / xmlParseNameComplex

Function xmlParseNameComplex

ThirdParty/libxml2/vtklibxml2/parser.c:3243–3351  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3241}
3242
3243static const xmlChar *
3244xmlParseNameComplex(xmlParserCtxtPtr ctxt) {
3245 const xmlChar *ret;
3246 int len = 0, l;
3247 int c;
3248 int maxLength = (ctxt->options & XML_PARSE_HUGE) ?
3249 XML_MAX_TEXT_LENGTH :
3250 XML_MAX_NAME_LENGTH;
3251
3252 /*
3253 * Handler for more complex cases
3254 */
3255 c = CUR_CHAR(l);
3256 if ((ctxt->options & XML_PARSE_OLD10) == 0) {
3257 /*
3258 * Use the new checks of production [4] [4a] amd [5] of the
3259 * Update 5 of XML-1.0
3260 */
3261 if ((c == ' ') || (c == '>') || (c == '/') || /* accelerators */
3262 (!(((c >= 'a') && (c <= 'z')) ||
3263 ((c >= 'A') && (c <= 'Z')) ||
3264 (c == '_') || (c == ':') ||
3265 ((c >= 0xC0) && (c <= 0xD6)) ||
3266 ((c >= 0xD8) && (c <= 0xF6)) ||
3267 ((c >= 0xF8) && (c <= 0x2FF)) ||
3268 ((c >= 0x370) && (c <= 0x37D)) ||
3269 ((c >= 0x37F) && (c <= 0x1FFF)) ||
3270 ((c >= 0x200C) && (c <= 0x200D)) ||
3271 ((c >= 0x2070) && (c <= 0x218F)) ||
3272 ((c >= 0x2C00) && (c <= 0x2FEF)) ||
3273 ((c >= 0x3001) && (c <= 0xD7FF)) ||
3274 ((c >= 0xF900) && (c <= 0xFDCF)) ||
3275 ((c >= 0xFDF0) && (c <= 0xFFFD)) ||
3276 ((c >= 0x10000) && (c <= 0xEFFFF))))) {
3277 return(NULL);
3278 }
3279 len += l;
3280 NEXTL(l);
3281 c = CUR_CHAR(l);
3282 while ((c != ' ') && (c != '>') && (c != '/') && /* accelerators */
3283 (((c >= 'a') && (c <= 'z')) ||
3284 ((c >= 'A') && (c <= 'Z')) ||
3285 ((c >= '0') && (c <= '9')) || /* !start */
3286 (c == '_') || (c == ':') ||
3287 (c == '-') || (c == '.') || (c == 0xB7) || /* !start */
3288 ((c >= 0xC0) && (c <= 0xD6)) ||
3289 ((c >= 0xD8) && (c <= 0xF6)) ||
3290 ((c >= 0xF8) && (c <= 0x2FF)) ||
3291 ((c >= 0x300) && (c <= 0x36F)) || /* !start */
3292 ((c >= 0x370) && (c <= 0x37D)) ||
3293 ((c >= 0x37F) && (c <= 0x1FFF)) ||
3294 ((c >= 0x200C) && (c <= 0x200D)) ||
3295 ((c >= 0x203F) && (c <= 0x2040)) || /* !start */
3296 ((c >= 0x2070) && (c <= 0x218F)) ||
3297 ((c >= 0x2C00) && (c <= 0x2FEF)) ||
3298 ((c >= 0x3001) && (c <= 0xD7FF)) ||
3299 ((c >= 0xF900) && (c <= 0xFDCF)) ||
3300 ((c >= 0xFDF0) && (c <= 0xFFFD)) ||

Callers 1

xmlParseNameFunction · 0.85

Calls 3

xmlFatalErrFunction · 0.85
xmlDictLookupFunction · 0.85
xmlErrMemoryFunction · 0.85

Tested by

no test coverage detected