Line data Source code
1 : /* strerror-pr29.c --- Convert PR29 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 "pr29.h"
35 :
36 : #include "gettext.h"
37 : #define _(String) dgettext (PACKAGE, String)
38 :
39 : /**
40 : * pr29_strerror:
41 : * @rc: an #Pr29_rc 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 : * PR29_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 : * PR29_PROBLEM: A problem sequence was encountered.
50 : * PR29_STRINGPREP_ERROR: The character set conversion failed (only
51 : * for pr29_8z()).
52 : *
53 : * Return value: Returns a pointer to a statically allocated string
54 : * containing a description of the error with the return code @rc.
55 : **/
56 : const char *
57 7 : pr29_strerror (Pr29_rc rc)
58 : {
59 : const char *p;
60 :
61 7 : bindtextdomain (PACKAGE, LOCALEDIR);
62 :
63 7 : switch (rc)
64 : {
65 2 : case PR29_SUCCESS:
66 2 : p = _("Success");
67 2 : break;
68 :
69 1 : case PR29_PROBLEM:
70 1 : p = _("String not idempotent under Unicode NFKC normalization");
71 1 : break;
72 :
73 1 : case PR29_STRINGPREP_ERROR:
74 1 : p = _("String preparation failed");
75 1 : break;
76 :
77 3 : default:
78 3 : p = _("Unknown error");
79 3 : break;
80 : }
81 :
82 7 : return p;
83 : }
|