2 * Copyright (c) 1995-1999, Index Data.
6 * Use and redistribution in source or binary form, with or without
7 * modification, of any or all of this software and documentation is
8 * permitted, provided that the following conditions are met:
10 * 1. This copyright and permission notice appear with all copies of the
11 * software and its documentation. Notices of copyright or attribution
12 * which appear at the beginning of any file must remain unchanged.
14 * 2. The names of Index Data or the individual authors may not be used to
15 * endorse or promote products derived from this software without specific
16 * prior written permission.
18 * 3. Source code or binary versions of this software and its
19 * documentation may be used freely in not-for-profit applications. For
20 * profit applications - such as providing for-pay database services,
21 * marketing a product based in whole or in part on this software or its
22 * documentation, or generally distributing this software or its
23 * documentation under a different license - requires a commercial
24 * license from Index Data. The software may be installed and used for
25 * evaluation purposes in conjunction with a commercial application for a
26 * trial period no longer than 60 days.
28 * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
29 * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
30 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
31 * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
32 * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
33 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
34 * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
35 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
39 * Revision 1.6 1999-11-30 13:48:03 adam
40 * Improved installation. Updated for inclusion of YAZ header files.
42 * Revision 1.5 1999/09/07 07:19:21 adam
43 * Work on character mapping. Implemented replace rules.
45 * Revision 1.4 1997/10/27 14:33:04 adam
46 * Moved towards generic character mapping depending on "structure"
47 * field in abstract syntax file. Fixed a few memory leaks. Fixed
48 * bug with negative integers when doing searches with relational
51 * Revision 1.3 1997/09/05 15:29:59 adam
52 * Changed prototype for chr_map_input - added const.
53 * Added support for C++, headers uses extern "C" for public definitions.
60 #include <yaz/yconfig.h>
66 YAZ_EXPORT extern const char *CHR_UNKNOWN;
67 YAZ_EXPORT extern const char *CHR_SPACE;
68 YAZ_EXPORT extern const char *CHR_BASE;
71 typedef struct chr_t_entry chr_t_entry;
73 typedef struct chrmaptab_info *chrmaptab;
75 YAZ_EXPORT chrmaptab chrmaptab_create(const char *tabpath, const char *name,
77 YAZ_EXPORT void chrmaptab_destroy (chrmaptab tab);
79 YAZ_EXPORT const char **chr_map_input(chrmaptab t, const char **from, int len);
80 YAZ_EXPORT const char **chr_map_input_x(chrmaptab t,
81 const char **from, int *len);
82 YAZ_EXPORT const char **chr_map_input_q(chrmaptab maptab,
83 const char **from, int len,
86 YAZ_EXPORT const char *chr_map_output(chrmaptab t, const char **from, int len);
88 YAZ_EXPORT unsigned char zebra_prim(char **s);