/* phonetic.c - generic replacement aglogithms for phonetic transformation Copyright (C) 2000 Bjoern Jacke This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation; This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; If not, see <http://www.gnu.org/licenses/>. Changelog: 2000-01-05 Bjoern Jacke <bjoern at j3e.de> Initial Release insprired by the article about phonetic transformations out of c't 25/1999 2007-07-26 Bjoern Jacke <bjoern at j3e.de> Released under MPL/GPL/LGPL tri-license for Hunspell 2007-08-23 Laszlo Nemeth <nemeth at OOo> Porting from Aspell to Hunspell using C-like structs */ #include <stdlib.h> #include <string.h> #include <stdio.h> #include <ctype.h> #include "csutil.hxx" #include "phonet.hxx" void init_phonet_hash(phonetable& parms) { … } // like strcpy but safe if the strings overlap // but only if dest < src static inline void strmove(char* dest, char* src) { … } static int myisalpha(char ch) { … } /* Do phonetic transformation. */ /* phonetic transcription algorithm */ /* see: http://aspell.net/man-html/Phonetic-Code.html */ /* convert string to uppercase before this call */ std::string phonet(const std::string& inword, phonetable& parms) { … } /** end of function "phonet" **/