(root)/
bison-3.8.2/
lib/
iconv.in.h
       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 */