| 10260 | */ |
| 10261 | |
| 10262 | const xmlChar * |
| 10263 | xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) { |
| 10264 | xmlChar *encoding = NULL; |
| 10265 | |
| 10266 | SKIP_BLANKS; |
| 10267 | if (CMP8(CUR_PTR, 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g') == 0) |
| 10268 | return(NULL); |
| 10269 | |
| 10270 | SKIP(8); |
| 10271 | SKIP_BLANKS; |
| 10272 | if (RAW != '=') { |
| 10273 | xmlFatalErr(ctxt, XML_ERR_EQUAL_REQUIRED, NULL); |
| 10274 | return(NULL); |
| 10275 | } |
| 10276 | NEXT; |
| 10277 | SKIP_BLANKS; |
| 10278 | if (RAW == '"') { |
| 10279 | NEXT; |
| 10280 | encoding = xmlParseEncName(ctxt); |
| 10281 | if (RAW != '"') { |
| 10282 | xmlFatalErr(ctxt, XML_ERR_STRING_NOT_CLOSED, NULL); |
| 10283 | xmlFree((xmlChar *) encoding); |
| 10284 | return(NULL); |
| 10285 | } else |
| 10286 | NEXT; |
| 10287 | } else if (RAW == '\''){ |
| 10288 | NEXT; |
| 10289 | encoding = xmlParseEncName(ctxt); |
| 10290 | if (RAW != '\'') { |
| 10291 | xmlFatalErr(ctxt, XML_ERR_STRING_NOT_CLOSED, NULL); |
| 10292 | xmlFree((xmlChar *) encoding); |
| 10293 | return(NULL); |
| 10294 | } else |
| 10295 | NEXT; |
| 10296 | } else { |
| 10297 | xmlFatalErr(ctxt, XML_ERR_STRING_NOT_STARTED, NULL); |
| 10298 | } |
| 10299 | |
| 10300 | if (encoding == NULL) |
| 10301 | return(NULL); |
| 10302 | |
| 10303 | xmlSetDeclaredEncoding(ctxt, encoding); |
| 10304 | |
| 10305 | return(ctxt->encoding); |
| 10306 | } |
| 10307 | |
| 10308 | /** |
| 10309 | * xmlParseSDDecl: |
no test coverage detected