Line data Source code
1 : /* strerror-tld.c --- Convert TLD errors into text.
2 : Copyright (C) 2004-2020 Simon Josefsson
3 :
4 : This file is part of GNU Libidn.
5 :
6 : GNU Libidn is free software: you can redistribute it and/or
7 : modify it under the terms of either:
8 :
9 : * the GNU Lesser General Public License as published by the Free
10 : Software Foundation; either version 3 of the License, or (at
11 : your option) any later version.
12 :
13 : or
14 :
15 : * the GNU General Public License as published by the Free
16 : Software Foundation; either version 2 of the License, or (at
17 : your option) any later version.
18 :
19 : or both in parallel, as here.
20 :
21 : GNU Libidn is distributed in the hope that it will be useful,
22 : but WITHOUT ANY WARRANTY; without even the implied warranty of
23 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 : General Public License for more details.
25 :
26 : You should have received copies of the GNU General Public License and
27 : the GNU Lesser General Public License along with this program. If
28 : not, see <http://www.gnu.org/licenses/>. */
29 :
30 : #ifdef HAVE_CONFIG_H
31 : # include "config.h"
32 : #endif
33 :
34 : #include "tld.h"
35 :
36 : #include "gettext.h"
37 : #define _(String) dgettext (PACKAGE, String)
38 :
39 : /**
40 : * tld_strerror:
41 : * @rc: tld return code
42 : *
43 : * Convert a return code integer to a text string. This string can be
44 : * used to output a diagnostic message to the user.
45 : *
46 : * TLD_SUCCESS: Successful operation. This value is guaranteed to
47 : * always be zero, the remaining ones are only guaranteed to hold
48 : * non-zero values, for logical comparison purposes.
49 : * TLD_INVALID: Invalid character found.
50 : * TLD_NODATA: No input data was provided.
51 : * TLD_MALLOC_ERROR: Error during memory allocation.
52 : * TLD_ICONV_ERROR: Character encoding conversion error.
53 : * TLD_NO_TLD: No top-level domain found in domain string.
54 : *
55 : * Return value: Returns a pointer to a statically allocated string
56 : * containing a description of the error with the return code @rc.
57 : **/
58 : const char *
59 10 : tld_strerror (Tld_rc rc)
60 : {
61 : const char *p;
62 :
63 10 : bindtextdomain (PACKAGE, LOCALEDIR);
64 :
65 10 : switch (rc)
66 : {
67 2 : case TLD_SUCCESS:
68 2 : p = _("Success");
69 2 : break;
70 :
71 1 : case TLD_INVALID:
72 1 : p = _("Code points prohibited by top-level domain");
73 1 : break;
74 :
75 1 : case TLD_NODATA:
76 1 : p = _("Missing input");
77 1 : break;
78 :
79 1 : case TLD_MALLOC_ERROR:
80 1 : p = _("Cannot allocate memory");
81 1 : break;
82 :
83 1 : case TLD_ICONV_ERROR:
84 1 : p = _("Character encoding conversion error");
85 1 : break;
86 :
87 1 : case TLD_NO_TLD:
88 1 : p = _("No top-level domain found in input");
89 1 : break;
90 :
91 3 : default:
92 3 : p = _("Unknown error");
93 3 : break;
94 : }
95 :
96 10 : return p;
97 : }
|