Branch data Line data Source code
1 : : /* strerror-tld.c --- Convert TLD errors into text.
2 : : Copyright (C) 2004-2012 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: Error during iconv string conversion.
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 : : case TLD_SUCCESS:
68 : 2 : p = _("Success");
69 : 2 : break;
70 : :
71 : : case TLD_INVALID:
72 : 1 : p = _("Code points prohibited by top-level domain");
73 : 1 : break;
74 : :
75 : : case TLD_NODATA:
76 : 1 : p = _("Missing input");
77 : 1 : break;
78 : :
79 : : case TLD_MALLOC_ERROR:
80 : 1 : p = _("Cannot allocate memory");
81 : 1 : break;
82 : :
83 : : case TLD_ICONV_ERROR:
84 : 1 : p = _("System iconv failed");
85 : 1 : break;
86 : :
87 : : case TLD_NO_TLD:
88 : 1 : p = _("No top-level domain found in input");
89 : 1 : break;
90 : :
91 : : default:
92 : 3 : p = _("Unknown error");
93 : 3 : break;
94 : : }
95 : :
96 : 10 : return p;
97 : : }
|