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