LCOV - GNU Libidn - lib/strerror-idna.c

LCOV - code coverage report
Current view: top level - lib - strerror-idna.c (source / functions) Hit Total Coverage
Test: GNU Libidn Lines: 43 43 100.0 %
Date: 2020年07月22日 17:53:13 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

 Line data Source code
 1  : /* strerror-idna.c --- Convert IDNA 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 "idna.h"
 35  : 
 36  : #include "gettext.h"
 37  : #define _(String) dgettext (PACKAGE, String)
 38  : 
 39  : /**
 40  : * idna_strerror:
 41  : * @rc: an #Idna_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  : * IDNA_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  : * IDNA_STRINGPREP_ERROR: Error during string preparation.
 50  : * IDNA_PUNYCODE_ERROR: Error during punycode operation.
 51  : * IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that
 52  : * the string contains non-LDH ASCII characters.
 53  : * IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that
 54  : * the string contains a leading or trailing hyphen-minus (U+002D).
 55  : * IDNA_INVALID_LENGTH: The final output string is not within the
 56  : * (inclusive) range 1 to 63 characters.
 57  : * IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix
 58  : * (for ToUnicode).
 59  : * IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output
 60  : * string does not equal the input.
 61  : * IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for
 62  : * ToASCII).
 63  : * IDNA_ICONV_ERROR: Character encoding conversion error.
 64  : * IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a
 65  : * fatal error).
 66  : * IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used
 67  : * internally in libc).
 68  : *
 69  : * Return value: Returns a pointer to a statically allocated string
 70  : * containing a description of the error with the return code @rc.
 71  : **/
 72  : const char *
 73  18 : idna_strerror (Idna_rc rc)
 74  : {
 75  : const char *p;
 76  : 
 77  18 : bindtextdomain (PACKAGE, LOCALEDIR);
 78  : 
 79  18 : switch (rc)
 80  : {
 81  2 : case IDNA_SUCCESS:
 82  2 : p = _("Success");
 83  2 : break;
 84  : 
 85  1 : case IDNA_STRINGPREP_ERROR:
 86  1 : p = _("String preparation failed");
 87  1 : break;
 88  : 
 89  1 : case IDNA_PUNYCODE_ERROR:
 90  1 : p = _("Punycode failed");
 91  1 : break;
 92  : 
 93  1 : case IDNA_CONTAINS_NON_LDH:
 94  1 : p = _("Non-digit/letter/hyphen in input");
 95  1 : break;
 96  : 
 97  1 : case IDNA_CONTAINS_MINUS:
 98  1 : p = _("Forbidden leading or trailing minus sign ('-')");
 99  1 : break;
 100  : 
 101  1 : case IDNA_INVALID_LENGTH:
 102  1 : p = _("Output would be too large or too small");
 103  1 : break;
 104  : 
 105  1 : case IDNA_NO_ACE_PREFIX:
 106  1 : p = _("Input does not start with ACE prefix ('xn--')");
 107  1 : break;
 108  : 
 109  1 : case IDNA_ROUNDTRIP_VERIFY_ERROR:
 110  1 : p = _("String not idempotent under ToASCII");
 111  1 : break;
 112  : 
 113  1 : case IDNA_CONTAINS_ACE_PREFIX:
 114  1 : p = _("Input already contain ACE prefix ('xn--')");
 115  1 : break;
 116  : 
 117  1 : case IDNA_ICONV_ERROR:
 118  1 : p = _("Character encoding conversion error");
 119  1 : break;
 120  : 
 121  1 : case IDNA_MALLOC_ERROR:
 122  1 : p = _("Cannot allocate memory");
 123  1 : break;
 124  : 
 125  1 : case IDNA_DLOPEN_ERROR:
 126  1 : p = _("System dlopen failed");
 127  1 : break;
 128  : 
 129  5 : default:
 130  5 : p = _("Unknown error");
 131  5 : break;
 132  : }
 133  : 
 134  18 : return p;
 135  : }

Generated by: LCOV version 1.13

AltStyle によって変換されたページ (->オリジナル) /