Towards GPL
[idzebra-moved-to-github.git] / include / charmap.h
index b653e97..6001b7a 100644 (file)
@@ -1,73 +1,59 @@
-/*
- * Copyright (c) 1995-1997, 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.
- *
- * $Log: charmap.h,v $
- * Revision 1.3  1997-09-05 15:29:59  adam
- * Changed prototype for chr_map_input - added const.
- * Added support for C++, headers uses extern "C" for public definitions.
- *
- */
+/* $Id: charmap.h,v 1.8 2002-08-02 19:26:55 adam Exp $
+   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+   Index Data Aps
+
+This file is part of the Zebra server.
+
+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 Zebra; see the file LICENSE.zebra.  If not, write to the
+Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+*/
+
+
 
 #ifndef CHARMAP_H
 #define CHARMAP_H
 
+#include <yaz/yconfig.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-extern const char *CHR_UNKNOWN;
-extern const char *CHR_SPACE;
-extern const char *CHR_BASE;
+YAZ_EXPORT extern const char *CHR_UNKNOWN;
+YAZ_EXPORT extern const char *CHR_SPACE;
+YAZ_EXPORT extern const char *CHR_BASE;
 
 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;
-
-chrmaptab *chr_read_maptab(const char *tabpath, const char *name);
-int chr_map_chrs(chr_t_entry *t, char **from, int len, int *read, char **to,
-    int max);
-const char **chr_map_input(chr_t_entry *t, const char **from, int len);
+typedef struct chrmaptab_info *chrmaptab;
+
+YAZ_EXPORT chrmaptab chrmaptab_create(const char *tabpath, const char *name,
+                                     int map_only, const char *tabroot);
+YAZ_EXPORT void chrmaptab_destroy (chrmaptab tab);
+
+YAZ_EXPORT const char **chr_map_input(chrmaptab t, const char **from, int len);
+YAZ_EXPORT const char **chr_map_input_x(chrmaptab t,
+                                       const char **from, int *len);
+YAZ_EXPORT const char **chr_map_input_q(chrmaptab maptab,
+                                       const char **from, int len,
+                                       const char **qmap);
+    
+YAZ_EXPORT const char *chr_map_output(chrmaptab t, const char **from, int len);
+
+YAZ_EXPORT unsigned char zebra_prim(char **s);
 
 #ifdef __cplusplus
 }