[hunspell] 79/98: Imported Upstream version 1.2.14
This is an automated email from the git hooks/post-receive script.
rene pushed a commit to branch master
in repository hunspell.
commit c338652c000eeb784996199880a674f099d361fa
Author: Rene Engelhard <rene@debian.org>
Date: Thu Apr 21 14:45:25 2016 +0200
Imported Upstream version 1.2.14
---
ChangeLog | 101 +++++
NEWS | 5 +
THANKS | 4 +
aclocal.m4 | 103 +----
configure | 406 ++++++++++----------
configure.ac | 4 +-
man/hunspell.4 | 47 ++-
po/hu.gmo | Bin 8812 -> 8812 bytes
po/hu.po | 146 +++----
po/hunspell.pot | 147 ++++----
po/it.gmo | Bin 8847 -> 8847 bytes
po/it.po | 150 ++++----
src/hunspell/affentry.cxx | 2 +-
src/hunspell/affixmgr.cxx | 142 +++++--
src/hunspell/affixmgr.hxx | 3 +-
src/hunspell/csutil.cxx | 462 ++++++++++++++++++-----
src/hunspell/csutil.hxx | 36 +-
src/hunspell/hashmgr.cxx | 2 +-
src/hunspell/htypes.hxx | 2 +-
src/hunspell/hunspell.cxx | 34 +-
src/hunspell/replist.cxx | 2 +
src/hunspell/suggestmgr.cxx | 49 ++-
src/hunspell/w_char.hxx | 2 +
src/parsers/htmlparser.cxx | 2 +-
src/tools/hunspell.cxx | 28 +-
src/win_api/Hunspell.rc | 8 +-
src/win_api/Makefile.cygwin | 10 +-
src/win_api/config.h | 4 +-
tests/2970240.aff | 5 +
tests/2970240.dic | 4 +
tests/2970240.good | 1 +
tests/{rep.test => 2970240.test} | 0
tests/2970240.wrong | 1 +
tests/2970242.aff | 4 +
tests/2970242.dic | 4 +
tests/2970242.good | 5 +
tests/{rep.test => 2970242.test} | 0
tests/2970242.wrong | 1 +
tests/2999225.aff | 6 +
tests/2999225.dic | 4 +
tests/2999225.good | 2 +
tests/{rep.test => 2999225.test} | 0
tests/Makefile.am | 75 +++-
tests/Makefile.in | 75 +++-
tests/arabic.aff | 6 +
tests/arabic.dic | 2 +
tests/{rep.test => arabic.test} | 2 +-
tests/arabic.wrong | 1 +
tests/breakoff.aff | 7 +
tests/breakoff.dic | 6 +
tests/breakoff.good | 3 +
tests/{rep.test => breakoff.test} | 2 +-
tests/breakoff.wrong | 5 +
tests/checkcompoundrep.dic | 1 +
tests/checkcompoundrep.good | 1 +
tests/checkcompoundrep.wrong | 2 +
tests/checksharps.sug | 2 +-
tests/checksharpsutf.sug | 2 +-
tests/encoding.aff | 1 +
tests/encoding.dic | 3 +
tests/encoding.good | 4 +
tests/{rep.test => encoding.test} | 2 +-
tests/opentaal_cpdpat.aff | 13 +
tests/opentaal_cpdpat.dic | 4 +
tests/opentaal_cpdpat.good | 1 +
tests/{rep.test => opentaal_cpdpat.test} | 0
tests/opentaal_cpdpat.wrong | 1 +
tests/opentaal_cpdpat2.aff | 27 ++
tests/opentaal_cpdpat2.dic | 4 +
tests/opentaal_cpdpat2.good | 1 +
tests/{rep.test => opentaal_cpdpat2.test} | 0
tests/opentaal_cpdpat2.wrong | 1 +
tests/opentaal_forbiddenword1.aff | 9 +
tests/opentaal_forbiddenword1.dic | 5 +
tests/opentaal_forbiddenword1.good | 3 +
tests/opentaal_forbiddenword1.sug | 1 +
tests/{rep.test => opentaal_forbiddenword1.test} | 0
tests/opentaal_forbiddenword1.wrong | 5 +
tests/opentaal_forbiddenword2.aff | 7 +
tests/opentaal_forbiddenword2.dic | 5 +
tests/opentaal_forbiddenword2.good | 4 +
tests/opentaal_forbiddenword2.sug | 1 +
tests/{rep.test => opentaal_forbiddenword2.test} | 0
tests/opentaal_forbiddenword2.wrong | 5 +
tests/opentaal_keepcase.aff | 8 +
tests/opentaal_keepcase.dic | 7 +
tests/opentaal_keepcase.good | 4 +
tests/opentaal_keepcase.sug | 8 +
tests/{rep.test => opentaal_keepcase.test} | 0
tests/opentaal_keepcase.wrong | 8 +
tests/rep.aff | 15 +-
tests/rep.dic | 9 +-
tests/rep.sug | 3 +
tests/rep.test | 2 +-
tests/rep.wrong | 6 +
95 files changed, 1542 insertions(+), 765 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 47fcfd2..a86f751 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,104 @@
+2011-01-06 Németh László <nemeth at OOo>:
+ * affixmgr.cxx: fix freedesktop#32850 (program halt during Hungarian
+ spell checking of the word "6csillagocska6", reported by András Tímár)
+
+ * tools/hunspell.cxx: add Mac OS X Hunspell dictionary paths, asked by
+ Vidar Gundersen in hunfeat#3142010
+
+2011-01-05 Caolán McNamara <cmc at OOo>:
+ * moz#620626 NS_UNICHARUTIL_CID doesn't support
+ case conversion
+
+2011-01-03 Németh László <nemeth at OOo>:
+ * NEWS and THANKS: update for release 1.2.13
+
+2010-12-20 Németh László <nemeth at OOo>:
+ * affixmgr.cxx: hun#3140784
+
+2010-12-16 Németh László <nemeth at OOo>:
+ * affixmgr.cxx:
+ - improved fix of hun#2970242 (supporting
+ zero affixes, reported by Ruud Baars
+ - tests/opentaal_cpdpat{,2}: test files
+
+ - switching off default BREAK parameters by BREAK 0,
+ reported by Ruud Baars
+
+ - hun#2999225, reported by Ruud Baars
+
+2010-12-11 Németh László <nemeth at OOo>:
+ * affixmgr.cxx: fix hun#2970242 (CHECKCOMPOUNDPATTERN only with flags),
+ the bug reported by Ruud Baars
+ * tests/2970242.*: test files
+
+ * tests/2970240.*: test files for CHECKCOMPOUNDPATTERN fix (check all
+ boundaries in compound words, fixed by the previous CHECKCOMPOUNDREP
+ fix), the bug reported by Ruud Baars
+
+ * win_api/Makefile.cygwin: update
+
+2010-12-09 Caolán McNamara <cmc at OOo>:
+ * moz#617953 fix leak
+
+2010-11-08 Caolán McNamara <cmc at OOo>:
+ * rhbz#650503 crash in arabic dictionary
+
+2010-11-05 Caolán McNamara <cmc at OOo>:
+ * rhbz#648740 don't warn on empty flagvector
+
+2010-11-03 Caolán McNamara <cmc at OOo>:
+ * logically we shouldn't need a csconv table in utf-8 mode
+
+2010-10-27 Németh László <nemeth at OOo>:
+ * hun#3000055 (requested by Ruud Baars) add REP boundary specifiation:
+ REP ^word$ xxxx
+ REP ^wordstarting xxxx
+ REP wordending$ xxxx
+
+ * hun#3008434 (requested by Adrián Chaves Fernández) and
+ hun#3018929 (requested by Ruud Baars): REP with more than 2 words:
+ REP morethantwo more_than_two
+
+ * suggestmgr.cxx: fix incomplete suggestion list for capitalized words,
+ eg. missing Machtstrijd->Machtsstrijd in the Dutch dictionary
+ (reported by Ruud Bars)
+
+ * tests, man: related updates
+
+2010-10-12 Caolán McNamara <cmc at OOo>:
+ * moz#603311 HashMgr::load_tables leaks dict when decode_flags fails
+ * fix mem leak found with new tests
+ * hun#3084340 allow underscores in html entity names
+
+2010-10-07 Németh László <nemeth at OOo>:
+ * affixmgr.cxx:
+ - hun#2970239 fix bad suggestion of forbidden compound words
+ - hun#2999224 fix keepcase feature on compound words (only partial
+ fix for COMPOUNDRULE based compounding)
+ - fix checkcompoundrep feature in compound words (check all boundaries,
+ not only the last one)
+ Problems reported by Ruud Baars.
+
+ * tests/opentaal_forbiddenword[12]*, tests/opentaal_keepcase*:
+ new test files for the previous fixes
+ * tests/checkcompoundrep: extended test file.
+
+2010-09-05 Caolán McNamara <cmc at OOo>:
+ * moz#583582 fix double buffer gcc fortify issue
+
+2010-08-13 Caolán McNamara <cmc at OOo>:
+ * moz#586671 AffixMgr::parse_convtable leaks pattern/pattern2 if it
+ can't create both
+ * moz#586686 tidy up get_xml_list and friends
+
+2010-08-10 Caolán McNamara <cmc at OOo>:
+ * hun#3022860 fix remove duplicate code
+
+2010-07-17 Caolán McNamara <cmc at OOo>:
+ * remove ununsed get_default_enc and avoid potential misrecognition of
+ three letter language ids
+ * normalize encoding names before lookup
+
2010-07-05 Caolán McNamara <cmc at OOo>:
* hun#2286060 add Hangul syllables to unicode tables
diff --git a/NEWS b/NEWS
index 6fd4328..d766dba 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+2011-01-03: Hunspell 1.2.13 release:
+ - bug fixes
+ - improved compound handling and
+ other improvements supported by OpenTaal Foundation, Netherlands
+2010-07-15: Hunspell 1.2.12 release
2010-05-06: Hunspell 1.2.11 release:
- Maintenance release bug fixes
2010-04-30: Hunspell 1.2.10 release:
diff --git a/THANKS b/THANKS
index eba5a59..f6db777 100644
--- a/THANKS
+++ b/THANKS
@@ -120,6 +120,10 @@ http://www.imedia.hu
OpenOffice.org community
http://www.openoffice.org
+OpenTaal Foundation, Netherlands and
+Dutch Language Union (Nederlandse Taalunie)
+http://opentaal.org
+
UHU-Linux Kft.
Thanks,
diff --git a/aclocal.m4 b/aclocal.m4
index f60472a..76ec4de 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -13,111 +13,12 @@
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.66],,
-[m4_warning([this file was generated for autoconf 2.66.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
+[m4_warning([this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
-
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
diff --git a/configure b/configure
index 3ad07c5..c103c95 100755
--- a/configure
+++ b/configure
@@ -1,13 +1,13 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.66 for hunspell 1.2.12.
+# Generated by GNU Autoconf 2.65 for hunspell 1.2.14.
#
# Report bugs to <nemeth@openoffice.org>.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -319,7 +319,7 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
} # as_fn_mkdir_p
@@ -359,19 +359,19 @@ else
fi # as_fn_arith
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
+# script with status $?, using 1 if that was 0.
as_fn_error ()
{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
fi
- $as_echo "$as_me: error: $2" >&2
+ $as_echo "$as_me: error: $1" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -682,7 +682,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1
# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
@@ -701,8 +701,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='hunspell'
PACKAGE_TARNAME='hunspell'
-PACKAGE_VERSION='1.2.12'
-PACKAGE_STRING='hunspell 1.2.12'
+PACKAGE_VERSION='1.2.14'
+PACKAGE_STRING='hunspell 1.2.14'
PACKAGE_BUGREPORT='nemeth@openoffice.org'
PACKAGE_URL=''
@@ -1062,7 +1062,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1088,7 +1088,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1292,7 +1292,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1308,7 +1308,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1338,8 +1338,8 @@ do
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
;;
*=*)
@@ -1347,7 +1347,7 @@ Try \`$0 --help' for more information"
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1365,13 +1365,13 @@ done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
+ as_fn_error "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1394,7 +1394,7 @@ do
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
@@ -1408,8 +1408,8 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used" >&2
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1424,9 +1424,9 @@ test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
+ as_fn_error "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
+ as_fn_error "pwd does not report name of working directory"
# Find the source files, if location was not specified.
@@ -1465,11 +1465,11 @@ else
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1495,7 +1495,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures hunspell 1.2.12 to adapt to many kinds of systems.
+\`configure' configures hunspell 1.2.14 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1509,7 +1509,7 @@ Configuration:
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
+ -q, --quiet, --silent do not print \`checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
@@ -1566,7 +1566,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of hunspell 1.2.12:";;
+ short | recursive ) echo "Configuration of hunspell 1.2.14:";;
esac
cat <<\_ACEOF
@@ -1685,10 +1685,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-hunspell configure 1.2.12
-generated by GNU Autoconf 2.66
+hunspell configure 1.2.14
+generated by GNU Autoconf 2.65
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1830,7 +1830,7 @@ ac_fn_c_check_header_compile ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1939,7 +1939,7 @@ ac_fn_c_check_func ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2089,10 +2089,10 @@ fi
ac_fn_c_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval "test \"\${$3+set}\"" = set; then :
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
@@ -2151,15 +2151,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ------------------------------------ ##
+( cat <<\_ASBOX
+## ------------------------------------ ##
## Report this to nemeth@openoffice.org ##
-## ------------------------------------ ##"
+## ------------------------------------ ##
+_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
@@ -2181,7 +2183,7 @@ ac_fn_c_check_type ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
eval "$3=no"
@@ -2407,8 +2409,8 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by hunspell $as_me 1.2.12, which was
-generated by GNU Autoconf 2.66. Invocation command line was
+It was created by hunspell $as_me 1.2.14, which was
+generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@
@@ -2518,9 +2520,11 @@ trap 'exit_status=$?
{
echo
- $as_echo "## ---------------- ##
+ cat <<\_ASBOX
+## ---------------- ##
## Cache variables. ##
-## ---------------- ##"
+## ---------------- ##
+_ASBOX
echo
# The following way of writing the cache mishandles newlines in values,
(
@@ -2554,9 +2558,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- $as_echo "## ----------------- ##
+ cat <<\_ASBOX
+## ----------------- ##
## Output variables. ##
-## ----------------- ##"
+## ----------------- ##
+_ASBOX
echo
for ac_var in $ac_subst_vars
do
@@ -2569,9 +2575,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
echo
if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
+ cat <<\_ASBOX
+## ------------------- ##
## File substitutions. ##
-## ------------------- ##"
+## ------------------- ##
+_ASBOX
echo
for ac_var in $ac_subst_files
do
@@ -2585,9 +2593,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
fi
if test -s confdefs.h; then
- $as_echo "## ----------- ##
+ cat <<\_ASBOX
+## ----------- ##
## confdefs.h. ##
-## ----------- ##"
+## ----------- ##
+_ASBOX
echo
cat confdefs.h
echo
@@ -2642,12 +2652,7 @@ _ACEOF
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
+ ac_site_file1=$CONFIG_SITE
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
@@ -2662,11 +2667,7 @@ do
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+ . "$ac_site_file"
fi
done
@@ -2746,7 +2747,7 @@ if $ac_cache_corrupted; then
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -2762,22 +2763,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
done
if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -2791,7 +2786,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
@@ -2802,16 +2797,16 @@ else
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -2836,7 +2831,7 @@ else
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
@@ -2844,7 +2839,7 @@ fi
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@@ -2869,7 +2864,7 @@ else
ac_cv_target=$ac_cv_host
else
ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
fi
fi
@@ -2877,7 +2872,7 @@ fi
$as_echo "$ac_cv_target" >&6; }
case $ac_cv_target in
*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
esac
target=$ac_cv_target
ac_save_IFS=$IFS; IFS='-'
@@ -3008,11 +3003,11 @@ am_lf='
'
case `pwd` in
*[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+ as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+ as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
esac
# Do `set' in a subshell so we don't clobber the current shell's
@@ -3034,7 +3029,7 @@ if (
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ as_fn_error "ls -t appears to fail. Make sure there is not a broken
alias in your environment" "$LINENO" 5
fi
@@ -3044,7 +3039,7 @@ then
# Ok.
:
else
- as_fn_error $? "newly created file is older than distributed files!
+ as_fn_error "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3282,7 +3277,7 @@ done
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@@ -3290,7 +3285,7 @@ SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -3324,7 +3319,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
fi
@@ -3340,7 +3335,7 @@ fi
# Define the identity of the package.
PACKAGE=hunspell
- VERSION=1.2.12
+ VERSION=1.2.14
cat >>confdefs.h <<_ACEOF
@@ -3613,8 +3608,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C++ compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
+{ as_fn_set_status 77
+as_fn_error "C++ compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -3656,8 +3652,8 @@ done
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3714,9 +3710,9 @@ $as_echo "$ac_try_echo"; } >&5
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C++ compiled programs.
+as_fn_error "cannot run C++ compiled programs.
If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details." "$LINENO" 5; }
fi
fi
fi
@@ -3767,8 +3763,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
@@ -4386,8 +4382,8 @@ fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4835,7 +4831,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
fi
else
ac_cv_path_SED=$SED
@@ -4911,7 +4907,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
@@ -4977,7 +4973,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -5044,7 +5040,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_FGREP=$FGREP
@@ -5160,7 +5156,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -5362,13 +5358,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:5365: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:5361: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:5368: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:5364: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:5371: output\"" >&5)
+ (eval echo "\"\$as_me:5367: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6574,7 +6570,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 6577 "configure"' > conftest.$ac_ext
+ echo '#line 6573 "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -7448,8 +7444,8 @@ if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
fi
ac_ext=c
@@ -7578,7 +7574,8 @@ do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -8630,11 +8627,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8633: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8630: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8637: \$? = $ac_status" >&5
+ echo "$as_me:8634: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8969,11 +8966,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8972: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8969: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8976: \$? = $ac_status" >&5
+ echo "$as_me:8973: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -9074,11 +9071,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9077: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9074: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:9081: \$? = $ac_status" >&5
+ echo "$as_me:9078: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -9129,11 +9126,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9132: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9129: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:9136: \$? = $ac_status" >&5
+ echo "$as_me:9133: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11499,7 +11496,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11502 "configure"
+#line 11499 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11595,7 +11592,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11598 "configure"
+#line 11595 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12010,7 +12007,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -13551,11 +13548,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13554: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13551: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13558: \$? = $ac_status" >&5
+ echo "$as_me:13555: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13650,11 +13647,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13653: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13650: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13657: \$? = $ac_status" >&5
+ echo "$as_me:13654: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13702,11 +13699,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13705: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13702: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13709: \$? = $ac_status" >&5
+ echo "$as_me:13706: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14966,7 +14963,8 @@ for ac_header in fcntl.h libintl.h locale.h unistd.h error.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -15252,7 +15250,8 @@ for ac_func in memchr setlocale strchr strstr
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -15911,7 +15910,8 @@ if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
@@ -15981,7 +15981,8 @@ do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -16646,7 +16647,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
if test "${acl_cv_prog_gnu_ld+set}" = set; then :
@@ -18051,7 +18052,8 @@ rm -f core conftest.err conftest.$ac_objext \
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -18066,7 +18068,8 @@ done
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -19024,7 +19027,8 @@ fi
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -19037,7 +19041,8 @@ done
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -19536,7 +19541,7 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
$as_echo_n "checking for GNU gettext in libc... " >&6; }
-if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then :
+if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20005,7 +20010,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
$as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then :
+if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
gt_save_CPPFLAGS="$CPPFLAGS"
@@ -20642,7 +20647,6 @@ DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
-U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -20666,19 +20670,19 @@ else
fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
+ as_fn_error "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+ as_fn_error "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
@@ -20828,19 +20832,19 @@ export LANGUAGE
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
+# script with status $?, using 1 if that was 0.
as_fn_error ()
{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
fi
- $as_echo "$as_me: error: $2" >&2
+ $as_echo "$as_me: error: $1" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -21036,7 +21040,7 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
} # as_fn_mkdir_p
@@ -21089,8 +21093,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by hunspell $as_me 1.2.12, which was
-generated by GNU Autoconf 2.66. Invocation command line was
+This file was extended by hunspell $as_me 1.2.14, which was
+generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -21155,11 +21159,11 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-hunspell config.status 1.2.12
-configured by $0, generated by GNU Autoconf 2.66,
+hunspell config.status 1.2.14
+configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -21215,7 +21219,7 @@ do
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
+ as_fn_error "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
@@ -21224,7 +21228,7 @@ Try \`$0 --help' for more information.";;
ac_cs_silent=: ;;
# This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
+ -*) as_fn_error "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
@@ -21658,7 +21662,7 @@ do
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
"tests/suggestiontest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/suggestiontest/Makefile" ;;
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@@ -21696,7 +21700,7 @@ $debug ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -21713,7 +21717,7 @@ if test "x$ac_cr" = x; then
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
+ ac_cs_awk_cr='\r'
else
ac_cs_awk_cr=$ac_cr
fi
@@ -21727,18 +21731,18 @@ _ACEOF
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -21827,28 +21831,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
else
cat
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
s/^[^=]*=[ ]*$//
}'
fi
@@ -21876,7 +21872,7 @@ for ac_last_try in false false :; do
if test -z "$ac_t"; then
break
elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -21961,7 +21957,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
@@ -21974,7 +21970,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -22002,7 +21998,7 @@ do
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@@ -22029,7 +22025,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
case $ac_tag in
*:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -22166,22 +22162,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
+which seems to be undefined. Please make sure it is defined." >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
+which seems to be undefined. Please make sure it is defined." >&2;}
rm -f "$tmp/stdin"
case $ac_file in
-) cat "$tmp/out" && rm -f "$tmp/out";;
*) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
;;
:H)
#
@@ -22192,19 +22188,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
} >"$tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
+ || as_fn_error "could not create -" "$LINENO" 5
fi
# Compute "$ac_file"'s index in $config_headers.
_am_arg="$ac_file"
@@ -23275,7 +23271,7 @@ _ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@@ -23296,7 +23292,7 @@ if test "$no_create" != yes; then
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
+ $ac_cs_success || as_fn_exit $?
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/configure.ac b/configure.ac
index 8cf7df5..3dcf181 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,12 +4,12 @@
m4_pattern_allow
AC_PREREQ(2.59)
-AC_INIT([hunspell],[1.2.12],[nemeth@openoffice.org])
+AC_INIT([hunspell],[1.2.14],[nemeth@openoffice.org])
AC_CANONICAL_SYSTEM
AC_SUBST(XFAILED)
-AM_INIT_AUTOMAKE(hunspell, 1.2.12)
+AM_INIT_AUTOMAKE(hunspell, 1.2.14)
HUNSPELL_VERSION_MAJOR=`echo $VERSION | cut -d"." -f1`
HUNSPELL_VERSION_MINOR=`echo $VERSION | cut -d"." -f2`
AC_SUBST(HUNSPELL_VERSION_MAJOR)
diff --git a/man/hunspell.4 b/man/hunspell.4
index fb54f67..d200741 100644
--- a/man/hunspell.4
+++ b/man/hunspell.4
@@ -1,4 +1,4 @@
-.TH hunspell 4 "2010-03-03"
+.TH hunspell 4 "2010-12-16"
.LO 1
.SH NAME
hunspell \- format of Hunspell dictionaries and affix files
@@ -229,35 +229,33 @@ First REP is the header of this table and one or more REP data
line are following it. With this table, Hunspell can suggest the right forms for the typical
faults of spelling when the incorrect form differs by more,
than 1 letter from the right form.
+The search string supports the regex boundary signs (^ and $).
For example a possible English replacement table definition
to handle misspelled consonants:
.PP
.RS
.nf
-REP 8
+REP 5
REP f ph
REP ph f
-REP f gh
-REP gh f
-REP j dg
-REP dg j
-REP k ch
-REP ch k
+REP tion$ shun
+REP ^cooccurr co-occurr
+REP ^alot$ a_lot
.fi
.RE
.PP
+
Note I: It's very useful to define replacements for the most typical one-character mistakes, too:
with REP you can add higher priority to a subset of the TRY suggestions (suggestion list
begins with the REP suggestions).
-Note II: Suggesting separated words by REP, you can specify a space with an
-underline:
+Note II: Suggesting separated words, specify spaces with underlines:
.PP
.RS
.nf
REP 1
-REP alot a_lot
+REP onetwothree one_two_three
.fi
.RE
.PP
@@ -350,13 +348,22 @@ BREAK -
.fi
.RE
.PP
-W
+
+Switching off the default values:
+.PP
+.RS
+.nf
+BREAK 0
+.fi
+.RE
+.PP
+
Note II: COMPOUNDRULE is better (or will be better) for handling dashes and
other compound joining characters or character strings. Use BREAK, if you
-want check words with dashes or other joining characters and there is no time
+want to check words with dashes or other joining characters and there is no time
or possibility to describe precise compound rules with COMPOUNDRULE
-(COMPOUNDRULE has handled only the last suffixation of
-the compound word yet).
+(COMPOUNDRULE handles only the suffixation of the last word part of a
+compound word).
Note III: For command line spell checking of words with extra characters,
set WORDCHARS parameters: WORDCHARS -\fB--\fR (see tests/break.*) example
@@ -431,6 +438,16 @@ the old German orthography: Schiff|fahrt -> Schiffahrt).
Forbid compounding, if the first word in the compound ends with endchars, and
next word begins with beginchars and (optionally) they have the requested flags.
The optional replacement parameter allows simplified compound form.
+
+The special "endchars" pattern 0 (zero) limits the rule to the unmodified stems (stems
+and stems with zero affixes):
+.PP
+.RS
+.nf
+CHECKCOMPOUNDPATTERN 0/x /y
+.fi
+.RE
+.PP
Note: COMPOUNDMIN doesn't work correctly with the compound word alternation,
so it may need to set COMPOUNDMIN to lower value.
.IP "COMPOUNDSYLLABLE max_syllable vowels"
diff --git a/po/hu.gmo b/po/hu.gmo
index 76b43f3..f67d2f1 100644
Binary files a/po/hu.gmo and b/po/hu.gmo differ
diff --git a/po/hu.po b/po/hu.po
index e8d9383..2663f3f 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,41 +8,41 @@ msgid ""
msgstr ""
"Project-Id-Version: hunspell\n"
"Report-Msgid-Bugs-To: nemeth@openoffice.org\n"
-"POT-Creation-Date: 2010-07-14 08:39+0100\n"
+"POT-Creation-Date: 2011-01-06 13:57+0100\n"
"PO-Revision-Date: 2005-09-03 11:22+0200\n"
"Last-Translator: László Németh <nemeth dot lacko at gmail>\n"
"Language-Team: Hungarian <openscope.org>\n"
-"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: hu\n"
-#: src/tools/hunspell.cxx:192 src/tools/hunspell.cxx:300
+#: src/tools/hunspell.cxx:204 src/tools/hunspell.cxx:312
#, c-format
msgid "error - iconv_open: %s -> %s\n"
msgstr "hiba - iconv_open: %s -> %s\n"
-#: src/tools/hunspell.cxx:235 src/tools/hunspell.cxx:258
+#: src/tools/hunspell.cxx:247 src/tools/hunspell.cxx:270
#, c-format
msgid "error - iconv_open: UTF-8 -> %s\n"
msgstr "hiba - iconv_open: UTF-8 -> %s\n"
-#: src/tools/hunspell.cxx:550 src/tools/hunspell.cxx:1072
-#: src/tools/hunspell.cxx:1202
+#: src/tools/hunspell.cxx:562 src/tools/hunspell.cxx:1084
+#: src/tools/hunspell.cxx:1214
#, c-format
msgid "error - missing HOME variable\n"
msgstr "hiba - nincs definiálva a HOME környezeti változó\n"
-#: src/tools/hunspell.cxx:633
+#: src/tools/hunspell.cxx:645
#, c-format
msgid "Line %d: %s -> "
msgstr "%d. sor: %s -> "
-#: src/tools/hunspell.cxx:879
+#: src/tools/hunspell.cxx:891
msgid "FORBIDDEN!"
msgstr "TILTOTT!"
-#: src/tools/hunspell.cxx:880
+#: src/tools/hunspell.cxx:892
#, c-format
msgid ""
"\t%s\t\tFile: %s\n"
@@ -51,7 +51,7 @@ msgstr ""
"\t%s\t\tFájl: %s\n"
"\n"
-#: src/tools/hunspell.cxx:933
+#: src/tools/hunspell.cxx:945
msgid ""
"\n"
"[SPACE] R)epl A)ccept I)nsert U)ncap S)tem Q)uit e(X)it or ? for help\n"
@@ -60,7 +60,7 @@ msgstr ""
"Szóköz=tovább <szám> C)sere J)ó F)elvesz K)isbetűvel T)ő M)égsem V)ége ?"
"=Súgó\n"
-#: src/tools/hunspell.cxx:999
+#: src/tools/hunspell.cxx:1011
msgid ""
"Whenever a word is found that is not in the dictionary\n"
"it is printed on the first line of the screen. If the dictionary\n"
@@ -74,7 +74,7 @@ msgstr ""
"egyet, de megadhatunk akár egy új szót is.\n"
"Részletes leírás a program lehetőségeiről: man hunspell.\n"
-#: src/tools/hunspell.cxx:1004
+#: src/tools/hunspell.cxx:1016
msgid ""
"\n"
"Commands are:\n"
@@ -84,28 +84,28 @@ msgstr ""
"Billentyűparancsok: \n"
"\n"
-#: src/tools/hunspell.cxx:1005
+#: src/tools/hunspell.cxx:1017
msgid "R\tReplace the misspelled word completely.\n"
msgstr "C\tA hibás szó kicserélése egy megadott szóra.\n"
-#: src/tools/hunspell.cxx:1006
+#: src/tools/hunspell.cxx:1018
msgid "Space\tAccept the word this time only.\n"
msgstr "Szóköz\tA szó egyszeri átugrása változtatás nélkül.\n"
-#: src/tools/hunspell.cxx:1007
+#: src/tools/hunspell.cxx:1019
msgid "A\tAccept the word for the rest of this session.\n"
msgstr "J\tA szó minden előfordulását jónak tekinti a program futása során.\n"
-#: src/tools/hunspell.cxx:1008
+#: src/tools/hunspell.cxx:1020
msgid "I\tAccept the word, and put it in your private dictionary.\n"
msgstr ""
"F\tA szót felveszi a saját szótárba, így új indításkor is ismerni fogja.\n"
-#: src/tools/hunspell.cxx:1009
+#: src/tools/hunspell.cxx:1021
msgid "U\tAccept and add lowercase version to private dictionary.\n"
msgstr "K\tMint az előző, de a szót kisbetűsen veszi fel a saját szótárba.\n"
-#: src/tools/hunspell.cxx:1011
+#: src/tools/hunspell.cxx:1023
msgid ""
"S\tAsk a stem and a model word and store them in the private dictionary.\n"
"\tThe stem will be accepted also with the affixes of the model word.\n"
@@ -113,28 +113,28 @@ msgstr ""
"T\tSzótő és mintaszó bekérése és saját szótárban való tárolása.\n"
"\tA tő felveheti a mintául megadott szó toldalékait is.\n"
-#: src/tools/hunspell.cxx:1014
+#: src/tools/hunspell.cxx:1026
msgid "0-n\tReplace with one of the suggested words.\n"
msgstr "0-n\tA javasolt szavak közül az adott sorszámúra cserél.\n"
-#: src/tools/hunspell.cxx:1015
+#: src/tools/hunspell.cxx:1027
msgid ""
"X\tWrite the rest of this file, ignoring misspellings, and start next file.\n"
msgstr "V\tMenti az eddigi javításokat, és rátér a következő fájlra.\n"
-#: src/tools/hunspell.cxx:1016
+#: src/tools/hunspell.cxx:1028
msgid "Q\tQuit immediately. Asks for confirmation. Leaves file unchanged.\n"
msgstr "M\tKilép a javítások mentése nélkül, de előtte megerősítést kér.\n"
-#: src/tools/hunspell.cxx:1017
+#: src/tools/hunspell.cxx:1029
msgid "^Z\tSuspend program. Restart with fg command.\n"
msgstr "^Z\tA program felfüggesztése. Újraindítás fg paranccsal.\n"
-#: src/tools/hunspell.cxx:1018
+#: src/tools/hunspell.cxx:1030
msgid "?\tShow this help screen.\n"
msgstr "?\tEnnek a leírásnak a megjelenítése.\n"
-#: src/tools/hunspell.cxx:1019
+#: src/tools/hunspell.cxx:1031
msgid ""
"\n"
"-- Type space to continue -- \n"
@@ -144,11 +144,11 @@ msgstr ""
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "R)epl" before
-#: src/tools/hunspell.cxx:1029
+#: src/tools/hunspell.cxx:1041
msgid "r"
msgstr "c"
-#: src/tools/hunspell.cxx:1041
+#: src/tools/hunspell.cxx:1053
msgid "Replace with: "
msgstr "Csere: "
@@ -156,73 +156,73 @@ msgstr "Csere: "
#. previously in the translation of "U)ncap" and I)nsert before
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "U)ncap" and I)nsert before
-#: src/tools/hunspell.cxx:1062 src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1074 src/tools/hunspell.cxx:1106
msgid "u"
msgstr "k"
-#: src/tools/hunspell.cxx:1063 src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1075 src/tools/hunspell.cxx:1106
msgid "i"
msgstr "f"
-#: src/tools/hunspell.cxx:1088 src/tools/hunspell.cxx:1218
+#: src/tools/hunspell.cxx:1100 src/tools/hunspell.cxx:1230
#, c-format
msgid "Cannot update personal dictionary."
msgstr "Nem lehet frissíteni a saját szótárat."
-#: src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1106
msgid "a"
msgstr "j"
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "S)tem" before
-#: src/tools/hunspell.cxx:1101
+#: src/tools/hunspell.cxx:1113
msgid "s"
msgstr "t"
-#: src/tools/hunspell.cxx:1134
+#: src/tools/hunspell.cxx:1146
msgid "New word (stem): "
msgstr "Új szó(tő): "
-#: src/tools/hunspell.cxx:1161
+#: src/tools/hunspell.cxx:1173
msgid "Model word (a similar dictionary word): "
msgstr "Mintaszó (egy hasonló szótári szó): "
-#: src/tools/hunspell.cxx:1224
+#: src/tools/hunspell.cxx:1236
msgid "Model word must be in the dictionary. Press any key!"
msgstr "A minta csak szótári szó lehet! Továbblépés billentyűleütéssel."
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "e(X)it" before
-#: src/tools/hunspell.cxx:1233
+#: src/tools/hunspell.cxx:1245
msgid "x"
msgstr "v"
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "Q)uit" before
-#: src/tools/hunspell.cxx:1238
+#: src/tools/hunspell.cxx:1250
msgid "q"
msgstr "m"
-#: src/tools/hunspell.cxx:1240
+#: src/tools/hunspell.cxx:1252
msgid "Are you sure you want to throw away your changes? "
msgstr "Kilép a módosítások mentése nélkül (i/n)? "
#. TRANSLATORS: translate this letter according to the shortcut letter y)es
-#: src/tools/hunspell.cxx:1242
+#: src/tools/hunspell.cxx:1254
msgid "y"
msgstr "i"
-#: src/tools/hunspell.cxx:1314
+#: src/tools/hunspell.cxx:1326
#, c-format
msgid "Can't create tempfile %s.\n"
msgstr "Nem lehet létrehozni a(z) %s átmeneti fájlt.\n"
-#: src/tools/hunspell.cxx:1475
+#: src/tools/hunspell.cxx:1487
#, c-format
msgid "Usage: hunspell [OPTION]... [FILE]...\n"
msgstr "Használat: hunspell [KAPCSOLÓ]... [FÁJL]...\n"
-#: src/tools/hunspell.cxx:1476
+#: src/tools/hunspell.cxx:1488
#, c-format
msgid ""
"Check spelling of each FILE. Without FILE, check standard input.\n"
@@ -231,103 +231,103 @@ msgstr ""
"A FÁJL(OK) (ennek hiányában a szabványos bemenet) helyesírását ellenőrzi.\n"
"\n"
-#: src/tools/hunspell.cxx:1477
+#: src/tools/hunspell.cxx:1489
#, c-format
msgid " -1\t\tcheck only first field in lines (delimiter = tabulator)\n"
msgstr ""
" -1\t\tcsak az első mezőt ellenőrzi a sorban (mezőhatároló = tabulátor)\n"
-#: src/tools/hunspell.cxx:1478
+#: src/tools/hunspell.cxx:1490
#, c-format
msgid " -a\t\tIspell's pipe interface\n"
msgstr " -a\t\tIspell-szerű csőfelület\n"
-#: src/tools/hunspell.cxx:1479
+#: src/tools/hunspell.cxx:1491
#, c-format
msgid " --check-url\tCheck URLs, e-mail addresses and directory paths\n"
msgstr " --check-url\tURL-ek, e-mail címek és útvonalak ellenőrzése\n"
-#: src/tools/hunspell.cxx:1480
+#: src/tools/hunspell.cxx:1492
#, c-format
msgid " -d d[,d2,...]\tuse d (d2 etc.) dictionaries\n"
msgstr " -d d[,d2,...]\ta d (d2 stb.) nevű szótárat használja\n"
-#: src/tools/hunspell.cxx:1481
+#: src/tools/hunspell.cxx:1493
#, c-format
msgid " -D\t\tshow available dictionaries\n"
msgstr " -D\t\taz elérhető szótárak kilistázása\n"
-#: src/tools/hunspell.cxx:1482
+#: src/tools/hunspell.cxx:1494
#, c-format
msgid " -G\t\tprint only correct words or lines\n"
msgstr " -G\t\tkiírja a bemenet helyes szavait vagy sorait\n"
-#: src/tools/hunspell.cxx:1483
+#: src/tools/hunspell.cxx:1495
#, c-format
msgid " -h, --help\tdisplay this help and exit\n"
msgstr " -h, --help\tkiírja ezt a leírást\n"
-#: src/tools/hunspell.cxx:1484
+#: src/tools/hunspell.cxx:1496
#, c-format
msgid " -H\t\tHTML input file format\n"
msgstr " -H\t\tHTML bemeneti formátum\n"
-#: src/tools/hunspell.cxx:1485
+#: src/tools/hunspell.cxx:1497
#, c-format
msgid " -i enc\tinput encoding\n"
msgstr " -i kód\tbemeneti karakterkódolás\n"
-#: src/tools/hunspell.cxx:1486
+#: src/tools/hunspell.cxx:1498
#, c-format
msgid " -l\t\tprint misspelled words\n"
msgstr " -l\t\tkiírja a hibás szavakat\n"
-#: src/tools/hunspell.cxx:1487
+#: src/tools/hunspell.cxx:1499
#, c-format
msgid " -L\t\tprint lines with misspelled words\n"
msgstr " -L\t\tkiírja a hibás sorokat\n"
-#: src/tools/hunspell.cxx:1488
+#: src/tools/hunspell.cxx:1500
#, c-format
msgid " -m \t\tanalyze the words of the input text\n"
msgstr " -m \t\tszövegszavak morfológiai elemzése\n"
-#: src/tools/hunspell.cxx:1489
+#: src/tools/hunspell.cxx:1501
#, c-format
msgid " -n\t\tnroff/troff input file format\n"
msgstr " -n\t\tnroff/troff bemeneti formátum\n"
-#: src/tools/hunspell.cxx:1490
+#: src/tools/hunspell.cxx:1502
#, c-format
msgid " -p dict\tset dict custom dictionary\n"
msgstr " -p tár\ta tár nevű saját szótárat használja\n"
-#: src/tools/hunspell.cxx:1491
+#: src/tools/hunspell.cxx:1503
#, c-format
msgid " -P password\tset password for encrypted dictionaries\n"
msgstr " -P jelszó\tjelszó megadása a titkosított szótárakhoz\n"
-#: src/tools/hunspell.cxx:1492
+#: src/tools/hunspell.cxx:1504
#, c-format
msgid " -s \t\tstem the words of the input text\n"
msgstr " -s \t\tszövegszavak tövezése\n"
-#: src/tools/hunspell.cxx:1493
+#: src/tools/hunspell.cxx:1505
#, c-format
msgid " -t\t\tTeX/LaTeX input file format\n"
msgstr " -t\t\tTeX/LaTeX bemeneti formátum\n"
-#: src/tools/hunspell.cxx:1499
+#: src/tools/hunspell.cxx:1511
#, c-format
msgid " -v, --version\tprint version number\n"
msgstr " -v, --version\tkiírja a változat számát\n"
-#: src/tools/hunspell.cxx:1500
+#: src/tools/hunspell.cxx:1512
#, c-format
msgid " -vv\t\tprint Ispell compatible version number\n"
msgstr " -vv\t\tkiírja a változat számát Ispell-szerűen\n"
-#: src/tools/hunspell.cxx:1501
+#: src/tools/hunspell.cxx:1513
#, c-format
msgid ""
" -w\t\tprint misspelled words (= lines) from one word/line input.\n"
@@ -336,7 +336,7 @@ msgstr ""
" -w\t\tkiírja a hibás szavakat a soronként egy szavas bemenetből.\n"
"\n"
-#: src/tools/hunspell.cxx:1502
+#: src/tools/hunspell.cxx:1514
#, c-format
msgid ""
"Example: hunspell -d en_US file.txt # interactive spelling\n"
@@ -349,12 +349,12 @@ msgstr ""
" hunspell -i utf-8 fájl.txt # UTF-8-as fájl ellenőrzése\n"
"\n"
-#: src/tools/hunspell.cxx:1505
+#: src/tools/hunspell.cxx:1517
#, c-format
msgid "Bug reports: http://hunspell.sourceforge.net\n"
msgstr "Hibajelzés: http://hunspell.sourceforge.net\n"
-#: src/tools/hunspell.cxx:1511
+#: src/tools/hunspell.cxx:1523
#, c-format
msgid ""
"\n"
@@ -371,7 +371,7 @@ msgstr ""
"MySpell copyright (C) Kevin Hendricks, 2001-2002, Licenc: BSD.\n"
"\n"
-#: src/tools/hunspell.cxx:1514
+#: src/tools/hunspell.cxx:1526
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -382,13 +382,13 @@ msgstr ""
"NINCS garancia, még az eladhatóságra vagy valamely célra való\n"
"alkalmazhatóságra sem.\n"
-#: src/tools/hunspell.cxx:1606 src/tools/hunspell.cxx:1726
-#: src/tools/hunspell.cxx:1743
+#: src/tools/hunspell.cxx:1618 src/tools/hunspell.cxx:1738
+#: src/tools/hunspell.cxx:1755
#, c-format
msgid "Can't open %s.\n"
msgstr "Nem lehet megnyitni a(z) %s-t.\n"
-#: src/tools/hunspell.cxx:1655
+#: src/tools/hunspell.cxx:1667
#, c-format
msgid ""
"SEARCH PATH:\n"
@@ -397,12 +397,12 @@ msgstr ""
"KERESÉSI ÚTVONAL:\n"
"%s\n"
-#: src/tools/hunspell.cxx:1656
+#: src/tools/hunspell.cxx:1668
#, c-format
msgid "AVAILABLE DICTIONARIES (path is not mandatory for -d option):\n"
msgstr "ELÉRHETŐ SZÓTÁRAK (az útvonal nem kötelező a -d kapcsolónál):\n"
-#: src/tools/hunspell.cxx:1668
+#: src/tools/hunspell.cxx:1680
#, c-format
msgid ""
"LOADED DICTIONARY:\n"
@@ -413,17 +413,17 @@ msgstr ""
"%s\n"
"%s\n"
-#: src/tools/hunspell.cxx:1686
+#: src/tools/hunspell.cxx:1698
#, c-format
msgid "error - %s exceeds dictionary limit.\n"
msgstr "hiba - %s meghaladja a szótárlimitet.\n"
-#: src/tools/hunspell.cxx:1690
+#: src/tools/hunspell.cxx:1702
#, fuzzy, c-format
msgid "Can't open affix or dictionary files for dictionary named \"%s\".\n"
msgstr "Nem lehet megnyitni a ragozási vagy a szótárfájlt.\n"
-#: src/tools/hunspell.cxx:1753
+#: src/tools/hunspell.cxx:1765
#, c-format
msgid "Hunspell has been compiled without Ncurses user interface.\n"
msgstr "A Hunspell Ncurses felhasználói felület nélkül lett fordítva.\n"
diff --git a/po/hunspell.pot b/po/hunspell.pot
index 1d3de17..e7ab10c 100644
--- a/po/hunspell.pot
+++ b/po/hunspell.pot
@@ -6,56 +6,55 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: hunspell 1.2.12\n"
+"Project-Id-Version: hunspell 1.2.14\n"
"Report-Msgid-Bugs-To: nemeth@openoffice.org\n"
-"POT-Creation-Date: 2010-07-14 08:39+0100\n"
+"POT-Creation-Date: 2011-01-06 13:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/tools/hunspell.cxx:192 src/tools/hunspell.cxx:300
+#: src/tools/hunspell.cxx:204 src/tools/hunspell.cxx:312
#, c-format
msgid "error - iconv_open: %s -> %s\n"
msgstr ""
-#: src/tools/hunspell.cxx:235 src/tools/hunspell.cxx:258
+#: src/tools/hunspell.cxx:247 src/tools/hunspell.cxx:270
#, c-format
msgid "error - iconv_open: UTF-8 -> %s\n"
msgstr ""
-#: src/tools/hunspell.cxx:550 src/tools/hunspell.cxx:1072
-#: src/tools/hunspell.cxx:1202
+#: src/tools/hunspell.cxx:562 src/tools/hunspell.cxx:1084
+#: src/tools/hunspell.cxx:1214
#, c-format
msgid "error - missing HOME variable\n"
msgstr ""
-#: src/tools/hunspell.cxx:633
+#: src/tools/hunspell.cxx:645
#, c-format
msgid "Line %d: %s -> "
msgstr ""
-#: src/tools/hunspell.cxx:879
+#: src/tools/hunspell.cxx:891
msgid "FORBIDDEN!"
msgstr ""
-#: src/tools/hunspell.cxx:880
+#: src/tools/hunspell.cxx:892
#, c-format
msgid ""
"\t%s\t\tFile: %s\n"
"\n"
msgstr ""
-#: src/tools/hunspell.cxx:933
+#: src/tools/hunspell.cxx:945
msgid ""
"\n"
"[SPACE] R)epl A)ccept I)nsert U)ncap S)tem Q)uit e(X)it or ? for help\n"
msgstr ""
-#: src/tools/hunspell.cxx:999
+#: src/tools/hunspell.cxx:1011
msgid ""
"Whenever a word is found that is not in the dictionary\n"
"it is printed on the first line of the screen. If the dictionary\n"
@@ -64,61 +63,61 @@ msgid ""
"completely, or choosing one of the suggested words.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1004
+#: src/tools/hunspell.cxx:1016
msgid ""
"\n"
"Commands are:\n"
"\n"
msgstr ""
-#: src/tools/hunspell.cxx:1005
+#: src/tools/hunspell.cxx:1017
msgid "R\tReplace the misspelled word completely.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1006
+#: src/tools/hunspell.cxx:1018
msgid "Space\tAccept the word this time only.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1007
+#: src/tools/hunspell.cxx:1019
msgid "A\tAccept the word for the rest of this session.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1008
+#: src/tools/hunspell.cxx:1020
msgid "I\tAccept the word, and put it in your private dictionary.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1009
+#: src/tools/hunspell.cxx:1021
msgid "U\tAccept and add lowercase version to private dictionary.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1011
+#: src/tools/hunspell.cxx:1023
msgid ""
"S\tAsk a stem and a model word and store them in the private dictionary.\n"
"\tThe stem will be accepted also with the affixes of the model word.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1014
+#: src/tools/hunspell.cxx:1026
msgid "0-n\tReplace with one of the suggested words.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1015
+#: src/tools/hunspell.cxx:1027
msgid ""
"X\tWrite the rest of this file, ignoring misspellings, and start next file.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1016
+#: src/tools/hunspell.cxx:1028
msgid "Q\tQuit immediately. Asks for confirmation. Leaves file unchanged.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1017
+#: src/tools/hunspell.cxx:1029
msgid "^Z\tSuspend program. Restart with fg command.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1018
+#: src/tools/hunspell.cxx:1030
msgid "?\tShow this help screen.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1019
+#: src/tools/hunspell.cxx:1031
msgid ""
"\n"
"-- Type space to continue -- \n"
@@ -126,11 +125,11 @@ msgstr ""
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "R)epl" before
-#: src/tools/hunspell.cxx:1029
+#: src/tools/hunspell.cxx:1041
msgid "r"
msgstr ""
-#: src/tools/hunspell.cxx:1041
+#: src/tools/hunspell.cxx:1053
msgid "Replace with: "
msgstr ""
@@ -138,182 +137,182 @@ msgstr ""
#. previously in the translation of "U)ncap" and I)nsert before
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "U)ncap" and I)nsert before
-#: src/tools/hunspell.cxx:1062 src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1074 src/tools/hunspell.cxx:1106
msgid "u"
msgstr ""
-#: src/tools/hunspell.cxx:1063 src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1075 src/tools/hunspell.cxx:1106
msgid "i"
msgstr ""
-#: src/tools/hunspell.cxx:1088 src/tools/hunspell.cxx:1218
+#: src/tools/hunspell.cxx:1100 src/tools/hunspell.cxx:1230
#, c-format
msgid "Cannot update personal dictionary."
msgstr ""
-#: src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1106
msgid "a"
msgstr ""
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "S)tem" before
-#: src/tools/hunspell.cxx:1101
+#: src/tools/hunspell.cxx:1113
msgid "s"
msgstr ""
-#: src/tools/hunspell.cxx:1134
+#: src/tools/hunspell.cxx:1146
msgid "New word (stem): "
msgstr ""
-#: src/tools/hunspell.cxx:1161
+#: src/tools/hunspell.cxx:1173
msgid "Model word (a similar dictionary word): "
msgstr ""
-#: src/tools/hunspell.cxx:1224
+#: src/tools/hunspell.cxx:1236
msgid "Model word must be in the dictionary. Press any key!"
msgstr ""
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "e(X)it" before
-#: src/tools/hunspell.cxx:1233
+#: src/tools/hunspell.cxx:1245
msgid "x"
msgstr ""
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "Q)uit" before
-#: src/tools/hunspell.cxx:1238
+#: src/tools/hunspell.cxx:1250
msgid "q"
msgstr ""
-#: src/tools/hunspell.cxx:1240
+#: src/tools/hunspell.cxx:1252
msgid "Are you sure you want to throw away your changes? "
msgstr ""
#. TRANSLATORS: translate this letter according to the shortcut letter y)es
-#: src/tools/hunspell.cxx:1242
+#: src/tools/hunspell.cxx:1254
msgid "y"
msgstr ""
-#: src/tools/hunspell.cxx:1314
+#: src/tools/hunspell.cxx:1326
#, c-format
msgid "Can't create tempfile %s.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1475
+#: src/tools/hunspell.cxx:1487
#, c-format
msgid "Usage: hunspell [OPTION]... [FILE]...\n"
msgstr ""
-#: src/tools/hunspell.cxx:1476
+#: src/tools/hunspell.cxx:1488
#, c-format
msgid ""
"Check spelling of each FILE. Without FILE, check standard input.\n"
"\n"
msgstr ""
-#: src/tools/hunspell.cxx:1477
+#: src/tools/hunspell.cxx:1489
#, c-format
msgid " -1\t\tcheck only first field in lines (delimiter = tabulator)\n"
msgstr ""
-#: src/tools/hunspell.cxx:1478
+#: src/tools/hunspell.cxx:1490
#, c-format
msgid " -a\t\tIspell's pipe interface\n"
msgstr ""
-#: src/tools/hunspell.cxx:1479
+#: src/tools/hunspell.cxx:1491
#, c-format
msgid " --check-url\tCheck URLs, e-mail addresses and directory paths\n"
msgstr ""
-#: src/tools/hunspell.cxx:1480
+#: src/tools/hunspell.cxx:1492
#, c-format
msgid " -d d[,d2,...]\tuse d (d2 etc.) dictionaries\n"
msgstr ""
-#: src/tools/hunspell.cxx:1481
+#: src/tools/hunspell.cxx:1493
#, c-format
msgid " -D\t\tshow available dictionaries\n"
msgstr ""
-#: src/tools/hunspell.cxx:1482
+#: src/tools/hunspell.cxx:1494
#, c-format
msgid " -G\t\tprint only correct words or lines\n"
msgstr ""
-#: src/tools/hunspell.cxx:1483
+#: src/tools/hunspell.cxx:1495
#, c-format
msgid " -h, --help\tdisplay this help and exit\n"
msgstr ""
-#: src/tools/hunspell.cxx:1484
+#: src/tools/hunspell.cxx:1496
#, c-format
msgid " -H\t\tHTML input file format\n"
msgstr ""
-#: src/tools/hunspell.cxx:1485
+#: src/tools/hunspell.cxx:1497
#, c-format
msgid " -i enc\tinput encoding\n"
msgstr ""
-#: src/tools/hunspell.cxx:1486
+#: src/tools/hunspell.cxx:1498
#, c-format
msgid " -l\t\tprint misspelled words\n"
msgstr ""
-#: src/tools/hunspell.cxx:1487
+#: src/tools/hunspell.cxx:1499
#, c-format
msgid " -L\t\tprint lines with misspelled words\n"
msgstr ""
-#: src/tools/hunspell.cxx:1488
+#: src/tools/hunspell.cxx:1500
#, c-format
msgid " -m \t\tanalyze the words of the input text\n"
msgstr ""
-#: src/tools/hunspell.cxx:1489
+#: src/tools/hunspell.cxx:1501
#, c-format
msgid " -n\t\tnroff/troff input file format\n"
msgstr ""
-#: src/tools/hunspell.cxx:1490
+#: src/tools/hunspell.cxx:1502
#, c-format
msgid " -p dict\tset dict custom dictionary\n"
msgstr ""
-#: src/tools/hunspell.cxx:1491
+#: src/tools/hunspell.cxx:1503
#, c-format
msgid " -P password\tset password for encrypted dictionaries\n"
msgstr ""
-#: src/tools/hunspell.cxx:1492
+#: src/tools/hunspell.cxx:1504
#, c-format
msgid " -s \t\tstem the words of the input text\n"
msgstr ""
-#: src/tools/hunspell.cxx:1493
+#: src/tools/hunspell.cxx:1505
#, c-format
msgid " -t\t\tTeX/LaTeX input file format\n"
msgstr ""
-#: src/tools/hunspell.cxx:1499
+#: src/tools/hunspell.cxx:1511
#, c-format
msgid " -v, --version\tprint version number\n"
msgstr ""
-#: src/tools/hunspell.cxx:1500
+#: src/tools/hunspell.cxx:1512
#, c-format
msgid " -vv\t\tprint Ispell compatible version number\n"
msgstr ""
-#: src/tools/hunspell.cxx:1501
+#: src/tools/hunspell.cxx:1513
#, c-format
msgid ""
" -w\t\tprint misspelled words (= lines) from one word/line input.\n"
"\n"
msgstr ""
-#: src/tools/hunspell.cxx:1502
+#: src/tools/hunspell.cxx:1514
#, c-format
msgid ""
"Example: hunspell -d en_US file.txt # interactive spelling\n"
@@ -322,12 +321,12 @@ msgid ""
"\n"
msgstr ""
-#: src/tools/hunspell.cxx:1505
+#: src/tools/hunspell.cxx:1517
#, c-format
msgid "Bug reports: http://hunspell.sourceforge.net\n"
msgstr ""
-#: src/tools/hunspell.cxx:1511
+#: src/tools/hunspell.cxx:1523
#, c-format
msgid ""
"\n"
@@ -338,7 +337,7 @@ msgid ""
"\n"
msgstr ""
-#: src/tools/hunspell.cxx:1514
+#: src/tools/hunspell.cxx:1526
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -346,25 +345,25 @@ msgid ""
"to the extent permitted by law.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1606 src/tools/hunspell.cxx:1726
-#: src/tools/hunspell.cxx:1743
+#: src/tools/hunspell.cxx:1618 src/tools/hunspell.cxx:1738
+#: src/tools/hunspell.cxx:1755
#, c-format
msgid "Can't open %s.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1655
+#: src/tools/hunspell.cxx:1667
#, c-format
msgid ""
"SEARCH PATH:\n"
"%s\n"
msgstr ""
-#: src/tools/hunspell.cxx:1656
+#: src/tools/hunspell.cxx:1668
#, c-format
msgid "AVAILABLE DICTIONARIES (path is not mandatory for -d option):\n"
msgstr ""
-#: src/tools/hunspell.cxx:1668
+#: src/tools/hunspell.cxx:1680
#, c-format
msgid ""
"LOADED DICTIONARY:\n"
@@ -372,17 +371,17 @@ msgid ""
"%s\n"
msgstr ""
-#: src/tools/hunspell.cxx:1686
+#: src/tools/hunspell.cxx:1698
#, c-format
msgid "error - %s exceeds dictionary limit.\n"
msgstr ""
-#: src/tools/hunspell.cxx:1690
+#: src/tools/hunspell.cxx:1702
#, c-format
msgid "Can't open affix or dictionary files for dictionary named \"%s\".\n"
msgstr ""
-#: src/tools/hunspell.cxx:1753
+#: src/tools/hunspell.cxx:1765
#, c-format
msgid "Hunspell has been compiled without Ncurses user interface.\n"
msgstr ""
diff --git a/po/it.gmo b/po/it.gmo
index 3084b82..cfa1ecc 100644
Binary files a/po/it.gmo and b/po/it.gmo differ
diff --git a/po/it.po b/po/it.po
index 28667b6..9e9ba6b 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,43 +8,43 @@ msgid ""
msgstr ""
"Project-Id-Version: hunspell\n"
"Report-Msgid-Bugs-To: nemeth@openoffice.org\n"
-"POT-Creation-Date: 2010-07-14 08:39+0100\n"
+"POT-Creation-Date: 2011-01-06 13:57+0100\n"
"PO-Revision-Date: 2009-08-14 10:25+0200\n"
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
-"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
"X-Launchpad-Export-Date: 2009-08-12 13:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-#: src/tools/hunspell.cxx:192 src/tools/hunspell.cxx:300
+#: src/tools/hunspell.cxx:204 src/tools/hunspell.cxx:312
#, c-format
msgid "error - iconv_open: %s -> %s\n"
msgstr "errore - iconv_open: %s -> %s\n"
-#: src/tools/hunspell.cxx:235 src/tools/hunspell.cxx:258
+#: src/tools/hunspell.cxx:247 src/tools/hunspell.cxx:270
#, c-format
msgid "error - iconv_open: UTF-8 -> %s\n"
msgstr "errore - iconv_open: UTF-8 -> %s\n"
-#: src/tools/hunspell.cxx:550 src/tools/hunspell.cxx:1072
-#: src/tools/hunspell.cxx:1202
+#: src/tools/hunspell.cxx:562 src/tools/hunspell.cxx:1084
+#: src/tools/hunspell.cxx:1214
#, c-format
msgid "error - missing HOME variable\n"
msgstr "errore - variabile HOME mancante\n"
-#: src/tools/hunspell.cxx:633
+#: src/tools/hunspell.cxx:645
#, c-format
msgid "Line %d: %s -> "
msgstr "Riga %d: %s -> "
-#: src/tools/hunspell.cxx:879
+#: src/tools/hunspell.cxx:891
msgid "FORBIDDEN!"
msgstr "PROIBITO."
-#: src/tools/hunspell.cxx:880
+#: src/tools/hunspell.cxx:892
#, c-format
msgid ""
"\t%s\t\tFile: %s\n"
@@ -56,7 +56,7 @@ msgstr ""
# (ndt)
# to stem -> to have or take origin -> Origine
# to uncap -> togliere la 'capitalizzazione' delle parole, le lettere maiuscole
-#: src/tools/hunspell.cxx:933
+#: src/tools/hunspell.cxx:945
msgid ""
"\n"
"[SPACE] R)epl A)ccept I)nsert U)ncap S)tem Q)uit e(X)it or ? for help\n"
@@ -64,7 +64,7 @@ msgstr ""
"\n"
"[SPAZIO] S)ost A)ccet I)nser T)ogli cap O)rig C)hiudi E)sci o ? per l'aiuto\n"
-#: src/tools/hunspell.cxx:999
+#: src/tools/hunspell.cxx:1011
msgid ""
"Whenever a word is found that is not in the dictionary\n"
"it is printed on the first line of the screen. If the dictionary\n"
@@ -78,7 +78,7 @@ msgstr ""
"di ognuna. È possibile sostituire la parola completamente o\n"
"scegliere uno dei suggerimenti.\n"
-#: src/tools/hunspell.cxx:1004
+#: src/tools/hunspell.cxx:1016
msgid ""
"\n"
"Commands are:\n"
@@ -88,28 +88,28 @@ msgstr ""
"I comandi sono:\n"
"\n"
-#: src/tools/hunspell.cxx:1005
+#: src/tools/hunspell.cxx:1017
msgid "R\tReplace the misspelled word completely.\n"
msgstr "R\tSostituisce la parola sbagliata\n"
-#: src/tools/hunspell.cxx:1006
+#: src/tools/hunspell.cxx:1018
msgid "Space\tAccept the word this time only.\n"
msgstr "Spazio\tAccetta la parola solo per questa volta\n"
-#: src/tools/hunspell.cxx:1007
+#: src/tools/hunspell.cxx:1019
msgid "A\tAccept the word for the rest of this session.\n"
msgstr "A\tAccetta la parola per il resto di questa sessione\n"
-#: src/tools/hunspell.cxx:1008
+#: src/tools/hunspell.cxx:1020
msgid "I\tAccept the word, and put it in your private dictionary.\n"
msgstr "I\tAccetta la parola e la inserisce nel dizionario privato\n"
-#: src/tools/hunspell.cxx:1009
+#: src/tools/hunspell.cxx:1021
msgid "U\tAccept and add lowercase version to private dictionary.\n"
msgstr ""
"U\tAccetta la parola e la inserisce in minuscolo nel dizionario privato\n"
-#: src/tools/hunspell.cxx:1011
+#: src/tools/hunspell.cxx:1023
msgid ""
"S\tAsk a stem and a model word and store them in the private dictionary.\n"
"\tThe stem will be accepted also with the affixes of the model word.\n"
@@ -119,31 +119,31 @@ msgstr ""
"\tla parte principale viene accettata anche con gli affissi della parola "
"modello\n"
-#: src/tools/hunspell.cxx:1014
+#: src/tools/hunspell.cxx:1026
msgid "0-n\tReplace with one of the suggested words.\n"
msgstr "0-n\tSostituisce con una delle parole suggerite\n"
-#: src/tools/hunspell.cxx:1015
+#: src/tools/hunspell.cxx:1027
msgid ""
"X\tWrite the rest of this file, ignoring misspellings, and start next file.\n"
msgstr ""
"X\tScrive il resto del file ignorando gli errori e inizia con il file "
"successivo\n"
-#: src/tools/hunspell.cxx:1016
+#: src/tools/hunspell.cxx:1028
msgid "Q\tQuit immediately. Asks for confirmation. Leaves file unchanged.\n"
msgstr ""
"Q\tChiude immediatamente, chiede conferma e lascia il file non modificato\n"
-#: src/tools/hunspell.cxx:1017
+#: src/tools/hunspell.cxx:1029
msgid "^Z\tSuspend program. Restart with fg command.\n"
msgstr "^Z\tSospende il programma; per riavviarlo, usare il comando fg\n"
-#: src/tools/hunspell.cxx:1018
+#: src/tools/hunspell.cxx:1030
msgid "?\tShow this help screen.\n"
msgstr "?\tMostra questo aiuto\n"
-#: src/tools/hunspell.cxx:1019
+#: src/tools/hunspell.cxx:1031
msgid ""
"\n"
"-- Type space to continue -- \n"
@@ -153,11 +153,11 @@ msgstr ""
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "R)epl" before
-#: src/tools/hunspell.cxx:1029
+#: src/tools/hunspell.cxx:1041
msgid "r"
msgstr "s"
-#: src/tools/hunspell.cxx:1041
+#: src/tools/hunspell.cxx:1053
msgid "Replace with: "
msgstr "Sostituisci con: "
@@ -165,73 +165,73 @@ msgstr "Sostituisci con: "
#. previously in the translation of "U)ncap" and I)nsert before
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "U)ncap" and I)nsert before
-#: src/tools/hunspell.cxx:1062 src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1074 src/tools/hunspell.cxx:1106
msgid "u"
msgstr "t"
-#: src/tools/hunspell.cxx:1063 src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1075 src/tools/hunspell.cxx:1106
msgid "i"
msgstr "i"
-#: src/tools/hunspell.cxx:1088 src/tools/hunspell.cxx:1218
+#: src/tools/hunspell.cxx:1100 src/tools/hunspell.cxx:1230
#, c-format
msgid "Cannot update personal dictionary."
msgstr "Impossibile aggiornare il dizionario personale"
-#: src/tools/hunspell.cxx:1094
+#: src/tools/hunspell.cxx:1106
msgid "a"
msgstr "a"
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "S)tem" before
-#: src/tools/hunspell.cxx:1101
+#: src/tools/hunspell.cxx:1113
msgid "s"
msgstr "o"
-#: src/tools/hunspell.cxx:1134
+#: src/tools/hunspell.cxx:1146
msgid "New word (stem): "
msgstr "Nuova parola (origine):"
-#: src/tools/hunspell.cxx:1161
+#: src/tools/hunspell.cxx:1173
msgid "Model word (a similar dictionary word): "
msgstr "Parola modello (una parola simile dal dizionario): "
-#: src/tools/hunspell.cxx:1224
+#: src/tools/hunspell.cxx:1236
msgid "Model word must be in the dictionary. Press any key!"
msgstr "La parola modello deve essere nel dizionario. Premere un tasto."
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "e(X)it" before
-#: src/tools/hunspell.cxx:1233
+#: src/tools/hunspell.cxx:1245
msgid "x"
msgstr "e"
#. TRANSLATORS: translate this letter according to the shortcut letter used
#. previously in the translation of "Q)uit" before
-#: src/tools/hunspell.cxx:1238
+#: src/tools/hunspell.cxx:1250
msgid "q"
msgstr "c"
-#: src/tools/hunspell.cxx:1240
+#: src/tools/hunspell.cxx:1252
msgid "Are you sure you want to throw away your changes? "
msgstr "Scartare veramente le modifiche? "
#. TRANSLATORS: translate this letter according to the shortcut letter y)es
-#: src/tools/hunspell.cxx:1242
+#: src/tools/hunspell.cxx:1254
msgid "y"
msgstr "s"
-#: src/tools/hunspell.cxx:1314
+#: src/tools/hunspell.cxx:1326
#, c-format
msgid "Can't create tempfile %s.\n"
msgstr "Impossibile creare il file temporaneo %s.\n"
-#: src/tools/hunspell.cxx:1475
+#: src/tools/hunspell.cxx:1487
#, c-format
msgid "Usage: hunspell [OPTION]... [FILE]...\n"
msgstr "Uso: hunspell [OPZIONI]... [FILE]...\n"
-#: src/tools/hunspell.cxx:1476
+#: src/tools/hunspell.cxx:1488
#, c-format
msgid ""
"Check spelling of each FILE. Without FILE, check standard input.\n"
@@ -241,108 +241,108 @@ msgstr ""
"input.\n"
"\n"
-#: src/tools/hunspell.cxx:1477
+#: src/tools/hunspell.cxx:1489
#, c-format
msgid " -1\t\tcheck only first field in lines (delimiter = tabulator)\n"
msgstr ""
" -1\t\tControlla solo il primo campo nelle righe (delimitatore = "
"tabulatore)\n"
-#: src/tools/hunspell.cxx:1478
+#: src/tools/hunspell.cxx:1490
#, c-format
msgid " -a\t\tIspell's pipe interface\n"
msgstr " -a\t\tInterfaccia pipe di Ispell\n"
-#: src/tools/hunspell.cxx:1479
+#: src/tools/hunspell.cxx:1491
#, c-format
msgid " --check-url\tCheck URLs, e-mail addresses and directory paths\n"
msgstr ""
" --check-url\tControlla gli URL, indirizzi email e i percorsi delle "
"directory\n"
-#: src/tools/hunspell.cxx:1480
+#: src/tools/hunspell.cxx:1492
#, c-format
msgid " -d d[,d2,...]\tuse d (d2 etc.) dictionaries\n"
msgstr " -d d[,d2,...]\tUsa i dizionari d (d2 ecc...)\n"
-#: src/tools/hunspell.cxx:1481
+#: src/tools/hunspell.cxx:1493
#, c-format
msgid " -D\t\tshow available dictionaries\n"
msgstr " -D\t\tMostra i dizionari disponibili\n"
-#: src/tools/hunspell.cxx:1482
+#: src/tools/hunspell.cxx:1494
#, c-format
msgid " -G\t\tprint only correct words or lines\n"
msgstr " -G\t\tStampa solo le righe o le parole corrette\n"
-#: src/tools/hunspell.cxx:1483
+#: src/tools/hunspell.cxx:1495
#, c-format
msgid " -h, --help\tdisplay this help and exit\n"
msgstr " -h, --help\tMostra questo aiuto ed esce\n"
-#: src/tools/hunspell.cxx:1484
+#: src/tools/hunspell.cxx:1496
#, c-format
msgid " -H\t\tHTML input file format\n"
msgstr " -H\t\tFormato del file di input HTML\n"
-#: src/tools/hunspell.cxx:1485
+#: src/tools/hunspell.cxx:1497
#, c-format
msgid " -i enc\tinput encoding\n"
msgstr " -i cod\tCodifica dell'input\n"
-#: src/tools/hunspell.cxx:1486
+#: src/tools/hunspell.cxx:1498
#, c-format
msgid " -l\t\tprint misspelled words\n"
msgstr " -l\t\tStampa le parole errate\n"
-#: src/tools/hunspell.cxx:1487
+#: src/tools/hunspell.cxx:1499
#, c-format
msgid " -L\t\tprint lines with misspelled words\n"
msgstr " -L\t\tStampa le righe con le parole errate\n"
-#: src/tools/hunspell.cxx:1488
+#: src/tools/hunspell.cxx:1500
#, c-format
msgid " -m \t\tanalyze the words of the input text\n"
msgstr " -m \t\tAnalizza le parole del testo in input\n"
-#: src/tools/hunspell.cxx:1489
+#: src/tools/hunspell.cxx:1501
#, c-format
msgid " -n\t\tnroff/troff input file format\n"
msgstr " -n\t\tFormato del file di input nroff/troff\n"
-#: src/tools/hunspell.cxx:1490
+#: src/tools/hunspell.cxx:1502
#, c-format
msgid " -p dict\tset dict custom dictionary\n"
msgstr " -p diz\tImposta diz come dizionario personalizzato\n"
-#: src/tools/hunspell.cxx:1491
+#: src/tools/hunspell.cxx:1503
#, c-format
msgid " -P password\tset password for encrypted dictionaries\n"
msgstr " -P password\tImposta la password per i dizionari cifrati\n"
-#: src/tools/hunspell.cxx:1492
+#: src/tools/hunspell.cxx:1504
#, c-format
msgid " -s \t\tstem the words of the input text\n"
msgstr ""
" -s \t\tRecupera la parte principale (stem) delle parole del testo di "
"input\n"
-#: src/tools/hunspell.cxx:1493
+#: src/tools/hunspell.cxx:1505
#, c-format
msgid " -t\t\tTeX/LaTeX input file format\n"
msgstr " -t\t\tFormato del file di input TeX/LaTeX\n"
-#: src/tools/hunspell.cxx:1499
+#: src/tools/hunspell.cxx:1511
#, c-format
msgid " -v, --version\tprint version number\n"
msgstr " -v, --version\tStampa il numero della versione\n"
-#: src/tools/hunspell.cxx:1500
+#: src/tools/hunspell.cxx:1512
#, c-format
msgid " -vv\t\tprint Ispell compatible version number\n"
msgstr " -vv\t\tStampa il numero della versione di compatibilità di Ispell\n"
-#: src/tools/hunspell.cxx:1501
+#: src/tools/hunspell.cxx:1513
#, c-format
msgid ""
" -w\t\tprint misspelled words (= lines) from one word/line input.\n"
@@ -351,7 +351,7 @@ msgstr ""
" -w\t\tStampa le parole errate (= righe) da una parola o riga di input\n"
"\n"
-#: src/tools/hunspell.cxx:1502
+#: src/tools/hunspell.cxx:1514
#, c-format
msgid ""
"Example: hunspell -d en_US file.txt # interactive spelling\n"
@@ -361,16 +361,16 @@ msgid ""
msgstr ""
"Esempio: hunspell -d en_US file.txt # controllo ortografico interattivo\n"
" hunspell -l file.txt # stampa le parole errate\n"
-" hunspell -i utf-8 file.txt # controlla il file codificato in "
-"UTF-8\n"
+" hunspell -i utf-8 file.txt # controlla il file codificato in UTF-"
+"8\n"
"\n"
-#: src/tools/hunspell.cxx:1505
+#: src/tools/hunspell.cxx:1517
#, c-format
msgid "Bug reports: http://hunspell.sourceforge.net\n"
msgstr "Per segnalare bug: http://hunspell.sourceforge.net\n"
-#: src/tools/hunspell.cxx:1511
+#: src/tools/hunspell.cxx:1523
#, c-format
msgid ""
"\n"
@@ -387,7 +387,7 @@ msgstr ""
"Copyright di Myspell © Kevin Hendricks, 2001-2002, Licenza: BSD.\n"
"\n"
-#: src/tools/hunspell.cxx:1514
+#: src/tools/hunspell.cxx:1526
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -400,13 +400,13 @@ msgstr ""
"limiti\n"
"permessi dalla legge.\n"
-#: src/tools/hunspell.cxx:1606 src/tools/hunspell.cxx:1726
-#: src/tools/hunspell.cxx:1743
+#: src/tools/hunspell.cxx:1618 src/tools/hunspell.cxx:1738
+#: src/tools/hunspell.cxx:1755
#, c-format
msgid "Can't open %s.\n"
msgstr "Impossibile aprire %s.\n"
-#: src/tools/hunspell.cxx:1655
+#: src/tools/hunspell.cxx:1667
#, c-format
msgid ""
"SEARCH PATH:\n"
@@ -415,13 +415,13 @@ msgstr ""
"Percorso di ricerca:\n"
"%s\n"
-#: src/tools/hunspell.cxx:1656
+#: src/tools/hunspell.cxx:1668
#, c-format
msgid "AVAILABLE DICTIONARIES (path is not mandatory for -d option):\n"
msgstr ""
"Dizionari disponibili (il percorso non è obbligatorio per l'opzione -d):\n"
-#: src/tools/hunspell.cxx:1668
+#: src/tools/hunspell.cxx:1680
#, c-format
msgid ""
"LOADED DICTIONARY:\n"
@@ -432,17 +432,17 @@ msgstr ""
"%s\n"
"%s\n"
-#: src/tools/hunspell.cxx:1686
+#: src/tools/hunspell.cxx:1698
#, c-format
msgid "error - %s exceeds dictionary limit.\n"
msgstr "errore - %s supera il limite del dizionario.\n"
-#: src/tools/hunspell.cxx:1690
+#: src/tools/hunspell.cxx:1702
#, fuzzy, c-format
msgid "Can't open affix or dictionary files for dictionary named \"%s\".\n"
msgstr "Impossibile aprire i file di affisso o dizionario.\n"
-#: src/tools/hunspell.cxx:1753
+#: src/tools/hunspell.cxx:1765
#, c-format
msgid "Hunspell has been compiled without Ncurses user interface.\n"
msgstr ""
diff --git a/src/hunspell/affentry.cxx b/src/hunspell/affentry.cxx
index 7c8268b..fef0cca 100644
--- a/src/hunspell/affentry.cxx
+++ b/src/hunspell/affentry.cxx
@@ -106,7 +106,7 @@ inline int PfxEntry::test_condition(const char * st)
pos = NULL;
p = nextchar(p);
// skip the next character
- if (!ingroup) for (st++; (opts & aeUTF8) && (*st & 0xc0) == 0x80; st++);
+ if (!ingroup && *st) for (st++; (opts & aeUTF8) && (*st & 0xc0) == 0x80; st++);
if (*st == '\0' && p) return 0; // word <= condition
break;
}
diff --git a/src/hunspell/affixmgr.cxx b/src/hunspell/affixmgr.cxx
index 9c2902e..4fce178 100644
--- a/src/hunspell/affixmgr.cxx
+++ b/src/hunspell/affixmgr.cxx
@@ -29,7 +29,7 @@ AffixMgr::AffixMgr(const char * affpath, HashMgr** ptr, int * md, const char * k
maptable = NULL;
nummap = 0;
breaktable = NULL;
- numbreak = 0;
+ numbreak = -1;
reptable = NULL;
numrep = 0;
iconvtable = NULL;
@@ -709,7 +709,7 @@ int AffixMgr::parse_file(const char * affpath, const char * key)
}
// default BREAK definition
- if (!breaktable) {
+ if (numbreak == -1) {
breaktable = (char **) malloc(sizeof(char *) * 3);
if (!breaktable) return 1;
breaktable[0] = mystrdup("-");
@@ -1267,7 +1267,7 @@ int AffixMgr::cpdrep_check(const char * word, int wl)
}
// forbid compoundings when there are special patterns at word bound
-int AffixMgr::cpdpat_check(const char * word, int pos, hentry * r1, hentry * r2)
+int AffixMgr::cpdpat_check(const char * word, int pos, hentry * r1, hentry * r2, const char affixed)
{
int len;
for (int i = 0; i < numcheckcpd; i++) {
@@ -1276,8 +1276,14 @@ int AffixMgr::cpdpat_check(const char * word, int pos, hentry * r1, hentry * r2)
(r1->astr && TESTAFF(r1->astr, checkcpdtable[i].cond, r1->alen))) &&
(!r2 || !checkcpdtable[i].cond2 ||
(r2->astr && TESTAFF(r2->astr, checkcpdtable[i].cond2, r2->alen))) &&
- (len = strlen(checkcpdtable[i].pattern)) && (pos > len) &&
- (strncmp(word + pos - len, checkcpdtable[i].pattern, len) == 0)) return 1;
+ // zero length pattern => only TESTAFF
+ // zero pattern (0/flag) => unmodified stem (zero affixes allowed)
+ (!*(checkcpdtable[i].pattern) || (
+ (*(checkcpdtable[i].pattern)=='0' && r1->blen <= pos && strncmp(word + pos - r1->blen, r1->word, r1->blen) == 0) ||
+ (*(checkcpdtable[i].pattern)!='0' && (len = strlen(checkcpdtable[i].pattern)) &&
+ strncmp(word + pos - len, checkcpdtable[i].pattern, len) == 0)))) {
+ return 1;
+ }
}
return 0;
}
@@ -1462,6 +1468,7 @@ void AffixMgr::setcminmax(int * cmin, int * cmax, const char * word, int len) {
}
}
+
// check if compound word is correctly spelled
// hu_mov_rule = spec. Hungarian rule (XXX)
struct hentry * AffixMgr::compound_check(const char * word, int len,
@@ -1484,6 +1491,8 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
int oldcmax = 0;
int oldlen = 0;
int checkedstriple = 0;
+ int onlycpdrule;
+ int affixed = 0;
int checked_prefix;
@@ -1492,17 +1501,20 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
strcpy(st, word);
for (i = cmin; i < cmax; i++) {
-
- oldnumsyllable = numsyllable;
- oldwordnum = wordnum;
- checked_prefix = 0;
-
// go to end of the UTF-8 character
if (utf8) {
for (; (st[i] & 0xc0) == 0x80; i++);
if (i >= cmax) return NULL;
}
+ onlycpdrule = 0;
+
+ do { // onlycpdrule loop
+
+ oldnumsyllable = numsyllable;
+ oldwordnum = wordnum;
+ checked_prefix = 0;
+
do { // simplified checkcompoundpattern loop
if (scpd > 0) {
@@ -1525,7 +1537,6 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
cmax = len - cpdmin + 1;
}
-
ch = st[i];
st[i] = '\0';
@@ -1534,27 +1545,31 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
// FIRST WORD
+ affixed = 1;
rv = lookup(st); // perhaps without prefix
// search homonym with compound flag
while ((rv) && !hu_mov_rule &&
((needaffix && TESTAFF(rv->astr, needaffix, rv->alen)) ||
- !((compoundflag && !words && TESTAFF(rv->astr, compoundflag, rv->alen)) ||
- (compoundbegin && !wordnum &&
+ !((compoundflag && !words && !onlycpdrule && TESTAFF(rv->astr, compoundflag, rv->alen)) ||
+ (compoundbegin && !wordnum && !onlycpdrule &&
TESTAFF(rv->astr, compoundbegin, rv->alen)) ||
- (compoundmiddle && wordnum && !words &&
+ (compoundmiddle && wordnum && !words && !onlycpdrule &&
TESTAFF(rv->astr, compoundmiddle, rv->alen)) ||
(numdefcpd &&
((!words && !wordnum && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0)) ||
- (words && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0))))) ||
+ (words && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0))) && (onlycpdrule = 1))) || // switch onlycpdrule on
(scpd != 0 && checkcpdtable[scpd-1].cond != FLAG_NULL &&
!TESTAFF(rv->astr, checkcpdtable[scpd-1].cond, rv->alen)))
) {
rv = rv->next_homonym;
}
+ if (rv) affixed = 0;
+
if (!rv) {
- if (compoundflag &&
+ if (onlycpdrule) break;
+ if (compoundflag && !words &&
!(rv = prefix_check(st, i, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN, compoundflag))) {
if ((rv = suffix_check(st, i, 0, NULL, NULL, 0, NULL,
FLAG_NULL, compoundflag, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN)) && !hu_mov_rule &&
@@ -1577,11 +1592,13 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
) checked_prefix = 1;
// else check forbiddenwords and needaffix
} else if (rv->astr && (TESTAFF(rv->astr, forbiddenword, rv->alen) ||
- TESTAFF(rv->astr, needaffix, rv->alen) ||
+ TESTAFF(rv->astr, needaffix, rv->alen) ||
+ TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen) ||
(is_sug && nosuggest && TESTAFF(rv->astr, nosuggest, rv->alen))
)) {
st[i] = ch;
- continue;
+ //continue;
+ break;
}
// check non_compound flag in suffix and prefix
@@ -1619,6 +1636,7 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
// check forbiddenwords
if ((rv) && (rv->astr) && (TESTAFF(rv->astr, forbiddenword, rv->alen) ||
+ TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen) ||
(is_sug && nosuggest && TESTAFF(rv->astr, nosuggest, rv->alen)))) {
return NULL;
}
@@ -1681,7 +1699,6 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
}
// END of LANG_hu section
-
// NEXT WORD(S)
rv_first = rv;
st[i] = ch;
@@ -1728,6 +1745,7 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
// check forbiddenwords
if ((rv) && (rv->astr) && (TESTAFF(rv->astr, forbiddenword, rv->alen) ||
+ TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen) ||
(is_sug && nosuggest && TESTAFF(rv->astr, nosuggest, rv->alen)))) return NULL;
// second word is acceptable, as a root?
@@ -1746,7 +1764,7 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
) &&
(
// test CHECKCOMPOUNDPATTERN
- !numcheckcpd || scpd != 0 || !cpdpat_check(word, i, rv_first, rv)
+ !numcheckcpd || scpd != 0 || !cpdpat_check(word, i, rv_first, rv, 0)
) &&
(
(!checkcompounddup || (rv != rv_first))
@@ -1767,8 +1785,8 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
// perhaps second word has prefix or/and suffix
sfx = NULL;
sfxflag = FLAG_NULL;
- rv = (compoundflag) ? affix_check((word+i),strlen(word+i), compoundflag, IN_CPD_END) : NULL;
- if (!rv && compoundend) {
+ rv = (compoundflag && !onlycpdrule) ? affix_check((word+i),strlen(word+i), compoundflag, IN_CPD_END) : NULL;
+ if (!rv && compoundend && !onlycpdrule) {
sfx = NULL;
pfx = NULL;
rv = affix_check((word+i),strlen(word+i), compoundend, IN_CPD_END);
@@ -1785,7 +1803,7 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
TESTAFF(rv->astr, checkcpdtable[scpd-1].cond2, rv->alen))) rv = NULL;
// test CHECKCOMPOUNDPATTERN conditions (forbidden compounds)
- if (rv && numcheckcpd && scpd == 0 && cpdpat_check(word, i, rv_first, rv)) rv = NULL;
+ if (rv && numcheckcpd && scpd == 0 && cpdpat_check(word, i, rv_first, rv, affixed)) rv = NULL;
// check non_compound flag in suffix and prefix
if ((rv) &&
@@ -1800,6 +1818,7 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
// check forbiddenwords
if ((rv) && (rv->astr) && (TESTAFF(rv->astr, forbiddenword, rv->alen) ||
+ TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen) ||
(is_sug && nosuggest && TESTAFF(rv->astr, nosuggest, rv->alen)))) return NULL;
// pfxappnd = prefix of word+i, or NULL
@@ -1829,7 +1848,7 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
switch (sfxflag) {
case 'c': { numsyllable+=2; break; }
case 'J': { numsyllable += 1; break; }
- case 'I': { if (TESTAFF(rv->astr, 'J', rv->alen)) numsyllable += 1; break; }
+ case 'I': { if (rv && TESTAFF(rv->astr, 'J', rv->alen)) numsyllable += 1; break; }
}
}
}
@@ -1865,14 +1884,33 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
if (wordnum < maxwordnum) {
rv = compound_check((st+i),strlen(st+i), wordnum+1,
numsyllable, maxwordnum, wnum + 1, words, 0, is_sug);
- if (rv && numcheckcpd && ((scpd == 0 && cpdpat_check(word, i, rv_first, rv)) ||
- (scpd != 0 && !cpdpat_check(word, i, rv_first, rv)))) rv = NULL;
+ if (rv && numcheckcpd && ((scpd == 0 && cpdpat_check(word, i, rv_first, rv, affixed)) ||
+ (scpd != 0 && !cpdpat_check(word, i, rv_first, rv, affixed)))) rv = NULL;
} else {
rv=NULL;
}
if (rv) {
// forbid compound word, if it is a non compound word with typical fault
- if (checkcompoundrep && cpdrep_check(word, len)) return NULL;
+ if (checkcompoundrep || forbiddenword) {
+ struct hentry * rv2 = NULL;
+ if (checkcompoundrep && cpdrep_check(word, len)) return NULL;
+ // check first part
+ if (strncmp(rv->word, word + i, rv->blen) == 0) {
+ char r = *(st + i + rv->blen);
+ *(st + i + rv->blen) = '\0';
+ if (checkcompoundrep && cpdrep_check(st, i + rv->blen)) return NULL;
+ if (forbiddenword) {
+ rv2 = lookup(word);
+ if (!rv2) rv2 = affix_check(word, len);
+ if (rv2 && rv2->astr && TESTAFF(rv2->astr, forbiddenword, rv2->alen) &&
+ (strncmp(rv2->word, st, i + rv->blen) == 0)) {
+ return NULL;
+ }
+ }
+ *(st + i + rv->blen) = r;
+ }
+ }
+
return rv_first;
}
} while (striple && !checkedstriple); // end of striple loop
@@ -1894,7 +1932,11 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
}
scpd++;
- } while (simplifiedcpd && scpd <= numcheckcpd); // end of simplifiedcpd loop
+ } while (!onlycpdrule && simplifiedcpd && scpd <= numcheckcpd); // end of simplifiedcpd loop
+
+ scpd = 0;
+ wordnum = oldwordnum;
+ numsyllable = oldnumsyllable;
if (soldi != 0) {
i = soldi;
@@ -1902,9 +1944,8 @@ struct hentry * AffixMgr::compound_check(const char * word, int len,
soldi = 0;
} else st[i] = ch;
- scpd = 0;
- wordnum = oldwordnum;
- numsyllable = oldnumsyllable;
+ } while (numdefcpd && oldwordnum == 0 && !onlycpdrule && (onlycpdrule = 1)); // end of onlycpd loop
+
}
return NULL;
@@ -2026,6 +2067,7 @@ int AffixMgr::compound_check_morph(const char * word, int len,
}
// else check forbiddenwords
} else if (rv->astr && (TESTAFF(rv->astr, forbiddenword, rv->alen) ||
+ TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen) ||
TESTAFF(rv->astr, needaffix, rv->alen))) {
st[i] = ch;
continue;
@@ -2065,7 +2107,8 @@ int AffixMgr::compound_check_morph(const char * word, int len,
}
// check forbiddenwords
- if ((rv) && (rv->astr) && TESTAFF(rv->astr, forbiddenword, rv->alen)) continue;
+ if ((rv) && (rv->astr) && (TESTAFF(rv->astr, forbiddenword, rv->alen)
+ || TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen))) continue;
// increment word number, if the second root has a compoundroot flag
if ((rv) && (compoundroot) &&
@@ -2097,7 +2140,7 @@ int AffixMgr::compound_check_morph(const char * word, int len,
) ||
(
// test CHECKCOMPOUNDPATTERN
- numcheckcpd && !words && cpdpat_check(word, i, rv, NULL)
+ numcheckcpd && !words && cpdpat_check(word, i, rv, NULL, 0)
) ||
(
checkcompoundcase && !words && cpdcase_check(word, i)
@@ -2173,7 +2216,8 @@ int AffixMgr::compound_check_morph(const char * word, int len,
}
// check forbiddenwords
- if ((rv) && (rv->astr) && TESTAFF(rv->astr, forbiddenword, rv->alen)) {
+ if ((rv) && (rv->astr) && (TESTAFF(rv->astr, forbiddenword, rv->alen) ||
+ TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen))) {
st[i] = ch;
continue;
}
@@ -2267,7 +2311,8 @@ int AffixMgr::compound_check_morph(const char * word, int len,
}
// check forbiddenwords
- if ((rv) && (rv->astr) && (TESTAFF(rv->astr,forbiddenword,rv->alen))
+ if ((rv) && (rv->astr) && (TESTAFF(rv->astr,forbiddenword,rv->alen) ||
+ TESTAFF(rv->astr, ONLYUPCASEFLAG, rv->alen))
&& (! TESTAFF(rv->astr, needaffix, rv->alen))) {
st[i] = ch;
continue;
@@ -2837,7 +2882,8 @@ char * AffixMgr::morphgen(char * ts, int wl, const unsigned short * ap,
if (newword) {
hentry * check = pHMgr->lookup(newword); // XXX extra dic
if (!check || !check->astr ||
- !TESTAFF(check->astr, forbiddenword, check->alen)) {
+ !(TESTAFF(check->astr, forbiddenword, check->alen) ||
+ TESTAFF(check->astr, ONLYUPCASEFLAG, check->alen))) {
return newword;
}
free(newword);
@@ -3391,7 +3437,16 @@ int AffixMgr::parse_reptable(char * line, FileMgr * af)
}
break;
}
- case 1: { reptable[j].pattern = mystrrep(mystrdup(piece),"_"," "); break; }
+ case 1: {
+ if (*piece == '^') reptable[j].start = true; else reptable[j].start = false;
+ reptable[j].pattern = mystrrep(mystrdup(piece + int(reptable[j].start)),"_"," ");
+ int lr = strlen(reptable[j].pattern) - 1;
+ if (reptable[j].pattern[lr] == '$') {
+ reptable[j].end = true;
+ reptable[j].pattern[lr] = '\0';
+ } else reptable[j].end = false;
+ break;
+ }
case 2: { reptable[j].pattern2 = mystrrep(mystrdup(piece),"_"," "); break; }
default: break;
}
@@ -3481,8 +3536,12 @@ int AffixMgr::parse_convtable(char * line, FileMgr * af, RepList ** rl, const c
piece = mystrsep(&tp, 0);
}
if (!pattern || !pattern2) {
- HUNSPELL_WARNING(stderr, "error: line %d: table is corrupt\n", af->getlinenum());
- return 1;
+ if (pattern)
+ free(pattern);
+ if (pattern2)
+ free(pattern2);
+ HUNSPELL_WARNING(stderr, "error: line %d: table is corrupt\n", af->getlinenum());
+ return 1;
}
(*rl)->add(pattern, pattern2);
}
@@ -3878,7 +3937,7 @@ int AffixMgr::parse_maptable(char * line, FileMgr * af)
/* parse in the word breakpoint table */
int AffixMgr::parse_breaktable(char * line, FileMgr * af)
{
- if (numbreak != 0) {
+ if (numbreak > -1) {
HUNSPELL_WARNING(stderr, "error: line %d: multiple table definitions\n", af->getlinenum());
return 1;
}
@@ -3893,10 +3952,11 @@ int AffixMgr::parse_breaktable(char * line, FileMgr * af)
case 0: { np++; break; }
case 1: {
numbreak = atoi(piece);
- if (numbreak < 1) {
+ if (numbreak < 0) {
HUNSPELL_WARNING(stderr, "error: line %d: bad entry number\n", af->getlinenum());
return 1;
}
+ if (numbreak == 0) return 0;
breaktable = (char **) malloc(numbreak * sizeof(char *));
if (!breaktable) return 1;
np++;
diff --git a/src/hunspell/affixmgr.hxx b/src/hunspell/affixmgr.hxx
index ae5db38..486bb90 100644
--- a/src/hunspell/affixmgr.hxx
+++ b/src/hunspell/affixmgr.hxx
@@ -143,7 +143,8 @@ public:
short get_syllable (const char * word, int wlen);
int cpdrep_check(const char * word, int len);
- int cpdpat_check(const char * word, int len, hentry * r1, hentry * r2);
+ int cpdpat_check(const char * word, int len, hentry * r1, hentry * r2,
+ const char affixed);
int defcpd_check(hentry *** words, short wnum, hentry * rv,
hentry ** rwords, char all);
int cpdcase_check(const char * word, int len);
diff --git a/src/hunspell/csutil.cxx b/src/hunspell/csutil.cxx
index fd0bae0..e5732a4 100644
--- a/src/hunspell/csutil.cxx
+++ b/src/hunspell/csutil.cxx
@@ -10,6 +10,13 @@
#include "atypes.hxx"
#include "langnum.hxx"
+// Unicode character encoding information
+struct unicode_info {
+ unsigned short c;
+ unsigned short cupper;
+ unsigned short clower;
+};
+
#ifdef OPENOFFICEORG
# include <unicode/uchar.h>
#else
@@ -24,15 +31,18 @@
#include "nsServiceManagerUtils.h"
#include "nsIUnicodeEncoder.h"
#include "nsIUnicodeDecoder.h"
-#include "nsICaseConversion.h"
-#include "nsICharsetConverterManager.h"
-#include "nsUnicharUtilCIID.h"
#include "nsUnicharUtils.h"
+#include "nsICharsetConverterManager.h"
static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID);
-static NS_DEFINE_CID(kUnicharUtilCID, NS_UNICHARUTIL_CID);
#endif
+struct unicode_info2 {
+ char cletter;
+ unsigned short cupper;
+ unsigned short clower;
+};
+
static struct unicode_info2 * utf_tbl = NULL;
static int utf_tbl_count = 0; // utf_tbl can be used by multiple Hunspell instances
@@ -541,8 +551,9 @@ char * copy_field(char * dest, const char * morph, const char * var)
char * mystrrep(char * word, const char * pat, const char * rep) {
char * pos = strstr(word, pat);
if (pos) {
- int replen = strlen(rep);
- int patlen = strlen(pat);
+ int replen = strlen(rep);
+ int patlen = strlen(pat);
+ while (pos) {
if (replen < patlen) {
char * end = word + strlen(word);
char * next = pos + replen;
@@ -556,6 +567,8 @@ char * mystrrep(char * word, const char * pat, const char * rep) {
for (; prev >= end; *next = *prev, prev--, next--);
}
strncpy(pos, rep, replen);
+ pos = strstr(word, pat);
+ }
}
return word;
}
@@ -5116,35 +5129,340 @@ static struct cs_info iscii_devanagari_tbl[] = {
{ 0x00, 0xff, 0xff }
};
+static struct cs_info tis620_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xc0 },
+{ 0x00, 0xc1, 0xc1 },
+{ 0x00, 0xc2, 0xc2 },
+{ 0x00, 0xc3, 0xc3 },
+{ 0x00, 0xc4, 0xc4 },
+{ 0x00, 0xc5, 0xc5 },
+{ 0x00, 0xc6, 0xc6 },
+{ 0x00, 0xc7, 0xc7 },
+{ 0x00, 0xc8, 0xc8 },
+{ 0x00, 0xc9, 0xc9 },
+{ 0x00, 0xca, 0xca },
+{ 0x00, 0xcb, 0xcb },
+{ 0x00, 0xcc, 0xcc },
+{ 0x00, 0xcd, 0xcd },
+{ 0x00, 0xce, 0xce },
+{ 0x00, 0xcf, 0xcf },
+{ 0x00, 0xd0, 0xd0 },
+{ 0x00, 0xd1, 0xd1 },
+{ 0x00, 0xd2, 0xd2 },
+{ 0x00, 0xd3, 0xd3 },
+{ 0x00, 0xd4, 0xd4 },
+{ 0x00, 0xd5, 0xd5 },
+{ 0x00, 0xd6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x00, 0xd8, 0xd8 },
+{ 0x00, 0xd9, 0xd9 },
+{ 0x00, 0xda, 0xda },
+{ 0x00, 0xdb, 0xdb },
+{ 0x00, 0xdc, 0xdc },
+{ 0x00, 0xdd, 0xdd },
+{ 0x00, 0xde, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xe0 },
+{ 0x00, 0xe1, 0xe1 },
+{ 0x00, 0xe2, 0xe2 },
+{ 0x00, 0xe3, 0xe3 },
+{ 0x00, 0xe4, 0xe4 },
+{ 0x00, 0xe5, 0xe5 },
+{ 0x00, 0xe6, 0xe6 },
+{ 0x00, 0xe7, 0xe7 },
+{ 0x00, 0xe8, 0xe8 },
+{ 0x00, 0xe9, 0xe9 },
+{ 0x00, 0xea, 0xea },
+{ 0x00, 0xeb, 0xeb },
+{ 0x00, 0xec, 0xec },
+{ 0x00, 0xed, 0xed },
+{ 0x00, 0xee, 0xee },
+{ 0x00, 0xef, 0xef },
+{ 0x00, 0xf0, 0xf0 },
+{ 0x00, 0xf1, 0xf1 },
+{ 0x00, 0xf2, 0xf2 },
+{ 0x00, 0xf3, 0xf3 },
+{ 0x00, 0xf4, 0xf4 },
+{ 0x00, 0xf5, 0xf5 },
+{ 0x00, 0xf6, 0xf6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xf8 },
+{ 0x00, 0xf9, 0xf9 },
+{ 0x00, 0xfa, 0xfa },
+{ 0x00, 0xfb, 0xfb },
+{ 0x00, 0xfc, 0xfc },
+{ 0x00, 0xfd, 0xfd },
+{ 0x00, 0xfe, 0xfe },
+{ 0x00, 0xff, 0xff }
+};
+
+struct enc_entry {
+ const char * enc_name;
+ struct cs_info * cs_table;
+};
+
static struct enc_entry encds[] = {
-{"ISO8859-1",iso1_tbl},
-{"ISO8859-2",iso2_tbl},
-{"ISO8859-3",iso3_tbl},
-{"ISO8859-4",iso4_tbl},
-{"ISO8859-5",iso5_tbl},
-{"ISO8859-6",iso6_tbl},
-{"ISO8859-7",iso7_tbl},
-{"ISO8859-8",iso8_tbl},
-{"ISO8859-9",iso9_tbl},
-{"ISO8859-10",iso10_tbl},
-{"KOI8-R",koi8r_tbl},
-{"KOI8-U",koi8u_tbl},
-{"microsoft-cp1251",cp1251_tbl},
-{"ISO8859-13", iso13_tbl},
-{"ISO8859-14", iso14_tbl},
-{"ISO8859-15", iso15_tbl},
-{"ISCII-DEVANAGARI", iscii_devanagari_tbl}
+ {"iso88591",iso1_tbl}, //ISO-8859-1
+ {"iso88592",iso2_tbl}, //ISO-8859-2
+ {"iso88593",iso3_tbl}, //ISO-8859-3
+ {"iso88594",iso4_tbl}, //ISO-8859-4
+ {"iso88595",iso5_tbl}, //ISO-8859-5
+ {"iso88596",iso6_tbl}, //ISO-8859-6
+ {"iso88597",iso7_tbl}, //ISO-8859-7
+ {"iso88598",iso8_tbl}, //ISO-8859-8
+ {"iso88599",iso9_tbl}, //ISO-8859-9
+ {"iso885910",iso10_tbl}, //ISO-8859-10
+ {"tis620",tis620_tbl}, //TIS-620/ISO-8859-11
+ {"tis6202533",tis620_tbl}, //TIS-620/ISO-8859-11
+ {"iso885911",tis620_tbl}, //TIS-620/ISO-8859-11
+ {"iso885913", iso13_tbl}, //ISO-8859-13
+ {"iso885914", iso14_tbl}, //ISO-8859-14
+ {"iso885915", iso15_tbl}, //ISO-8859-15
+ {"koi8r",koi8r_tbl}, //KOI8-R
+ {"koi8u",koi8u_tbl}, //KOI8-U
+ {"cp1251",cp1251_tbl}, //CP-1251
+ {"microsoftcp1251",cp1251_tbl}, //microsoft-cp1251
+ {"xisciias", iscii_devanagari_tbl}, //x-iscii-as
+ {"isciidevanagari", iscii_devanagari_tbl} //ISCII-DEVANAGARI
};
+/* map to lower case and remove non alphanumeric chars */
+static void toAsciiLowerAndRemoveNonAlphanumeric( const char* pName, char* pBuf )
+{
+ while ( *pName )
+ {
+ /* A-Z */
+ if ( (*pName >= 0x41) && (*pName <= 0x5A) )
+ {
+ *pBuf = (*pName)+0x20; /* toAsciiLower */
+ pBuf++;
+ }
+ /* a-z, 0-9 */
+ else if ( ((*pName >= 0x61) && (*pName <= 0x7A)) ||
+ ((*pName >= 0x30) && (*pName <= 0x39)) )
+ {
+ *pBuf = *pName;
+ pBuf++;
+ }
+
+ pName++;
+ }
+
+ *pBuf = '\0';
+}
+
struct cs_info * get_current_cs(const char * es) {
- struct cs_info * ccs = encds[0].cs_table;
+ char *normalized_encoding = new char[strlen(es)+1];
+ toAsciiLowerAndRemoveNonAlphanumeric(es, normalized_encoding);
+
+ struct cs_info * ccs = NULL;
int n = sizeof(encds) / sizeof(encds[0]);
for (int i = 0; i < n; i++) {
- if (strcmp(es,encds[i].enc_name) == 0) {
+ if (strcmp(normalized_encoding,encds[i].enc_name) == 0) {
ccs = encds[i].cs_table;
break;
}
}
+
+ delete[] normalized_encoding;
+
+ if (!ccs) {
+ HUNSPELL_WARNING(stderr, "error: unknown encoding %s: using %s as fallback\n", es, encds[0].enc_name);
+ ccs = encds[0].cs_table;
+ }
+
return ccs;
}
#else
@@ -5156,7 +5474,6 @@ struct cs_info * get_current_cs(const char * es) {
nsCOMPtr<nsIUnicodeEncoder> encoder;
nsCOMPtr<nsIUnicodeDecoder> decoder;
- nsCOMPtr<nsICaseConversion> caseConv;
nsresult rv;
nsCOMPtr<nsICharsetConverterManager> ccm = do_GetService(kCharsetConverterManagerCID, &rv);
@@ -5172,7 +5489,6 @@ struct cs_info * get_current_cs(const char * es) {
return nsnull;
decoder->SetInputErrorBehavior(decoder->kOnError_Signal);
- caseConv = do_GetService(kUnicharUtilCID, &rv);
if (NS_FAILED(rv))
return nsnull;
@@ -5197,18 +5513,14 @@ struct cs_info * get_current_cs(const char * es) {
// NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT.
if (rv != NS_OK || charLength != 1 || uniLength != 1)
break;
- rv = caseConv->ToLower(uni, &uniCased);
- if (NS_FAILED(rv))
- break;
+ uniCased = ToLowerCase(uni);
rv = encoder->Convert(&uniCased, &uniLength, &lower, &charLength);
// Explicitly check NS_OK because we don't want to allow
// NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT.
if (rv != NS_OK || charLength != 1 || uniLength != 1)
break;
- rv = caseConv->ToUpper(uni, &uniCased);
- if (NS_FAILED(rv))
- break;
+ uniCased = ToUpperCase(uni);
rv = encoder->Convert(&uniCased, &uniLength, &upper, &charLength);
// Explicitly check NS_OK because we don't want to allow
// NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT.
@@ -5254,51 +5566,46 @@ char * get_casechars(const char * enc) {
return mystrdup(expw);
}
+// language to encoding default map
+struct lang_map {
+ const char * lang;
+ int num;
+};
static struct lang_map lang2enc[] = {
-{"ar", "UTF-8", LANG_ar},
-{"az", "UTF-8", LANG_az},
-{"bg", "microsoft-cp1251", LANG_bg},
-{"ca", "ISO8859-1", LANG_ca},
-{"cs", "ISO8859-2", LANG_cs},
-{"da", "ISO8859-1", LANG_da},
-{"de", "ISO8859-1", LANG_de},
-{"el", "ISO8859-7", LANG_el},
-{"en", "ISO8859-1", LANG_en},
-{"es", "ISO8859-1", LANG_es},
-{"eu", "ISO8859-1", LANG_eu},
-{"gl", "ISO8859-1", LANG_gl},
-{"fr", "ISO8859-15", LANG_fr},
-{"hr", "ISO8859-2", LANG_hr},
-{"hu", "ISO8859-2", LANG_hu},
-{"it", "ISO8859-1", LANG_it},
-{"la", "ISO8859-1", LANG_la},
-{"lv", "ISO8859-13", LANG_lv},
-{"nl", "ISO8859-1", LANG_nl},
-{"pl", "ISO8859-2", LANG_pl},
-{"pt", "ISO8859-1", LANG_pt},
-{"sv", "ISO8859-1", LANG_sv},
-{"tr", "UTF-8", LANG_tr},
-{"ru", "KOI8-R", LANG_ru},
-{"uk", "KOI8-U", LANG_uk}
+{"ar", LANG_ar},
+{"az", LANG_az},
+{"bg", LANG_bg},
+{"ca", LANG_ca},
+{"cs", LANG_cs},
+{"da", LANG_da},
+{"de", LANG_de},
+{"el", LANG_el},
+{"en", LANG_en},
+{"es", LANG_es},
+{"eu", LANG_eu},
+{"gl", LANG_gl},
+{"fr", LANG_fr},
+{"hr", LANG_hr},
+{"hu", LANG_hu},
+{"it", LANG_it},
+{"la", LANG_la},
+{"lv", LANG_lv},
+{"nl", LANG_nl},
+{"pl", LANG_pl},
+{"pt", LANG_pt},
+{"sv", LANG_sv},
+{"tr", LANG_tr},
+{"ru", LANG_ru},
+{"uk", LANG_uk}
};
-const char * get_default_enc(const char * lang) {
- int n = sizeof(lang2enc) / sizeof(lang2enc[0]);
- for (int i = 0; i < n; i++) {
- if (strcmp(lang,lang2enc[i].lang) == 0) {
- return lang2enc[i].def_enc;
- }
- }
- return NULL;
-}
-
int get_lang_num(const char * lang) {
int n = sizeof(lang2enc) / sizeof(lang2enc[0]);
for (int i = 0; i < n; i++) {
- if (strncmp(lang,lang2enc[i].lang,2) == 0) {
+ if (strcmp(lang, lang2enc[i].lang) == 0) {
return lang2enc[i].num;
}
}
@@ -5337,15 +5644,6 @@ void free_utf_tbl() {
}
}
-#ifdef MOZILLA_CLIENT
-static nsCOMPtr<nsICaseConversion>& getcaseConv()
-{
- nsresult rv;
- static nsCOMPtr<nsICaseConversion> caseConv = do_GetService(kUnicharUtilCID, &rv);
- return caseConv;
-}
-#endif
-
unsigned short unicodetoupper(unsigned short c, int langnum)
{
// In Azeri and Turkish, I and i dictinct letters:
@@ -5357,9 +5655,7 @@ unsigned short unicodetoupper(unsigned short c, int langnum)
return u_toupper(c);
#else
#ifdef MOZILLA_CLIENT
- PRUnichar ch2;
- getcaseConv()->ToUpper((PRUnichar) c, &ch2);
- return ch2;
+ return ToUpperCase((PRUnichar) c);
#else
return (utf_tbl) ? utf_tbl[c].cupper : c;
#endif
@@ -5377,9 +5673,7 @@ unsigned short unicodetolower(unsigned short c, int langnum)
return u_tolower(c);
#else
#ifdef MOZILLA_CLIENT
- PRUnichar ch2;
- getcaseConv()->ToLower((PRUnichar) c, &ch2);
- return ch2;
+ return ToLowerCase((PRUnichar) c);
#else
return (utf_tbl) ? utf_tbl[c].clower : c;
#endif
diff --git a/src/hunspell/csutil.hxx b/src/hunspell/csutil.hxx
index 350bd93..7bd0b91 100644
--- a/src/hunspell/csutil.hxx
+++ b/src/hunspell/csutil.hxx
@@ -116,42 +116,14 @@ struct cs_info {
unsigned char cupper;
};
-// Unicode character encoding information
-struct unicode_info {
- unsigned short c;
- unsigned short cupper;
- unsigned short clower;
-};
-
-struct unicode_info2 {
- char cletter;
- unsigned short cupper;
- unsigned short clower;
-};
-
LIBHUNSPELL_DLL_EXPORTED int initialize_utf_tbl();
LIBHUNSPELL_DLL_EXPORTED void free_utf_tbl();
LIBHUNSPELL_DLL_EXPORTED unsigned short unicodetoupper(unsigned short c, int langnum);
LIBHUNSPELL_DLL_EXPORTED unsigned short unicodetolower(unsigned short c, int langnum);
LIBHUNSPELL_DLL_EXPORTED int unicodeisalpha(unsigned short c);
-struct enc_entry {
- const char * enc_name;
- struct cs_info * cs_table;
-};
-
-// language to encoding default map
-
-struct lang_map {
- const char * lang;
- const char * def_enc;
- int num;
-};
-
LIBHUNSPELL_DLL_EXPORTED struct cs_info * get_current_cs(const char * es);
-LIBHUNSPELL_DLL_EXPORTED const char * get_default_enc(const char * lang);
-
// get language identifiers of language codes
LIBHUNSPELL_DLL_EXPORTED int get_lang_num(const char * lang);
@@ -219,9 +191,9 @@ LIBHUNSPELL_DLL_EXPORTED inline char* HENTRY_DATA(struct hentry *h)
if (!h->var)
ret = NULL;
else if (h->var & H_OPT_ALIASM)
- ret = get_stored_pointer(&(h->word[0]) + h->blen + 1);
+ ret = get_stored_pointer(HENTRY_WORD(h) + h->blen + 1);
else
- ret = &(h->word[0]) + h->blen + 1;
+ ret = HENTRY_WORD(h) + h->blen + 1;
return ret;
}
@@ -232,9 +204,9 @@ LIBHUNSPELL_DLL_EXPORTED inline const char* HENTRY_DATA2(const struct hentry *h)
if (!h->var)
ret = "";
else if (h->var & H_OPT_ALIASM)
- ret = get_stored_pointer(&(h->word[0]) + h->blen + 1);
+ ret = get_stored_pointer(HENTRY_WORD(h) + h->blen + 1);
else
- ret = &(h->word[0]) + h->blen + 1;
+ ret = HENTRY_WORD(h) + h->blen + 1;
return ret;
}
diff --git a/src/hunspell/hashmgr.cxx b/src/hunspell/hashmgr.cxx
index d276faf..ea93b87 100644
--- a/src/hunspell/hashmgr.cxx
+++ b/src/hunspell/hashmgr.cxx
@@ -448,6 +448,7 @@ int HashMgr::load_tables(const char * tpath, const char * key)
al = decode_flags(&flags, ap + 1, dict);
if (al == -1) {
HUNSPELL_WARNING(stderr, "Can't allocate memory.\n");
+ delete dict;
return 6;
}
flag_qsort(flags, 0, al);
@@ -491,7 +492,6 @@ int HashMgr::hash(const char * word) const
int HashMgr::decode_flags(unsigned short ** result, char * flags, FileMgr * af) {
int len;
if (*flags == '\0') {
- HUNSPELL_WARNING(stderr, "error: line %d: bad flagvector\n", af->getlinenum());
*result = NULL;
return 0;
}
diff --git a/src/hunspell/htypes.hxx b/src/hunspell/htypes.hxx
index f89c2c5..5b6c909 100644
--- a/src/hunspell/htypes.hxx
+++ b/src/hunspell/htypes.hxx
@@ -12,7 +12,7 @@
#define H_OPT_PHON (1 << 2)
// see also csutil.hxx
-#define HENTRY_WORD(h) (h->word)
+#define HENTRY_WORD(h) &(h->word[0])
// approx. number of user defined words
#define USERWORD 1000
diff --git a/src/hunspell/hunspell.cxx b/src/hunspell/hunspell.cxx
index 3750ced..07c2d9a 100644
--- a/src/hunspell/hunspell.cxx
+++ b/src/hunspell/hunspell.cxx
@@ -33,9 +33,10 @@ Hunspell::Hunspell(const char * affpath, const char * dpath, const char * key)
/* encoding from the Affix Manager for that dictionary */
char * try_string = pAMgr->get_try_string();
encoding = pAMgr->get_encoding();
- csconv = get_current_cs(encoding);
langnum = pAMgr->get_langnum();
utf8 = pAMgr->get_utf8();
+ if (!utf8)
+ csconv = get_current_cs(encoding);
complexprefixes = pAMgr->get_complexprefixes();
wordbreak = pAMgr->get_breaktable();
@@ -569,6 +570,11 @@ struct hentry * Hunspell::checkword(const char * w, int * info, char ** root)
word = w2;
} else word = w;
+ len = strlen(word);
+
+ if (!len)
+ return NULL;
+
// word reversing wrapper for complex prefixes
if (complexprefixes) {
if (word != w2) {
@@ -606,7 +612,6 @@ struct hentry * Hunspell::checkword(const char * w, int * info, char ** root)
// check with affixes
if (!he && pAMgr) {
// try stripping off affixes */
- len = strlen(word);
he = pAMgr->affix_check(word, len, 0);
// check compound restriction and onlyupcase
@@ -959,10 +964,12 @@ int Hunspell::suggest(char*** slst, const char * word)
if (strcmp((*slst)[k], (*slst)[j]) == 0) {
free((*slst)[j]);
l--;
+ break;
}
}
l++;
}
+ ns = l;
// output conversion
rl = (pAMgr) ? pAMgr->get_oconvtable() : NULL;
@@ -1475,7 +1482,12 @@ int Hunspell::analyze(char*** slst, const char * word)
if (dash[1] == '\0') { // base word ending with dash
if (spell(cw)) {
char * p = pSMgr->suggest_morph(cw);
- if (p) return line_tok(pSMgr->suggest_morph(cw), slst, MSEP_REC);
+ if (p) {
+ int ret = line_tok(p, slst, MSEP_REC);
+ free(p);
+ return ret;
+ }
+
}
} else if ((dash[1] == 'e') && (dash[2] == '\0')) { // XXX (HU) -e hat.
if (spell(cw) && (spell("-e"))) {
@@ -1658,7 +1670,7 @@ int Hunspell::get_xml_list(char ***slst, char * list, const char * tag) {
for (p = list, n = 0; (p = strstr(p, tag)); p++, n++) {
int l = strlen(p);
(*slst)[n] = (char *) malloc(l + 1);
- if (!(*slst)[n]) return (n > 0 ? n - 1 : 0);
+ if (!(*slst)[n]) return n;
if (!get_xml_par((*slst)[n], p + strlen(tag) - 1, l)) {
free((*slst)[n]);
break;
@@ -1710,12 +1722,14 @@ int Hunspell::spellml(char*** slst, const char * word)
return generate(slst, cw, cw2);
}
} else {
- char ** slst2;
- if ((q2 = strstr(q2 + 1, "<code")) &&
- (n = get_xml_list(&slst2, strchr(q2, '>'), "<a>"))) {
- int n2 = generate(slst, cw, slst2, n);
- freelist(&slst2, n);
- return uniqlist(*slst, n2);
+ if ((q2 = strstr(q2 + 1, "<code"))) {
+ char ** slst2;
+ if ((n = get_xml_list(&slst2, strchr(q2, '>'), "<a>"))) {
+ int n2 = generate(slst, cw, slst2, n);
+ freelist(&slst2, n);
+ return uniqlist(*slst, n2);
+ }
+ freelist(&slst2, n);
}
}
}
diff --git a/src/hunspell/replist.cxx b/src/hunspell/replist.cxx
index 3ffc9e9..d9aa563 100644
--- a/src/hunspell/replist.cxx
+++ b/src/hunspell/replist.cxx
@@ -58,6 +58,8 @@ int RepList::add(char * pat1, char * pat2) {
if (r == NULL) return 1;
r->pattern = mystrrep(pat1, "_", " ");
r->pattern2 = mystrrep(pat2, "_", " ");
+ r->start = false;
+ r->end = false;
dat[pos++] = r;
for (int i = pos - 1; i > 0; i--) {
r = dat[i];
diff --git a/src/hunspell/suggestmgr.cxx b/src/hunspell/suggestmgr.cxx
index 82053c4..8e08c98 100644
--- a/src/hunspell/suggestmgr.cxx
+++ b/src/hunspell/suggestmgr.cxx
@@ -39,14 +39,18 @@ SuggestMgr::SuggestMgr(const char * tryme, int maxn,
maxngramsugs = MAXNGRAMSUGS;
if (pAMgr) {
- char * enc = pAMgr->get_encoding();
- csconv = get_current_cs(enc);
- free(enc);
langnum = pAMgr->get_langnum();
ckey = pAMgr->get_key_string();
nosplitsugs = pAMgr->get_nosplitsugs();
- if (pAMgr->get_maxngramsugs() >= 0) maxngramsugs = pAMgr->get_maxngramsugs();
+ if (pAMgr->get_maxngramsugs() >= 0)
+ maxngramsugs = pAMgr->get_maxngramsugs();
utf8 = pAMgr->get_utf8();
+ if (!utf8)
+ {
+ char * enc = pAMgr->get_encoding();
+ csconv = get_current_cs(enc);
+ free(enc);
+ }
complexprefixes = pAMgr->get_complexprefixes();
}
@@ -124,7 +128,7 @@ int SuggestMgr::suggest(char*** slst, const char * w, int nsug,
char ** wlst;
w_char word_utf[MAXSWL];
int wl = 0;
-
+ int nsugorig = nsug;
char w2[MAXWORDUTF8LEN];
const char * word = w;
@@ -185,7 +189,7 @@ int SuggestMgr::suggest(char*** slst, const char * w, int nsug,
}
// only suggest compound words when no other suggestion
- if ((cpdsuggest == 0) && (nsug > 0)) nocompoundtwowords=1;
+ if ((cpdsuggest == 0) && (nsug > nsugorig)) nocompoundtwowords=1;
// did we add a char that should not be there
if ((nsug < maxSug) && (nsug > -1)) {
@@ -395,7 +399,8 @@ int SuggestMgr::replchars(char** wlst, const char * word, int ns, int cpdsuggest
lenr = strlen(reptable[i].pattern2);
lenp = strlen(reptable[i].pattern);
// search every occurence of the pattern in the word
- while ((r=strstr(r, reptable[i].pattern)) != NULL) {
+ while ((r=strstr(r, reptable[i].pattern)) != NULL && (!reptable[i].end || strlen(r) == strlen(reptable[i].pattern)) &&
+ (!reptable[i].start || r == word)) {
strcpy(candidate, word);
if (r-word + lenr + strlen(r+lenp) >= MAXSWUTF8L) break;
strcpy(candidate+(r-word),reptable[i].pattern2);
@@ -405,19 +410,24 @@ int SuggestMgr::replchars(char** wlst, const char * word, int ns, int cpdsuggest
// check REP suggestions with space
char * sp = strchr(candidate, ' ');
if (sp) {
- *sp = '\0';
- if (checkword(candidate, strlen(candidate), 0, NULL, NULL)) {
- int oldns = ns;
- *sp = ' ';
- ns = testsug(wlst, sp + 1, strlen(sp + 1), ns, cpdsuggest, NULL, NULL);
- if (ns == -1) return -1;
- if (oldns < ns) {
- free(wlst[ns - 1]);
- wlst[ns - 1] = mystrdup(candidate);
- if (!wlst[ns - 1]) return -1;
+ char * prev = candidate;
+ while (sp) {
+ *sp = '\0';
+ if (checkword(prev, strlen(prev), 0, NULL, NULL)) {
+ int oldns = ns;
+ *sp = ' ';
+ ns = testsug(wlst, sp + 1, strlen(sp + 1), ns, cpdsuggest, NULL, NULL);
+ if (ns == -1) return -1;
+ if (oldns < ns) {
+ free(wlst[ns - 1]);
+ wlst[ns - 1] = mystrdup(candidate);
+ if (!wlst[ns - 1]) return -1;
+ }
}
- }
- *sp = ' ';
+ *sp = ' ';
+ prev = sp + 1;
+ sp = strchr(prev, ' ');
+ }
}
r++; // search for the next letter
}
@@ -1718,6 +1728,7 @@ int SuggestMgr::leftcommonsubstring(char * s1, const char * s2) {
if (utf8) {
w_char su1[MAXSWL];
w_char su2[MAXSWL];
+ su1[0].l = su2[0].l = su1[0].h = su2[0].h = 0;
// decapitalize dictionary word
if (complexprefixes) {
int l1 = u8_u16(su1, MAXSWL, s1);
diff --git a/src/hunspell/w_char.hxx b/src/hunspell/w_char.hxx
index 99cfe63..3719dd3 100644
--- a/src/hunspell/w_char.hxx
+++ b/src/hunspell/w_char.hxx
@@ -14,6 +14,8 @@ typedef struct __attribute__ ((packed)) {
struct replentry {
char * pattern;
char * pattern2;
+ bool start;
+ bool end;
};
#endif
diff --git a/src/parsers/htmlparser.cxx b/src/parsers/htmlparser.cxx
index 925c05f..341be4e 100644
--- a/src/parsers/htmlparser.cxx
+++ b/src/parsers/htmlparser.cxx
@@ -141,7 +141,7 @@ char * HTMLParser::next_token()
}
break;
case ST_CHAR_ENTITY: // SGML element
- if ((tolower(line[actual][head]) < 'a') || (tolower(line[actual][head]) > 'z')) {
+ if ((tolower(line[actual][head]) == ';')) {
state = prevstate;
head--;
}
diff --git a/src/tools/hunspell.cxx b/src/tools/hunspell.cxx
index 827f75b..cf411a8 100644
--- a/src/tools/hunspell.cxx
+++ b/src/tools/hunspell.cxx
@@ -63,11 +63,13 @@
#define LIBDIR \
"/usr/share/hunspell:" \
"/usr/share/myspell:" \
- "/usr/share/myspell/dicts"
+ "/usr/share/myspell/dicts:" \
+ "/Library/Spelling"
#define USEROOODIR \
".openoffice.org/3/user/wordbook:" \
".openoffice.org2/user/wordbook:" \
- ".openoffice.org2.0/user/wordbook"
+ ".openoffice.org2.0/user/wordbook:" \
+ "Library/Spelling"
#define OOODIR \
"/opt/openoffice.org/basis3.0/share/dict/ooo:" \
"/usr/lib/openoffice.org/basis3.0/share/dict/ooo:" \
@@ -178,16 +180,26 @@ int dmax = 0; // dictionary count
// functions
+#ifdef HAVE_ICONV
+static const char* fix_encoding_name(const char *enc)
+{
+ if (strcmp(enc, "TIS620-2533") == 0)
+ enc = "TIS620";
+ return enc;
+}
+#endif
+
/* change character encoding */
char * chenc(char * st, const char * enc1, const char * enc2) {
char * out = st;
#ifdef HAVE_ICONV
if (enc1 && enc2 && strcmp(enc1, enc2) != 0) {
+
size_t c1 = strlen(st) + 1;
size_t c2 = MAXLNLEN;
char * source = st;
char * dest = text_conv;
- iconv_t conv = iconv_open(enc2, enc1);
+ iconv_t conv = iconv_open(fix_encoding_name(enc2), fix_encoding_name(enc1));
if (conv == (iconv_t) -1) {
fprintf(stderr, gettext("error - iconv_open: %s -> %s\n"), enc2, enc1);
} else {
@@ -230,7 +242,7 @@ TextParser * get_parser(int format, char * extension, Hunspell * pMS) {
size_t c1 = wlen;
size_t c2 = MAXLNLEN;
char * dest = text_conv;
- iconv_t conv = iconv_open("UTF-8", denc);
+ iconv_t conv = iconv_open("UTF-8", fix_encoding_name(denc));
if (conv == (iconv_t) -1) {
fprintf(stderr, gettext("error - iconv_open: UTF-8 -> %s\n"), denc);
wordchars_utf16 = NULL;
@@ -253,7 +265,7 @@ TextParser * get_parser(int format, char * extension, Hunspell * pMS) {
char ch[2];
char u8[10];
*pletters = '\0';
- iconv_t conv = iconv_open("UTF-8", io_enc);
+ iconv_t conv = iconv_open("UTF-8", fix_encoding_name(io_enc));
if (conv == (iconv_t) -1) {
fprintf(stderr, gettext("error - iconv_open: UTF-8 -> %s\n"), io_enc);
} else {
@@ -295,7 +307,7 @@ TextParser * get_parser(int format, char * extension, Hunspell * pMS) {
char * dest = letters + strlen(letters); // append wordchars
size_t c1 = len + 1;
size_t c2 = len + 1;
- iconv_t conv = iconv_open(io_enc, denc);
+ iconv_t conv = iconv_open(fix_encoding_name(io_enc), fix_encoding_name(denc));
if (conv == (iconv_t) -1) {
fprintf(stderr, gettext("error - iconv_open: %s -> %s\n"), io_enc, denc);
} else {
@@ -686,14 +698,13 @@ if (pos >= 0) {
case PIPE: {
int info;
- char * root = NULL;
+ char * root = NULL;
if (check(pMS, &d, token, &info, &root)) {
if (!terse_mode) {
if (verbose_mode) fprintf(stdout,"* %s\n", token);
else fprintf(stdout,"*\n");
}
fflush(stdout);
- if (root) free(root);
} else {
char ** wlst = NULL;
int ns = pMS[d]->suggest(&wlst, token);
@@ -712,6 +723,7 @@ if (pos >= 0) {
fprintf(stdout, "\n");
fflush(stdout);
}
+ if (root) free(root);
free(token);
continue;
}
diff --git a/src/win_api/Hunspell.rc b/src/win_api/Hunspell.rc
index 8c20a68..7e61185 100644
--- a/src/win_api/Hunspell.rc
+++ b/src/win_api/Hunspell.rc
@@ -2,8 +2,8 @@
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 1,2,12,0
-PRODUCTVERSION 1,2,12,0
+FILEVERSION 1,2,14,0
+PRODUCTVERSION 1,2,14,0
FILEFLAGSMASK 0x17L
FILEFLAGS 0
FILEOS VOS_NT_WINDOWS32
@@ -21,12 +21,12 @@ BEGIN
VALUE "Comments", "Hunspell (http://hunspell.sourceforge.net/) by L�szl� N�meth"
VALUE "CompanyName", "http://hunspell.sourceforge.net/"
VALUE "FileDescription", "libhunspell"
- VALUE "FileVersion", "1.2.12"
+ VALUE "FileVersion", "1.2.14"
VALUE "InternalName", "libhunspell"
VALUE "LegalCopyright", "Copyright (c) 2007-2010"
VALUE "OriginalFilename", "libhunspell.dll"
VALUE "ProductName", "Hunspell Dynamic Link Library"
- VALUE "ProductVersion", "1.2.12"
+ VALUE "ProductVersion", "1.2.14"
END
END
END
diff --git a/src/win_api/Makefile.cygwin b/src/win_api/Makefile.cygwin
index 8d0d23c..010ee65 100644
--- a/src/win_api/Makefile.cygwin
+++ b/src/win_api/Makefile.cygwin
@@ -9,7 +9,11 @@
#
# 2. open a Cygwin shell, cd into this directory and run make
#
-
+#
+# NOTE: newer MINGW libraries may have a compilation error, where the solution
+# is removing the "using ::swprintf" and "using ::vswprintf" lines from
+# /usr/lib/gcc/i686-pc-mingw32/3.4.x/include/c++/cwchar
+#
#CC=gcc
#CXX=g++
@@ -41,7 +45,8 @@ csutil.o \
phonet.o \
hunspell.o \
filemgr.o \
-hunzip.o
+hunzip.o \
+replist.o
OBJS2 = \
textparser.o \
@@ -83,6 +88,7 @@ distclean: clean
hunspell.hxx:
ln -s $(OBJ)/*xx $(OBJ)/hunspell.h $(OBJ)/license* $(OBJ2)/*xx ./
+ ln -s $(OBJ)/hunvisapi.h ./
ln -s $(OBJ3)/hunspell.cxx ./hunspellprg.cxx
ln -s $(OBJ3)/hunzip.cxx ./hunzipprg.cxx
ln -s $(OBJ3)/example.cxx $(OBJ3)/hzip.c ./
diff --git a/src/win_api/config.h b/src/win_api/config.h
index 87d20f2..4e2bf51 100644
--- a/src/win_api/config.h
+++ b/src/win_api/config.h
@@ -204,5 +204,5 @@
#define PACKAGE_TARNAME
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.2.12"
-#define VERSION "1.2.12"
+#define PACKAGE_VERSION "1.2.14"
+#define VERSION "1.2.14"
diff --git a/tests/2970240.aff b/tests/2970240.aff
new file mode 100644
index 0000000..6ef9516
--- /dev/null
+++ b/tests/2970240.aff
@@ -0,0 +1,5 @@
+# test words with three parts
+CHECKCOMPOUNDPATTERN 1
+CHECKCOMPOUNDPATTERN le fi
+COMPOUNDFLAG c
+
diff --git a/tests/2970240.dic b/tests/2970240.dic
new file mode 100644
index 0000000..f0b6305
--- /dev/null
+++ b/tests/2970240.dic
@@ -0,0 +1,4 @@
+3
+first/c
+middle/c
+last/c
diff --git a/tests/2970240.good b/tests/2970240.good
new file mode 100644
index 0000000..a8d3a59
--- /dev/null
+++ b/tests/2970240.good
@@ -0,0 +1 @@
+firstmiddlelast
diff --git a/tests/rep.test b/tests/2970240.test
similarity index 100%
copy from tests/rep.test
copy to tests/2970240.test
diff --git a/tests/2970240.wrong b/tests/2970240.wrong
new file mode 100644
index 0000000..32cead6
--- /dev/null
+++ b/tests/2970240.wrong
@@ -0,0 +1 @@
+lastmiddlefirst
diff --git a/tests/2970242.aff b/tests/2970242.aff
new file mode 100644
index 0000000..909f0fb
--- /dev/null
+++ b/tests/2970242.aff
@@ -0,0 +1,4 @@
+CHECKCOMPOUNDPATTERN 1
+CHECKCOMPOUNDPATTERN /a /b
+COMPOUNDFLAG c
+
diff --git a/tests/2970242.dic b/tests/2970242.dic
new file mode 100644
index 0000000..da0d05f
--- /dev/null
+++ b/tests/2970242.dic
@@ -0,0 +1,4 @@
+3
+foo/ac
+bar/c
+baz/bc
diff --git a/tests/2970242.good b/tests/2970242.good
new file mode 100644
index 0000000..90ecb18
--- /dev/null
+++ b/tests/2970242.good
@@ -0,0 +1,5 @@
+foobar
+barfoo
+bazfoo
+barbaz
+bazbar
diff --git a/tests/rep.test b/tests/2970242.test
similarity index 100%
copy from tests/rep.test
copy to tests/2970242.test
diff --git a/tests/2970242.wrong b/tests/2970242.wrong
new file mode 100644
index 0000000..9dabfec
--- /dev/null
+++ b/tests/2970242.wrong
@@ -0,0 +1 @@
+foobaz
diff --git a/tests/2999225.aff b/tests/2999225.aff
new file mode 100644
index 0000000..ea9d0b0
--- /dev/null
+++ b/tests/2999225.aff
@@ -0,0 +1,6 @@
+COMPOUNDRULE 1
+COMPOUNDRULE ab
+
+COMPOUNDBEGIN A
+COMPOUNDEND B
+
diff --git a/tests/2999225.dic b/tests/2999225.dic
new file mode 100644
index 0000000..2498603
--- /dev/null
+++ b/tests/2999225.dic
@@ -0,0 +1,4 @@
+3
+foo/aA
+bar/b
+baz/B
diff --git a/tests/2999225.good b/tests/2999225.good
new file mode 100644
index 0000000..865e154
--- /dev/null
+++ b/tests/2999225.good
@@ -0,0 +1,2 @@
+foobar
+foobaz
diff --git a/tests/rep.test b/tests/2999225.test
similarity index 100%
copy from tests/rep.test
copy to tests/2999225.test
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b4293cc..ef16307 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -101,7 +101,18 @@ morph.test \
fullstrip.test \
iconv.test \
oconv.test \
-korean.test
+encoding.test \
+korean.test \
+opentaal_forbiddenword1.test \
+opentaal_forbiddenword2.test \
+opentaal_keepcase.test \
+arabic.test \
+2970240.test \
+2970242.test \
+breakoff.test \
+opentaal_cpdpat.test \
+opentaal_cpdpat2.test \
+2999225.test
# infixes.test
distclean-local:
@@ -589,11 +600,73 @@ oconv.good \
oconv.sug \
oconv.test \
oconv.wrong \
+encoding.aff \
+encoding.dic \
+encoding.good \
+encoding.test \
+opentaal_forbiddenword1.aff \
+opentaal_forbiddenword1.dic \
+opentaal_forbiddenword1.good \
+opentaal_forbiddenword1.sug \
+opentaal_forbiddenword1.test \
+opentaal_forbiddenword1.wrong \
+opentaal_forbiddenword2.aff \
+opentaal_forbiddenword2.dic \
+opentaal_forbiddenword2.good \
+opentaal_forbiddenword2.sug \
+opentaal_forbiddenword2.test \
+opentaal_forbiddenword2.wrong \
+opentaal_forbiddenword2.aff \
+opentaal_forbiddenword2.dic \
+opentaal_forbiddenword2.good \
+opentaal_forbiddenword2.sug \
+opentaal_forbiddenword2.test \
+opentaal_forbiddenword2.wrong \
+opentaal_keepcase.aff \
+opentaal_keepcase.dic \
+opentaal_keepcase.good \
+opentaal_keepcase.sug \
+opentaal_keepcase.test \
+opentaal_keepcase.wrong \
+arabic.aff \
+arabic.dic \
+arabic.wrong \
+arabic.test \
+2970240.aff \
+2970240.dic \
+2970240.good \
+2970240.wrong \
+2970240.test \
+2970242.aff \
+2970242.dic \
+2970242.good \
+2970242.wrong \
+2970242.test \
+breakoff.aff \
+breakoff.dic \
+breakoff.good \
+breakoff.wrong \
+breakoff.test \
+opentaal_cpdpat.aff \
+opentaal_cpdpat.dic \
+opentaal_cpdpat.good \
+opentaal_cpdpat.wrong \
+opentaal_cpdpat.test \
+opentaal_cpdpat2.aff \
+opentaal_cpdpat2.dic \
+opentaal_cpdpat2.good \
+opentaal_cpdpat2.wrong \
+opentaal_cpdpat2.test \
+2999225.aff \
+2999225.dic \
+2999225.good \
+2999225.test \
korean.aff \
korean.dic \
korean.good \
korean.wrong \
korean.test
+
# infixes.aff
# infixes.dic
# infixes.good
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 04028b0..889355a 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -379,7 +379,18 @@ morph.test \
fullstrip.test \
iconv.test \
oconv.test \
-korean.test
+encoding.test \
+korean.test \
+opentaal_forbiddenword1.test \
+opentaal_forbiddenword2.test \
+opentaal_keepcase.test \
+arabic.test \
+2970240.test \
+2970242.test \
+breakoff.test \
+opentaal_cpdpat.test \
+opentaal_cpdpat2.test \
+2999225.test
EXTRA_DIST = \
test.sh \
@@ -863,6 +874,67 @@ oconv.good \
oconv.sug \
oconv.test \
oconv.wrong \
+encoding.aff \
+encoding.dic \
+encoding.good \
+encoding.test \
+opentaal_forbiddenword1.aff \
+opentaal_forbiddenword1.dic \
+opentaal_forbiddenword1.good \
+opentaal_forbiddenword1.sug \
+opentaal_forbiddenword1.test \
+opentaal_forbiddenword1.wrong \
+opentaal_forbiddenword2.aff \
+opentaal_forbiddenword2.dic \
+opentaal_forbiddenword2.good \
+opentaal_forbiddenword2.sug \
+opentaal_forbiddenword2.test \
+opentaal_forbiddenword2.wrong \
+opentaal_forbiddenword2.aff \
+opentaal_forbiddenword2.dic \
+opentaal_forbiddenword2.good \
+opentaal_forbiddenword2.sug \
+opentaal_forbiddenword2.test \
+opentaal_forbiddenword2.wrong \
+opentaal_keepcase.aff \
+opentaal_keepcase.dic \
+opentaal_keepcase.good \
+opentaal_keepcase.sug \
+opentaal_keepcase.test \
+opentaal_keepcase.wrong \
+arabic.aff \
+arabic.dic \
+arabic.wrong \
+arabic.test \
+2970240.aff \
+2970240.dic \
+2970240.good \
+2970240.wrong \
+2970240.test \
+2970242.aff \
+2970242.dic \
+2970242.good \
+2970242.wrong \
+2970242.test \
+breakoff.aff \
+breakoff.dic \
+breakoff.good \
+breakoff.wrong \
+breakoff.test \
+opentaal_cpdpat.aff \
+opentaal_cpdpat.dic \
+opentaal_cpdpat.good \
+opentaal_cpdpat.wrong \
+opentaal_cpdpat.test \
+opentaal_cpdpat2.aff \
+opentaal_cpdpat2.dic \
+opentaal_cpdpat2.good \
+opentaal_cpdpat2.wrong \
+opentaal_cpdpat2.test \
+2999225.aff \
+2999225.dic \
+2999225.good \
+2999225.test \
korean.aff \
korean.dic \
korean.good \
@@ -1313,6 +1385,7 @@ uninstall-am:
distclean-local:
-rm -rf testSubDir
+
# infixes.aff
# infixes.dic
# infixes.good
diff --git a/tests/arabic.aff b/tests/arabic.aff
new file mode 100644
index 0000000..f8dd5cf
--- /dev/null
+++ b/tests/arabic.aff
@@ -0,0 +1,6 @@
+SET UTF-8
+TRY أ
+IGNORE ٌٍَُِّْ
+
+PFX Aa Y 1
+PFX Aa 0 0/X0 أ[^ي]
diff --git a/tests/arabic.dic b/tests/arabic.dic
new file mode 100644
index 0000000..9a2035d
--- /dev/null
+++ b/tests/arabic.dic
@@ -0,0 +1,2 @@
+1
+ب
diff --git a/tests/rep.test b/tests/arabic.test
similarity index 66%
copy from tests/rep.test
copy to tests/arabic.test
index 7f44369..4d59c42 100755
--- a/tests/rep.test
+++ b/tests/arabic.test
@@ -1,4 +1,4 @@
#!/bin/sh
DIR="`dirname $0`"
NAME="`basename $0 .test`"
-$DIR/test.sh $NAME
+$DIR/test.sh $NAME -i UTF-8
diff --git a/tests/arabic.wrong b/tests/arabic.wrong
new file mode 100644
index 0000000..9b566c3
--- /dev/null
+++ b/tests/arabic.wrong
@@ -0,0 +1 @@
+ـ
diff --git a/tests/breakoff.aff b/tests/breakoff.aff
new file mode 100644
index 0000000..2e83d38
--- /dev/null
+++ b/tests/breakoff.aff
@@ -0,0 +1,7 @@
+# switch off default word break at hyphens and n-dashes by BREAK 0
+SET UTF-8
+MAXNGRAMSUGS 0
+WORDCHARS -
+TRY ot
+
+BREAK 0
diff --git a/tests/breakoff.dic b/tests/breakoff.dic
new file mode 100644
index 0000000..bf29960
--- /dev/null
+++ b/tests/breakoff.dic
@@ -0,0 +1,6 @@
+3
+foo
+bar
+free
+scott
+scot-free
diff --git a/tests/breakoff.good b/tests/breakoff.good
new file mode 100644
index 0000000..854b39e
--- /dev/null
+++ b/tests/breakoff.good
@@ -0,0 +1,3 @@
+foo
+bar
+scot-free
diff --git a/tests/rep.test b/tests/breakoff.test
similarity index 66%
copy from tests/rep.test
copy to tests/breakoff.test
index 7f44369..cde7c54 100755
--- a/tests/rep.test
+++ b/tests/breakoff.test
@@ -1,4 +1,4 @@
#!/bin/sh
DIR="`dirname $0`"
NAME="`basename $0 .test`"
-$DIR/test.sh $NAME
+$DIR/test.sh $NAME -i utf-8
diff --git a/tests/breakoff.wrong b/tests/breakoff.wrong
new file mode 100644
index 0000000..a6fcf7f
--- /dev/null
+++ b/tests/breakoff.wrong
@@ -0,0 +1,5 @@
+foo-
+-foo
+foo-bar
+foo-bar-foo-bar
+scot
diff --git a/tests/checkcompoundrep.dic b/tests/checkcompoundrep.dic
index 5b5d227..030bda9 100644
--- a/tests/checkcompoundrep.dic
+++ b/tests/checkcompoundrep.dic
@@ -2,3 +2,4 @@
szer/A
v�z/A
szerviz
+kocsi/A
diff --git a/tests/checkcompoundrep.good b/tests/checkcompoundrep.good
index e7ef1f8..c95c03c 100644
--- a/tests/checkcompoundrep.good
+++ b/tests/checkcompoundrep.good
@@ -1 +1,2 @@
v�zszer
+szerkocsi
\ No newline at end of file
diff --git a/tests/checkcompoundrep.wrong b/tests/checkcompoundrep.wrong
index 843f4b8..8c8701d 100644
--- a/tests/checkcompoundrep.wrong
+++ b/tests/checkcompoundrep.wrong
@@ -1 +1,3 @@
szerv�z
+szerv�zkocsi
+kocsiszerv�z
diff --git a/tests/checksharps.sug b/tests/checksharps.sug
index 9e6b249..52c6a94 100644
--- a/tests/checksharps.sug
+++ b/tests/checksharps.sug
@@ -1 +1 @@
-M�SSIG
+M�SSIG, m��ig
diff --git a/tests/checksharpsutf.sug b/tests/checksharpsutf.sug
index a94e612..ab68568 100644
--- a/tests/checksharpsutf.sug
+++ b/tests/checksharpsutf.sug
@@ -1 +1 @@
-MÜSSIG
+MÜSSIG, müßig
diff --git a/tests/encoding.aff b/tests/encoding.aff
new file mode 100644
index 0000000..1f560d2
--- /dev/null
+++ b/tests/encoding.aff
@@ -0,0 +1 @@
+SET ISO-8859-15
diff --git a/tests/encoding.dic b/tests/encoding.dic
new file mode 100644
index 0000000..414f9b8
--- /dev/null
+++ b/tests/encoding.dic
@@ -0,0 +1,3 @@
+2
+c�ur
+�uvre
diff --git a/tests/encoding.good b/tests/encoding.good
new file mode 100644
index 0000000..fc41c90
--- /dev/null
+++ b/tests/encoding.good
@@ -0,0 +1,4 @@
+c�ur
+�uvre
+C�UR
+�UVRE
diff --git a/tests/rep.test b/tests/encoding.test
similarity index 62%
copy from tests/rep.test
copy to tests/encoding.test
index 7f44369..0961957 100755
--- a/tests/rep.test
+++ b/tests/encoding.test
@@ -1,4 +1,4 @@
#!/bin/sh
DIR="`dirname $0`"
NAME="`basename $0 .test`"
-$DIR/test.sh $NAME
+$DIR/test.sh $NAME -i ISO8859-15
diff --git a/tests/opentaal_cpdpat.aff b/tests/opentaal_cpdpat.aff
new file mode 100644
index 0000000..413aca4
--- /dev/null
+++ b/tests/opentaal_cpdpat.aff
@@ -0,0 +1,13 @@
+FLAG long
+COMPOUNDBEGIN Ca
+COMPOUNDMIDDLE Cb
+COMPOUNDEND Cc
+COMPOUNDPERMITFLAG Cp
+ONLYINCOMPOUND Cx
+
+CHECKCOMPOUNDPATTERN 1
+CHECKCOMPOUNDPATTERN /Ch /Xs
+
+SFX Ch Y 2
+SFX Ch 0 s/CaCbCxCp .
+SFX Ch 0 s-/CaCbCcCp .
diff --git a/tests/opentaal_cpdpat.dic b/tests/opentaal_cpdpat.dic
new file mode 100644
index 0000000..e7831b7
--- /dev/null
+++ b/tests/opentaal_cpdpat.dic
@@ -0,0 +1,4 @@
+3
+schoonheid/Ch
+port/CcXs
+sport/Cc
diff --git a/tests/opentaal_cpdpat.good b/tests/opentaal_cpdpat.good
new file mode 100644
index 0000000..fbaf830
--- /dev/null
+++ b/tests/opentaal_cpdpat.good
@@ -0,0 +1 @@
+schoonheidssport
diff --git a/tests/rep.test b/tests/opentaal_cpdpat.test
similarity index 100%
copy from tests/rep.test
copy to tests/opentaal_cpdpat.test
diff --git a/tests/opentaal_cpdpat.wrong b/tests/opentaal_cpdpat.wrong
new file mode 100644
index 0000000..3f9e894
--- /dev/null
+++ b/tests/opentaal_cpdpat.wrong
@@ -0,0 +1 @@
+schoonheidsport
diff --git a/tests/opentaal_cpdpat2.aff b/tests/opentaal_cpdpat2.aff
new file mode 100644
index 0000000..22dfe69
--- /dev/null
+++ b/tests/opentaal_cpdpat2.aff
@@ -0,0 +1,27 @@
+# Test file based on OpenTaal's Dutch dictionary, coded by Ruud Baars
+
+WORDCHARS -
+NOSPLITSUGS
+FLAG long
+
+COMPOUNDBEGIN Ca
+COMPOUNDMIDDLE Cb
+COMPOUNDEND Cc
+COMPOUNDPERMITFLAG Cp
+ONLYINCOMPOUND Cx
+
+CHECKCOMPOUNDPATTERN 2
+CHECKCOMPOUNDPATTERN 0/Ch /Xs
+CHECKCOMPOUNDPATTERN 0/Xm /Xm
+
+SFX CA Y 2
+SFX CA 0 /CaCp .
+SFX CA 0 -/CaCp .
+
+SFX CB Y 2
+SFX CB 0 /CbCp .
+SFX CB 0 -/CbCp .
+
+SFX Ch Y 2
+SFX Ch 0 s/CaCbCxCp .
+SFX Ch 0 s-/CaCbCcCp .
diff --git a/tests/opentaal_cpdpat2.dic b/tests/opentaal_cpdpat2.dic
new file mode 100644
index 0000000..52581e9
--- /dev/null
+++ b/tests/opentaal_cpdpat2.dic
@@ -0,0 +1,4 @@
+100
+test/CACBCc
+zout/CACBXm
+suiker/CACBXm
\ No newline at end of file
diff --git a/tests/opentaal_cpdpat2.good b/tests/opentaal_cpdpat2.good
new file mode 100644
index 0000000..e604d6e
--- /dev/null
+++ b/tests/opentaal_cpdpat2.good
@@ -0,0 +1 @@
+zout-suikertest
diff --git a/tests/rep.test b/tests/opentaal_cpdpat2.test
similarity index 100%
copy from tests/rep.test
copy to tests/opentaal_cpdpat2.test
diff --git a/tests/opentaal_cpdpat2.wrong b/tests/opentaal_cpdpat2.wrong
new file mode 100644
index 0000000..d8ddb16
--- /dev/null
+++ b/tests/opentaal_cpdpat2.wrong
@@ -0,0 +1 @@
+zoutsuikertest
diff --git a/tests/opentaal_forbiddenword1.aff b/tests/opentaal_forbiddenword1.aff
new file mode 100644
index 0000000..fa07343
--- /dev/null
+++ b/tests/opentaal_forbiddenword1.aff
@@ -0,0 +1,9 @@
+TRY r
+
+FORBIDDENWORD F
+COMPOUNDRULE 2
+COMPOUNDRULE WW
+COMPOUNDRULE WWW
+
+SFX S Y 1
+SFX S 0 s .
diff --git a/tests/opentaal_forbiddenword1.dic b/tests/opentaal_forbiddenword1.dic
new file mode 100644
index 0000000..4437594
--- /dev/null
+++ b/tests/opentaal_forbiddenword1.dic
@@ -0,0 +1,5 @@
+4
+foo/W
+word/W
+bar/WS
+foowordbar/FS
diff --git a/tests/opentaal_forbiddenword1.good b/tests/opentaal_forbiddenword1.good
new file mode 100644
index 0000000..73a96a7
--- /dev/null
+++ b/tests/opentaal_forbiddenword1.good
@@ -0,0 +1,3 @@
+fooword
+wordbar
+barwordfoo
diff --git a/tests/opentaal_forbiddenword1.sug b/tests/opentaal_forbiddenword1.sug
new file mode 100644
index 0000000..60111a4
--- /dev/null
+++ b/tests/opentaal_forbiddenword1.sug
@@ -0,0 +1 @@
+barwordfoo
diff --git a/tests/rep.test b/tests/opentaal_forbiddenword1.test
similarity index 100%
copy from tests/rep.test
copy to tests/opentaal_forbiddenword1.test
diff --git a/tests/opentaal_forbiddenword1.wrong b/tests/opentaal_forbiddenword1.wrong
new file mode 100644
index 0000000..59dfddf
--- /dev/null
+++ b/tests/opentaal_forbiddenword1.wrong
@@ -0,0 +1,5 @@
+foowordbar
+foowordbars
+foowordba
+foowordbas
+barwodfoo
diff --git a/tests/opentaal_forbiddenword2.aff b/tests/opentaal_forbiddenword2.aff
new file mode 100644
index 0000000..441354d
--- /dev/null
+++ b/tests/opentaal_forbiddenword2.aff
@@ -0,0 +1,7 @@
+TRY r
+
+FORBIDDENWORD F
+COMPOUNDFLAG W
+
+SFX S Y 1
+SFX S 0 s .
diff --git a/tests/opentaal_forbiddenword2.dic b/tests/opentaal_forbiddenword2.dic
new file mode 100644
index 0000000..895dd62
--- /dev/null
+++ b/tests/opentaal_forbiddenword2.dic
@@ -0,0 +1,5 @@
+3
+foo/WS
+word/W
+bar/WS
+foowordbar/FS
\ No newline at end of file
diff --git a/tests/opentaal_forbiddenword2.good b/tests/opentaal_forbiddenword2.good
new file mode 100644
index 0000000..17cf47d
--- /dev/null
+++ b/tests/opentaal_forbiddenword2.good
@@ -0,0 +1,4 @@
+fooword
+wordbar
+barwordfoo
+barwordfoos
diff --git a/tests/opentaal_forbiddenword2.sug b/tests/opentaal_forbiddenword2.sug
new file mode 100644
index 0000000..60111a4
--- /dev/null
+++ b/tests/opentaal_forbiddenword2.sug
@@ -0,0 +1 @@
+barwordfoo
diff --git a/tests/rep.test b/tests/opentaal_forbiddenword2.test
similarity index 100%
copy from tests/rep.test
copy to tests/opentaal_forbiddenword2.test
diff --git a/tests/opentaal_forbiddenword2.wrong b/tests/opentaal_forbiddenword2.wrong
new file mode 100644
index 0000000..59dfddf
--- /dev/null
+++ b/tests/opentaal_forbiddenword2.wrong
@@ -0,0 +1,5 @@
+foowordbar
+foowordbars
+foowordba
+foowordbas
+barwodfoo
diff --git a/tests/opentaal_keepcase.aff b/tests/opentaal_keepcase.aff
new file mode 100644
index 0000000..15c914b
--- /dev/null
+++ b/tests/opentaal_keepcase.aff
@@ -0,0 +1,8 @@
+KEEPCASE K
+COMPOUNDBEGIN B
+COMPOUNDEND E
+COMPOUNDFLAG C
+COMPOUNDMIN 1
+WORDCHARS -
+BREAK 1
+BREAK #
diff --git a/tests/opentaal_keepcase.dic b/tests/opentaal_keepcase.dic
new file mode 100644
index 0000000..b05ec13
--- /dev/null
+++ b/tests/opentaal_keepcase.dic
@@ -0,0 +1,7 @@
+5
+tv-/KB
+-tv/KE
+word/C
+NATO-/B
+-NATO/E
+
diff --git a/tests/opentaal_keepcase.good b/tests/opentaal_keepcase.good
new file mode 100644
index 0000000..e1c1129
--- /dev/null
+++ b/tests/opentaal_keepcase.good
@@ -0,0 +1,4 @@
+tv-word
+word-tv
+NATO-word
+word-NATO
diff --git a/tests/opentaal_keepcase.sug b/tests/opentaal_keepcase.sug
new file mode 100644
index 0000000..07dde3f
--- /dev/null
+++ b/tests/opentaal_keepcase.sug
@@ -0,0 +1,8 @@
+Tv-word, Tv- word, Word
+Tv- word, Word
+word -tv, word-tv, word
+word -tv, word-tv, word
+wordword-tv, word
+Tv-word-tv
+NATO-
+-NATO
diff --git a/tests/rep.test b/tests/opentaal_keepcase.test
similarity index 100%
copy from tests/rep.test
copy to tests/opentaal_keepcase.test
diff --git a/tests/opentaal_keepcase.wrong b/tests/opentaal_keepcase.wrong
new file mode 100644
index 0000000..b15752e
--- /dev/null
+++ b/tests/opentaal_keepcase.wrong
@@ -0,0 +1,8 @@
+TV-word
+Tv-word
+word-TV
+word-Tv
+wordword-TV
+TV-word-TV
+Nato-word
+word-nato
diff --git a/tests/rep.aff b/tests/rep.aff
index 66365e5..485755c 100644
--- a/tests/rep.aff
+++ b/tests/rep.aff
@@ -3,12 +3,19 @@
# switch off ngram suggestion for testing
MAXNGRAMSUGS 0
-REP 6
+REP 8
REP f ph
REP ph f
-REP ph f
-REP shun tion
-REP alot a_lot # add the highest priority for "a lot" suggestion to "alot"
+REP shun$ tion
+REP ^alot$ a_lot # add the highest priority for "a lot" suggestion to "alot"
+REP ^foo$ bar
REP ' _ # "un'alunno" -> "un alunno"
+REP ^vinte�n$ vinte_e_un
+REP s 's
+
+
+SFX A Y 1
+SFX A 0 's .
+
WORDCHARS '
diff --git a/tests/rep.dic b/tests/rep.dic
index b6788c8..f9a4c00 100644
--- a/tests/rep.dic
+++ b/tests/rep.dic
@@ -1,8 +1,15 @@
-7
+10
form
phantom
vacation
+vacations
a
lot
un
alunno
+bar
+barbars
+vinte
+e
+un
+auto/A
diff --git a/tests/rep.sug b/tests/rep.sug
index e3402e1..b48a5b8 100644
--- a/tests/rep.sug
+++ b/tests/rep.sug
@@ -3,3 +3,6 @@ phantom
vacation
a lot, lot
un alunno
+bar
+vinte e un
+auto's, auto
diff --git a/tests/rep.test b/tests/rep.test
index 7f44369..dc29507 100755
--- a/tests/rep.test
+++ b/tests/rep.test
@@ -1,4 +1,4 @@
#!/bin/sh
DIR="`dirname $0`"
NAME="`basename $0 .test`"
-$DIR/test.sh $NAME
+$DIR/test.sh $NAME -i ISO8859-1
diff --git a/tests/rep.wrong b/tests/rep.wrong
index aa92b1e..cd9699c 100644
--- a/tests/rep.wrong
+++ b/tests/rep.wrong
@@ -1,5 +1,11 @@
phorm
fantom
vacashun
+vacashuns
alot
un'alunno
+foo
+foobars
+barfoos
+vinte�n
+autos
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-openoffice/hunspell.git
Reply to: