~vcs-imports/libiconv/trunk

« back to all changes in this revision

Viewing changes to include/iconv.h.in

  • Committer: Bruno Haible
  • Date: 2024-12-15 12:23:08 UTC
  • Revision ID: git-v1:8d618a87265040dc882b451e39c6a39e610395be
Prepare for version 1.18.

* configure.ac: Bump version number to 1.18.
* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 9:0:7.
* src/iconv.c (print_version): Update copyright year.
* windows/iconv.rc: Likewise.
* windows/libiconv.rc: Likewise.
* README: Update download link.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 1999-2023 Free Software Foundation, Inc.
 
1
/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
2
2
   This file is part of the GNU LIBICONV Library.
3
3
 
4
4
   The GNU LIBICONV Library is free software; you can redistribute it
24
24
extern "C" {
25
25
#endif
26
26
 
27
 
#define _LIBICONV_VERSION 0x0111    /* version number: (major<<8) + minor */
 
27
#define _LIBICONV_VERSION 0x0112    /* version number: (major<<8) + minor */
28
28
extern @DLL_VARIABLE@ int _libiconv_version; /* Likewise */
29
29
 
30
30
#ifdef __cplusplus
32
32
#endif
33
33
 
34
34
/* We would like to #include any system header file which could define
35
 
   iconv_t, 1. in order to eliminate the risk that the user gets compilation
 
35
   iconv_t, in order to eliminate the risk that the user gets compilation
36
36
   errors because some other system header file includes /usr/include/iconv.h
37
 
   which defines iconv_t or declares iconv after this file, 2. when compiling
38
 
   for LIBICONV_PLUG, we need the proper iconv_t type in order to produce
39
 
   binary compatible code.
 
37
   which defines iconv_t or declares iconv after this file.
40
38
   But gcc's #include_next is not portable. Thus, once libiconv's iconv.h
41
39
   has been installed in /usr/local/include, there is no way any more to
42
40
   include the original /usr/include/iconv.h. We simply have to get away
43
41
   without it.
44
 
   Ad 1. The risk that a system header file does
 
42
   The risk that a system header file does
45
43
   #include "iconv.h"  or  #include_next "iconv.h"
46
 
   is small. They all do #include <iconv.h>.
47
 
   Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It
48
 
   has to be a scalar type because (iconv_t)(-1) is a possible return value
49
 
   from iconv_open().) */
 
44
   is small. They all do #include <iconv.h>. */
50
45
 
51
46
/* Define iconv_t ourselves. */
52
47
#undef iconv_t
74
69
 
75
70
/* Allocates descriptor for code conversion from encoding ‘fromcode’ to
76
71
   encoding ‘tocode’. */
77
 
#ifndef LIBICONV_PLUG
78
72
#define iconv_open libiconv_open
79
 
#endif
80
73
extern iconv_t iconv_open (const char* tocode, const char* fromcode);
81
74
 
82
75
/* Converts, using conversion descriptor ‘cd’, at most ‘*inbytesleft’ bytes
84
77
   ‘*outbuf’.
85
78
   Decrements ‘*inbytesleft’ and increments ‘*inbuf’ by the same amount.
86
79
   Decrements ‘*outbytesleft’ and increments ‘*outbuf’ by the same amount. */
87
 
#ifndef LIBICONV_PLUG
88
80
#define iconv libiconv
89
 
#endif
90
81
extern size_t iconv (iconv_t cd, @ICONV_CONST@ char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
91
82
 
92
83
/* Frees resources allocated for conversion descriptor ‘cd’. */
93
 
#ifndef LIBICONV_PLUG
94
84
#define iconv_close libiconv_close
95
 
#endif
96
85
extern int iconv_close (iconv_t cd);
97
86
 
98
87
 
101
90
#endif
102
91
 
103
92
 
104
 
#ifndef LIBICONV_PLUG
105
 
 
106
93
/* Nonstandard extensions. */
107
94
 
108
95
#if @USE_MBSTATE_T@
173
160
                                         void* callback_arg),
174
161
              void* callback_arg,
175
162
              void* data);
