X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=include%2Fcharmap.h;h=da1e6ef893bacc4d465f6e40c77c31fe4bcd2dbc;hp=eb397f0b591ec38b1930007c8038791dad6bd316;hb=24357780de7d01b3c3ec2c3f6715b2feee7d0e76;hpb=8e3453044933e1ba76fbab75449f625731da3a6b diff --git a/include/charmap.h b/include/charmap.h index eb397f0..da1e6ef 100644 --- a/include/charmap.h +++ b/include/charmap.h @@ -1,63 +1,63 @@ -/* - * Copyright (c) 1995, Index Data. - * - * All rights reserved. - * - * Use and redistribution in source or binary form, with or without - * modification, of any or all of this software and documentation is - * permitted, provided that the following conditions are met: - * - * 1. This copyright and permission notice appear with all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of Index Data or the individual authors may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Source code or binary versions of this software and its - * documentation may be used freely in not-for-profit applications. For - * profit applications - such as providing for-pay database services, - * marketing a product based in whole or in part on this software or its - * documentation, or generally distributing this software or its - * documentation under a different license - requires a commercial - * license from Index Data. The software may be installed and used for - * evaluation purposes in conjunction with a commercial application for a - * trial period no longer than 60 days. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR - * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - * - */ +/* This file is part of the Zebra server. + Copyright (C) 1994-2011 Index Data + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra 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 General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ #ifndef CHARMAP_H #define CHARMAP_H -extern const char *CHR_UNKNOWN; -extern const char *CHR_SPACE; -extern const char *CHR_BASE; +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT extern const char *CHR_UNKNOWN; +YAZ_EXPORT extern const char *CHR_SPACE; +YAZ_EXPORT extern const char *CHR_CUT; +YAZ_EXPORT extern const char *CHR_BASE; + +/* defines first char we map to (0, 1, .. are specials) */ +#define CHR_BASE_CHAR 5 struct chr_t_entry; typedef struct chr_t_entry chr_t_entry; -typedef struct chrmaptab -{ - chr_t_entry *input; /* mapping table for input data */ - chr_t_entry *query_equiv; /* mapping table for queries */ - unsigned char *output[256]; /* return mapping - for display of registers */ - int base_uppercase; /* Start of upper-case ordinals */ -} chrmaptab, *CHRMAPTAB; +typedef struct chrmaptab_info *chrmaptab; + +YAZ_EXPORT chrmaptab chrmaptab_create(const char *tabpath, const char *name, + const char *tabroot); +YAZ_EXPORT void chrmaptab_destroy (chrmaptab tab); + +YAZ_EXPORT const char **chr_map_input(chrmaptab t, const char **from, int len, int first); +YAZ_EXPORT const char **chr_map_input_x(chrmaptab t, + const char **from, int *len, int first); +YAZ_EXPORT const char **chr_map_q_input(chrmaptab maptab, + const char **from, int len, int first); + +YAZ_EXPORT const char *chr_map_output(chrmaptab t, const char **from, int len); -chrmaptab *chr_read_maptab(char *name); -int chr_map_chrs(chr_t_entry *t, char **from, int len, int *read, char **to, - int max); -char **chr_map_input(chr_t_entry *t, char **from, int len); +YAZ_END_CDECL #endif +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +