|
|
@@ -46,114 +46,39 @@ |
|
|
const char * |
|
|
idn2_strerror (int rc) |
|
|
{ |
|
|
const char *p; |
|
|
|
|
|
bindtextdomain (PACKAGE, LOCALEDIR); |
|
|
|
|
|
switch (rc) |
|
|
{ |
|
|
case IDN2_OK: |
|
|
p = _("success"); |
|
|
break; |
|
|
|
|
|
case IDN2_MALLOC: |
|
|
p = _("out of memory"); |
|
|
break; |
|
|
|
|
|
case IDN2_NO_CODESET: |
|
|
p = _("could not determine locale encoding format"); |
|
|
break; |
|
|
|
|
|
case IDN2_ICONV_FAIL: |
|
|
p = _("could not convert string to UTF-8"); |
|
|
break; |
|
|
|
|
|
case IDN2_ENCODING_ERROR: |
|
|
p = _("string encoding error"); |
|
|
break; |
|
|
|
|
|
case IDN2_NFC: |
|
|
p = _("string could not be NFC normalized"); |
|
|
break; |
|
|
|
|
|
case IDN2_PUNYCODE_BAD_INPUT: |
|
|
p = _("string contains invalid punycode data"); |
|
|
break; |
|
|
|
|
|
case IDN2_PUNYCODE_BIG_OUTPUT: |
|
|
p = _("punycode encoded data will be too large"); |
|
|
break; |
|
|
|
|
|
case IDN2_PUNYCODE_OVERFLOW: |
|
|
p = _("punycode conversion resulted in overflow"); |
|
|
break; |
|
|
|
|
|
case IDN2_TOO_BIG_DOMAIN: |
|
|
p = _("domain name longer than 255 characters"); |
|
|
break; |
|
|
|
|
|
case IDN2_TOO_BIG_LABEL: |
|
|
p = _("domain label longer than 63 characters"); |
|
|
break; |
|
|
|
|
|
case IDN2_INVALID_ALABEL: |
|
|
p = _("input A-label is not valid"); |
|
|
break; |
|
|
|
|
|
case IDN2_UALABEL_MISMATCH: |
|
|
p = _("input A-label and U-label does not match"); |
|
|
break; |
|
|
|
|
|
case IDN2_NOT_NFC: |
|
|
p = _("string is not in Unicode NFC format"); |
|
|
break; |
|
|
|
|
|
case IDN2_2HYPHEN: |
|
|
p = _("string contains forbidden two hyphens pattern"); |
|
|
break; |
|
|
|
|
|
case IDN2_HYPHEN_STARTEND: |
|
|
p = _("string start/ends with forbidden hyphen"); |
|
|
break; |
|
|
|
|
|
case IDN2_LEADING_COMBINING: |
|
|
p = _("string contains a forbidden leading combining character"); |
|
|
break; |
|
|
|
|
|
case IDN2_DISALLOWED: |
|
|
p = _("string contains a disallowed character"); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTJ: |
|
|
p = _("string contains a forbidden context-j character"); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTJ_NO_RULE: |
|
|
p = _("string contains a context-j character with null rule"); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTO: |
|
|
p = _("string contains a forbidden context-o character"); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTO_NO_RULE: |
|
|
p = _("string contains a context-o character with null rule"); |
|
|
break; |
|
|
|
|
|
case IDN2_UNASSIGNED: |
|
|
p = _("string contains unassigned code point"); |
|
|
break; |
|
|
|
|
|
case IDN2_BIDI: |
|
|
p = _("string has forbidden bi-directional properties"); |
|
|
break; |
|
|
|
|
|
default: |
|
|
p = _("Unknown error"); |
|
|
break; |
|
|
case IDN2_OK: return _("success"); |
|
|
case IDN2_MALLOC: return _("out of memory"); |
|
|
case IDN2_NO_CODESET: return _("could not determine locale encoding format"); |
|
|
case IDN2_ICONV_FAIL: return _("could not convert string to UTF-8"); |
|
|
case IDN2_ENCODING_ERROR: return _("string encoding error"); |
|
|
case IDN2_NFC: return _("string could not be NFC normalized"); |
|
|
case IDN2_PUNYCODE_BAD_INPUT: return _("string contains invalid punycode data"); |
|
|
case IDN2_PUNYCODE_BIG_OUTPUT: return _("punycode encoded data will be too large"); |
|
|
case IDN2_PUNYCODE_OVERFLOW: return _("punycode conversion resulted in overflow"); |
|
|
case IDN2_TOO_BIG_DOMAIN: return _("domain name longer than 255 characters"); |
|
|
case IDN2_TOO_BIG_LABEL: return _("domain label longer than 63 characters"); |
|
|
case IDN2_INVALID_ALABEL: return _("input A-label is not valid"); |
|
|
case IDN2_UALABEL_MISMATCH: return _("input A-label and U-label does not match"); |
|
|
case IDN2_NOT_NFC: return _("string is not in Unicode NFC format"); |
|
|
case IDN2_2HYPHEN: return _("string contains forbidden two hyphens pattern"); |
|
|
case IDN2_HYPHEN_STARTEND: return _("string start/ends with forbidden hyphen"); |
|
|
case IDN2_LEADING_COMBINING: return _("string contains a forbidden leading combining character"); |
|
|
case IDN2_DISALLOWED: return _("string contains a disallowed character"); |
|
|
case IDN2_CONTEXTJ: return _("string contains a forbidden context-j character"); |
|
|
case IDN2_CONTEXTJ_NO_RULE: return _("string contains a context-j character with null rule"); |
|
|
case IDN2_CONTEXTO: return _("string contains a forbidden context-o character"); |
|
|
case IDN2_CONTEXTO_NO_RULE: return _("string contains a context-o character with null rule"); |
|
|
case IDN2_UNASSIGNED: return _("string contains unassigned code point"); |
|
|
case IDN2_BIDI: return _("string has forbidden bi-directional properties"); |
|
|
case IDN2_DOT_IN_LABEL: return _("domain label has forbidden dot (TR46)"); |
|
|
case IDN2_INVALID_TRANSITIONAL: return _("domain label has character forbidden in transitional mode (TR46)"); |
|
|
case IDN2_INVALID_NONTRANSITIONAL: return _("domain label has character forbidden in non-transitional mode (TR46)"); |
|
|
default: return _("Unknown error"); |
|
|
} |
|
|
|
|
|
return p; |
|
|
} |
|
|
|
|
|
#define ERR2STR(name) #name |
|
|
@@ -174,126 +99,36 @@ idn2_strerror (int rc) |
|
|
const char * |
|
|
idn2_strerror_name (int rc) |
|
|
{ |
|
|
const char *p; |
|
|
|
|
|
switch (rc) |
|
|
{ |
|
|
case IDN2_OK: |
|
|
p = ERR2STR (IDN2_OK); |
|
|
break; |
|
|
|
|
|
case IDN2_MALLOC: |
|
|
p = ERR2STR (IDN2_MALLOC); |
|
|
break; |
|
|
|
|
|
case IDN2_NO_CODESET: |
|
|
p = ERR2STR (IDN2_NO_NODESET); |
|
|
break; |
|
|
|
|
|
case IDN2_ICONV_FAIL: |
|
|
p = ERR2STR (IDN2_ICONV_FAIL); |
|
|
break; |
|
|
|
|
|
case IDN2_ENCODING_ERROR: |
|
|
p = ERR2STR (IDN2_ENCODING_ERROR); |
|
|
break; |
|
|
|
|
|
case IDN2_NFC: |
|
|
p = ERR2STR (IDN2_NFC); |
|
|
break; |
|
|
|
|
|
case IDN2_PUNYCODE_BAD_INPUT: |
|
|
p = ERR2STR (IDN2_PUNYCODE_BAD_INPUT); |
|
|
break; |
|
|
|
|
|
case IDN2_PUNYCODE_BIG_OUTPUT: |
|
|
p = ERR2STR (IDN2_PUNYCODE_BIG_OUTPUT); |
|
|
break; |
|
|
|
|
|
case IDN2_PUNYCODE_OVERFLOW: |
|
|
p = ERR2STR (IDN2_PUNYCODE_OVERFLOW); |
|
|
break; |
|
|
|
|
|
case IDN2_TOO_BIG_DOMAIN: |
|
|
p = ERR2STR (IDN2_TOO_BIG_DOMAIN); |
|
|
break; |
|
|
|
|
|
case IDN2_TOO_BIG_LABEL: |
|
|
p = ERR2STR (IDN2_TOO_BIG_LABEL); |
|
|
break; |
|
|
|
|
|
case IDN2_INVALID_ALABEL: |
|
|
p = ERR2STR (IDN2_INVALID_ALABEL); |
|
|
break; |
|
|
|
|
|
case IDN2_UALABEL_MISMATCH: |
|
|
p = ERR2STR (IDN2_UALABEL_MISMATCH); |
|
|
break; |
|
|
|
|
|
case IDN2_INVALID_FLAGS: |
|
|
p = ERR2STR (IDN2_INVALID_FLAGS); |
|
|
break; |
|
|
|
|
|
case IDN2_NOT_NFC: |
|
|
p = ERR2STR (IDN2_NOT_NFC); |
|
|
break; |
|
|
|
|
|
case IDN2_2HYPHEN: |
|
|
p = ERR2STR (IDN2_2HYPHEN); |
|
|
break; |
|
|
|
|
|
case IDN2_HYPHEN_STARTEND: |
|
|
p = ERR2STR (IDN2_HYPHEN_STARTEND); |
|
|
break; |
|
|
|
|
|
case IDN2_LEADING_COMBINING: |
|
|
p = ERR2STR (IDN2_LEADING_COMBINING); |
|
|
break; |
|
|
|
|
|
case IDN2_DISALLOWED: |
|
|
p = ERR2STR (IDN2_DISALLOWED); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTJ: |
|
|
p = ERR2STR (IDN2_CONTEXTJ); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTJ_NO_RULE: |
|
|
p = ERR2STR (IDN2_CONTEXTJ_NO_RULE); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTO: |
|
|
p = ERR2STR (IDN2_CONTEXTO); |
|
|
break; |
|
|
|
|
|
case IDN2_CONTEXTO_NO_RULE: |
|
|
p = ERR2STR (IDN2_CONTEXTO_NO_RULE); |
|
|
break; |
|
|
|
|
|
case IDN2_UNASSIGNED: |
|
|
p = ERR2STR (IDN2_UNASSIGNED); |
|
|
break; |
|
|
|
|
|
case IDN2_BIDI: |
|
|
p = ERR2STR (IDN2_BIDI); |
|
|
break; |
|
|
|
|
|
case IDN2_DOT_IN_LABEL: |
|
|
p = ERR2STR (IDN2_DOT_IN_LABEL); |
|
|
break; |
|
|
|
|
|
case IDN2_INVALID_TRANSITIONAL: |
|
|
p = ERR2STR (IDN2_INVALID_TRANSITIONAL); |
|
|
break; |
|
|
|
|
|
case IDN2_INVALID_NONTRANSITIONAL: |
|
|
p = ERR2STR (IDN2_INVALID_NONTRANSITIONAL); |
|
|
break; |
|
|
|
|
|
default: |
|
|
p = "IDN2_UNKNOWN"; |
|
|
break; |
|
|
case IDN2_OK: return ERR2STR (IDN2_OK); |
|
|
case IDN2_MALLOC: return ERR2STR (IDN2_MALLOC); |
|
|
case IDN2_NO_CODESET: return ERR2STR (IDN2_NO_NODESET); |
|
|
case IDN2_ICONV_FAIL: return ERR2STR (IDN2_ICONV_FAIL); |
|
|
case IDN2_ENCODING_ERROR: return ERR2STR (IDN2_ENCODING_ERROR); |
|
|
case IDN2_NFC: return ERR2STR (IDN2_NFC); |
|
|
case IDN2_PUNYCODE_BAD_INPUT: return ERR2STR (IDN2_PUNYCODE_BAD_INPUT); |
|
|
case IDN2_PUNYCODE_BIG_OUTPUT: return ERR2STR (IDN2_PUNYCODE_BIG_OUTPUT); |
|
|
case IDN2_PUNYCODE_OVERFLOW: return ERR2STR (IDN2_PUNYCODE_OVERFLOW); |
|
|
case IDN2_TOO_BIG_DOMAIN: return ERR2STR (IDN2_TOO_BIG_DOMAIN); |
|
|
case IDN2_TOO_BIG_LABEL: return ERR2STR (IDN2_TOO_BIG_LABEL); |
|
|
case IDN2_INVALID_ALABEL: return ERR2STR (IDN2_INVALID_ALABEL); |
|
|
case IDN2_UALABEL_MISMATCH: return ERR2STR (IDN2_UALABEL_MISMATCH); |
|
|
case IDN2_INVALID_FLAGS: return ERR2STR (IDN2_INVALID_FLAGS); |
|
|
case IDN2_NOT_NFC: return ERR2STR (IDN2_NOT_NFC); |
|
|
case IDN2_2HYPHEN: return ERR2STR (IDN2_2HYPHEN); |
|
|
case IDN2_HYPHEN_STARTEND: return ERR2STR (IDN2_HYPHEN_STARTEND); |
|
|
case IDN2_LEADING_COMBINING: return ERR2STR (IDN2_LEADING_COMBINING); |
|
|
case IDN2_DISALLOWED: return ERR2STR (IDN2_DISALLOWED); |
|
|
case IDN2_CONTEXTJ: return ERR2STR (IDN2_CONTEXTJ); |
|
|
case IDN2_CONTEXTJ_NO_RULE: return ERR2STR (IDN2_CONTEXTJ_NO_RULE); |
|
|
case IDN2_CONTEXTO: return ERR2STR (IDN2_CONTEXTO); |
|
|
case IDN2_CONTEXTO_NO_RULE: return ERR2STR (IDN2_CONTEXTO_NO_RULE); |
|
|
case IDN2_UNASSIGNED: return ERR2STR (IDN2_UNASSIGNED); |
|
|
case IDN2_BIDI: return ERR2STR (IDN2_BIDI); |
|
|
case IDN2_DOT_IN_LABEL: return ERR2STR (IDN2_DOT_IN_LABEL); |
|
|
case IDN2_INVALID_TRANSITIONAL: return ERR2STR (IDN2_INVALID_TRANSITIONAL); |
|
|
case IDN2_INVALID_NONTRANSITIONAL: return ERR2STR (IDN2_INVALID_NONTRANSITIONAL); |
|
|
default: return "IDN2_UNKNOWN"; |
|
|
} |
|
|
|
|
|
return p; |
|
|
} |