* xmlGetCharEncodingHandler: * @enc: an xmlCharEncoding value. * * Search in the registered set the handler able to read/write that encoding. * * Returns the handler or NULL if not found */
| 1438 | * Returns the handler or NULL if not found |
| 1439 | */ |
| 1440 | xmlCharEncodingHandlerPtr |
| 1441 | xmlGetCharEncodingHandler(xmlCharEncoding enc) { |
| 1442 | xmlCharEncodingHandlerPtr handler; |
| 1443 | |
| 1444 | if (handlers == NULL) xmlInitCharEncodingHandlers(); |
| 1445 | switch (enc) { |
| 1446 | case XML_CHAR_ENCODING_ERROR: |
| 1447 | return(NULL); |
| 1448 | case XML_CHAR_ENCODING_NONE: |
| 1449 | return(NULL); |
| 1450 | case XML_CHAR_ENCODING_UTF8: |
| 1451 | return(NULL); |
| 1452 | case XML_CHAR_ENCODING_UTF16LE: |
| 1453 | return(xmlUTF16LEHandler); |
| 1454 | case XML_CHAR_ENCODING_UTF16BE: |
| 1455 | return(xmlUTF16BEHandler); |
| 1456 | case XML_CHAR_ENCODING_EBCDIC: |
| 1457 | handler = xmlFindCharEncodingHandler("EBCDIC"); |
| 1458 | if (handler != NULL) return(handler); |
| 1459 | handler = xmlFindCharEncodingHandler("ebcdic"); |
| 1460 | if (handler != NULL) return(handler); |
| 1461 | break; |
| 1462 | case XML_CHAR_ENCODING_UCS4BE: |
| 1463 | handler = xmlFindCharEncodingHandler("ISO-10646-UCS-4"); |
| 1464 | if (handler != NULL) return(handler); |
| 1465 | handler = xmlFindCharEncodingHandler("UCS-4"); |
| 1466 | if (handler != NULL) return(handler); |
| 1467 | handler = xmlFindCharEncodingHandler("UCS4"); |
| 1468 | if (handler != NULL) return(handler); |
| 1469 | break; |
| 1470 | case XML_CHAR_ENCODING_UCS4LE: |
| 1471 | handler = xmlFindCharEncodingHandler("ISO-10646-UCS-4"); |
| 1472 | if (handler != NULL) return(handler); |
| 1473 | handler = xmlFindCharEncodingHandler("UCS-4"); |
| 1474 | if (handler != NULL) return(handler); |
| 1475 | handler = xmlFindCharEncodingHandler("UCS4"); |
| 1476 | if (handler != NULL) return(handler); |
| 1477 | break; |
| 1478 | case XML_CHAR_ENCODING_UCS4_2143: |
| 1479 | break; |
| 1480 | case XML_CHAR_ENCODING_UCS4_3412: |
| 1481 | break; |
| 1482 | case XML_CHAR_ENCODING_UCS2: |
| 1483 | handler = xmlFindCharEncodingHandler("ISO-10646-UCS-2"); |
| 1484 | if (handler != NULL) return(handler); |
| 1485 | handler = xmlFindCharEncodingHandler("UCS-2"); |
| 1486 | if (handler != NULL) return(handler); |
| 1487 | handler = xmlFindCharEncodingHandler("UCS2"); |
| 1488 | if (handler != NULL) return(handler); |
| 1489 | break; |
| 1490 | |
| 1491 | /* |
| 1492 | * We used to keep ISO Latin encodings native in the |
| 1493 | * generated data. This led to so many problems that |
| 1494 | * this has been removed. One can still change this |
| 1495 | * back by registering no-ops encoders for those |
| 1496 | */ |
| 1497 | case XML_CHAR_ENCODING_8859_1: |
no test coverage detected