OLD | NEW |
1 /* | 1 /* |
2 ******************************************************************************* | 2 ******************************************************************************* |
3 * | 3 * |
4 * Copyright (C) 2003-2013, International Business Machines | 4 * Copyright (C) 2003-2014, International Business Machines |
5 * Corporation and others. All Rights Reserved. | 5 * Corporation and others. All Rights Reserved. |
6 * | 6 * |
7 ******************************************************************************* | 7 ******************************************************************************* |
8 * file name: uidna.h | 8 * file name: uidna.h |
9 * encoding: US-ASCII | 9 * encoding: US-ASCII |
10 * tab size: 8 (not used) | 10 * tab size: 8 (not used) |
11 * indentation:4 | 11 * indentation:4 |
12 * | 12 * |
13 * created on: 2003feb1 | 13 * created on: 2003feb1 |
14 * created by: Ram Viswanadha | 14 * created by: Ram Viswanadha |
(...skipping 10 matching lines...) Expand all Loading... |
25 #include "unicode/parseerr.h" | 25 #include "unicode/parseerr.h" |
26 | 26 |
27 /** | 27 /** |
28 * \file | 28 * \file |
29 * \brief C API: Internationalizing Domain Names in Applications (IDNA) | 29 * \brief C API: Internationalizing Domain Names in Applications (IDNA) |
30 * | 30 * |
31 * IDNA2008 is implemented according to UTS #46, see the IDNA C++ class in idna.
h. | 31 * IDNA2008 is implemented according to UTS #46, see the IDNA C++ class in idna.
h. |
32 * | 32 * |
33 * The C API functions which do take a UIDNA * service object pointer | 33 * The C API functions which do take a UIDNA * service object pointer |
34 * implement UTS #46 and IDNA2008. | 34 * implement UTS #46 and IDNA2008. |
| 35 * |
| 36 * IDNA2003 is obsolete. |
35 * The C API functions which do not take a service object pointer | 37 * The C API functions which do not take a service object pointer |
36 * implement IDNA2003. | 38 * implement IDNA2003. They are all deprecated. |
37 */ | 39 */ |
38 | 40 |
39 /* | 41 /* |
40 * IDNA option bit set values. | 42 * IDNA option bit set values. |
41 */ | 43 */ |
42 enum { | 44 enum { |
43 /** | 45 /** |
44 * Default options value: None of the other options are set. | 46 * Default options value: None of the other options are set. |
45 * For use in static worker and factory methods. | 47 * For use in static worker and factory methods. |
46 * @stable ICU 2.6 | 48 * @stable ICU 2.6 |
47 */ | 49 */ |
48 UIDNA_DEFAULT=0, | 50 UIDNA_DEFAULT=0, |
| 51 #ifndef U_HIDE_DEPRECATED_API |
49 /** | 52 /** |
50 * Option to allow unassigned code points in domain names and labels. | 53 * Option to allow unassigned code points in domain names and labels. |
51 * For use in static worker and factory methods. | 54 * For use in static worker and factory methods. |
52 * <p>This option is ignored by the UTS46 implementation. | 55 * <p>This option is ignored by the UTS46 implementation. |
53 * (UTS #46 disallows unassigned code points.) | 56 * (UTS #46 disallows unassigned code points.) |
54 * @stable ICU 2.6 | 57 * @deprecated ICU 55 Use UTS #46 instead via uidna_openUTS46() or class IDN
A. |
55 */ | 58 */ |
56 UIDNA_ALLOW_UNASSIGNED=1, | 59 UIDNA_ALLOW_UNASSIGNED=1, |
| 60 #endif /* U_HIDE_DEPRECATED_API */ |
57 /** | 61 /** |
58 * Option to check whether the input conforms to the STD3 ASCII rules, | 62 * Option to check whether the input conforms to the STD3 ASCII rules, |
59 * for example the restriction of labels to LDH characters | 63 * for example the restriction of labels to LDH characters |
60 * (ASCII Letters, Digits and Hyphen-Minus). | 64 * (ASCII Letters, Digits and Hyphen-Minus). |
61 * For use in static worker and factory methods. | 65 * For use in static worker and factory methods. |
62 * @stable ICU 2.6 | 66 * @stable ICU 2.6 |
63 */ | 67 */ |
64 UIDNA_USE_STD3_RULES=2, | 68 UIDNA_USE_STD3_RULES=2, |
65 /** | 69 /** |
66 * IDNA option to check for whether the input conforms to the BiDi rules. | 70 * IDNA option to check for whether the input conforms to the BiDi rules. |
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 */ | 500 */ |
497 UIDNA_ERROR_CONTEXTO_PUNCTUATION=0x2000, | 501 UIDNA_ERROR_CONTEXTO_PUNCTUATION=0x2000, |
498 /** | 502 /** |
499 * A label does not meet the IDNA CONTEXTO requirements for digits. | 503 * A label does not meet the IDNA CONTEXTO requirements for digits. |
500 * Arabic-Indic Digits (U+066x) must not be mixed with Extended Arabic-Indic
Digits (U+06Fx). | 504 * Arabic-Indic Digits (U+066x) must not be mixed with Extended Arabic-Indic
Digits (U+06Fx). |
501 * @stable ICU 49 | 505 * @stable ICU 49 |
502 */ | 506 */ |
503 UIDNA_ERROR_CONTEXTO_DIGITS=0x4000 | 507 UIDNA_ERROR_CONTEXTO_DIGITS=0x4000 |
504 }; | 508 }; |
505 | 509 |
| 510 #ifndef U_HIDE_DEPRECATED_API |
| 511 |
506 /* IDNA2003 API ------------------------------------------------------------- */ | 512 /* IDNA2003 API ------------------------------------------------------------- */ |
507 | 513 |
508 /** | 514 /** |
509 * IDNA2003: This function implements the ToASCII operation as defined in the ID
NA RFC. | 515 * IDNA2003: This function implements the ToASCII operation as defined in the ID
NA RFC. |
510 * This operation is done on <b>single labels</b> before sending it to something
that expects | 516 * This operation is done on <b>single labels</b> before sending it to something
that expects |
511 * ASCII names. A label is an individual part of a domain name. Labels are usual
ly | 517 * ASCII names. A label is an individual part of a domain name. Labels are usual
ly |
512 * separated by dots; e.g. "www.example.com" is composed of 3 labels "www","exam
ple", and "com". | 518 * separated by dots; e.g. "www.example.com" is composed of 3 labels "www","exam
ple", and "com". |
513 * | 519 * |
514 * IDNA2003 API Overview: | 520 * IDNA2003 API Overview: |
515 * | 521 * |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 * @param parseError Pointer to UParseError struct to receive information
on position | 561 * @param parseError Pointer to UParseError struct to receive information
on position |
556 * of error if an error is encountered. Can be NULL. | 562 * of error if an error is encountered. Can be NULL. |
557 * @param status ICU in/out error code parameter. | 563 * @param status ICU in/out error code parameter. |
558 * U_INVALID_CHAR_FOUND if src contains | 564 * U_INVALID_CHAR_FOUND if src contains |
559 * unmatched single surrogates. | 565 * unmatched single surrogates. |
560 * U_INDEX_OUTOFBOUNDS_ERROR if src contains | 566 * U_INDEX_OUTOFBOUNDS_ERROR if src contains |
561 * too many code points. | 567 * too many code points. |
562 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h | 568 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h |
563 * @return The length of the result string, if successful - or in case of a buff
er overflow, | 569 * @return The length of the result string, if successful - or in case of a buff
er overflow, |
564 * in which case it will be greater than destCapacity. | 570 * in which case it will be greater than destCapacity. |
565 * @stable ICU 2.6 | 571 * @deprecated ICU 55 Use UTS #46 instead via uidna_openUTS46() or class IDNA. |
566 */ | 572 */ |
567 U_STABLE int32_t U_EXPORT2 | 573 U_DEPRECATED int32_t U_EXPORT2 |
568 uidna_toASCII(const UChar* src, int32_t srcLength, | 574 uidna_toASCII(const UChar* src, int32_t srcLength, |
569 UChar* dest, int32_t destCapacity, | 575 UChar* dest, int32_t destCapacity, |
570 int32_t options, | 576 int32_t options, |
571 UParseError* parseError, | 577 UParseError* parseError, |
572 UErrorCode* status); | 578 UErrorCode* status); |
573 | 579 |
574 | 580 |
575 /** | 581 /** |
576 * IDNA2003: This function implements the ToUnicode operation as defined in the
IDNA RFC. | 582 * IDNA2003: This function implements the ToUnicode operation as defined in the
IDNA RFC. |
577 * This operation is done on <b>single labels</b> before sending it to something
that expects | 583 * This operation is done on <b>single labels</b> before sending it to something
that expects |
(...skipping 25 matching lines...) Expand all Loading... |
603 * @param parseError Pointer to UParseError struct to receive information
on position | 609 * @param parseError Pointer to UParseError struct to receive information
on position |
604 * of error if an error is encountered. Can be NULL. | 610 * of error if an error is encountered. Can be NULL. |
605 * @param status ICU in/out error code parameter. | 611 * @param status ICU in/out error code parameter. |
606 * U_INVALID_CHAR_FOUND if src contains | 612 * U_INVALID_CHAR_FOUND if src contains |
607 * unmatched single surrogates. | 613 * unmatched single surrogates. |
608 * U_INDEX_OUTOFBOUNDS_ERROR if src contains | 614 * U_INDEX_OUTOFBOUNDS_ERROR if src contains |
609 * too many code points. | 615 * too many code points. |
610 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h | 616 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h |
611 * @return The length of the result string, if successful - or in case of a buff
er overflow, | 617 * @return The length of the result string, if successful - or in case of a buff
er overflow, |
612 * in which case it will be greater than destCapacity. | 618 * in which case it will be greater than destCapacity. |
613 * @stable ICU 2.6 | 619 * @deprecated ICU 55 Use UTS #46 instead via uidna_openUTS46() or class IDNA. |
614 */ | 620 */ |
615 U_STABLE int32_t U_EXPORT2 | 621 U_DEPRECATED int32_t U_EXPORT2 |
616 uidna_toUnicode(const UChar* src, int32_t srcLength, | 622 uidna_toUnicode(const UChar* src, int32_t srcLength, |
617 UChar* dest, int32_t destCapacity, | 623 UChar* dest, int32_t destCapacity, |
618 int32_t options, | 624 int32_t options, |
619 UParseError* parseError, | 625 UParseError* parseError, |
620 UErrorCode* status); | 626 UErrorCode* status); |
621 | 627 |
622 | 628 |
623 /** | 629 /** |
624 * IDNA2003: Convenience function that implements the IDNToASCII operation as de
fined in the IDNA RFC. | 630 * IDNA2003: Convenience function that implements the IDNToASCII operation as de
fined in the IDNA RFC. |
625 * This operation is done on complete domain names, e.g: "www.example.com". | 631 * This operation is done on complete domain names, e.g: "www.example.com". |
(...skipping 28 matching lines...) Expand all Loading... |
654 * @param parseError Pointer to UParseError struct to receive information
on position | 660 * @param parseError Pointer to UParseError struct to receive information
on position |
655 * of error if an error is encountered. Can be NULL. | 661 * of error if an error is encountered. Can be NULL. |
656 * @param status ICU in/out error code parameter. | 662 * @param status ICU in/out error code parameter. |
657 * U_INVALID_CHAR_FOUND if src contains | 663 * U_INVALID_CHAR_FOUND if src contains |
658 * unmatched single surrogates. | 664 * unmatched single surrogates. |
659 * U_INDEX_OUTOFBOUNDS_ERROR if src contains | 665 * U_INDEX_OUTOFBOUNDS_ERROR if src contains |
660 * too many code points. | 666 * too many code points. |
661 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h | 667 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h |
662 * @return The length of the result string, if successful - or in case of a buff
er overflow, | 668 * @return The length of the result string, if successful - or in case of a buff
er overflow, |
663 * in which case it will be greater than destCapacity. | 669 * in which case it will be greater than destCapacity. |
664 * @stable ICU 2.6 | 670 * @deprecated ICU 55 Use UTS #46 instead via uidna_openUTS46() or class IDNA. |
665 */ | 671 */ |
666 U_STABLE int32_t U_EXPORT2 | 672 U_DEPRECATED int32_t U_EXPORT2 |
667 uidna_IDNToASCII( const UChar* src, int32_t srcLength, | 673 uidna_IDNToASCII( const UChar* src, int32_t srcLength, |
668 UChar* dest, int32_t destCapacity, | 674 UChar* dest, int32_t destCapacity, |
669 int32_t options, | 675 int32_t options, |
670 UParseError* parseError, | 676 UParseError* parseError, |
671 UErrorCode* status); | 677 UErrorCode* status); |
672 | 678 |
673 /** | 679 /** |
674 * IDNA2003: Convenience function that implements the IDNToUnicode operation as
defined in the IDNA RFC. | 680 * IDNA2003: Convenience function that implements the IDNToUnicode operation as
defined in the IDNA RFC. |
675 * This operation is done on complete domain names, e.g: "www.example.com". | 681 * This operation is done on complete domain names, e.g: "www.example.com". |
676 * | 682 * |
(...skipping 24 matching lines...) Expand all Loading... |
701 * @param parseError Pointer to UParseError struct to receive information
on position | 707 * @param parseError Pointer to UParseError struct to receive information
on position |
702 * of error if an error is encountered. Can be NULL. | 708 * of error if an error is encountered. Can be NULL. |
703 * @param status ICU in/out error code parameter. | 709 * @param status ICU in/out error code parameter. |
704 * U_INVALID_CHAR_FOUND if src contains | 710 * U_INVALID_CHAR_FOUND if src contains |
705 * unmatched single surrogates. | 711 * unmatched single surrogates. |
706 * U_INDEX_OUTOFBOUNDS_ERROR if src contains | 712 * U_INDEX_OUTOFBOUNDS_ERROR if src contains |
707 * too many code points. | 713 * too many code points. |
708 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h | 714 * U_BUFFER_OVERFLOW_ERROR if destCapacity is not enoug
h |
709 * @return The length of the result string, if successful - or in case of a buff
er overflow, | 715 * @return The length of the result string, if successful - or in case of a buff
er overflow, |
710 * in which case it will be greater than destCapacity. | 716 * in which case it will be greater than destCapacity. |
711 * @stable ICU 2.6 | 717 * @deprecated ICU 55 Use UTS #46 instead via uidna_openUTS46() or class IDNA. |
712 */ | 718 */ |
713 U_STABLE int32_t U_EXPORT2 | 719 U_DEPRECATED int32_t U_EXPORT2 |
714 uidna_IDNToUnicode( const UChar* src, int32_t srcLength, | 720 uidna_IDNToUnicode( const UChar* src, int32_t srcLength, |
715 UChar* dest, int32_t destCapacity, | 721 UChar* dest, int32_t destCapacity, |
716 int32_t options, | 722 int32_t options, |
717 UParseError* parseError, | 723 UParseError* parseError, |
718 UErrorCode* status); | 724 UErrorCode* status); |
719 | 725 |
720 /** | 726 /** |
721 * IDNA2003: Compare two IDN strings for equivalence. | 727 * IDNA2003: Compare two IDN strings for equivalence. |
722 * This function splits the domain names into labels and compares them. | 728 * This function splits the domain names into labels and compares them. |
723 * According to IDN RFC, whenever two labels are compared, they are | 729 * According to IDN RFC, whenever two labels are compared, they are |
(...skipping 18 matching lines...) Expand all Loading... |
742 * If this option is set, the unassigned code point
s are in the input | 748 * If this option is set, the unassigned code point
s are in the input |
743 * are treated as normal Unicode code points. | 749 * are treated as normal Unicode code points. |
744 * | 750 * |
745 * - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restri
ctions | 751 * - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restri
ctions |
746 * If this option is set and the input does not sat
isfy STD3 rules, | 752 * If this option is set and the input does not sat
isfy STD3 rules, |
747 * the operation will fail with U_IDNA_STD3_ASCII_R
ULES_ERROR | 753 * the operation will fail with U_IDNA_STD3_ASCII_R
ULES_ERROR |
748 * | 754 * |
749 * @param status ICU error code in/out parameter. | 755 * @param status ICU error code in/out parameter. |
750 * Must fulfill U_SUCCESS before the function call. | 756 * Must fulfill U_SUCCESS before the function call. |
751 * @return <0 or 0 or >0 as usual for string comparisons | 757 * @return <0 or 0 or >0 as usual for string comparisons |
752 * @stable ICU 2.6 | 758 * @deprecated ICU 55 Use UTS #46 instead via uidna_openUTS46() or class IDNA. |
753 */ | 759 */ |
754 U_STABLE int32_t U_EXPORT2 | 760 U_DEPRECATED int32_t U_EXPORT2 |
755 uidna_compare( const UChar *s1, int32_t length1, | 761 uidna_compare( const UChar *s1, int32_t length1, |
756 const UChar *s2, int32_t length2, | 762 const UChar *s2, int32_t length2, |
757 int32_t options, | 763 int32_t options, |
758 UErrorCode* status); | 764 UErrorCode* status); |
759 | 765 |
| 766 #endif /* U_HIDE_DEPRECATED_API */ |
| 767 |
760 #endif /* #if !UCONFIG_NO_IDNA */ | 768 #endif /* #if !UCONFIG_NO_IDNA */ |
761 | 769 |
762 #endif | 770 #endif |
OLD | NEW |