From: Dennis Schafroth Date: Mon, 8 Nov 2010 17:05:54 +0000 (+0100) Subject: Merge branch 'master' into stemming X-Git-Tag: v4.1.4~14^2~16 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=9e04bbdbec82ea6f5795dc2d16bd9876ecc7762f Merge branch 'master' into stemming Conflicts: src/icu_chain.c Merge minor ICU change and test changes. Fix includes to include config.h. Fix Makefile: Include stemmer in libyaz_icu. --- 9e04bbdbec82ea6f5795dc2d16bd9876ecc7762f diff --cc include/yaz/stemmer.h index f5d23ab,0000000..6e51cae mode 100644,000000..100644 --- a/include/yaz/stemmer.h +++ b/include/yaz/stemmer.h @@@ -1,60 -1,0 +1,61 @@@ +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2010 Index Data. + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Index Data nor the names of its contributors + * may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * \file stemming.h + * \brief Header for the stemming API. Simple wrapper to hide underlying implementation. + */ + +#ifndef YAZ_STEMMER_H +#define YAZ_STEMMER_H + +#include ++#include +#include +#include + +#include /* some more string fcns*/ +#include /* char names */ + + +YAZ_BEGIN_CDECL + +typedef struct yaz_stemmer_t *yaz_stemmer_p; + +YAZ_EXPORT +yaz_stemmer_p yaz_stemmer_create(const char *locale, const char *rule, UErrorCode *status); + +YAZ_EXPORT +yaz_stemmer_p yaz_stemmer_clone(yaz_stemmer_p stemmer); + +YAZ_EXPORT +void yaz_stemmer_stem(yaz_stemmer_p stemmer, struct icu_buf_utf16 *dst, struct icu_buf_utf16* src, UErrorCode *status); + +YAZ_EXPORT +void yaz_stemmer_destroy(yaz_stemmer_p stemmer); + +#endif diff --cc src/Makefile.am index 200ba5c,d0060df..d8143f5 --- a/src/Makefile.am +++ b/src/Makefile.am @@@ -115,7 -115,7 +115,7 @@@ libyaz_server_la_SOURCES = statserv.c s libyaz_server_la_LDFLAGS=-version-info $(YAZ_VERSION_INFO) --libyaz_icu_la_SOURCES = icu_chain.c icu_utf16.c icu_utf8.c \ ++libyaz_icu_la_SOURCES = icu_chain.c icu_utf16.c icu_utf8.c stemmer.c \ icu_transform.c icu_casemap.c icu_tokenizer.c icu_sortkey.c libyaz_icu_la_LDFLAGS=-version-info $(YAZ_VERSION_INFO) diff --cc src/icu_chain.c index fb69d82,d6521c0..8cc9a64 --- a/src/icu_chain.c +++ b/src/icu_chain.c @@@ -17,10 -17,9 +17,11 @@@ #include +#include + #include - + #include + #include #include #include #include @@@ -44,12 -42,11 +45,12 @@@ struct icu_chain_ste /* type and action object */ enum icu_chain_step_type type; union { - struct icu_casemap * casemap; - struct icu_transform * transform; - struct icu_tokenizer * tokenizer; - yaz_stemmer_p stemmer; - struct icu_casemap *casemap; ++ struct icu_casemap *casemap; + struct icu_transform *transform; + struct icu_tokenizer *tokenizer; ++ yaz_stemmer_p stemmer; } u; - struct icu_chain_step * previous; + struct icu_chain_step *previous; }; struct icu_chain @@@ -278,9 -288,6 +301,9 @@@ struct icu_chain *icu_chain_xml_config( else if (!strcmp((const char *) node->name, "display")) step = icu_chain_insert_step(chain, ICU_chain_step_type_display, (const uint8_t *) "", status); + else if (!strcmp((const char *) node->name, "stemming")) - step = yaz_chain_insert_step(chain, YAZ_chain_step_type_stemming, - (const uint8_t *) xml_rule, status); ++ step = icu_chain_insert_step(chain, YAZ_chain_step_type_stemming, ++ (const uint8_t *) rule, status); else if (!strcmp((const char *) node->name, "normalize")) { yaz_log(YLOG_WARN, "Element %s is deprecated. " diff --cc src/stemmer.c index 5cb3267,0000000..b544ebc mode 100644,000000..100644 --- a/src/stemmer.c +++ b/src/stemmer.c @@@ -1,33 -1,0 +1,41 @@@ + + ++#if HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#if YAZ_HAVE_ICU ++ ++#include + +#include + +#include /* some more string fcns*/ +#include /* char names */ + +struct yaz_stemmer_t +{ + int implementation; + union { + struct sb_stemmer *snowballer; + }; +}; + +yaz_stemmer_p yaz_stemmer_create(const char *locale, const char *rule, UErrorCode *status) { + return 0; +} + +yaz_stemmer_p yaz_stemmer_clone(yaz_stemmer_p stemmer) { + return 0; +} + +void yaz_stemmer_stem(yaz_stemmer_p stemmer, struct icu_buf_utf16 *dst, struct icu_buf_utf16* src, UErrorCode *status) { + +} + +void yaz_stemmer_destroy(yaz_stemmer_p stemmer) { + + +} + ++#endif /* YAZ_HAVE_ICU */