003 File Manager
Current Path:
/usr/src/lib/libc/iconv
usr
/
src
/
lib
/
libc
/
iconv
/
📁
..
📄
Makefile.inc
(797 B)
📄
Symbol.map
(2.53 KB)
📄
__iconv.c
(1.6 KB)
📄
__iconv_free_list.c
(1.53 KB)
📄
__iconv_get_list.3
(3.35 KB)
📄
__iconv_get_list.c
(1.56 KB)
📄
_strtol.h
(4.79 KB)
📄
_strtoul.h
(3.55 KB)
📄
bsd_iconv.c
(7.24 KB)
📄
citrus_aliasname_local.h
(1.87 KB)
📄
citrus_bcs.c
(3.53 KB)
📄
citrus_bcs.h
(3.73 KB)
📄
citrus_bcs_strtol.c
(1.98 KB)
📄
citrus_bcs_strtoul.c
(1.99 KB)
📄
citrus_csmapper.c
(8.9 KB)
📄
citrus_csmapper.h
(2.15 KB)
📄
citrus_db.c
(8.33 KB)
📄
citrus_db.h
(2.81 KB)
📄
citrus_db_factory.c
(8.2 KB)
📄
citrus_db_factory.h
(2.6 KB)
📄
citrus_db_file.h
(2.42 KB)
📄
citrus_db_hash.c
(2.02 KB)
📄
citrus_db_hash.h
(1.6 KB)
📄
citrus_esdb.c
(8.51 KB)
📄
citrus_esdb.h
(2.13 KB)
📄
citrus_esdb_file.h
(1.92 KB)
📄
citrus_fix_grouping.h
(2.1 KB)
📄
citrus_hash.c
(1.88 KB)
📄
citrus_hash.h
(2.34 KB)
📄
citrus_iconv.c
(8.69 KB)
📄
citrus_iconv.h
(2.34 KB)
📄
citrus_iconv_local.h
(4.35 KB)
📄
citrus_lock.h
(1.58 KB)
📄
citrus_lookup.c
(7.88 KB)
📄
citrus_lookup.h
(2.43 KB)
📄
citrus_lookup_factory.c
(3.28 KB)
📄
citrus_lookup_factory.h
(1.62 KB)
📄
citrus_lookup_file.h
(1.57 KB)
📄
citrus_mapper.c
(8.33 KB)
📄
citrus_mapper.h
(4.2 KB)
📄
citrus_mapper_local.h
(3.86 KB)
📄
citrus_memstream.c
(3.81 KB)
📄
citrus_memstream.h
(5.45 KB)
📄
citrus_mmap.c
(2.6 KB)
📄
citrus_mmap.h
(1.67 KB)
📄
citrus_module.c
(8.82 KB)
📄
citrus_module.h
(2.06 KB)
📄
citrus_namespace.h
(10.2 KB)
📄
citrus_none.c
(5.63 KB)
📄
citrus_none.h
(1.63 KB)
📄
citrus_pivot_factory.c
(5.12 KB)
📄
citrus_pivot_factory.h
(1.61 KB)
📄
citrus_pivot_file.h
(1.61 KB)
📄
citrus_prop.c
(10.38 KB)
📄
citrus_prop.h
(3.23 KB)
📄
citrus_region.h
(2.97 KB)
📄
citrus_stdenc.c
(3.85 KB)
📄
citrus_stdenc.h
(3.9 KB)
📄
citrus_stdenc_local.h
(6.53 KB)
📄
citrus_stdenc_template.h
(5.65 KB)
📄
citrus_types.h
(1.68 KB)
📄
iconv-internal.h
(2.16 KB)
📄
iconv.3
(7.55 KB)
📄
iconv.c
(1.62 KB)
📄
iconv_canonicalize.3
(2.93 KB)
📄
iconv_canonicalize.c
(1.54 KB)
📄
iconv_close.c
(1.52 KB)
📄
iconv_compat.c
(3.69 KB)
📄
iconv_open.c
(1.54 KB)
📄
iconv_open_into.c
(1.57 KB)
📄
iconv_set_relocation_prefix.c
(1.57 KB)
📄
iconvctl.3
(5.66 KB)
📄
iconvctl.c
(1.53 KB)
📄
iconvlist.3
(3.24 KB)
📄
iconvlist.c
(1.57 KB)
Editing: citrus_none.c
/* $FreeBSD$ */ /* $NetBSD: citrus_none.c,v 1.18 2008/06/14 16:01:07 tnozaki Exp $ */ /*- * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002 Citrus Project, * Copyright (c) 2010 Gabor Kovesdan <gabor@FreeBSD.org>, * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include <sys/cdefs.h> #include <sys/types.h> #include <assert.h> #include <errno.h> #include <iconv.h> #include <stddef.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <wchar.h> #include "citrus_namespace.h" #include "citrus_types.h" #include "citrus_module.h" #include "citrus_none.h" #include "citrus_stdenc.h" _CITRUS_STDENC_DECLS(NONE); _CITRUS_STDENC_DEF_OPS(NONE); struct _citrus_stdenc_traits _citrus_NONE_stdenc_traits = { 0, /* et_state_size */ 1, /* mb_cur_max */ }; static int _citrus_NONE_stdenc_init(struct _citrus_stdenc * __restrict ce, const void *var __unused, size_t lenvar __unused, struct _citrus_stdenc_traits * __restrict et) { et->et_state_size = 0; et->et_mb_cur_max = 1; ce->ce_closure = NULL; return (0); } static void _citrus_NONE_stdenc_uninit(struct _citrus_stdenc *ce __unused) { } static int _citrus_NONE_stdenc_init_state(struct _citrus_stdenc * __restrict ce __unused, void * __restrict ps __unused) { return (0); } static int _citrus_NONE_stdenc_mbtocs(struct _citrus_stdenc * __restrict ce __unused, _csid_t *csid, _index_t *idx, char **s, size_t n, void *ps __unused, size_t *nresult, struct iconv_hooks *hooks) { if (n < 1) { *nresult = (size_t)-2; return (0); } *csid = 0; *idx = (_index_t)(unsigned char)*(*s)++; *nresult = *idx == 0 ? 0 : 1; if ((hooks != NULL) && (hooks->uc_hook != NULL)) hooks->uc_hook((unsigned int)*idx, hooks->data); return (0); } static int _citrus_NONE_stdenc_cstomb(struct _citrus_stdenc * __restrict ce __unused, char *s, size_t n, _csid_t csid, _index_t idx, void *ps __unused, size_t *nresult, struct iconv_hooks *hooks __unused) { if (csid == _CITRUS_CSID_INVALID) { *nresult = 0; return (0); } if (csid != 0) return (EILSEQ); if ((idx & 0x000000FF) == idx) { if (n < 1) { *nresult = (size_t)-1; return (E2BIG); } *s = (char)idx; *nresult = 1; } else if ((idx & 0x0000FFFF) == idx) { if (n < 2) { *nresult = (size_t)-1; return (E2BIG); } s[0] = (char)idx; /* XXX: might be endian dependent */ s[1] = (char)(idx >> 8); *nresult = 2; } else if ((idx & 0x00FFFFFF) == idx) { if (n < 3) { *nresult = (size_t)-1; return (E2BIG); } s[0] = (char)idx; /* XXX: might be endian dependent */ s[1] = (char)(idx >> 8); s[2] = (char)(idx >> 16); *nresult = 3; } else { if (n < 4) { *nresult = (size_t)-1; return (E2BIG); } s[0] = (char)idx; /* XXX: might be endian dependent */ s[1] = (char)(idx >> 8); s[2] = (char)(idx >> 16); s[3] = (char)(idx >> 24); *nresult = 4; } return (0); } static int _citrus_NONE_stdenc_mbtowc(struct _citrus_stdenc * __restrict ce __unused, _wc_t * __restrict pwc, char ** __restrict s, size_t n, void * __restrict pspriv __unused, size_t * __restrict nresult, struct iconv_hooks *hooks) { if (*s == NULL) { *nresult = 0; return (0); } if (n == 0) { *nresult = (size_t)-2; return (0); } if (pwc != NULL) *pwc = (_wc_t)(unsigned char) **s; *nresult = **s == '\0' ? 0 : 1; if ((hooks != NULL) && (hooks->wc_hook != NULL)) hooks->wc_hook(*pwc, hooks->data); return (0); } static int _citrus_NONE_stdenc_wctomb(struct _citrus_stdenc * __restrict ce __unused, char * __restrict s, size_t n, _wc_t wc, void * __restrict pspriv __unused, size_t * __restrict nresult, struct iconv_hooks *hooks __unused) { if ((wc & ~0xFFU) != 0) { *nresult = (size_t)-1; return (EILSEQ); } if (n == 0) { *nresult = (size_t)-1; return (E2BIG); } *nresult = 1; if (s != NULL && n > 0) *s = (char)wc; return (0); } static int _citrus_NONE_stdenc_put_state_reset(struct _citrus_stdenc * __restrict ce __unused, char * __restrict s __unused, size_t n __unused, void * __restrict pspriv __unused, size_t * __restrict nresult) { *nresult = 0; return (0); } static int _citrus_NONE_stdenc_get_state_desc(struct _stdenc * __restrict ce __unused, void * __restrict ps __unused, int id, struct _stdenc_state_desc * __restrict d) { int ret = 0; switch (id) { case _STDENC_SDID_GENERIC: d->u.generic.state = _STDENC_SDGEN_INITIAL; break; default: ret = EOPNOTSUPP; } return (ret); }
Upload File
Create Folder