libidn2/Remove-overhead-from-error.c-add-missing-TR46-values.patch
2020-03-18 18:33:33 +08:00

316 lines
9.7 KiB
Diff

From fc1448456bd429de98e3c5a854430af2555b9a07 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
Date: Wed, 9 Jan 2019 16:59:54 +0100
Subject: [PATCH] Remove overhead from error.c, add missing TR46 values
---
lib/error.c | 279 +++++++++++++-----------------------------------------------
1 file changed, 57 insertions(+), 222 deletions(-)
diff --git a/lib/error.c b/lib/error.c
index 9ab4fb1..0304044 100644
--- a/lib/error.c
+++ b/lib/error.c
@@ -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;
}
--
1.8.3.1