root/maint/gnulib/lib/iconv.in.h

/* [previous][next][first][last][top][bottom][index][help] */
   1 /* A GNU-like <iconv.h>.
   2 
   3    Copyright (C) 2007-2021 Free Software Foundation, Inc.
   4 
   5    This file is free software: you can redistribute it and/or modify
   6    it under the terms of the GNU Lesser General Public License as
   7    published by the Free Software Foundation; either version 2.1 of the
   8    License, or (at your option) any later version.
   9 
  10    This file is distributed in the hope that it will be useful,
  11    but WITHOUT ANY WARRANTY; without even the implied warranty of
  12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13    GNU Lesser General Public License for more details.
  14 
  15    You should have received a copy of the GNU Lesser General Public License
  16    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  17 
  18 #ifndef _@GUARD_PREFIX@_ICONV_H
  19 
  20 #if __GNUC__ >= 3
  21 @PRAGMA_SYSTEM_HEADER@
  22 #endif
  23 @PRAGMA_COLUMNS@
  24 
  25 /* The include_next requires a split double-inclusion guard.  */
  26 #@INCLUDE_NEXT@ @NEXT_ICONV_H@
  27 
  28 #ifndef _@GUARD_PREFIX@_ICONV_H
  29 #define _@GUARD_PREFIX@_ICONV_H
  30 
  31 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
  32 
  33 /* The definition of _GL_ARG_NONNULL is copied here.  */
  34 
  35 /* The definition of _GL_WARN_ON_USE is copied here.  */
  36 
  37 
  38 #if @GNULIB_ICONV@
  39 # if @REPLACE_ICONV_OPEN@
  40 /* An iconv_open wrapper that supports the IANA standardized encoding names
  41    ("ISO-8859-1" etc.) as far as possible.  */
  42 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  43 #   define iconv_open rpl_iconv_open
  44 #  endif
  45 _GL_FUNCDECL_RPL (iconv_open, iconv_t,
  46                   (const char *tocode, const char *fromcode)
  47                   _GL_ARG_NONNULL ((1, 2)));
  48 _GL_CXXALIAS_RPL (iconv_open, iconv_t,
  49                   (const char *tocode, const char *fromcode));
  50 # else
  51 _GL_CXXALIAS_SYS (iconv_open, iconv_t,
  52                   (const char *tocode, const char *fromcode));
  53 # endif
  54 _GL_CXXALIASWARN (iconv_open);
  55 #elif defined GNULIB_POSIXCHECK
  56 # undef iconv_open
  57 # if HAVE_RAW_DECL_ICONV_OPEN
  58 _GL_WARN_ON_USE (iconv_open, "iconv_open is not working correctly everywhere - "
  59                  "use gnulib module iconv for portability");
  60 # endif
  61 #endif
  62 
  63 #if @REPLACE_ICONV_UTF@
  64 /* Special constants for supporting UTF-{16,32}{BE,LE} encodings.
  65    Not public.  */
  66 # define _ICONV_UTF8_UTF16BE (iconv_t)(-161)
  67 # define _ICONV_UTF8_UTF16LE (iconv_t)(-162)
  68 # define _ICONV_UTF8_UTF32BE (iconv_t)(-163)
  69 # define _ICONV_UTF8_UTF32LE (iconv_t)(-164)
  70 # define _ICONV_UTF16BE_UTF8 (iconv_t)(-165)
  71 # define _ICONV_UTF16LE_UTF8 (iconv_t)(-166)
  72 # define _ICONV_UTF32BE_UTF8 (iconv_t)(-167)
  73 # define _ICONV_UTF32LE_UTF8 (iconv_t)(-168)
  74 #endif
  75 
  76 #if @GNULIB_ICONV@
  77 # if @REPLACE_ICONV@
  78 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  79 #   define iconv rpl_iconv
  80 #  endif
  81 _GL_FUNCDECL_RPL (iconv, size_t,
  82                   (iconv_t cd,
  83                    @ICONV_CONST@ char **restrict inbuf,
  84                    size_t *restrict inbytesleft,
  85                    char **restrict outbuf, size_t *restrict outbytesleft));
  86 _GL_CXXALIAS_RPL (iconv, size_t,
  87                   (iconv_t cd,
  88                    @ICONV_CONST@ char **restrict inbuf,
  89                    size_t *restrict inbytesleft,
  90                    char **restrict outbuf, size_t *restrict outbytesleft));
  91 # else
  92 /* Need to cast, because on some versions of Solaris, ICONV_CONST does
  93    not have the right value for C++.  */
  94 _GL_CXXALIAS_SYS_CAST (iconv, size_t,
  95                        (iconv_t cd,
  96                         @ICONV_CONST@ char **restrict inbuf,
  97                         size_t *restrict inbytesleft,
  98                         char **restrict outbuf, size_t *restrict outbytesleft));
  99 # endif
 100 _GL_CXXALIASWARN (iconv);
 101 # ifndef ICONV_CONST
 102 #  define ICONV_CONST @ICONV_CONST@
 103 # endif
 104 #elif defined GNULIB_POSIXCHECK
 105 # undef iconv
 106 # if HAVE_RAW_DECL_ICONV
 107 _GL_WARN_ON_USE (iconv, "iconv is not working correctly everywhere - "
 108                  "use gnulib module iconv for portability");
 109 # endif
 110 #endif
 111 
 112 #if @GNULIB_ICONV@
 113 # if @REPLACE_ICONV@
 114 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 115 #   define iconv_close rpl_iconv_close
 116 #  endif
 117 _GL_FUNCDECL_RPL (iconv_close, int, (iconv_t cd));
 118 _GL_CXXALIAS_RPL (iconv_close, int, (iconv_t cd));
 119 # else
 120 _GL_CXXALIAS_SYS (iconv_close, int, (iconv_t cd));
 121 # endif
 122 _GL_CXXALIASWARN (iconv_close);
 123 #endif
 124 
 125 
 126 #endif /* _@GUARD_PREFIX@_ICONV_H */
 127 #endif /* _@GUARD_PREFIX@_ICONV_H */

/* [previous][next][first][last][top][bottom][index][help] */