1 /*  phonetic.c - generic replacement aglogithms for phonetic transformation
2     Copyright (C) 2000 Bjoern Jacke
3 
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Lesser General Public
6     License version 2.1 as published by the Free Software Foundation;
7 
8     This library is distributed in the hope that it will be useful,
9     but WITHOUT ANY WARRANTY; without even the implied warranty of
10     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11     Lesser General Public License for more details.
12 
13     You should have received a copy of the GNU Lesser General Public
14     License along with this library; If not, see
15     <http://www.gnu.org/licenses/>.
16 
17     Changelog:
18 
19     2000-01-05  Bjoern Jacke <bjoern at j3e.de>
20                 Initial Release insprired by the article about phonetic
21                 transformations out of c't 25/1999
22 
23     2007-07-26  Bjoern Jacke <bjoern at j3e.de>
24 		Released under MPL/GPL/LGPL tri-license for Hunspell
25 
26     2007-08-23  Laszlo Nemeth <nemeth at OOo>
27                 Porting from Aspell to Hunspell using C-like structs
28 */
29 
30 #ifndef __PHONETHXX__
31 #define __PHONETHXX__
32 
33 #define HASHSIZE          256
34 #define MAXPHONETLEN      256
35 #define MAXPHONETUTF8LEN  (MAXPHONETLEN * 4)
36 
37 struct phonetable {
38   char utf8;
39   cs_info * lang;
40   int num;
41   char * * rules;
42   int hash[HASHSIZE];
43 };
44 
45 void init_phonet_hash(phonetable & parms);
46 
47 int phonet (const char * inword, char * target,
48               int len, phonetable & phone);
49 
50 #endif
51