strerror-pr29.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* strerror-pr29.c --- Convert PR29 errors into text.
  2. * Copyright (C) 2004, 2005, 2006, 2007, 2008 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 the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 2.1 of the License, or (at your option) any later version.
  10. *
  11. * GNU Libidn is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with GNU Libidn; if not, write to the Free Software
  18. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  19. *
  20. */
  21. #ifdef HAVE_CONFIG_H
  22. # include "idn_config.h"
  23. #endif
  24. #include "pr29.h"
  25. #include "gettext.h"
  26. #define _(String) dgettext (PACKAGE, String)
  27. /**
  28. * pr29_strerror - return string describing pr29 error code
  29. * @rc: an #Pr29_rc return code.
  30. *
  31. * Convert a return code integer to a text string. This string can be
  32. * used to output a diagnostic message to the user.
  33. *
  34. * PR29_SUCCESS: Successful operation. This value is guaranteed to
  35. * always be zero, the remaining ones are only guaranteed to hold
  36. * non-zero values, for logical comparison purposes.
  37. * PR29_PROBLEM: A problem sequence was encountered.
  38. * PR29_STRINGPREP_ERROR: The character set conversion failed (only
  39. * for pr29_8() and pr29_8z()).
  40. *
  41. * Return value: Returns a pointer to a statically allocated string
  42. * containing a description of the error with the return code @rc.
  43. **/
  44. const char *
  45. pr29_strerror (Pr29_rc rc)
  46. {
  47. const char *p;
  48. bindtextdomain (PACKAGE, LOCALEDIR);
  49. switch (rc)
  50. {
  51. case PR29_SUCCESS:
  52. p = _("Success");
  53. break;
  54. case PR29_PROBLEM:
  55. p = _("String not idempotent under Unicode NFKC normalization");
  56. break;
  57. case PR29_STRINGPREP_ERROR:
  58. p = _("String preparation failed");
  59. break;
  60. default:
  61. p = _("Unknown error");
  62. break;
  63. }
  64. return p;
  65. }