⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gconv.h

📁 Newlib 嵌入式 C库 标准实现代码
💻 H
字号:
/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  *//* This header provides no interface for a user to the internals of   the gconv implementation in the libc.  Therefore there is no use   for these definitions beside for writing additional gconv modules.  */#ifndef _GCONV_H#define _GCONV_H	1#include <features.h>#define __need_mbstate_t#include <wchar.h>#define __need_size_t#define __need_wchar_t#include <stddef.h>/* ISO 10646 value used to signal invalid value.  */#define __UNKNOWN_10646_CHAR	((wchar_t) 0xfffd)/* Error codes for gconv functions.  */enum{  __GCONV_OK = 0,  __GCONV_NOCONV,  __GCONV_NODB,  __GCONV_NOMEM,  __GCONV_EMPTY_INPUT,  __GCONV_FULL_OUTPUT,  __GCONV_ILLEGAL_INPUT,  __GCONV_INCOMPLETE_INPUT,  __GCONV_ILLEGAL_DESCRIPTOR,  __GCONV_INTERNAL_ERROR};/* Flags the `__gconv_open' function can set.  */enum{  __GCONV_IS_LAST = 0x0001,  __GCONV_IGNORE_ERRORS = 0x0002};/* Forward declarations.  */struct __gconv_step;struct __gconv_step_data;struct __gconv_loaded_object;struct __gconv_trans_data;/* Type of a conversion function.  */typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,			    __const unsigned char **, __const unsigned char *,			    unsigned char **, size_t *, int, int);/* Constructor and destructor for local data for conversion step.  */typedef int (*__gconv_init_fct) (struct __gconv_step *);typedef void (*__gconv_end_fct) (struct __gconv_step *);/* Type of a transliteration/transscription function.  */typedef int (*__gconv_trans_fct) (struct __gconv_step *,				  struct __gconv_step_data *, void *,				  __const unsigned char *,				  __const unsigned char **,				  __const unsigned char *, unsigned char **,				  size_t *);/* Function to call to provide transliteration module with context.  */typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,					  __const unsigned char *,					  unsigned char *, unsigned char *);/* Function to query module about supported encoded character sets.  */typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,					size_t *);/* Constructor and destructor for local data for transliteration.  */typedef int (*__gconv_trans_init_fct) (void **, const char *);typedef void (*__gconv_trans_end_fct) (void *);struct __gconv_trans_data{  /* Transliteration/Transscription function.  */  __gconv_trans_fct __trans_fct;  __gconv_trans_context_fct __trans_context_fct;  __gconv_trans_end_fct __trans_end_fct;  void *__data;  struct __gconv_trans_data *__next;};/* Description of a conversion step.  */struct __gconv_step{  struct __gconv_loaded_object *__shlib_handle;  __const char *__modname;  int __counter;  char *__from_name;  char *__to_name;  __gconv_fct __fct;  __gconv_init_fct __init_fct;  __gconv_end_fct __end_fct;  /* Information about the number of bytes needed or produced in this     step.  This helps optimizing the buffer sizes.  */  int __min_needed_from;  int __max_needed_from;  int __min_needed_to;  int __max_needed_to;  /* Flag whether this is a stateful encoding or not.  */  int __stateful;  void *__data;		/* Pointer to step-local data.  */};/* Additional data for steps in use of conversion descriptor.  This is   allocated by the `init' function.  */struct __gconv_step_data{  unsigned char *__outbuf;    /* Output buffer for this step.  */  unsigned char *__outbufend; /* Address of first byte after the output				 buffer.  */  /* Is this the last module in the chain.  */  int __flags;  /* Counter for number of invocations of the module function for this     descriptor.  */  int __invocation_counter;  /* Flag whether this is an internal use of the module (in the mb*towc*     and wc*tomb* functions) or regular with iconv(3).  */  int __internal_use;  mbstate_t *__statep;  mbstate_t __state;	/* This element must not be used directly by			   any module; always use STATEP!  */  /* Transliteration information.  */  struct __gconv_trans_data *__trans;};/* Combine conversion step description with data.  */typedef struct __gconv_info{  size_t __nsteps;  struct __gconv_step *__steps;  __extension__ struct __gconv_step_data __data __flexarr;} *__gconv_t;#endif /* gconv.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -