/src/dcmtk/oficonv/libsrc/citrus_bcs.h
Line | Count | Source |
1 | | /*- |
2 | | * Copyright (c)2003 Citrus Project, |
3 | | * All rights reserved. |
4 | | * |
5 | | * Redistribution and use in source and binary forms, with or without |
6 | | * modification, are permitted provided that the following conditions |
7 | | * are met: |
8 | | * 1. Redistributions of source code must retain the above copyright |
9 | | * notice, this list of conditions and the following disclaimer. |
10 | | * 2. Redistributions in binary form must reproduce the above copyright |
11 | | * notice, this list of conditions and the following disclaimer in the |
12 | | * documentation and/or other materials provided with the distribution. |
13 | | * |
14 | | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
15 | | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
16 | | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
17 | | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
18 | | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
19 | | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
20 | | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
21 | | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
22 | | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
23 | | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
24 | | * SUCH DAMAGE. |
25 | | */ |
26 | | |
27 | | #ifndef _CITRUS_BCS_H_ |
28 | | #define _CITRUS_BCS_H_ |
29 | | |
30 | | #include "dcmtk/config/osconfig.h" |
31 | | |
32 | | #include <sys/types.h> |
33 | | #ifdef HAVE_WINDOWS_H |
34 | | #include <windows.h> |
35 | | #endif |
36 | | |
37 | | #include <errno.h> |
38 | | #include <stdint.h> |
39 | | #include <limits.h> |
40 | | #include <stdbool.h> |
41 | | |
42 | 0 | #define CITRUS_DECONST(type, var) ((type)(uintptr_t)(const void *)(var)) |
43 | | |
44 | | #ifdef __GNUC__ |
45 | | #define __packed __attribute__((__packed__)) |
46 | | #else |
47 | | #define __packed |
48 | | #endif |
49 | | |
50 | | #ifndef LINE_MAX |
51 | | #ifdef _POSIX2_LINE_MAX |
52 | | #define LINE_MAX _POSIX2_LINE_MAX |
53 | | #else |
54 | | #define LINE_MAX 2048 |
55 | | #endif |
56 | | #endif |
57 | | |
58 | 0 | #define OFICONV_PATH_MAX 4096 |
59 | | |
60 | | #ifndef EFTYPE |
61 | 0 | #define EFTYPE EINVAL |
62 | | #endif |
63 | | |
64 | | /* The original path to the citrus libiconv files is /usr/share/i18n, |
65 | | * we use DCMTK's DEFAULT_SUPPORT_DATA_DIR instead. */ |
66 | | |
67 | 0 | #define OFICONV_PATH_VARIABLE "DCMICONVPATH" |
68 | 0 | #define OFICONV_CSMAPPER_DIR "csmapper" |
69 | 0 | #define OFICONV_ESDB_DIR "esdb" |
70 | | |
71 | | #ifndef CHAR_MAX |
72 | | #error Need to define CHAR_MAX |
73 | | #endif |
74 | | |
75 | | #ifndef BIG_ENDIAN |
76 | | #define BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */ |
77 | | #endif |
78 | | #ifndef LITTLE_ENDIAN |
79 | | #define LITTLE_ENDIAN 1234 /* LSB first: i386, vax */ |
80 | | #endif |
81 | | |
82 | | #ifndef BYTE_ORDER |
83 | | /* Detect with GCC macro. */ |
84 | | # if defined(__BYTE_ORDER__) |
85 | | # if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) |
86 | | # define BYTE_ORDER LITTLE_ENDIAN |
87 | | # elif (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) |
88 | | # define BYTE_ORDER BIG_ENDIAN |
89 | | # else |
90 | | # error "Unknown machine byteorder endianness detected. User needs to define BYTE_ORDER." |
91 | | # endif |
92 | | /* Detect with GLIBC's endian.h. */ |
93 | | # elif defined(__GLIBC__) |
94 | | # include <endian.h> |
95 | | # if (__BYTE_ORDER == __LITTLE_ENDIAN) |
96 | | # define BYTE_ORDER LITTLE_ENDIAN |
97 | | # elif (__BYTE_ORDER == __BIG_ENDIAN) |
98 | | # define BYTE_ORDER BIG_ENDIAN |
99 | | # else |
100 | | # error "Unknown machine byteorder endianness detected. User needs to define BYTE_ORDER." |
101 | | # endif |
102 | | /* Detect with _LITTLE_ENDIAN and _BIG_ENDIAN macro. */ |
103 | | # elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) |
104 | | # define BYTE_ORDER LITTLE_ENDIAN |
105 | | # elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) |
106 | | # define BYTE_ORDER BIG_ENDIAN |
107 | | /* Detect with architecture macros. */ |
108 | | # elif defined(__sparc) || defined(__sparc__) || defined(_POWER) || defined(__powerpc__) || defined(__ppc__) || defined(__hpux) || defined(__hppa) || defined(_MIPSEB) || defined(_POWER) || defined(__s390__) |
109 | | # define BYTE_ORDER BIG_ENDIAN |
110 | | # elif defined(__i386__) || defined(__alpha__) || defined(__ia64) || defined(__ia64__) || defined(_M_IX86) || defined(_M_IA64) || defined(_M_ALPHA) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64) || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || defined(__bfin__) |
111 | | # define BYTE_ORDER LITTLE_ENDIAN |
112 | | # elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) |
113 | | # define BYTE_ORDER LITTLE_ENDIAN |
114 | | # else |
115 | | # error "Unknown machine byteorder endianness detected. User needs to define BYTE_ORDER." |
116 | | # endif |
117 | | #endif |
118 | | |
119 | | #if BYTE_ORDER == LITTLE_ENDIAN |
120 | | #ifndef be16toh |
121 | | # define be16toh(x) ((uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) |
122 | | #endif |
123 | | #ifndef be32toh |
124 | | # define be32toh(x) ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) |
125 | | #endif |
126 | | #else |
127 | | #ifndef be16toh |
128 | | # define be16toh(x) ((uint32_t)(x)) |
129 | | #endif |
130 | | #ifndef be32toh |
131 | | # define be32toh(x) ((uint16_t)(x)) |
132 | | #endif |
133 | | #endif |
134 | | |
135 | | /* |
136 | | * predicate/conversion for basic character set. |
137 | | * |
138 | | * `Basic character set' is a term defined in the ISO C standard. |
139 | | * Citrus bcs is, if anything, close to `portable character set' |
140 | | * defined in the POSIX. |
141 | | */ |
142 | | |
143 | | #define _CITRUS_BCS_PRED(_name_, _cond_) \ |
144 | 0 | static __inline int _citrus_bcs_##_name_(uint8_t c) { return (_cond_); }Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_isblank Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_iseol Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_isspace Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_isdigit Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_isupper Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_islower Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_isalpha Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_isalnum Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_islower Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_islower Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_db.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_db.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_db.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_db.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_db.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_db.c:_citrus_bcs_islower Unexecuted instantiation: citrus_db.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_db.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_db.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_islower Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_islower Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_islower Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_islower Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_islower Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_module.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_module.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_module.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_module.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_module.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_module.c:_citrus_bcs_islower Unexecuted instantiation: citrus_module.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_module.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_module.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_ues.c:_citrus_bcs_islower Unexecuted instantiation: citrus_ues.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_ues.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_ues.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_ues.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_ues.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_ues.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_ues.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_ues.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_islower Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_islower Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_islower Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_islower Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_zw.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_zw.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_zw.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_zw.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_zw.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_zw.c:_citrus_bcs_islower Unexecuted instantiation: citrus_zw.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_zw.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_zw.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_islower Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_big5.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_big5.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_big5.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_big5.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_big5.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_big5.c:_citrus_bcs_islower Unexecuted instantiation: citrus_big5.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_big5.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_big5.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_islower Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_euc.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_euc.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_euc.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_euc.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_euc.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_euc.c:_citrus_bcs_islower Unexecuted instantiation: citrus_euc.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_euc.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_euc.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_islower Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_islower Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_hash.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_hash.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_hash.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_hash.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_hash.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_hash.c:_citrus_bcs_islower Unexecuted instantiation: citrus_hash.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_hash.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_hash.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_hz.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_hz.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_hz.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_hz.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_hz.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_hz.c:_citrus_bcs_islower Unexecuted instantiation: citrus_hz.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_hz.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_hz.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_islower Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_islower Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_islower Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_islower Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_johab.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_johab.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_johab.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_johab.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_johab.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_johab.c:_citrus_bcs_islower Unexecuted instantiation: citrus_johab.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_johab.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_johab.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_islower Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_prop.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_prop.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_prop.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_prop.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_prop.c:_citrus_bcs_islower Unexecuted instantiation: citrus_prop.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_prop.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_prop.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_prop.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_islower Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_islower Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_isxdigit Unexecuted instantiation: citrus_none.c:_citrus_bcs_isblank Unexecuted instantiation: citrus_none.c:_citrus_bcs_iseol Unexecuted instantiation: citrus_none.c:_citrus_bcs_isspace Unexecuted instantiation: citrus_none.c:_citrus_bcs_isdigit Unexecuted instantiation: citrus_none.c:_citrus_bcs_isupper Unexecuted instantiation: citrus_none.c:_citrus_bcs_islower Unexecuted instantiation: citrus_none.c:_citrus_bcs_isalpha Unexecuted instantiation: citrus_none.c:_citrus_bcs_isalnum Unexecuted instantiation: citrus_none.c:_citrus_bcs_isxdigit |
145 | | |
146 | | /* |
147 | | * predicates. |
148 | | * Unlike predicates defined in ctype.h, these do not accept EOF. |
149 | | */ |
150 | | _CITRUS_BCS_PRED(isblank, c == ' ' || c == '\t') |
151 | | _CITRUS_BCS_PRED(iseol, c == '\n' || c == '\r') |
152 | | _CITRUS_BCS_PRED(isspace, _citrus_bcs_isblank(c) || _citrus_bcs_iseol(c) || c == '\f' || c == '\v') |
153 | | _CITRUS_BCS_PRED(isdigit, c >= '0' && c <= '9') |
154 | | _CITRUS_BCS_PRED(isupper, c >= 'A' && c <= 'Z') |
155 | | _CITRUS_BCS_PRED(islower, c >= 'a' && c <= 'z') |
156 | | _CITRUS_BCS_PRED(isalpha, _citrus_bcs_isupper(c) || _citrus_bcs_islower(c)) |
157 | | _CITRUS_BCS_PRED(isalnum, _citrus_bcs_isdigit(c) || _citrus_bcs_isalpha(c)) |
158 | | _CITRUS_BCS_PRED(isxdigit, _citrus_bcs_isdigit(c) || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f')) |
159 | | |
160 | | /* |
161 | | * transliterate between uppercase and lowercase. |
162 | | * Unlike transliterator defined in ctype.h, these do not accept EOF. |
163 | | */ |
164 | | static __inline uint8_t |
165 | | _citrus_bcs_toupper(uint8_t c) |
166 | 0 | { |
167 | |
|
168 | 0 | return (_citrus_bcs_islower(c) ? (c - 'a' + 'A') : c); |
169 | 0 | } Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_db.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_module.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_ues.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_zw.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_big5.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_euc.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_hash.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_hz.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_johab.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_prop.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_toupper Unexecuted instantiation: citrus_none.c:_citrus_bcs_toupper |
170 | | |
171 | | static __inline uint8_t |
172 | | _citrus_bcs_tolower(uint8_t c) |
173 | 0 | { |
174 | |
|
175 | 0 | return (_citrus_bcs_isupper(c) ? (c - 'A' + 'a') : c); |
176 | 0 | } Unexecuted instantiation: oficonv_iconv.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_bcs.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_csmapper.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_db.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_db_hash.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_esdb.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_iconv.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_lookup.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mapper.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_memstream.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mmap.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_module.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mskanji.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_ues.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_utf1632.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_utf7.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_utf8.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_viqr.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_zw.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_bcs_strtoul.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_big5.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_dechanyu.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_euc.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_euctw.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_gbk2k.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_hash.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_hz.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_iconv_none.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_iconv_std.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_iso2022.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_jisx0208.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_johab.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mapper_646.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mapper_none.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mapper_serial.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mapper_std.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_mapper_zone.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_prop.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_stdenc.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_bcs_strtol.c:_citrus_bcs_tolower Unexecuted instantiation: citrus_none.c:_citrus_bcs_tolower |
177 | | |
178 | | BEGIN_EXTERN_C |
179 | | int _citrus_bcs_strcasecmp(const char * , const char * ); |
180 | | int _citrus_bcs_strncasecmp(const char * , const char * , size_t); |
181 | | const char *_citrus_bcs_skip_ws(const char * ); |
182 | | const char *_citrus_bcs_skip_nonws(const char * ); |
183 | | const char *_citrus_bcs_skip_ws_len(const char * , size_t * ); |
184 | | const char *_citrus_bcs_skip_nonws_len(const char * , size_t * ); |
185 | | void _citrus_bcs_trunc_rws_len(const char * , size_t * ); |
186 | | void _citrus_bcs_convert_to_lower(char *); |
187 | | void _citrus_bcs_convert_to_upper(char *); |
188 | | long int _citrus_bcs_strtol(const char * , char ** , int); |
189 | | unsigned long _citrus_bcs_strtoul(const char * , char ** , int); |
190 | | |
191 | | /** return path to data file or data directory. This function checks the value |
192 | | * of the environment variable DCMICONVPATH and uses it as the base path, if present, |
193 | | * and the hard-coded DEFAULT_SUPPORT_DATA_DIR otherwise. |
194 | | * @param path_out full path to data file returned in this buffer |
195 | | * @param size of buffer, should be MAX_PATH or larger |
196 | | * @param dirname name of the data directory, e.g. "esdb" or "csmapper" |
197 | | * @param filename name of the data file, may be NULL, in which case the name of the data directory is returned |
198 | | */ |
199 | | void get_data_path(char *path_out, size_t path_size, const char *dirname, const char *filename); |
200 | | END_EXTERN_C |
201 | | |
202 | | #endif |