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 : }