176
 
#if @HAVE_WCHAR_T@
177
163
/* Fallback function.  Invoked when a number of bytes could not be converted to
178
164
   a wide character.  This function should process all bytes from inbuf and may
179
165
   produce replacement wide characters by calling the write_replacement
194
180
                                         void* callback_arg),
195
181
              void* callback_arg,
196
182
              void* data);
197
 
#else
198
 
/* If the wchar_t type does not exist, these two fallback functions are never
199
 
   invoked.  Their argument list therefore does not matter.  */
200
 
typedef void (*iconv_wchar_mb_to_wc_fallback) ();
201
 
typedef void (*iconv_wchar_wc_to_mb_fallback) ();
202
 
#endif
203
183
/* Set of fallbacks. */
204
184
struct iconv_fallbacks {
205
185
  iconv_unicode_mb_to_uc_fallback mb_to_uc_fallback;
218
198
#define ICONV_SURFACE_EBCDIC_ZOS_UNIX  1
219
199
 
220
200
/* Requests for iconvctl. */
221
 
#define ICONV_TRIVIALP            0  /* int *argument */
222
 
#define ICONV_GET_TRANSLITERATE   1  /* int *argument */
223
 
#define ICONV_SET_TRANSLITERATE   2  /* const int *argument */
224
 
#define ICONV_GET_DISCARD_ILSEQ   3  /* int *argument */
225
 
#define ICONV_SET_DISCARD_ILSEQ   4  /* const int *argument */
226
 
#define ICONV_SET_HOOKS           5  /* const struct iconv_hooks *argument */
227
 
#define ICONV_SET_FALLBACKS       6  /* const struct iconv_fallbacks *argument */
228
 
#define ICONV_GET_FROM_SURFACE    7  /* unsigned int *argument */
229
 
#define ICONV_SET_FROM_SURFACE    8  /* const unsigned int *argument */
230
 
#define ICONV_GET_TO_SURFACE      9  /* unsigned int *argument */
231
 
#define ICONV_SET_TO_SURFACE     10  /* const unsigned int *argument */
 
201
#define ICONV_TRIVIALP                    0  /* int *argument */
 
202
#define ICONV_GET_TRANSLITERATE           1  /* int *argument */
 
203
#define ICONV_SET_TRANSLITERATE           2  /* const int *argument */
 
204
#define ICONV_GET_DISCARD_ILSEQ           3  /* int *argument */
 
205
#define ICONV_SET_DISCARD_ILSEQ           4  /* const int *argument */
 
206
#define ICONV_SET_HOOKS                   5  /* const struct iconv_hooks *argument */
 
207
#define ICONV_SET_FALLBACKS               6  /* const struct iconv_fallbacks *argument */
 
208
#define ICONV_GET_FROM_SURFACE            7  /* unsigned int *argument */
 
209
#define ICONV_SET_FROM_SURFACE            8  /* const unsigned int *argument */
 
210
#define ICONV_GET_TO_SURFACE              9  /* unsigned int *argument */
 
211
#define ICONV_SET_TO_SURFACE             10  /* const unsigned int *argument */
 
212
#define ICONV_GET_DISCARD_INVALID        11  /* int *argument */
 
213
#define ICONV_SET_DISCARD_INVALID        12  /* const int *argument */
 
214
#define ICONV_GET_DISCARD_NON_IDENTICAL  13  /* int *argument */
 
215
#define ICONV_SET_DISCARD_NON_IDENTICAL  14  /* const int *argument */
232
216
 
233
217
/* Listing of locale independent encodings. */
234
218
#define iconvlist libiconvlist
255
239
}
256
240
#endif
257
241
 
258
 
#endif
259
 
 
260
242
 
261
243
#endif /* _LIBICONV_H */