pax_global_header 0000666 0000000 0000000 00000000064 14366026630 0014520 g ustar 00root root 0000000 0000000 52 comment=c7d98cf01978c5a76a3decf4966f27c6f819359d
3p-libhunspell-main/ 0000775 0000000 0000000 00000000000 14366026630 0014647 5 ustar 00root root 0000000 0000000 3p-libhunspell-main/.gitignore 0000664 0000000 0000000 00000001064 14366026630 0016640 0 ustar 00root root 0000000 0000000 stage/
autobuild-parabuild-bootstrap/
Makefile
hunspell/config.*
*.o
*.Po
*.a
*.Plo
*.pc
charset.alias
hunspell/intl/libgnuintl.h
hunspell/intl/libintl.h
hunspell/intl/ref-add.sed
hunspell/intl/ref-del.sed
libtool
hunspell/po/Makefile.in
hunspell/po/POTFILES
hunspell/src/Makefile
.deps
.libs
*.lo
*.la
hunspell/src/tools/analyze
hunspell/src/tools/chmorph
hunspell/src/tools/example
hunspell/src/tools/hunspell
hunspell/src/tools/hunzip
hunspell/src/tools/hzip
hunspell/src/tools/munch
hunspell/src/tools/unmunch
hunspell/src/parsers/testparser
hunspell/stamp-h1
3p-libhunspell-main/.gitlab-ci.yml 0000664 0000000 0000000 00000000135 14366026630 0017302 0 ustar 00root root 0000000 0000000 include:
- project: 'alchemy/infrastructure/gitlab-ci-config'
file: '3p-library-m1.yml' 3p-libhunspell-main/autobuild.xml 0000664 0000000 0000000 00000007142 14366026630 0017365 0 ustar 00root root 0000000 0000000
3p-libhunspell-main/build-cmd.sh 0000775 0000000 0000000 00000014047 14366026630 0017054 0 ustar 00root root 0000000 0000000 #!/usr/bin/env bash
cd "$(dirname "$0")"
# turn on verbose debugging output for parabuild logs.
exec 4>&1; export BASH_XTRACEFD=4; set -x
# make errors fatal
set -e
# complain about unset env variables
set -u
HUNSPELL_SOURCE_DIR="hunspell"
# Look in configure script for line PACKAGE_VERSION='x.y.z', then capture
# everything between single quotes.
HUNSPELL_VERSION="$(expr "$(grep '^PACKAGE_VERSION=' "$HUNSPELL_SOURCE_DIR/configure")" \
: ".*'\(.*\)'")"
if [ -z "$AUTOBUILD" ] ; then
exit 1
fi
if [ "$OSTYPE" = "cygwin" ] ; then
autobuild="$(cygpath -u $AUTOBUILD)"
else
autobuild="$AUTOBUILD"
fi
stage="$(pwd)/stage"
# load autobuild provided shell functions and variables
source_environment_tempfile="$stage/source_environment.sh"
"$autobuild" source_environment > "$source_environment_tempfile"
. "$source_environment_tempfile"
echo "${HUNSPELL_VERSION}" > "${stage}/VERSION.txt"
pushd "$HUNSPELL_SOURCE_DIR"
case "$AUTOBUILD_PLATFORM" in
windows*)
load_vsvars
build_sln "msvc/Hunspell.sln" "Debug|$AUTOBUILD_WIN_VSPLATFORM"
build_sln "msvc/Hunspell.sln" "Release|$AUTOBUILD_WIN_VSPLATFORM"
mkdir -p "$stage/lib/debug"
mkdir -p "$stage/lib/release"
if [ "$AUTOBUILD_ADDRSIZE" = 32 ]
then
debbitdir=msvc/Debug/libhunspell
relbitdir=msvc/Release/libhunspell
else
debbitdir=msvc/x64/Debug/libhunspell
relbitdir=msvc/x64/Release/libhunspell
fi
cp "$debbitdir".lib "$stage/lib/debug"
cp "$relbitdir".lib "$stage/lib/release"
;;
darwin*)
# Setup osx sdk platform
SDKNAME="macosx"
export SDKROOT=$(xcodebuild -version -sdk ${SDKNAME} Path)
export MACOSX_DEPLOYMENT_TARGET=10.15
# Setup build flags
ARCH_FLAGS="-arch x86_64"
SDK_FLAGS="-mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET} -isysroot ${SDKROOT}"
DEBUG_COMMON_FLAGS="$ARCH_FLAGS $SDK_FLAGS -Og -g -msse4.2 -fPIC -DPIC"
RELEASE_COMMON_FLAGS="$ARCH_FLAGS $SDK_FLAGS -Ofast -ffast-math -g -msse4.2 -fPIC -DPIC -fstack-protector-strong"
DEBUG_CFLAGS="$DEBUG_COMMON_FLAGS"
RELEASE_CFLAGS="$RELEASE_COMMON_FLAGS"
DEBUG_CXXFLAGS="$DEBUG_COMMON_FLAGS -std=c++17"
RELEASE_CXXFLAGS="$RELEASE_COMMON_FLAGS -std=c++17"
DEBUG_CPPFLAGS="-DPIC"
RELEASE_CPPFLAGS="-DPIC"
DEBUG_LDFLAGS="$ARCH_FLAGS $SDK_FLAGS -Wl,-headerpad_max_install_names -Wl,-macos_version_min,$MACOSX_DEPLOYMENT_TARGET"
RELEASE_LDFLAGS="$ARCH_FLAGS $SDK_FLAGS -Wl,-headerpad_max_install_names -Wl,-macos_version_min,$MACOSX_DEPLOYMENT_TARGET"
# force regenerate autoconf
autoreconf -fvi
mkdir -p "build_debug"
pushd "build_debug"
CFLAGS="$DEBUG_CFLAGS" CPPFLAGS="$DEBUG_CPPFLAGS" CXXFLAGS="$DEBUG_CXXFLAGS" LDFLAGS="$DEBUG_LDFLAGS" \
../configure --prefix="\${AUTOBUILD_PACKAGES_DIR}" --libdir="\${prefix}/lib/debug" --enable-static --disable-shared
make -j$AUTOBUILD_CPU_COUNT
make install DESTDIR="$stage"
# conditionally run unit tests
if [ "${DISABLE_UNIT_TESTS:-0}" = "0" ]; then
make check
fi
popd
mkdir -p "build_release"
pushd "build_release"
CFLAGS="$RELEASE_CFLAGS" CPPFLAGS="$RELEASE_CPPFLAGS" CXXFLAGS="$RELEASE_CXXFLAGS" LDFLAGS="$RELEASE_LDFLAGS" \
../configure --prefix="\${AUTOBUILD_PACKAGES_DIR}" --libdir="\${prefix}/lib/release" --enable-static --disable-shared
make -j$AUTOBUILD_CPU_COUNT
make install DESTDIR="$stage"
# conditionally run unit tests
if [ "${DISABLE_UNIT_TESTS:-0}" = "0" ]; then
make check
fi
popd
;;
linux*)
# Default target per --address-size
opts="${TARGET_OPTS:--m$AUTOBUILD_ADDRSIZE}"
DEBUG_COMMON_FLAGS="$opts -Og -g -fPIC"
RELEASE_COMMON_FLAGS="$opts -O3 -g -fPIC -fstack-protector-strong -DPIC -D_FORTIFY_SOURCE=2"
DEBUG_CFLAGS="$DEBUG_COMMON_FLAGS"
RELEASE_CFLAGS="$RELEASE_COMMON_FLAGS"
DEBUG_CXXFLAGS="$DEBUG_COMMON_FLAGS -std=c++17"
RELEASE_CXXFLAGS="$RELEASE_COMMON_FLAGS -std=c++17"
DEBUG_CPPFLAGS="-DPIC"
RELEASE_CPPFLAGS="-DPIC -D_FORTIFY_SOURCE=2"
# force regenerate autoconf
autoreconf -fvi
mkdir -p "build_debug"
pushd "build_debug"
CFLAGS="$DEBUG_CFLAGS" CPPFLAGS="$DEBUG_CPPFLAGS" CXXFLAGS="$DEBUG_CXXFLAGS" \
../configure --prefix="\${AUTOBUILD_PACKAGES_DIR}" --libdir="\${prefix}/lib/debug" --enable-static --disable-shared
make -j$AUTOBUILD_CPU_COUNT
make install DESTDIR="$stage"
# conditionally run unit tests
if [ "${DISABLE_UNIT_TESTS:-0}" = "0" ]; then
make check
fi
popd
mkdir -p "build_release"
pushd "build_release"
CFLAGS="$RELEASE_CFLAGS" CPPFLAGS="$RELEASE_CPPFLAGS" CXXFLAGS="$RELEASE_CXXFLAGS" \
../configure --prefix="\${AUTOBUILD_PACKAGES_DIR}" --libdir="\${prefix}/lib/release" --enable-static --disable-shared
make -j$AUTOBUILD_CPU_COUNT
make install DESTDIR="$stage"
# conditionally run unit tests
if [ "${DISABLE_UNIT_TESTS:-0}" = "0" ]; then
make check
fi
popd
;;
esac
mkdir -p "$stage/include/hunspell"
cp src/hunspell/{*.h,*.hxx} "$stage/include/hunspell"
mkdir -p "$stage/LICENSES"
cp "license.hunspell" "$stage/LICENSES/hunspell.txt"
cp "license.myspell" "$stage/LICENSES/myspell.txt"
popd
3p-libhunspell-main/hunspell/ 0000775 0000000 0000000 00000000000 14366026630 0016501 5 ustar 00root root 0000000 0000000 3p-libhunspell-main/hunspell/ABOUT-NLS 0000664 0000000 0000000 00000272155 14366026630 0017744 0 ustar 00root root 0000000 0000000 1 Notes on the Free Translation Project
***************************************
Free software is going international! The Free Translation Project is
a way to get maintainers of free software, translators, and users all
together, so that free software will gradually become able to speak many
languages. A few packages already provide translations for their
messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site. But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
work on translations can contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
1.1 Quick configuration advice
==============================
If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias, message inheritance, automatic
charset conversion or plural form handling) as the implementation here.
It is also not possible to offer this additional functionality on top
of a `catgets' implementation. Future versions of GNU `gettext' will
very likely convey even more functionality. So it might be a good idea
to change to GNU `gettext' as soon as possible.
So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
1.2 INSTALL Matters
===================
Some packages are "localizable" when properly installed; the programs
they contain can be made to speak your own native language. Most such
packages use GNU `gettext'. Other packages have their own ways to
internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system already
provides the GNU `gettext' functions. If not, the included GNU
`gettext' library will be used. This library is wholly contained
within this package, usually in the `intl/' subdirectory, so prior
installation of the GNU `gettext' package is _not_ required.
Installers may use special options at configuration time for changing
the default behaviour. The commands:
./configure --with-included-gettext
./configure --disable-nls
will, respectively, bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this. This might not be desirable. You should use
the more recent version of the GNU `gettext' library. I.e. if the file
`intl/VERSION' shows that the library which comes with this package is
more recent, you should use
./configure --with-included-gettext
to prevent auto-detection.
The configuration process will not test for the `catgets' function
and therefore it will not be used. The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.
Internationalized packages usually have many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package. However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
1.3 Using This Package
======================
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination. If you happen to have the `LC_ALL' or some other
`LC_xxx' environment variables set, you should unset them before
setting `LANG', otherwise the setting of `LANG' will not have the
desired effect. Here `LL' is an ISO 639 two-letter language code, and
`CC' is an ISO 3166 two-letter country code. For example, let's
suppose that you speak German and live in Germany. At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.
You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries. For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
country code serves to distinguish the dialects.
The locale naming convention of `LL_CC', with `LL' denoting the
language and `CC' denoting the country, is the one use on systems based
on GNU libc. On other systems, some variations of this scheme are
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
locales supported by your system for your language by running the
command `locale -a | grep '^LL''.
Not all programs have translations for all languages. By default, an
English message is shown in place of a nonexistent translation. If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries. For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
Special advice for Norwegian users: The language code for Norwegian
bokma*l changed from `no' to `nb' recently (in 2003). During the
transition period, while some message catalogs for this language are
installed under `nb' and some older ones under `no', it's recommended
for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
older translations are used.
In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
1.4 Translating Teams
=====================
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list. The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://translationproject.org/', in the "Teams" area.
If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is _not_ the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:
subscribe
Keep in mind that team members are expected to participate
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `coordinator@translationproject.org' to
reach the coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
the terminology in use. Proven linguistic skills are praised more than
programming skills, here.
1.5 Available Packages
======================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of May 2010.
The matrix shows, in regard of each package, for which languages PO
files have been submitted to translation coordination, with a
translation percentage of at least 50%.
Ready PO files af am ar as ast az be be@latin bg bn_IN bs ca crh
+---------------------------------------------------+
a2ps | [] [] |
aegis | |
ant-phone | |
anubis | |
aspell | [] [] |
bash | |
bfd | |
bibshelf | [] |
binutils | |
bison | |
bison-runtime | [] |
bluez-pin | [] [] |
bombono-dvd | |
buzztard | |
cflow | |
clisp | |
coreutils | [] [] |
cpio | |
cppi | |
cpplib | [] |
cryptsetup | |
dfarc | |
dialog | [] [] |
dico | |
diffutils | [] |
dink | |
doodle | |
e2fsprogs | [] |
enscript | [] |
exif | |
fetchmail | [] |
findutils | [] |
flex | [] |
freedink | |
gas | |
gawk | [] [] |
gcal | [] |
gcc | |
gettext-examples | [] [] [] [] |
gettext-runtime | [] [] [] |
gettext-tools | [] [] |
gip | [] |
gjay | |
gliv | [] |
glunarclock | [] [] |
gnubiff | |
gnucash | [] |
gnuedu | |
gnulib | |
gnunet | |
gnunet-gtk | |
gnutls | |
gold | |
gpe-aerial | |
gpe-beam | |
gpe-bluetooth | |
gpe-calendar | |
gpe-clock | [] |
gpe-conf | |
gpe-contacts | |
gpe-edit | |
gpe-filemanager | |
gpe-go | |
gpe-login | |
gpe-ownerinfo | [] |
gpe-package | |
gpe-sketchbook | |
gpe-su | [] |
gpe-taskmanager | [] |
gpe-timesheet | [] |
gpe-today | [] |
gpe-todo | |
gphoto2 | |
gprof | [] |
gpsdrive | |
gramadoir | |
grep | |
grub | [] [] |
gsasl | |
gss | |
gst-plugins-bad | [] |
gst-plugins-base | [] |
gst-plugins-good | [] |
gst-plugins-ugly | [] |
gstreamer | [] [] [] |
gtick | |
gtkam | [] |
gtkorphan | [] |
gtkspell | [] [] [] |
gutenprint | |
hello | [] |
help2man | |
hylafax | |
idutils | |
indent | [] [] |
iso_15924 | |
iso_3166 | [] [] [] [] [] [] [] [] |
iso_3166_2 | |
iso_4217 | |
iso_639 | [] [] [] [] [] |
iso_639_3 | [] |
jwhois | |
kbd | |
keytouch | [] |
keytouch-editor | |
keytouch-keyboa... | [] |
klavaro | [] |
latrine | |
ld | [] |
leafpad | [] [] |
libc | [] [] |
libexif | () |
libextractor | |
libgnutls | |
libgpewidget | |
libgpg-error | |
libgphoto2 | |
libgphoto2_port | |
libgsasl | |
libiconv | [] |
libidn | |
lifelines | |
liferea | [] [] |
lilypond | |
linkdr | [] |
lordsawar | |
lprng | |
lynx | [] |
m4 | |
mailfromd | |
mailutils | |
make | |
man-db | |
man-db-manpages | |
minicom | |
mkisofs | |
myserver | |
nano | [] [] |
opcodes | |
parted | |
pies | |
popt | |
psmisc | |
pspp | [] |
pwdutils | |
radius | [] |
recode | [] [] |
rosegarden | |
rpm | |
rush | |
sarg | |
screem | |
scrollkeeper | [] [] [] |
sed | [] [] |
sharutils | [] [] |
shishi | |
skencil | |
solfege | |
solfege-manual | |
soundtracker | |
sp | |
sysstat | |
tar | [] |
texinfo | |
tin | |
unicode-han-tra... | |
unicode-transla... | |
util-linux-ng | [] |
vice | |
vmm | |
vorbis-tools | |
wastesedge | |
wdiff | |
wget | [] [] |
wyslij-po | |
xchat | [] [] [] [] |
xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
xkeyboard-config | [] [] [] |
+---------------------------------------------------+
af am ar as ast az be be@latin bg bn_IN bs ca crh
6 0 2 3 19 1 11 3 28 3 1 38 5
cs da de el en en_GB en_ZA eo es et eu fa fi
+-------------------------------------------------+
a2ps | [] [] [] [] [] [] [] [] |
aegis | [] [] [] |
ant-phone | [] () |
anubis | [] [] [] |
aspell | [] [] [] [] [] |
bash | [] [] [] [] |
bfd | [] [] |
bibshelf | [] [] [] [] |
binutils | [] [] |
bison | [] [] [] |
bison-runtime | [] [] [] [] [] |
bluez-pin | [] [] [] [] [] [] [] |
bombono-dvd | [] [] |
buzztard | [] [] [] |
cflow | [] [] [] |
clisp | [] [] [] [] |
coreutils | [] [] [] [] |
cpio | [] |
cppi | [] |
cpplib | [] [] [] |
cryptsetup | [] |
dfarc | [] [] [] [] |
dialog | [] [] [] [] [] |
dico | |
diffutils | [] [] [] [] [] [] [] |
dink | [] [] [] |
doodle | [] |
e2fsprogs | [] [] [] |
enscript | [] [] [] |
exif | () [] [] [] |
fetchmail | [] [] () [] [] [] |
findutils | [] [] [] [] |
flex | [] [] [] |
freedink | [] [] [] [] |
gas | [] |
gawk | [] [] [] |
gcal | [] |
gcc | [] [] |
gettext-examples | [] [] [] [] [] |
gettext-runtime | [] [] [] [] [] |
gettext-tools | [] [] [] |
gip | [] [] [] [] [] |
gjay | [] [] |
gliv | [] [] [] [] |
glunarclock | [] [] [] |
gnubiff | () |
gnucash | [] () () () () () |
gnuedu | [] [] |
gnulib | [] [] [] |
gnunet | |
gnunet-gtk | [] |
gnutls | [] [] |
gold | [] [] |
gpe-aerial | [] [] [] [] [] |
gpe-beam | [] [] [] [] [] |
gpe-bluetooth | [] [] [] |
gpe-calendar | [] [] |
gpe-clock | [] [] [] [] [] |
gpe-conf | [] [] [] [] |
gpe-contacts | [] [] [] [] |
gpe-edit | [] [] [] |
gpe-filemanager | [] [] [] [] |
gpe-go | [] [] [] [] [] |
gpe-login | [] [] [] |
gpe-ownerinfo | [] [] [] [] [] |
gpe-package | [] [] [] [] |
gpe-sketchbook | [] [] [] [] [] |
gpe-su | [] [] [] [] [] |
gpe-taskmanager | [] [] [] [] [] |
gpe-timesheet | [] [] [] [] [] |
gpe-today | [] [] [] [] [] |
gpe-todo | [] [] [] [] |
gphoto2 | [] [] () [] [] [] [] |
gprof | [] [] [] [] |
gpsdrive | [] [] [] |
gramadoir | [] [] [] |
grep | [] [] |
grub | [] [] [] |
gsasl | [] [] |
gss | [] |
gst-plugins-bad | [] [] [] [] [] [] |
gst-plugins-base | [] [] [] [] [] [] |
gst-plugins-good | [] [] [] [] [] [] [] |
gst-plugins-ugly | [] [] [] [] [] [] [] |
gstreamer | [] [] [] [] [] [] |
gtick | [] () [] [] |
gtkam | [] [] () [] [] |
gtkorphan | [] [] [] [] |
gtkspell | [] [] [] [] [] [] [] [] |
gutenprint | [] [] [] [] |
hello | [] [] [] [] [] |
help2man | [] [] |
hylafax | [] [] |
idutils | [] [] [] |
indent | [] [] [] [] [] [] [] [] |
iso_15924 | [] () [] [] [] |
iso_3166 | [] [] [] () [] [] [] () [] |
iso_3166_2 | () |
iso_4217 | [] [] [] () [] [] [] |
iso_639 | [] [] [] () [] [] [] |
iso_639_3 | |
jwhois | [] [] |
kbd | [] [] [] [] [] |
keytouch | [] [] [] |
keytouch-editor | [] [] [] |
keytouch-keyboa... | [] [] |
klavaro | [] [] [] [] |
latrine | [] () [] |
ld | [] [] [] |
leafpad | [] [] [] [] [] [] [] |
libc | [] [] [] [] [] |
libexif | [] [] () |
libextractor | |
libgnutls | [] |
libgpewidget | [] [] [] |
libgpg-error | [] [] |
libgphoto2 | [] () |
libgphoto2_port | [] () [] |
libgsasl | [] |
libiconv | [] [] [] [] [] [] |
libidn | [] [] [] [] |
lifelines | [] () |
liferea | [] [] [] [] [] |
lilypond | [] [] [] [] |
linkdr | [] [] [] [] |
lordsawar | [] |
lprng | |
lynx | [] [] [] [] |
m4 | [] [] [] [] [] |
mailfromd | |
mailutils | [] |
make | [] [] [] [] |
man-db | |
man-db-manpages | |
minicom | [] [] [] [] [] |
mkisofs | [] |
myserver | |
nano | [] [] [] [] |
opcodes | [] [] [] |
parted | [] [] |
pies | |
popt | [] [] [] [] [] [] |
psmisc | [] [] [] [] |
pspp | [] |
pwdutils | [] |
radius | [] |
recode | [] [] [] [] [] [] [] |
rosegarden | () () () () |
rpm | [] [] [] |
rush | |
sarg | |
screem | |
scrollkeeper | [] [] [] [] [] [] |
sed | [] [] [] [] [] [] [] |
sharutils | [] [] [] [] [] |
shishi | |
skencil | [] () [] |
solfege | [] [] [] [] |
solfege-manual | [] [] |
soundtracker | [] [] [] |
sp | [] |
sysstat | [] [] [] [] |
tar | [] [] [] [] [] |
texinfo | [] [] [] |
tin | [] [] |
unicode-han-tra... | |
unicode-transla... | |
util-linux-ng | [] [] [] [] [] |
vice | () () |
vmm | [] |
vorbis-tools | [] [] |
wastesedge | [] |
wdiff | [] [] [] |
wget | [] [] [] [] |
wyslij-po | [] |
xchat | [] [] [] [] [] [] |
xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
xkeyboard-config | [] [] [] [] [] [] |
+-------------------------------------------------+
cs da de el en en_GB en_ZA eo es et eu fa fi
64 105 117 18 1 8 0 28 89 18 19 0 104
fr ga gl gu he hi hr hu hy id is it ja ka kn
+------------------------------------------------+
a2ps | [] [] [] |
aegis | [] [] |
ant-phone | [] [] |
anubis | [] [] [] |
aspell | [] [] [] [] |
bash | [] [] [] |
bfd | [] [] |
bibshelf | [] [] [] [] |
binutils | [] [] |
bison | [] [] [] |
bison-runtime | [] [] [] [] [] |
bluez-pin | [] [] [] [] [] [] [] |
bombono-dvd | |
buzztard | [] |
cflow | [] [] |
clisp | [] |
coreutils | [] [] [] [] [] |
cpio | [] [] [] |
cppi | [] |
cpplib | [] [] |
cryptsetup | [] [] [] |
dfarc | [] [] |
dialog | [] [] [] [] [] [] [] |
dico | |
diffutils | [] [] [] [] [] [] [] [] |
dink | [] |
doodle | [] [] |
e2fsprogs | [] [] |
enscript | [] [] [] [] |
exif | [] [] [] [] [] |
fetchmail | [] [] [] [] |
findutils | [] [] [] [] [] |
flex | [] [] |
freedink | [] [] |
gas | [] [] |
gawk | [] [] [] [] () [] |
gcal | [] |
gcc | [] |
gettext-examples | [] [] [] [] [] [] |
gettext-runtime | [] [] [] [] [] |
gettext-tools | [] [] [] [] |
gip | [] [] [] [] [] |
gjay | |
gliv | () |
glunarclock | [] [] [] |
gnubiff | () [] () |
gnucash | () () () () [] |
gnuedu | [] [] |
gnulib | [] [] [] [] [] |
gnunet | |
gnunet-gtk | [] |
gnutls | [] [] |
gold | [] |
gpe-aerial | [] [] |
gpe-beam | [] [] [] |
gpe-bluetooth | [] [] [] |
gpe-calendar | [] |
gpe-clock | [] [] [] [] |
gpe-conf | [] [] [] |
gpe-contacts | [] [] [] |
gpe-edit | [] [] |
gpe-filemanager | [] [] [] |
gpe-go | [] [] [] [] |
gpe-login | [] [] |
gpe-ownerinfo | [] [] [] [] |
gpe-package | [] [] |
gpe-sketchbook | [] [] [] |
gpe-su | [] [] [] [] [] |
gpe-taskmanager | [] [] [] [] |
gpe-timesheet | [] [] [] [] |
gpe-today | [] [] [] [] [] [] |
gpe-todo | [] [] |
gphoto2 | [] [] [] [] [] |
gprof | [] [] [] |
gpsdrive | [] [] [] |
gramadoir | [] [] [] |
grep | [] |
grub | [] [] [] |
gsasl | [] [] [] [] |
gss | [] [] [] [] |
gst-plugins-bad | [] [] [] [] |
gst-plugins-base | [] [] [] [] [] |
gst-plugins-good | [] [] [] [] [] |
gst-plugins-ugly | [] [] [] [] [] |
gstreamer | [] [] [] [] |
gtick | [] [] [] [] |
gtkam | [] [] [] [] [] |
gtkorphan | [] [] [] |
gtkspell | [] [] [] [] [] [] [] [] |
gutenprint | [] [] [] |
hello | [] [] |
help2man | [] |
hylafax | [] |
idutils | [] [] [] [] [] |
indent | [] [] [] [] [] [] [] |
iso_15924 | () [] [] |
iso_3166 | () [] [] [] [] [] [] [] [] [] [] |
iso_3166_2 | () [] [] [] |
iso_4217 | () [] [] [] [] |
iso_639 | () [] [] [] [] [] [] [] |
iso_639_3 | () [] [] |
jwhois | [] [] [] [] |
kbd | [] [] |
keytouch | [] [] [] [] [] |
keytouch-editor | [] [] [] [] |
keytouch-keyboa... | [] [] [] [] |
klavaro | [] [] |
latrine | [] [] |
ld | [] [] [] |
leafpad | [] [] [] [] [] [] () |
libc | [] [] [] [] |
libexif | |
libextractor | |
libgnutls | [] [] |
libgpewidget | [] [] [] |
libgpg-error | [] [] |
libgphoto2 | [] [] [] |
libgphoto2_port | [] [] [] |
libgsasl | [] [] [] [] |
libiconv | [] [] [] [] [] |
libidn | [] [] [] |
lifelines | () |
liferea | [] [] [] [] |
lilypond | [] |
linkdr | [] [] [] [] |
lordsawar | |
lprng | [] |
lynx | [] [] [] [] [] |
m4 | [] [] [] [] [] |
mailfromd | |
mailutils | [] [] |
make | [] [] [] [] [] [] [] [] |
man-db | [] [] |
man-db-manpages | [] |
minicom | [] [] [] [] |
mkisofs | [] [] [] |
myserver | |
nano | [] [] [] [] [] |
opcodes | [] [] [] |
parted | [] [] [] [] |
pies | |
popt | [] [] [] [] [] [] [] [] |
psmisc | [] [] |
pspp | |
pwdutils | [] [] |
radius | [] [] |
recode | [] [] [] [] [] [] [] |
rosegarden | () () () () |
rpm | [] [] |
rush | |
sarg | [] |
screem | [] [] |
scrollkeeper | [] [] [] |
sed | [] [] [] [] [] [] [] |
sharutils | [] [] [] [] [] [] |
shishi | [] |
skencil | [] |
solfege | [] [] [] |
solfege-manual | [] [] |
soundtracker | [] [] |
sp | [] () |
sysstat | [] [] [] [] |
tar | [] [] [] [] [] [] |
texinfo | [] [] [] [] |
tin | [] |
unicode-han-tra... | |
unicode-transla... | [] [] |
util-linux-ng | [] [] [] [] [] |
vice | () () () |
vmm | [] |
vorbis-tools | [] |
wastesedge | () () |
wdiff | |
wget | [] [] [] [] [] [] [] |
wyslij-po | [] [] |
xchat | [] [] [] [] [] [] [] [] |
xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] |
xkeyboard-config | [] [] [] [] |
+------------------------------------------------+
fr ga gl gu he hi hr hu hy id is it ja ka kn
121 53 20 4 8 2 5 53 2 120 5 83 66 0 4
ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
+-----------------------------------------------+
a2ps | [] |
aegis | |
ant-phone | |
anubis | [] [] |
aspell | [] |
bash | |
bfd | |
bibshelf | [] [] |
binutils | |
bison | [] |
bison-runtime | [] [] [] [] [] |
bluez-pin | [] [] [] [] [] |
bombono-dvd | |
buzztard | |
cflow | |
clisp | |
coreutils | [] |
cpio | |
cppi | |
cpplib | |
cryptsetup | |
dfarc | [] |
dialog | [] [] [] [] [] |
dico | |
diffutils | [] [] |
dink | |
doodle | |
e2fsprogs | |
enscript | |
exif | [] |
fetchmail | |
findutils | |
flex | |
freedink | [] |
gas | |
gawk | |
gcal | |
gcc | |
gettext-examples | [] [] [] [] |
gettext-runtime | [] |
gettext-tools | [] |
gip | [] [] |
gjay | |
gliv | |
glunarclock | [] |
gnubiff | |
gnucash | () () () () |
gnuedu | |
gnulib | |
gnunet | |
gnunet-gtk | |
gnutls | [] |
gold | |
gpe-aerial | [] |
gpe-beam | [] |
gpe-bluetooth | [] [] |
gpe-calendar | [] |
gpe-clock | [] [] [] [] [] |
gpe-conf | [] [] |
gpe-contacts | [] [] |
gpe-edit | [] |
gpe-filemanager | [] [] |
gpe-go | [] [] [] |
gpe-login | [] |
gpe-ownerinfo | [] [] |
gpe-package | [] [] |
gpe-sketchbook | [] [] |
gpe-su | [] [] [] [] [] [] |
gpe-taskmanager | [] [] [] [] [] [] |
gpe-timesheet | [] [] |
gpe-today | [] [] [] [] |
gpe-todo | [] [] |
gphoto2 | |
gprof | [] |
gpsdrive | |
gramadoir | |
grep | |
grub | |
gsasl | |
gss | |
gst-plugins-bad | [] [] |
gst-plugins-base | [] [] |
gst-plugins-good | [] [] |
gst-plugins-ugly | [] [] [] [] [] |
gstreamer | |
gtick | |
gtkam | [] |
gtkorphan | [] [] |
gtkspell | [] [] [] [] [] [] [] |
gutenprint | |
hello | [] [] [] |
help2man | |
hylafax | |
idutils | |
indent | |
iso_15924 | [] [] |
iso_3166 | [] [] () [] [] [] [] [] |
iso_3166_2 | |
iso_4217 | [] [] |
iso_639 | [] [] |
iso_639_3 | [] |
jwhois | [] |
kbd | |
keytouch | [] |
keytouch-editor | [] |
keytouch-keyboa... | [] |
klavaro | [] |
latrine | [] |
ld | |
leafpad | [] [] [] |
libc | [] |
libexif | |
libextractor | |
libgnutls | [] |
libgpewidget | [] [] |
libgpg-error | |
libgphoto2 | |
libgphoto2_port | |
libgsasl | |
libiconv | |
libidn | |
lifelines | |
liferea | |
lilypond | |
linkdr | |
lordsawar | |
lprng | |
lynx | |
m4 | |
mailfromd | |
mailutils | |
make | [] |
man-db | |
man-db-manpages | |
minicom | [] |
mkisofs | |
myserver | |
nano | [] [] |
opcodes | |
parted | |
pies | |
popt | [] [] [] |
psmisc | |
pspp | |
pwdutils | |
radius | |
recode | |
rosegarden | |
rpm | |
rush | |
sarg | |
screem | |
scrollkeeper | [] [] |
sed | |
sharutils | |
shishi | |
skencil | |
solfege | [] |
solfege-manual | |
soundtracker | |
sp | |
sysstat | [] |
tar | [] |
texinfo | [] |
tin | |
unicode-han-tra... | |
unicode-transla... | |
util-linux-ng | |
vice | |
vmm | |
vorbis-tools | |
wastesedge | |
wdiff | |
wget | [] |
wyslij-po | |
xchat | [] [] [] |
xdg-user-dirs | [] [] [] [] [] [] [] [] |
xkeyboard-config | [] [] [] |
+-----------------------------------------------+
ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
20 5 10 1 12 48 4 2 2 4 24 10 19 3 1
nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
+---------------------------------------------------+
a2ps | [] [] [] [] [] [] [] [] |
aegis | [] [] [] |
ant-phone | [] [] |
anubis | [] [] [] |
aspell | [] [] [] [] [] |
bash | [] [] |
bfd | [] |
bibshelf | [] [] |
binutils | [] [] |
bison | [] [] [] |
bison-runtime | [] [] [] [] [] [] [] |
bluez-pin | [] [] [] [] [] [] [] [] |
bombono-dvd | [] () |
buzztard | [] [] |
cflow | [] |
clisp | [] [] |
coreutils | [] [] [] [] [] [] |
cpio | [] [] [] |
cppi | [] |
cpplib | [] |
cryptsetup | [] |
dfarc | [] |
dialog | [] [] [] [] |
dico | [] |
diffutils | [] [] [] [] [] [] |
dink | () |
doodle | [] [] |
e2fsprogs | [] [] |
enscript | [] [] [] [] [] |
exif | [] [] [] () [] |
fetchmail | [] [] [] [] |
findutils | [] [] [] [] [] |
flex | [] [] [] [] [] |
freedink | [] [] |
gas | |
gawk | [] [] [] [] |
gcal | |
gcc | [] |
gettext-examples | [] [] [] [] [] [] [] [] |
gettext-runtime | [] [] [] [] [] [] [] [] [] |
gettext-tools | [] [] [] [] [] [] |
gip | [] [] [] [] [] |
gjay | |
gliv | [] [] [] [] [] [] |
glunarclock | [] [] [] [] [] |
gnubiff | [] () |
gnucash | [] () () () |
gnuedu | [] |
gnulib | [] [] [] [] |
gnunet | |
gnunet-gtk | |
gnutls | [] [] |
gold | |
gpe-aerial | [] [] [] [] [] [] [] |
gpe-beam | [] [] [] [] [] [] [] |
gpe-bluetooth | [] [] |
gpe-calendar | [] [] [] [] |
gpe-clock | [] [] [] [] [] [] [] [] |
gpe-conf | [] [] [] [] [] [] [] |
gpe-contacts | [] [] [] [] [] |
gpe-edit | [] [] [] |
gpe-filemanager | [] [] [] |
gpe-go | [] [] [] [] [] [] [] [] |
gpe-login | [] [] |
gpe-ownerinfo | [] [] [] [] [] [] [] [] |
gpe-package | [] [] |
gpe-sketchbook | [] [] [] [] [] [] [] |
gpe-su | [] [] [] [] [] [] [] [] |
gpe-taskmanager | [] [] [] [] [] [] [] [] |
gpe-timesheet | [] [] [] [] [] [] [] [] |
gpe-today | [] [] [] [] [] [] [] [] |
gpe-todo | [] [] [] [] [] |
gphoto2 | [] [] [] [] [] [] [] [] |
gprof | [] [] [] |
gpsdrive | [] [] |
gramadoir | [] [] |
grep | [] [] [] [] |
grub | [] [] [] |
gsasl | [] [] [] [] |
gss | [] [] [] |
gst-plugins-bad | [] [] [] [] [] |
gst-plugins-base | [] [] [] [] [] |
gst-plugins-good | [] [] [] [] [] |
gst-plugins-ugly | [] [] [] [] [] [] |
gstreamer | [] [] [] [] [] |
gtick | [] [] [] |
gtkam | [] [] [] [] [] [] |
gtkorphan | [] |
gtkspell | [] [] [] [] [] [] [] [] [] [] |
gutenprint | [] [] |
hello | [] [] [] [] |
help2man | [] [] |
hylafax | [] |
idutils | [] [] [] [] [] |
indent | [] [] [] [] [] [] [] |
iso_15924 | [] [] [] [] |
iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] |
iso_3166_2 | [] [] [] |
iso_4217 | [] [] [] [] [] [] [] [] |
iso_639 | [] [] [] [] [] [] [] [] [] |
iso_639_3 | [] [] |
jwhois | [] [] [] [] |
kbd | [] [] [] |
keytouch | [] [] [] |
keytouch-editor | [] [] [] |
keytouch-keyboa... | [] [] [] |
klavaro | [] [] |
latrine | [] [] |
ld | |
leafpad | [] [] [] [] [] [] [] [] [] |
libc | [] [] [] [] |
libexif | [] [] () [] |
libextractor | |
libgnutls | [] [] |
libgpewidget | [] [] [] |
libgpg-error | [] [] |
libgphoto2 | [] [] |
libgphoto2_port | [] [] [] [] |
libgsasl | [] [] [] [] [] |
libiconv | [] [] [] [] [] |
libidn | [] [] |
lifelines | [] [] |
liferea | [] [] [] [] [] () () [] |
lilypond | [] |
linkdr | [] [] [] |
lordsawar | |
lprng | [] |
lynx | [] [] [] |
m4 | [] [] [] [] [] |
mailfromd | [] |
mailutils | [] |
make | [] [] [] [] |
man-db | [] [] [] |
man-db-manpages | [] [] [] |
minicom | [] [] [] [] |
mkisofs | [] [] [] |
myserver | |
nano | [] [] [] [] |
opcodes | [] [] |
parted | [] [] [] [] |
pies | [] |
popt | [] [] [] [] |
psmisc | [] [] [] |
pspp | [] [] |
pwdutils | [] |
radius | [] [] [] |
recode | [] [] [] [] [] [] [] [] |
rosegarden | () () |
rpm | [] [] [] |
rush | [] [] |
sarg | |
screem | |
scrollkeeper | [] [] [] [] [] [] [] [] |
sed | [] [] [] [] [] [] [] [] [] |
sharutils | [] [] [] [] |
shishi | [] |
skencil | [] [] |
solfege | [] [] [] [] |
solfege-manual | [] [] [] |
soundtracker | [] |
sp | |
sysstat | [] [] [] [] |
tar | [] [] [] [] |
texinfo | [] [] [] [] |
tin | [] |
unicode-han-tra... | |
unicode-transla... | |
util-linux-ng | [] [] [] [] [] |
vice | [] |
vmm | [] |
vorbis-tools | [] [] |
wastesedge | [] |
wdiff | [] [] |
wget | [] [] [] [] [] [] [] |
wyslij-po | [] [] [] |
xchat | [] [] [] [] [] [] [] [] [] |
xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
xkeyboard-config | [] [] [] [] [] |
+---------------------------------------------------+
nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
135 10 4 7 105 1 29 61 47 91 3 55 47 8 37
sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
+---------------------------------------------------+
a2ps | [] [] [] [] [] | 27
aegis | [] | 9
ant-phone | [] [] [] [] | 9
anubis | [] [] [] [] | 15
aspell | [] [] [] | 20
bash | [] [] | 11
bfd | [] | 6
bibshelf | [] [] [] | 16
binutils | [] [] | 8
bison | [] [] | 12
bison-runtime | [] [] [] [] [] [] | 29
bluez-pin | [] [] [] [] [] [] [] [] | 37
bombono-dvd | [] | 4
buzztard | [] | 7
cflow | [] [] [] | 9
clisp | | 10
coreutils | [] [] [] [] | 22
cpio | [] [] [] [] [] [] | 13
cppi | [] [] | 5
cpplib | [] [] [] [] [] [] | 13
cryptsetup | [] [] | 7
dfarc | [] | 9
dialog | [] [] [] [] [] [] [] | 30
dico | [] | 2
diffutils | [] [] [] [] [] [] | 30
dink | | 4
doodle | [] [] | 7
e2fsprogs | [] [] [] | 11
enscript | [] [] [] [] | 17
exif | [] [] [] | 16
fetchmail | [] [] [] | 17
findutils | [] [] [] [] [] | 20
flex | [] [] [] [] | 15
freedink | [] | 10
gas | [] | 4
gawk | [] [] [] [] | 18
gcal | [] [] | 5
gcc | [] [] [] | 7
gettext-examples | [] [] [] [] [] [] [] | 34
gettext-runtime | [] [] [] [] [] [] [] | 30
gettext-tools | [] [] [] [] [] [] | 22
gip | [] [] [] [] | 22
gjay | [] | 3
gliv | [] [] [] | 14
glunarclock | [] [] [] [] [] | 19
gnubiff | [] [] | 4
gnucash | () [] () () | 9
gnuedu | [] [] | 7
gnulib | [] [] [] [] | 16
gnunet | [] | 1
gnunet-gtk | [] [] [] | 5
gnutls | [] [] [] | 10
gold | [] | 4
gpe-aerial | [] [] [] | 18
gpe-beam | [] [] [] | 19
gpe-bluetooth | [] [] [] | 13
gpe-calendar | [] [] [] [] | 12
gpe-clock | [] [] [] [] [] | 28
gpe-conf | [] [] [] [] | 20
gpe-contacts | [] [] [] | 17
gpe-edit | [] [] [] | 12
gpe-filemanager | [] [] [] [] | 16
gpe-go | [] [] [] [] [] | 25
gpe-login | [] [] [] | 11
gpe-ownerinfo | [] [] [] [] [] | 25
gpe-package | [] [] [] | 13
gpe-sketchbook | [] [] [] | 20
gpe-su | [] [] [] [] [] | 30
gpe-taskmanager | [] [] [] [] [] | 29
gpe-timesheet | [] [] [] [] [] | 25
gpe-today | [] [] [] [] [] [] | 30
gpe-todo | [] [] [] [] | 17
gphoto2 | [] [] [] [] [] | 24
gprof | [] [] [] | 15
gpsdrive | [] [] [] | 11
gramadoir | [] [] [] | 11
grep | [] [] [] | 10
grub | [] [] [] | 14
gsasl | [] [] [] [] | 14
gss | [] [] [] | 11
gst-plugins-bad | [] [] [] [] | 22
gst-plugins-base | [] [] [] [] [] | 24
gst-plugins-good | [] [] [] [] [] | 25
gst-plugins-ugly | [] [] [] [] [] | 29
gstreamer | [] [] [] [] | 22
gtick | [] [] [] | 13
gtkam | [] [] [] | 20
gtkorphan | [] [] [] | 14
gtkspell | [] [] [] [] [] [] [] [] [] | 45
gutenprint | [] | 10
hello | [] [] [] [] [] [] | 21
help2man | [] [] | 7
hylafax | [] | 5
idutils | [] [] [] [] | 17
indent | [] [] [] [] [] [] | 30
iso_15924 | () [] () [] [] | 16
iso_3166 | [] [] () [] [] () [] [] [] () | 53
iso_3166_2 | () [] () [] | 9
iso_4217 | [] () [] [] () [] [] | 26
iso_639 | [] [] [] () [] () [] [] [] [] | 38
iso_639_3 | [] () | 8
jwhois | [] [] [] [] [] | 16
kbd | [] [] [] [] [] | 15
keytouch | [] [] [] | 16
keytouch-editor | [] [] [] | 14
keytouch-keyboa... | [] [] [] | 14
klavaro | [] | 11
latrine | [] [] [] | 10
ld | [] [] [] [] | 11
leafpad | [] [] [] [] [] [] | 33
libc | [] [] [] [] [] | 21
libexif | [] () | 6
libextractor | [] | 1
libgnutls | [] [] [] | 9
libgpewidget | [] [] [] | 14
libgpg-error | [] [] [] | 9
libgphoto2 | [] [] | 8
libgphoto2_port | [] [] [] [] | 13
libgsasl | [] [] [] | 13
libiconv | [] [] [] [] | 21
libidn | () [] [] | 11
lifelines | [] | 4
liferea | [] [] [] | 21
lilypond | [] | 7
linkdr | [] [] [] [] [] | 17
lordsawar | | 1
lprng | [] | 3
lynx | [] [] [] [] | 17
m4 | [] [] [] [] | 19
mailfromd | [] [] | 3
mailutils | [] | 5
make | [] [] [] [] | 21
man-db | [] [] [] | 8
man-db-manpages | | 4
minicom | [] [] | 16
mkisofs | [] [] | 9
myserver | | 0
nano | [] [] [] [] | 21
opcodes | [] [] [] | 11
parted | [] [] [] [] [] | 15
pies | [] [] | 3
popt | [] [] [] [] [] [] | 27
psmisc | [] [] | 11
pspp | | 4
pwdutils | [] [] | 6
radius | [] [] | 9
recode | [] [] [] [] | 28
rosegarden | () | 0
rpm | [] [] [] | 11
rush | [] [] | 4
sarg | | 1
screem | [] | 3
scrollkeeper | [] [] [] [] [] | 27
sed | [] [] [] [] [] | 30
sharutils | [] [] [] [] [] | 22
shishi | [] | 3
skencil | [] [] | 7
solfege | [] [] [] [] | 16
solfege-manual | [] | 8
soundtracker | [] [] [] | 9
sp | [] | 3
sysstat | [] [] | 15
tar | [] [] [] [] [] [] | 23
texinfo | [] [] [] [] | 16
tin | | 4
unicode-han-tra... | | 0
unicode-transla... | | 2
util-linux-ng | [] [] [] [] | 20
vice | () () | 1
vmm | [] | 4
vorbis-tools | [] | 6
wastesedge | | 2
wdiff | [] [] | 7
wget | [] [] [] [] [] | 26
wyslij-po | [] [] | 8
xchat | [] [] [] [] [] [] | 36
xdg-user-dirs | [] [] [] [] [] [] [] [] [] | 60
xkeyboard-config | [] [] [] [] | 25
+---------------------------------------------------+
84 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
178 domains 119 1 3 2 0 10 66 50 155 17 97 7 41 2610
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.
For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If May 2010 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
`http://translationproject.org/extra/matrix.html'.
1.6 Using `gettext' in new packages
===================================
If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package. Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library. This means
in particular that even non-free programs can use `libintl' as a shared
library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.
Once the sources are changed appropriately and the setup can handle
the use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact
`coordinator@translationproject.org' to make the `.pot' files available
to the translation teams.
3p-libhunspell-main/hunspell/AUTHORS 0000664 0000000 0000000 00000001367 14366026630 0017560 0 ustar 00root root 0000000 0000000 Author: László Németh
MySpell's (Hunspell's code base) author: Kevin Hendricks
Maintainer, distinguished contributor: Caolán McNamara
Author of rule-based transformation code for phonetic suggestions
(PHONE/phonet.cxx, used by English dictionaries): Björn Jacke
Hunspell/MySpell code base is result of work of several
contributors. See git log, ./THANKS, ./Changelog, ./Changelog.O,
MySpell's README and CONTRIBUTORS files for their contributions.
Note: Following contributors are not owners and
not representatives of Hunspell, and they haven't got
permission from Hunspell's author to act on the behalf
of Hunspell project: Sander van Geloven, Dimitri Mijoski
If you would like to support Hunspell, join the
development or contact the author.
3p-libhunspell-main/hunspell/COPYING 0000664 0000000 0000000 00000043255 14366026630 0017545 0 ustar 00root root 0000000 0000000 GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
3p-libhunspell-main/hunspell/COPYING.LESSER 0000664 0000000 0000000 00000063643 14366026630 0020544 0 ustar 00root root 0000000 0000000 GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
Copyright (C)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
3p-libhunspell-main/hunspell/COPYING.MPL 0000664 0000000 0000000 00000062233 14366026630 0020171 0 ustar 00root root 0000000 0000000 MOZILLA PUBLIC LICENSE
Version 1.1
---------------
1. Definitions.
1.0.1. "Commercial Use" means distribution or otherwise making the
Covered Code available to a third party.
1.1. "Contributor" means each entity that creates or contributes to
the creation of Modifications.
1.2. "Contributor Version" means the combination of the Original
Code, prior Modifications used by a Contributor, and the Modifications
made by that particular Contributor.
1.3. "Covered Code" means the Original Code or Modifications or the
combination of the Original Code and Modifications, in each case
including portions thereof.
1.4. "Electronic Distribution Mechanism" means a mechanism generally
accepted in the software development community for the electronic
transfer of data.
1.5. "Executable" means Covered Code in any form other than Source
Code.
1.6. "Initial Developer" means the individual or entity identified
as the Initial Developer in the Source Code notice required by Exhibit
A.
1.7. "Larger Work" means a work which combines Covered Code or
portions thereof with code not governed by the terms of this License.
1.8. "License" means this document.
1.8.1. "Licensable" means having the right to grant, to the maximum
extent possible, whether at the time of the initial grant or
subsequently acquired, any and all of the rights conveyed herein.
1.9. "Modifications" means any addition to or deletion from the
substance or structure of either the Original Code or any previous
Modifications. When Covered Code is released as a series of files, a
Modification is:
A. Any addition to or deletion from the contents of a file
containing Original Code or previous Modifications.
B. Any new file that contains any part of the Original Code or
previous Modifications.
1.10. "Original Code" means Source Code of computer software code
which is described in the Source Code notice required by Exhibit A as
Original Code, and which, at the time of its release under this
License is not already Covered Code governed by this License.
1.10.1. "Patent Claims" means any patent claim(s), now owned or
hereafter acquired, including without limitation, method, process,
and apparatus claims, in any patent Licensable by grantor.
1.11. "Source Code" means the preferred form of the Covered Code for
making modifications to it, including all modules it contains, plus
any associated interface definition files, scripts used to control
compilation and installation of an Executable, or source code
differential comparisons against either the Original Code or another
well known, available Covered Code of the Contributor's choice. The
Source Code can be in a compressed or archival form, provided the
appropriate decompression or de-archiving software is widely available
for no charge.
1.12. "You" (or "Your") means an individual or a legal entity
exercising rights under, and complying with all of the terms of, this
License or a future version of this License issued under Section 6.1.
For legal entities, "You" includes any entity which controls, is
controlled by, or is under common control with You. For purposes of
this definition, "control" means (a) the power, direct or indirect,
to cause the direction or management of such entity, whether by
contract or otherwise, or (b) ownership of more than fifty percent
(50%) of the outstanding shares or beneficial ownership of such
entity.
2. Source Code License.
2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property
claims:
(a) under intellectual property rights (other than patent or
trademark) Licensable by Initial Developer to use, reproduce,
modify, display, perform, sublicense and distribute the Original
Code (or portions thereof) with or without Modifications, and/or
as part of a Larger Work; and
(b) under Patents Claims infringed by the making, using or
selling of Original Code, to make, have made, use, practice,
sell, and offer for sale, and/or otherwise dispose of the
Original Code (or portions thereof).
(c) the licenses granted in this Section 2.1(a) and (b) are
effective on the date Initial Developer first distributes
Original Code under the terms of this License.
(d) Notwithstanding Section 2.1(b) above, no patent license is
granted: 1) for code that You delete from the Original Code; 2)
separate from the Original Code; or 3) for infringements caused
by: i) the modification of the Original Code or ii) the
combination of the Original Code with other software or devices.
2.2. Contributor Grant.
Subject to third party intellectual property claims, each Contributor
hereby grants You a world-wide, royalty-free, non-exclusive license
(a) under intellectual property rights (other than patent or
trademark) Licensable by Contributor, to use, reproduce, modify,
display, perform, sublicense and distribute the Modifications
created by such Contributor (or portions thereof) either on an
unmodified basis, with other Modifications, as Covered Code
and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using, or
selling of Modifications made by that Contributor either alone
and/or in combination with its Contributor Version (or portions
of such combination), to make, use, sell, offer for sale, have
made, and/or otherwise dispose of: 1) Modifications made by that
Contributor (or portions thereof); and 2) the combination of
Modifications made by that Contributor with its Contributor
Version (or portions of such combination).
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
effective on the date Contributor first makes Commercial Use of
the Covered Code.
(d) Notwithstanding Section 2.2(b) above, no patent license is
granted: 1) for any code that Contributor has deleted from the
Contributor Version; 2) separate from the Contributor Version;
3) for infringements caused by: i) third party modifications of
Contributor Version or ii) the combination of Modifications made
by that Contributor with other software (except as part of the
Contributor Version) or other devices; or 4) under Patent Claims
infringed by Covered Code in the absence of Modifications made by
that Contributor.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are
governed by the terms of this License, including without limitation
Section 2.2. The Source Code version of Covered Code may be
distributed only under the terms of this License or a future version
of this License released under Section 6.1, and You must include a
copy of this License with every copy of the Source Code You
distribute. You may not offer or impose any terms on any Source Code
version that alters or restricts the applicable version of this
License or the recipients' rights hereunder. However, You may include
an additional document offering the additional rights described in
Section 3.5.
3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be
made available in Source Code form under the terms of this License
either on the same media as an Executable version or via an accepted
Electronic Distribution Mechanism to anyone to whom you made an
Executable version available; and if made available via Electronic
Distribution Mechanism, must remain available for at least twelve (12)
months after the date it initially became available, or at least six
(6) months after a subsequent version of that particular Modification
has been made available to such recipients. You are responsible for
ensuring that the Source Code version remains available even if the
Electronic Distribution Mechanism is maintained by a third party.
3.3. Description of Modifications.
You must cause all Covered Code to which You contribute to contain a
file documenting the changes You made to create that Covered Code and
the date of any change. You must include a prominent statement that
the Modification is derived, directly or indirectly, from Original
Code provided by the Initial Developer and including the name of the
Initial Developer in (a) the Source Code, and (b) in any notice in an
Executable version or related documentation in which You describe the
origin or ownership of the Covered Code.
3.4. Intellectual Property Matters
(a) Third Party Claims.
If Contributor has knowledge that a license under a third party's
intellectual property rights is required to exercise the rights
granted by such Contributor under Sections 2.1 or 2.2,
Contributor must include a text file with the Source Code
distribution titled "LEGAL" which describes the claim and the
party making the claim in sufficient detail that a recipient will
know whom to contact. If Contributor obtains such knowledge after
the Modification is made available as described in Section 3.2,
Contributor shall promptly modify the LEGAL file in all copies
Contributor makes available thereafter and shall take other steps
(such as notifying appropriate mailing lists or newsgroups)
reasonably calculated to inform those who received the Covered
Code that new knowledge has been obtained.
(b) Contributor APIs.
If Contributor's Modifications include an application programming
interface and Contributor has knowledge of patent licenses which
are reasonably necessary to implement that API, Contributor must
also include this information in the LEGAL file.
(c) Representations.
Contributor represents that, except as disclosed pursuant to
Section 3.4(a) above, Contributor believes that Contributor's
Modifications are Contributor's original creation(s) and/or
Contributor has sufficient rights to grant the rights conveyed by
this License.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source
Code. If it is not possible to put such notice in a particular Source
Code file due to its structure, then You must include such notice in a
location (such as a relevant directory) where a user would be likely
to look for such a notice. If You created one or more Modification(s)
You may add your name as a Contributor to the notice described in
Exhibit A. You must also duplicate this License in any documentation
for the Source Code where You describe recipients' rights or ownership
rights relating to Covered Code. You may choose to offer, and to
charge a fee for, warranty, support, indemnity or liability
obligations to one or more recipients of Covered Code. However, You
may do so only on Your own behalf, and not on behalf of the Initial
Developer or any Contributor. You must make it absolutely clear than
any such warranty, support, indemnity or liability obligation is
offered by You alone, and You hereby agree to indemnify the Initial
Developer and every Contributor for any liability incurred by the
Initial Developer or such Contributor as a result of warranty,
support, indemnity or liability terms You offer.
3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the
requirements of Section 3.1-3.5 have been met for that Covered Code,
and if You include a notice stating that the Source Code version of
the Covered Code is available under the terms of this License,
including a description of how and where You have fulfilled the
obligations of Section 3.2. The notice must be conspicuously included
in any notice in an Executable version, related documentation or
collateral in which You describe recipients' rights relating to the
Covered Code. You may distribute the Executable version of Covered
Code or ownership rights under a license of Your choice, which may
contain terms different from this License, provided that You are in
compliance with the terms of this License and that the license for the
Executable version does not attempt to limit or alter the recipient's
rights in the Source Code version from the rights set forth in this
License. If You distribute the Executable version under a different
license You must make it absolutely clear that any terms which differ
from this License are offered by You alone, not by the Initial
Developer or any Contributor. You hereby agree to indemnify the
Initial Developer and every Contributor for any liability incurred by
the Initial Developer or such Contributor as a result of any such
terms You offer.
3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code
not governed by the terms of this License and distribute the Larger
Work as a single product. In such a case, You must make sure the
requirements of this License are fulfilled for the Covered Code.
4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Code due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description
must be included in the LEGAL file described in Section 3.4 and must
be included with all distributions of the Source Code. Except to the
extent prohibited by statute or regulation, such description must be
sufficiently detailed for a recipient of ordinary skill to be able to
understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has
attached the notice in Exhibit A and to related Covered Code.
6. Versions of the License.
6.1. New Versions.
Netscape Communications Corporation ("Netscape") may publish revised
and/or new versions of the License from time to time. Each version
will be given a distinguishing version number.
6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the
License, You may always continue to use it under the terms of that
version. You may also choose to use such Covered Code under the terms
of any subsequent version of the License published by Netscape. No one
other than Netscape has the right to modify the terms applicable to
Covered Code created under this License.
6.3. Derivative Works.
If You create or use a modified version of this License (which you may
only do in order to apply it to code which is not already Covered Code
governed by this License), You must (a) rename Your license so that
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
"MPL", "NPL" or any confusingly similar phrase do not appear in your
license (except to note that your license differs from this License)
and (b) otherwise make it clear that Your version of the license
contains terms which differ from the Mozilla Public License and
Netscape Public License. (Filling in the name of the Initial
Developer, Original Code or Contributor in the notice described in
Exhibit A shall not of themselves be deemed to be modifications of
this License.)
7. DISCLAIMER OF WARRANTY.
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
8. TERMINATION.
8.1. This License and the rights granted hereunder will terminate
automatically if You fail to comply with terms herein and fail to cure
such breach within 30 days of becoming aware of the breach. All
sublicenses to the Covered Code which are properly granted shall
survive any termination of this License. Provisions which, by their
nature, must remain in effect beyond the termination of this License
shall survive.
8.2. If You initiate litigation by asserting a patent infringement
claim (excluding declatory judgment actions) against Initial Developer
or a Contributor (the Initial Developer or Contributor against whom
You file such action is referred to as "Participant") alleging that:
(a) such Participant's Contributor Version directly or indirectly
infringes any patent, then any and all rights granted by such
Participant to You under Sections 2.1 and/or 2.2 of this License
shall, upon 60 days notice from Participant terminate prospectively,
unless if within 60 days after receipt of notice You either: (i)
agree in writing to pay Participant a mutually agreeable reasonable
royalty for Your past and future use of Modifications made by such
Participant, or (ii) withdraw Your litigation claim with respect to
the Contributor Version against such Participant. If within 60 days
of notice, a reasonable royalty and payment arrangement are not
mutually agreed upon in writing by the parties or the litigation claim
is not withdrawn, the rights granted by Participant to You under
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
the 60 day notice period specified above.
(b) any software, hardware, or device, other than such Participant's
Contributor Version, directly or indirectly infringes any patent, then
any rights granted to You by such Participant under Sections 2.1(b)
and 2.2(b) are revoked effective as of the date You first made, used,
sold, distributed, or had made, Modifications made by that
Participant.
8.3. If You assert a patent infringement claim against Participant
alleging that such Participant's Contributor Version directly or
indirectly infringes any patent where such claim is resolved (such as
by license or settlement) prior to the initiation of patent
infringement litigation, then the reasonable value of the licenses
granted by such Participant under Sections 2.1 or 2.2 shall be taken
into account in determining the amount or value of any payment or
license.
8.4. In the event of termination under Sections 8.1 or 8.2 above,
all end user license agreements (excluding distributors and resellers)
which have been validly granted by You or any distributor hereunder
prior to termination shall survive termination.
9. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
10. U.S. GOVERNMENT END USERS.
The Covered Code is a "commercial item," as that term is defined in
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
software" and "commercial computer software documentation," as such
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
all U.S. Government End Users acquire Covered Code with only those
rights set forth herein.
11. MISCELLANEOUS.
This License represents the complete agreement concerning subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. This License shall be governed by
California law provisions (except to the extent applicable law, if
any, provides otherwise), excluding its conflict-of-law provisions.
With respect to disputes in which at least one party is a citizen of,
or an entity chartered or registered to do business in the United
States of America, any litigation relating to this License shall be
subject to the jurisdiction of the Federal Courts of the Northern
District of California, with venue lying in Santa Clara County,
California, with the losing party responsible for costs, including
without limitation, court costs and reasonable attorneys' fees and
expenses. The application of the United Nations Convention on
Contracts for the International Sale of Goods is expressly excluded.
Any law or regulation which provides that the language of a contract
shall be construed against the drafter shall not apply to this
License.
12. RESPONSIBILITY FOR CLAIMS.
As between Initial Developer and the Contributors, each party is
responsible for claims and damages arising, directly or indirectly,
out of its utilization of rights under this License and You agree to
work with Initial Developer and Contributors to distribute such
responsibility on an equitable basis. Nothing herein is intended or
shall be deemed to constitute any admission of liability.
13. MULTIPLE-LICENSED CODE.
Initial Developer may designate portions of the Covered Code as
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
Developer permits you to utilize portions of the Covered Code under
Your choice of the NPL or the alternative licenses, if any, specified
by the Initial Developer in the file described in Exhibit A.
EXHIBIT A -Mozilla Public License.
``The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is ______________________________________.
The Initial Developer of the Original Code is ________________________.
Portions created by ______________________ are Copyright (C) ______
_______________________. All Rights Reserved.
Contributor(s): ______________________________________.
Alternatively, the contents of this file may be used under the terms
of the _____ license (the "[___] License"), in which case the
provisions of [______] License are applicable instead of those
above. If you wish to allow use of your version of this file only
under the terms of the [____] License and not to allow others to use
your version of this file under the MPL, indicate your decision by
deleting the provisions above and replace them with the notice and
other provisions required by the [___] License. If you do not delete
the provisions above, a recipient may use your version of this file
under either the MPL or the [___] License."
[NOTE: The text of this Exhibit A may differ slightly from the text of
the notices in the Source Code files of the Original Code. You should
use the text of this Exhibit A rather than the text found in the
Original Code Source Code for Your Modifications.]
3p-libhunspell-main/hunspell/ChangeLog 0000664 0000000 0000000 00000255546 14366026630 0020274 0 ustar 00root root 0000000 0000000 2016-04-29 Caolán McNamara :
* deprecate old api and add new one
old one remains implemented in terms of new one
and will eventually be removed
* shrink exposed api down to just hunspell.hxx
* next major release is likely to require C++11
2016-04-15 Caolán McNamara :
* generally using std::string and std::vector internally
2016-04-13 Caolán McNamara :
* gh#371 drop experimental code
2015-09-11 Caolán McNamara :
* rhbz#1261421 crash on mashing hangul korean keyboard
2014-12-03 Németh László :
* tools/hunspell.cxx: security fixes of the Hunspell executable
- secure file name handling, the problem (checking
OpenDocument files with malicious file names)
reported by Eric Sesterhenn
- using tmpnam() only with system("mkdir tempname && ...")
2014-10-17 Caolán McNamara :
* sf#245 Feature from Anish Patil -S mode
to show suggestions for completion of
correctly spelled words
* sf#248 Fix manpage about how to include
2014-10-16 Caolán McNamara :
* rhbz#915448, sf#57, sf#185 report character offset
and not byte offset in ispell mode
* sf#56 segv in experimental mode
* sf#228 don't translate init string
2014-09-22 Németh László :
* fix crash in morphological analysis of the Hungarian
compound word 'művészegyéniség', reported by Gáspár Sinai
2014-08-26 Németh László :
* unmunch separates flags of prefixes from the word,
bug reported by Daniel Naber
2014-08-05 Németh László :
* moz#318040 Mozzilla accepts abbreviations without dots
* myfopen(): add _wfullpath to expand relative parts of absolute paths
2014-07-16 Caolán McNamara :
* moz#675553 Switch from PRBool to bool
* moz#690892 replace PR_TRUE/PR_FALSE with true/false
* Silence the warning about empty while body loop in clang
* moz#777292 Make nsresult an enum
* moz#579517 Use stdint types in gecko
* moz#784776 consistently use FLAG_NULL
* moz#927728 Convert PRUnichar to char16_t
* moz#943268 Remove nsCharsetAlias and nsCharsetConverterManager
* Don't include config.h in license.hunspell if MOZILLA_CLIENT is set
2014-06-26 Caolán McNamara :
* clang scan-build: Allocator sizeof operand mismatch
* clang scan-build: other low hanging warnings
* clang scan-build: significant warnings
2014-06-02 Németh László :
* escape spaces in paths of ODF files
2014-05-28 Németh László :
* add long path/Unicode path support in WIN32 environment:
- hunspell#233 (reported by mahak gark) and LibreOffice fdo#48017
* flat ODF support, eg.:
hunspell doc.fodt
cat doc.fodt | hunspell -l -O
* new options:
- -X (XML) input format
- -O (ODF or flat ODF) input format
- --check-apostrophe: check and force Unicode apostrophe usage
(ASCII or Unicode apostrophe has to be in the
WORDCHARS section of the affix file)
* fix ODF support:
- break 1-line XML of ODT documents at , too,
not only at (limiting tokenization problems, when
fgets stops within an XML tag)
- show ODF file path on the UI instead of the temporary file
* fix XML support:
- ', ", &, < and > in replacements converted to XML entities
- recognize &apos at tokenization, depending from WORDCHARS
- ' in tokens converted to ' before spell checking and
in the output of the pipe interface
* better apostrophe usage:
- WORDCHARS only with one of the Unicode or ASCII apostrophe
results extended word tokenization: both of them will be part of
the words (if they are inside: eg. word's, but not words').
- convert Unicode apostrophes to ASCII ones for 8-bit dictionaries
(eg. English dictionaries), or for UTF-8 dictionaries only
with ASCII apostrophe supports (eg. French dictionaries).
* updated manual:
- hunspell.4 renamed to hunspell.5, see
hunspell#241 reported by Cristopher Yeleighton
- updated translations
- note about long/Unicode paths in WIN32 (hunspell.3)
2014-04-25 Németh László :
* OpenDocument support, eg.
hunspell *.odt
hunspell -l *.odt
* always load default personal dictionary (fix
filtering bad words - reduce this word list - using
it as a personal dictionary workflow)
* fix parsing/URL recognition problem (bad tokens
with aposthrophes)
2013-07-25 pchang9@cs.wisc.edu
* moz#897255 Wasted work in line_uniq
* moz#897780 Wasted work in SuggestMgr::twowords
2013-07-25 Caolán McNamara :
* hunspell#167 layout problems with long lines
- based on the original fix by xorho
adapted to HEAD
* rhbz#925562 upgrade config.guess for aarch64
2013-07-24 pchang9@cs.wisc.edu
* moz#896301 Wasted work in SfxEntry::checkword
* moz#896844 Wasted work in AffixMgr::defcpd_check
2013-06-13 Konstantin Khlebniko
* #49 HashMgr::add_word computes wrong size for struct hentry
2013-06-13 Ville Skyttä
* #53 Man page syntax fixes
2013-04-19 John Thomson
* win_api: add remove() of Hunspell API (hun#3606435)
2013-04-19 Rouslan Solomokhin
* fix crash in suggestions for 99-character long words
by extending arrays of SuggestMgr::forgotchar_*
(hun#3595024, also http://crbug.com/130128),
thanks to also Paweł Hajdan to report the patch
2013-04-01 Caolán McNamara :
* hunspell: -Werror=undef
2013-03-13 Caolán McNamara :
* rhbz#918938 crash in interaction with danish thesaurus
2012-09-18 Németh László :
* src/hunspell/affixmgr.*: - fix morphological analysis of
compound words (hun#3544994, reported by Dávid Nemeskey, fdo#55045)
2012-06-29 Caolán McNamara :
* fix various coverity warnings
2012-01-10 Ehsan Akhgari
* moz#710940 Firefox Crash [@ AffixMgr::parse_file(char const*, char
const*) ]
2011-12-16 Jared Wein
* moz#710967 Incorrect argument passed to strncmp in
AffixMgr::parse_convtable
2011-12-06 Caolán McNamara :
* rhbz#759647 fixed tempname of hunSPELL.bak collides with other users
when multiple edits in one dir
2011-10-13 Caolán McNamara :
* moz#694002 crash in hunspell affixmgr on exit with bad .aff
* leak in hunspell affixmgr with bad .aff
2011-09-19 Caolán McNamara :
* make libparsers.a not installed thanks to Tomáš Chvátal
2011-06-23 Caolán McNamara :
* fix some windows compiler warnings
2011-05-24 Németh László :
* src/hunspell/affixmgr.*: allow twofold suffixes in compounds
by extended version of Arno Teigseth's patch, see hun#3288562.
- new option for this feature: COMPOUNDMORESUFFIXES
2011-02-16 Németh László :
* src/*/Makefile.am: fix library versioning, the probem reported by
Rene Engerhald and Simon Brouwer.
* man/hunspell.4: new version based on the revised version of Ruud Baars
2011-02-02 Németh László :
* suggestngr.cxx: fix ngram PHONE suggestion for input words with
diacritics using UTF-8 encoded dictionaries (add byte length to the
8-bit phonet() argument instead of character length)
* suggestmgr.cxx: fix missing csconv problem with UTF-8 encoding
dictionares, when the input contains non-BMP characters
- tests/utf8_nonbmp.sug: test file
* suggestmgr.cxx: mixed and keyboard based character suggestions
don't forbid ngram suggestion search (optimized tests/suggestiontest)
* affixmgr.cxx: fix hun#2999225: interfering compounding mechanisms,
tested on Dutch word list and reported by Ruud Baars
* affixmgr.cxx: allomorph fix for hun#2970240 (Hungarian
compound "vadász+gép" was analyzed as vad+ász+gép, and rejected
by the ss->s rep rule (verb "vadássz"), but the analysis
didn't continue for the longer word parts (vadász+gép).
* csutil.cxx: add lang code "az_AZ", "hu_HU", "tr_TR" for back
compatibility (fixing Azeri and Turkish casing conversion, also
Hungarian compound handling)
* affixmgr.cxx: fix morphological analysis
2011-01-26 Németh László :
* affixmgr.cxx: fix for moz#626195 (memcheck problem with FULLSTRIP).
* affixmgr.*, suggestmgr.cxx: FORBIDWARN parameter (see manual)
2011-01-24 Németh László :
* suffixmgr.cxx: fix bad suggestion of forbidden compound words, eg.
"termijndoel" with the Dutch dictionary. Reported by Ruud Baars.
* latexparser.cxx: fix double apostrophe TeX quoation mark tokenization
(hun#3119776), reported by Wybodekker at SF.net.
* tests/suggestiontest/*: multilanguage and single Hunspell version, see README
* tests/suggestiontest/prepare2: for make -f Makefile.orig single
2011-01-22 Németh László :
* affixmgr.*, suggestmgr.*: new features
ONLYMAXDIFF: remove all bad ngram suggestions (default mode keeps one)
NONGRAMSUGGEST: similar to NOSUGGEST, but it forbids to use the word
in ngram based (more, than 1-character distance) suggestions.
2011-01-21 Németh László :
* suggestmgr.*: limit wild suggestions (hun#2970237 by Ruud Baars)
- limited compound word suggestions
- improved and limited ngram based suggestions
* tests/*.sug: modified test files
- feature MAXCPDSUGS:
MAXCPDSUGS 0 : no compound suggestion, suggested by
Finn Gruwier Larsen in hunfeat#2836033
MAXCPDSUGS n : max. ~n compound suggestions
- feature MAXDIFF: differency limit for ngram suggestions: 0-10
eg. MAXDIFF 5: normal (default) limit
MAXDIFF 0: only one ngram suggestion
MAXDIFF 10: ~maxngramsugs ngram suggestions
* affixmgr.*, hunspell.*: add flag FORCEUCASE (hun#2999228), force
capitalization of compound words, see Hunspell 4 manual),
suggested by Ruud Baars
test/forceucase.*: test files
* affixmgr.*, hunspell.*: add flag WARN (hun#1808861), optional warning feature
for rare words, suggested by Ruud Baars
tests/warn: test files
* tools/hunspell.cxx: add option -r for optional filtering of rare words
* affixmgr.cxx: fix hun#3161359 (gcc warnings) reported by Ryan VanderMeulen.
2011-01-17 Németh László :
* suggestmgr.cxx: fix hun#3158994 and hun#3159027 (missing csconv table
using awkward 8bit capitalization of UTF-8 encoded dictionary words with PHONE
suggestion, reported by benjarobin and dicollecte at SF.net).
2011-01-13 Németh László :
* affixmgr.cxx: ONLYINCOMPOUND fix for hun#2999224 (fogemorphene
was allowed in end position of compoundings). Reported by Ruud Baars.
* tests/onlyincompound2.*: test files
2011-01-10 Ingo H. de Boer :
* win_api/{hunspell,libhunspell, testparser}.vcproj: updated project
files for the library and the executables. Compiling problem
also reported by Don Walker.
2011-01-06 Németh László :
* 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 :
* moz#620626 NS_UNICHARUTIL_CID doesn't support
case conversion
2011-01-03 Németh László :
* NEWS and THANKS: update for release 1.2.13
2010-12-20 Németh László :
* affixmgr.cxx: hun#3140784
2010-12-16 Németh László :
* 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: interfering compounding mechanisms, reported by Ruud Baars
2010-12-11 Németh László :
* 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 :
* moz#617953 fix leak
2010-11-08 Caolán McNamara :
* rhbz#650503 crash in arabic dictionary
2010-11-05 Caolán McNamara :
* rhbz#648740 don't warn on empty flagvector
2010-11-03 Caolán McNamara :
* logically we shouldn't need a csconv table in utf-8 mode
2010-10-27 Németh László :
* 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 :
* 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ó :
* 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 :
* moz#583582 fix double buffer gcc fortify issue
2010-08-13 Caolán McNamara :
* 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 :
* hun#3022860 fix remove duplicate code
2010-07-17 Caolán McNamara :
* 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 :
* hun#2286060 add Hangul syllables to unicode tables
2010-06-26 Caolán McNamara :
* moz#571728 keep new[]/delete[] wrappers in sync for embedded in moz
case
2010-06-13 Caolán McNamara :
* moz#571728 keep new[]/delete[] wrappers in sync for embedded in moz
case
2010-06-02 Caolán McNamara :
* moz#569611 compile cleanly under win64
2010-05-22 Caolán McNamara :
* moz#525581 apply mozilla's current preferred get_current_cs impl
2010-05-17 Németh László :
* affixmgr.cxx: fix bad limitation of parenthesized flags at
COMPOUNDRULEs. Windows crash reported by Ruud Baars and Simon Brouwer.
2010-05-05 Caolán McNamara :
* rhbz#589326 malloc of int that should have been of char**
* hun#2997388 fix ironic misspellings
2010-04-28 Caolán McNamara :
* moz#550942 get_xml_list doesn't handle failure from get_xml_par
2010-04-27 Caolán McNamara :
* moz#465612 mozilla-specific code leaks
* moz#430900 phone is dereferenced before oom check
* moz#418348 ckey_utf alloc is used unchecked in SuggestMgr::badcharkey_utf
* CID#1487 pointer "rl" dereferenced before NULL check
* CID#1464 Returned without freeing storage "ptr"
* CID#1459 Avoid duplicate strchr
* CID#1443 Avoid any chance of dereferencing *slst
* CID#1442 Unsafe to have a null morph
* CID#1440 Avoid null filenames
* CID#1302 Dereferencing NULL value "apostrophe"
* CID#1441 Avoid deferencing null ppfx
2010-04-16 Caolán McNamara :
* hun#2344123 fix U)ncap in utf-8 locale
* fix up hunspell text UI and lines wider than terminal
2010-04-15 Caolán McNamara :
* hun#2613701 fix small leak in FileMgr::FileMgr
* fix small leak in tools/hunspell
* hun#2871300 avoid crash if def and words are NULL
* hun#2904479 fix length of hzip file
* hun#2986756 mingw build fix
* hun#2986756 fix double-free
* hun#2059896 fix crash in interactive mode without nls
* hun#2917914 add some extra words to the latexparser
* make some structs static
* C-api has duped symbol names
* regenerate gettext/intl with recent version
* hun#2796772 build a .dll under MinGW
* rhbz#502387 allow cross-compiling for MinGW target
* hun#2467643 update .vcproj files to include replist.?xx
* unify visiblity/dll_export support across platforms
* hun#2831289 sizeof(short) typo
* hun#2986756 add -u3 gcc style output
2010-04-14 Caolán McNamara :
* hun#2813804 fix segfault on hu_HU stemming
2010-04-13 Caolán McNamara :
* hun#2806689 fix ironic misspellings
* hun#2836240 add Italian translations
2010-04-09 Caolán McNamara :
* fix titchy possible leak in command-line spellchecker
2010-04-07 Caolán McNamara :
* hun#2973827 apply win64 patch
* hun#2005643 fix broken mystrdup
2010-03-04 Caolán McNamara :
* ooo#107768 fix crash in long strings in spellml mode
* hun#1999737 add some malloc checks
* hun#1999769 drop old buffer on realloc failure
* hun#2005643 tidy string functions
* hun#2005643 micro-opt
* hun#2006077 free strings on failed dict parse
* hun#2110783 ispell-alike verbose mode implementation
2010-03-03 Németh László :
* hunspell/(affixmgr, suggestmgr).cxx: add character sequence
support for MAP suggestion, using parenthesized character groups
in the syntax, eg. MAP ß(ss).
* man/hunspell.4, tests/map*: documentation and test files
2010-02-25 Németh László :
* hunspell/hunspell.cxx: add recursion limit for BREAK (fix OOo Issue 106267)
* hunspell/hunspell.cxx: fix crash in morphological analysis of
capitalized words with ending dashes
* affixmgr.cxx: fix morphological analysis of long numbers combined with dash,
eg. 45-00000045 (reported by a@freeblog.hu).
2010-02-23 Caolán McNamara :
* hun#2314461 improve ispell-alike mode
* hun#2784983 improve default language detection
* hun#2812045 fix some compiler warnings
* hun#2910695 survive missing HOME dir
* hun#2934195 fix suggestmgr crash
* hun#2921129 remove unused variables
* hun#2826164 make sure make check uses the in-tree libhunspell
* bump toolchain to support --disable-rpath
* hun#2843984 fix coverity warning
* hun#2843986 fix coverity warning
* hun#2077630 add iconv lib
* make gcc strict-aliasing warning free
* make cppcheck warning free
2008-11-01 Németh László :
* replist.*, hunspell.cxx, affixmgr.cxx: new input and output
conversion support, see ICONV and OCONV keywords in the Hunspell(4)
manual page and the test examples. The input/output conversion
problem of syllabic languages reported by Daniel Yacob and
Shewangizaw Gulilat.
- tests/{iconv,oconv}.*: test examples
* tools/wordforms: word generation script for dictionary developers
(Hunspell version of the unmunch program)
* hunspell/hunspell.cxx: extended BREAK feature: ^ and $ mean in break
patterns the beginning and end of the word.
- tests/BREAK.*: modified examples.
* hunspell/hunspell.cxx: set default break at hyphen characters.
The associated problem reported by S Page in Hunspell Bug 2174061.
See Mozilla Bug ID 355178 and OOo Issue 64400, too.
- tests/breakdefault.*: test data
The following definition is equivalent of the default word break:
BREAK 3
BREAK -
BREAK ^-
BREAK -$
* affixmgr.cxx: SIMPLIFIEDTRIPLE is a new affix file keyword to allow
simplified forms of the compound words with triple repeating letters.
It is useful for Swedish and Norwegian languages.
* affixmgr.cxx: extend CHECKCOMPOUNDPATTERN to support
alternations of compound words for example by sandhi
feature of Indian and other languages. The problem reported
by Kiran Chittella associated with Telugu writing system
(see Telugu example in tests/checkcompoundpattern4.test).
The new optional field of CHECKCOMPOUNDPATTERN definition is the
replacement of the compound boundary defined by the previous fields:
CHECKCOMPOUNDPATTERN ff f ff
means ff|f compound boundary has been replaced by "ff", like in
the (prereform) German Schiffahrt (Schiff+fahrt).
- CHECKCOMPOUNDPATTERN supports also optional flag conditions now:
CHECKCOMPOUNDPATTERN ff/A f/B ff
means that the first word of the compound needs flag "A" and
the second word of the compound needs flag "B" to the operation.
* tools/hunspell.cxx: add empty lines as separators to the output of
the stemming and morphological analysis.
* affixmgr.cxx: fix condition checking algorithm. Bad suggestion
generation reported by Mehmet Akin in SF.net Bug 2124186 with help of
Eleonora Goldman.
* affixmgr,cxx: fix COMPOUNDWORDMAX feature. The problem and its
code details reported by Göran Andersson under SF.net Bug ID 2138001.
* csutil.cxx: fix bad conditional code for Mozilla compilation.
Patch by Serge Gautherie. The problem reported by Ryan VanderMeulen.
* hunspell/hunspell.cxx: add missing ngram suggestion for HUHINITCAP
(capitalized mixed case) words.
* w_char.hxx: use GCC conditions for GCC related code. Patch by
Ryan VanderMeulen.
* affixmgr.cxx: check morphological description in morphgen()
(fix potential program fault by incomplete morphological
description of affix rules)
* src/win_api: config.h: switch on warning messages on Windows
* tools/affixcompress: extended help for -h (use LC_ALL=C sort
for input word list)
* man/hunspell.4: updated manual:
- new and modified features (SIMPLIFIEDTRIPLE, ICONV, OCONV,
BREAK, CHECKCOMPOUNDPATTERN).
- note about costs of zero affixes, suggested by Olivier Ronez.
* hunspell/hunspell.cxx: remove deprecated word breaking codes.
2008-08-15 Németh László :
* affentry.cxx: add FULLSTRIP option. With FULLSTRIP, affix rules can
strip full words, not only one less characters. Suggested by
Davide Prina and other developers in OOo Issue 80145.
* tests/fullstrip.*: Test data based on Davide Prina's example.
* tools/unmunch.cxx: modified for FULLSTRIP.
* affixmgr.cxx: COMPOUNDRULE now works with long and numerical flag
types by parenthesized flags. Syntax: (flag)*, (flag)(flag)?(flag)*.
* tests/compoundrule[78].*: tests with parenthesized COMPOUNDRULE
definitions.
* suggestmgr.cxx: modified badchar*(), forgotchar*() and extrachar*()
1-character distance suggestion algorithms: search a TRY character
in all position instead of all TRY characters in a character position
(it can give more readable suggestion order, also better suggestions
in the first positions, when TRY characters are sorted by frequency.)
For example, suggestions for "moze":
ooze, doze, Roze, maze, more etc. (Hunspell 1.2.6),
maze, more, mote, ooze, mole etc. (Hunspell 1.2.7).
* suggestmgr.cxx: extended compound word checking for better COMPOUNDRULE
related suggestions, for example English ordinal numbers: 121323th ->
121323rd (it needs also a th->rd REP definition).
* phonet.cxx: cast unsigned char parameter of isdigit() and fix
isalpha by myisalpha() (potential problems in Windows environment).
Reported by Thomas Lange in OOo Issue 92736.
* hunspell/csutil.*,hunspell/{affentry,affixmgr,hunspell,suggestmgr}.cxx:
fix potential buffer overloading under morphological analysis by the
new mystrcat() function. Reported by Molnár Andor (dolhpy at true
dot hu) in SF.net Bug 2026203.
* affixmgr.cxx: add recursion limit to defcpd(). Fix OOo Issue 76067:
crash-like deceleration by checking hexadecimal numbers with long FFF
sequence (combinatory explosion by the en_US words "f" and "ff").
Missing fix reported by Mathias Bauer.
* affixmgr.cxx: fix the difference in the Unicode and non-Unicode
parts of cpdcase_check(). Bug report by Brett Wilson.
* filemgr.*, affixmgr.cxx, csutil.*, hashmgr.*: warning messages now
contain line numbers (use --with-warnings configure option for
warning messages).
* hunspell.cxx: analyze(): fix case conversion of stemming and
morphological analysis of UTF-8 encoded input. Reported by Ferenc Godó.
* tools/hunspell.cxx: fix LaTeX Unicode support in filter mode.
Reported by Jan Seeger in SF.net Bug 2039990.
* affixmgr.hxx: 0.5 or in 64 bit environment, 1 MB (virtual) memory
saving using only the requested size for sFlag and pFlag arrays.
Bug report by Brett Wilson.
* affixmgr.cxx,tools/hunspell.cxx: get_version() returns with full
VERSION affix parameter instead of its first word. Fixes for
Hunspell's header. Some problems with Hunspell header reported in
SF.net Bug 2043080.
2008-07-15 Németh László :
* affentry.cxx: fixes of the affix rule matching algorithm (affected
only the sk_SK dictionary from all OpenOffice.org dictionaries):
- fix dot pattern + accented letters matching (in non Unicode encoding)
- word-length conditions work again
* tests/condition.*: extended test for the fix.
* hashmgr.cxx: load multiword expressions: spaces may be parts
of the dictionary words again (but spaces also work as morphological
field separators: word word2 -> "word word2", word po:noun -> "word").
* man/hunspell.4: updated manual
* tools/hunspell.cxx: add iconv character conversion support to
stemming and morphological analysis
* tools/hunspell.cxx: add /usr/share/myspell/dicts search path for
Ubuntu support
2008-07-09 Németh László :
* affentry.cxx: fixes of the affix rule matching algorithm:
- right ASCII character handling in bracket expression;
- fault-tolerant nextchar() for bad rules.
Problem with the en_GB dictionary and nextchar() with a detailed
code analysis reported by John Winters in SF.net Bug ID 2012753.
* tests/condition.*: extended test for the fix.
* hunspell/hunspell.*, parsers/*, tools/hunspell.cxx: fix compiler
warnings (deprecated const-free char consts)
* win_api/hunspelldll.*: add hunspell_free_list(), the problem
reported by Laurier Mercer.
2008-06-30 Török László :
* tests/affixmgr.cxx: fix morphological analysis: strcat() on
an uninitialized char array in suffix_check_morph().
2008-06-18 Németh László :
* src/hunspell/affixmgr.cxx: fix GCC compiler warnings
(comparisons with string literal results in unspecified behaviour).
The problem reported by Ladislav Michnovič.
2008-06-17 Németh László :
* src/hunspell/{hunspell.cxx,hunspell.h}: add free_list() to the C and
C++ interface to deallocate suggestion lists. The problem
reported by Laurie Mercer and Christophe Paris.
* csutil.cxx: fix freelist() to deallocate non-NULL list, when n = 0.
* tools/{analyze,example,chmorph,hunspell}.cxx: use free_list().
* tools/hunspell.cxx: fix only --with-readline compiling problem.
Reported by Volkov Peter in SF.net Bug 1995842.
* man/hunspell.3,hunspell.hxx: fix analyze and generate examples in
the manual and comments (using char*** parameter instead of char**).
* tools/example.cxx: fix suggestion example.
2008-06-17 Németh László :
* affentry.cxx: fix the new affix rule matching algorithm of
Hunspell 1.2. Arabic dictionary problem reported by Khaled Hosny
in SF.net Bug ID 1975530. Mohamed Kebdani also sent a
prepared test data.
* tests/{1975530,condition*}: tests for the fix
2008-06-13 Ingo H. de Boer :
* src/hunspell/{affixmgr.cxx,hunspell.cxx}: add missing type
cast to strstr() calls for VC8 compatibility.
2008-06-13 Németh László :
* suggestmgr.cxx: add also part1-part2 suggestion with dash
for bad part1part2 word forms, suggested by Ruud Baars.
For example, now suggestion of "parttime": "part time"
and "part-time".
NOTE: this feature will work only when the TRY definition
contains "-" or the letter "a".
* hunspell.cxx: new XML API in spell() and suggest() (see hunspell(3)).
* src/hunspell/*: fixes for OpenOffice.org build environment.
* man/{hunspell.3,hzip.1,hunzip.1}: add new manual pages for
Hunspell programming API and dictionary compression and
encryption utilities.
* src/hunspell/*: handle failed mystrdup() calls and other potential
insufficient memory problems. The problem reported by Elio Voci
in OpenOffice.org Issue 90604 and others.
* src/tools/affixmgr.cxx: restore original behaviour of get_wordchars
without conditional code. Problem reported by Ingo H. de Boer
in SF.net Bug 1763105.
* win_api/hunspelldll.h: put_word() renamed to add() in the (old)
Windows DLL API bug reported in SF.net Bug 1943236. Also reported
by Bartkó Zoltán.
* tools/hunspell.cxx: fix chench() for environments without
native language support (ENABLE_NLS 0 in config.h),
PHP system_exec() bug reported by Michel Weimerskirch in
SF.net Bug 1951087.
* hunspell.cxx, affixmgr.cxx: remove "result" from the
(result && *result) conditions, when "result" is a static variable.
The problem and a possible solution reported by Ladislav Michnovič.
* affixmgr.cxx: parse_affix(): print line instead of NULL in
the warning message, when affix class header is bad.
The problem reported by Ladislav Michnovič.
2008-06-01 Christian Lohmaier
* configure.ac: patch to fix --with-readline, --with-ui logic.
Reported in the SF.net Bug 981395.
2008-05-04: Volkov Peter
* configure.ac: fix LibTool 2.22 incompatibility by removing
unused LT_* macros. Report and patch in SF.net Bug 1957383.
The problem reported and fixed by Ladislav Michnovič, too.
2008-04-23: Ladislav Michnovič
* hunspell.pc.in: fix wrongly set directories.
2008-04-12 Németh László :
* src/tools/hunspell.cxx:
- Multilingual spell checking and special dictionary support with -d.
Multilingual spell checking suggested by Khaled Hosny (SF.net
Bug 1834280). Example for the new syntax:
-d en_US,en_geo,en_med,de_DE,de_med
en_US and de_DE are base dictionaries, and en_geo, en_med, de_med
are special dictionaries (dictionaries without affix file).
Special dictionaries are optional extension of the base dictionaries.
There is no explicit naming convention for special dictionaries,
only the ".dic" extension: dictionaries without affix file will
be an extension of the preceding base dictionary. First dictionary
in -d parameter must have an affix file (it must be a base
dictionary).
- new options for debugging, morphological analysis and stemming:
-m: morphological analysis or flag debug mode (without affix
rule data it signs the flag of the affix rules)
-s: stemming mode
-D: show also available dictionaries and search path
(suggested by Aaron Digulla in SF.net Bug 1902133)
- add missing refresh() to print bad words before the slower suggestion
search in UI (better user experience)
- fix tabulator problems (reported by ugli-kid-joe AT sf DOT net)
- fix different encoding of dic and input, and suggestions
- add per mille sign to LANG hu_HU section.
- rewrite program messages. Concatenating multiple printfs for
easier translation suggested by András Tímár and Gábor Kelemen.
* src/hunspell/csutil.cxx: set static encds variable. Patch by
Rene Engerhald. SF.net Bug 1896207 and 1939988.
* src/hunspell/w_char.hxx,csutil.hxx: reorganizing
w_char typedef and HENTRY_DATA, HENTRY_FIND consts
* src/hunspell/hunzip.cxx: fopen(): using rb options instead of r (fix
for Windows)
* src/tools/affixmgr.cxx: restore original behaviour of get_wordchars
in an #ifdef WINSHELL section. Problem reported by Ingo H. de Boer
in SF.net Bug 1763105.
* src/tools/chmorph.cxx: remove the experimental modifications
* src/tools/hzip.c: fopen(): using wb options instead of w (fix
for Windows)
* src/tools/hunzip.cxx: add missing MOZILLA_CLIENT. Reported
by Ryan VanderMeulen.
* man/*, man/hu/*: updated manual
* man/hunspell.4: fix formatting problem (missing header)
* tools/makealias: now works with the extra data fields.
* phonet.cxx: use HASHSIZE const
* tests/rep.aff: fix REP count
* src/win_api/Makefile.cygwin, README: native Windows compilation
in Cygwin environment without cygwin1.dll dependency (see README
for compiling instructions).
2008-04-08 Roland Smith :
* src/parsers/latexparser.cxx: fix PATTERN_LEN for AMD64 and
other platforms with different struct padding (SF.net Bug 1937995).
2008-04-03 Kelemen Gábor :
* po/POTFILES.in: fix path of the source file
* po/Makevars: add --from-code=UTF-8 gettext option
* hunspell.cxx: add comments for shortkey translation
2008-02-04 Flemming Frandsen
* src/hunspell.h: fix Windows DLL support
- this patch also reported by Zoltán Bartkó.
2008-01-30 Mark McClain
* src/hunspell.cxx: stem(): fix function call side effect
for PPC platform (SF.net Bug 1882105).
2008-01-30 Németh László :
* hunspell.cxx, csutil.cxx, hunspelldll.c: fix
SF.et Bug 1851246, patch also by Ingo H. de Boer.
* hunspell.h: fix SF.net Bug 1856572 (C prototype problem),
patch by Mark de Does.
* hunspell.pc.in: fix SF.net Bug 1857450 wrong prefix, reported
by Mark de Does.
* hunspell.pc.in: reset numbering scheme: libhunspell-1.2.
Fix SF.net Bug 1857512 reported by Mark de Does,
also by Rene Engelhard.
* csutil.cxx: patches for ARM platform, signed_chars.dpatch
by Rene Engelhard and arm_structure_alignment.dpatch by
Steinar H. Gunderson
* hunzip.*, hzip.c: new hzip compression format
* tools/affixcompressor: affix compressor utility (similar to
munch, but it generates affix table automatically), works
with million-words dictionaries of agglutinative languages.
* README: fix problems reported by Pham Ngoc Khanh.
* csutil.cxx, suggestmgr: Warning-free in OOo builds.
* hashmgr.*, csutil.*: fix protected memory problems with
stored pointers on several not x86 platforms by
store_pointer(), get_stored_pointer().
* src/tools/hunspell.cxx: fix iconv support on Solaris platform.
* tests/IJ.good: add missing test file
* csutil.cxx: fix const char* related errors. Compiling bug
with Visual C++ reported by Ryan VanderMeulen and Ingo H. de Boer.
2008-01-03 Caolan McNamara :
* csutil.cxx: SF.net Bug 1863239, notrailingcomma patch and
optimization of get_currect_cs().
2007-11-01 Németh László :
* hunspell/*: new feature: morphological generation,
also fix experimental morphological analysis and stemming.
- new API functions and improved API:
- analyze(word): (instead of morph()) morphological analysis
- stem(word): stemming
- stem(list): stemming based on the result of an analysis
- generate(word, word2): morphological generation
- generate(word, list): morphological generation
- add(word): add word to the run-time dictionary (renamed put_word())
- add_with_affix(word, word2): (renamed put_word_pattern()):
add word to the run-time dictionary with affix flags of the
second parameter: all affixed forms of the user words will be
recognised by the spell checker. Especially useful for
agglutinative languages.
- remove(word): remove word from the run-time dictionary (not
implemented)
- see manual and hunspell/hunspell.hxx header and tests/morph.*
* tests/morph.*: test data, example for morphological analysis,
stemming and generation
* tools/analyze, tools/chmorph: extended and new demo applications:
- analyze (originally hunmorph): analyses and stems input words,
generates word forms from input word pairs.
- chmorph: morphological transformation filter
* configure.ac, hunspell/makefile.am: set library version number.
Bug reported by Rene Engelhard.
* affentry.cxx, affixmgr.cxx: new pattern matching algorithm in
condition checking of affix rules instead of the Dömölki-algorithm:
- Unlimited condition length (instead of max. 8 characters).
- Less memory consumption, especially useful for affix rich languages:
5,4 MB memory savings with hu_HU dictionary.
- Speed change depends from dictionaries and CPU caches: English spell
checking is 4% faster on Linux words with en_US dictionary, Hungarian
spell checking is 25% slower on most frequent words of Hungarian
Webcorpus.
* tests/sug.*, sugutf.*: updated test data (use "a" and "lot"
dictionary items instead of "a lot".)
* src/hunspell/hunspell.cxx: free(csconv) instead of delete csconv.
Report and patch by Sylvain Paschein in Mozilla Issue 398268.
* suggestmgr.cxx, tools/hunspell.cxx: bad spelling of "misspelled".
Ubuntu Bug #134792, patch by Malcolm Parsons.
* tests/base_utf.*: use Unicode apostrophe instead of 8-bit one.
* hunspell.cxx, hashmgr.cxx: add(): use HashMgr::add()
2007-10-25 Pavel Janík :
* hunspell/csutil.cxx: Fix type cast warnings on 64bit Linux in
printing of character positions in u8_u16(). OOo issue 82984.
2007-09-05 Németh László :
* win_api/Hunspell.vproj, parsers/testparser.cxx,textparser.hxx:
warning fixes and removing unnecessary Windows project file.
Reported by Ingo H. de Boer.
* hashmgr.*, {affixmgr,suggestmgr}.cxx: optimized data structure
for variable-count fields (only "ph" transliteration field in
this version, see next item). Also less memory consumption:
-13% (0.75 MB) with en_US dictionary, -6% (1 MB) with hu_HU.
* suggestmgr.cxx: dictionary based phonetic suggestion for special
or foreign pronounciation (see also rule-based PHONE in manual).
Usage: tab separated field in dictionary lines, started with "ph:".
The field contains a phonetic transliteration of the word:
Marseille ph:maarsayl
* tests/phone.*: test data for dictionary and rule based phonetic
suggestion.
* hunspell.cxx: fix potential bad memory access in allcap word
capitalization in suggest() (bug of previous version).
* hunspell.cxx, atypes.hxx: set correct limit for UTF-8 encoded
input words (256 byte).
* suggestmgr.cxx: improved REP suggestions with spaces: it works
without dictionary modification.
OOo issue 80147, reported by Davide Prina.
* tests/rep.*: new test data: higher priority for "alot" -> "a lot",
and Italian suggestion "un'alunno" -> "un alunno".
* affixmgr.cxx: fix Unicode ngram suggestions in expand_rootword().
(Suggestions with bad affixes.)
Bug reported by Vitaly Piryatinksy .
* tests/ngram_utf_fix.*: test based on Vitaly Piryatinksy's data.
* suggestmgr.cxx: fix twowords() for last UTF-8 multibyte character.
(conditional jump or move depended on uninitialised value).
2007-08-29 Ingo H. de Boer :
* win_api/{hunspell,libhunspell, testparser}.vcproj: new project
files for the library and the executables.
* Hunspell.rc, Hunspell.sln, config.h: updated versions.
Version number problem also reported by András Tímár.
2007-08-27 Németh László :
* suggestmgr.hxx: put fixed version. Bug report by Ingo H. de Boer.
* suggestmgr.cxx: remove variable-length local character array
reported by Ingo H. de Boer.
2007-08-27 Németh László :
* suggestmgr.hxx: change bad time_t to clock_t in header, too.
Bug reports or patches by Ingo H. de Boer under SF.net
Bug ID 1781951, János Mohácsi and Gábor Zahemszky, András Tímár,
OMax3 at SF.net under SF.net Bug ID 1781592.
* phonet.*: change variable-length local character array to
portable fixed size character array. Problem reported by
Ingo H. de Boer under SF.net Bug ID 1781951 and
Ryan VanderMeulen.
* suggestmgr.cxx: remove debug message (also by
Ingo H. de Boer).
2007-08-26 Ingo H. de Boer :
* win_api/Hunspell.vcproj: updated version (with phonet.*)
2007-08-23 Németh László :
* phonet.{c,h}xx, suggestmgr.cxx: PHONE parameter:
pronounciation based suggestion using Björn Jacke's original Aspell
phonetic transcription algorithm (http://aspell.net), relicensed
under GPL/LGPL/MPL tri-license with the permission of the author.
Usage: see manual.
* affixmgr,suggestmgr.cxx: add KEY parameter for keyboard and
input method error related suggestions.
Example: KEY qwertyuiop|asdfghjkl|zxcvbnm
* man/hunspell.4: description about PHONE and KEY suggestion parameters.
* suggestmgr.cxx: enhancements for better suggestions:
- Set ngram suggestions for badchar-type errors
and only two word and compound word suggestions, too.
- Separate not compound and compound word
suggestions for MAP suggestion, too.
- Double swap suggestions for short words.
For example: ahev -> have, hwihc -> which.
- Better time limits using clock() instead of time()
(tenths of a second resolution instead of second ones).
- leftcommonsubstring() weigth function.
* htype.hxx, hashmgr.cxx: blen (byte length) and clen (character
length) fields instead of wlen
* affixmgr.cxx: fix get_syllable() for bad Unicode inputs.
* tests/suggestiontest/*: test environment for suggestions
2007-08-07 Martijn Wargers:
* csutil.cxx: fix Mingw build error associated with ToUpper() call.
Report and patch in Mozilla Issue 391447.
2007-08-07 Robert Longson:
* atypes.cxx: use empty inline function HUNSPELL_WARNING instead of
variadic macros to switch of Hunspell warnings.
Reported by Gavin Sharp in Mozilla Issue 391147.
2007-08-05 Ginn Chen:
* hashmgr.cxx: Hunspell failed to compile on OpenSolaris (use stdio
instead of csdio). Report and patch in Mozilla Issue 391040.
2007-07-25 Németh László :
* parsers/*.cxx: Hunspell executable recognises and accepts URLs,
e-mail addresses, directory paths, reported by Jeppe Bundsgaard.
* src/tools/hunspell.cxx: --check-url: new option of Hunspell program.
Use --check-url, if you want check URLs, e-mail addresses and paths.
* parsers/textparser.cxx: strip colon at end of words for Finnish
and Swedish (colon may be in words in Finnish and Swedish).
Problem reported by Lars Aronsson.
* tests/colons_in_words.*: test data
* tests/digits_in_words.*: example for using digits in words
(eg. 1-jährig, 112-jährig etc. in German), reported by Lars Aronsson.
* hashmgr.cxx: Hunspell accepts allcaps forms of mixed case
words of personal dictionaries (+allcaps custom dictionary words with
allcaps affixes).
Sf.net Bug ID 1755272, reported by Ellis Miller.
* hashmgr.cxx: fix small memory leaks with alias compressed
dictionaries (free flag vectors of affixed personal dictionary words
and flag vectors of hidden capitalized forms of mixed case and
allcaps words).
* affixmgr.cxx: fix COMPOUNDRULE checking with affixed compounds.
Sf.net Bug ID 1706659, reported by Björn Jacke. Also fixing for
OOo Issue 76067 (crash-like deceleration for hexadecimal numbers
with long FFFFFF sequence using en_US dictionary).
* tools/hunspell.cxx: add missing return to save_privdic().
* man/hunspell.4: add information about affixation of personal words:
"Personal dictionaries are simple word lists, but with optional
word patterns for affixation, separated by a slash:
foo
Foo/Simpson
In this example, "foo" and "Foo" are personal words, plus Foo
will be recognised with affixes of Simpson (Foo's etc.)."
2007-07-18 Németh László :
* src/win_api/: add missing resource files, reported by Ingo H. de Boer.
2007-07-16 Németh László :
* hunspell.cxx: fix dot removing from UTF-8 encoded words in cleanword2()
(Capitalised words with dots, as "Something." were not recognised
using Unicode encoded dictionaries.)
* tests/{base.*,base_utf.*}: extended and new test files for
dot removing and Unicode support.
* tools/hunspell.cxx: fix Cygwin, OS X compatibility using platform
specifics iconv() header by ICONV_CONST macro of Autoconf.
Sf.net Bug ID 1746030, reported by Mike Tian-Jian Jiang.
Sf.net Bug ID 1753939, reported by Jean-Christophe Helary.
* tools/hunspell.cxx: fix missing global path setting with -d option.
* tests/test.sh: fix broken Valgrind checking (missing warnings
with VALGRIND=memcheck make check).
* csutil.cxx: fix condition in u8_u16() to avoid invalid read
of not null-terminated character arrays (detected by Valgrind
in Hunspell executable: associated with 8-bit character table
conversion in tools/hunspell.cxx).
* csutil.cxx: free_utf_tbl(): use utf_tbl_count-- instead of utf_tbl--.
Memory leak in Hunspell executable detected by Valgrind.
* hashmgr.cxx: add missing free_utf_tbl(), memory leak in Hunspell
executable detected by Valgrind.
* hashmgr.cxx: load_tables(): fix memory error in spec. capitalization.
Use sizeof(unsigned short) instead of bad sizeof(unsigned short*).
Invalid memory read detected by Valgrind.
* hashmgr.cxx: add_word(): fix memory error in spec. capitalization.
Update also affix array length of capitalized homonyms. Invalid
memory read detected by Valgrind.
* hunspell.cxx: suggest(): fix invalid memory write and leak.
Bad realloc() and missing free() detected by Valgrind associated
with suggestions for "something.The" type spelling errors.
* {dictmgr,csutil,hashmgr,suggestmgr}.cxx: check memory allocation.
Sf.net Bug ID 1747507, based on the patch by Jose da Silva.
2007-07-13 Ingo H. de Boer :
* atypes.cxx: fix Visual C compatibility: Using
"HUNSPELL_WARNING(a,b,...} {}" macro instead of empty "X(a,b...)".
* hunspell.cxx: changes for Windows API.
* win_api/Hunspell.*: new resource files
* win_api/hunspelldll.*: set optional Hunspell and Borland spec. codes
Sf.net Bug ID 1753802, patch by Ingo H. de Boer.
See also Sf.net Bug ID 1751406, patch by Mike Tian-Jian Jiang.
2007-07-09 Caolan McNamara :
* {hunspell,hashmgr,affentry}.cxx: fix warnings of Coverity program
analyzer. Sf.net Bug ID, 1750219.
2007-07-06 Németh László :
* atypes.cxx: warning-free swallowing of conditional warning messages
and their parameters using empty HUNSPELL_WARNING(a,b...) macro.
* {affixmgr,atypes,csutil}.cxx: fix unused variable warnings
using WARNVAR macro for conditionally named variables.
* hashmgr.cxx: fix unused variable warning in add_word() by cond. name
* hunspell.cxx: fix shadowed declaration of captype var. in suggest()
2006-06-29 Caolan McNamara :
* hunspell.cxx: patch to fix possible memory leak in analyze() of
experimental morphological analyzer code. Sf.net Bug ID 1745263.
2007-06-29 Németh László :
improvements:
* src/hunspell/hunspell.cxx: check bad capitalisation of Dutch letter IJ.
- Sf.net Feature Request ID 1640985, reported by Frank Fesevur.
- Solution: FORBIDDENWORD for capitalised word forms (need
an improved Dutch dictionary with forbidden words: Ijs/*, etc.).
* tests/IJ.*: test data and example.
* hashmgr.cxx, hunspell.cxx: check capitalization of special word forms
- words with mixed capitalisation: OpenOffice.org - OPENOFFICE.ORG
Sf.net Bug ID 1398550, reported by Dmitri Gabinski.
- allcap words and suffixes: UNICEF's - UNICEF'S
- prefixes with apostrophe and proper names: Sant'Elia - SANT'ELIA
For Catalan, French and Italian languages.
Reported by Davide Prina in OOo Issue 68568.
* tests/allcaps*: tests for OPENOFFICE.ORG, UNICEF'S capitalization.
* tests/i68568*: tests for SANT'ELIA capitalization.
* hunspell/hunspell.cxx: suggestion for missing sentence spacing:
something.The -> something. The
* tools/hunspell.cxx: multiple character encoding support
- -i option: custom input encoding
Sf.net Bug ID 1610866, reported by Thobias Schlemmer.
Sf.net Bug ID 1633413, reported by Dan Kenigsberg.
See also hunspell-1.1.5-encoding.patch of Fedora from Caolan Mc'Namara.
* tests/*.test: add input encodings
* tools/hunspell.cxx: use locale data for default dictionary names.
Sf.net Bug ID 1731630, report and patch from Bernhard Rosenkraenzer,
See also hunspell-1.1.4-defaultdictfromlang.patch of Fedora Linux
from Caolan McNamara.
* tools/hunspell.cxx: fix 8-bit tokenization (letters without
casing, like ß or Hebrew characters now are handled well)
* tools/hunspell.cxx: dictionary search path
- DICPATH environmental variable
- -D option: show directory path of loaded dictionary
- automatic detection of OpenOffice.org directories
fixes:
* affixmgr.cxx: fault-tolerant patch for REP and other affix
table data problems. Problem with Hunspell and en_GB dictionary
reported by Thomas Lange in OOo Issue 76098 and
Stephan Bergmann in OOo Issue 76100.
Sf.net Bug ID 1698240, reported by Ingo H. de Boer.
* csutil.cxx: fix mkallcap_utf() for allcaps suggestion in UTF-8.
* suggestmgr.cxx: fix bad movechar_utf() (missing strlen()).
* hunspell.cxx: fix bad degree sign detection in Unicode
hu_HU environment.
* hunspell/hunspell.cxx: free allocated memory of csconv in
ported Mozilla code.
- Mozilla Bugzilla Bug 383564, report and Mozilla MySpell patch
by Andrew Geul. Reported by Ryan VanderMeulen for Hunspell.
* suggestmgr.cxx: fix minor difference in Unicode suggestion
(ngram suggestion of allcaps words in Unicode).
* hashmgr.cxx: close file handle after errors.
Sf.net Bug ID 1736286, reported by John Nisly.
* configure.ac: syntax error (shell variable with spaces).
Sf.net Bug ID 1731625, reported by Bernhard Rosenkraenzer.
* hunspell.cxx: check_word(): fix bad usage of info pointer.
* hashmgr.cxx: fix de_DE related bug (accept words with leading dash).
Sf.net Bug ID 1696134, reported by Björn Jacke.
* suggestmgr.cxx, tests/1695964.*: fix NEEDAFFIX homonym suggestion.
Sf.net Bug ID 1695964, reported by Björn Jacke.
* tests/1463589*: capitalized ngram suggestion test data for
Sf.net Bug ID 1463589, reported by Frederik Fouvry.
* csutil.cxx, affixmgr.cxx: fix possible heap error with
multiple instances of utf_tbl.
Sf.net Bug ID 1693875, reported by Ingo H. de Boer.
* affixmgr.cxx, suggestmgr.cxx, license.hunspell: convert to ASCII.
Locale dependent compiling problems. Sf.net Bug ID 1694379, reported
by Mike Tian-Jian Jiang. OOo Issue 78018 reported by Thomas Lange.
* tests/test.sh: compatibility issues
- fix Valgrind support (check shared library instead of shell wrapper)
- remove deprecated "tail +2" syntax
- set 8-bit locale for testing (LC_ALL=C)
* hunspell.hxx: remove license.* and config.h dependencies.
- hunspell-1.1.5-badheader.patch from Caolan McNamara
2007-03-21 Németh László :
* tools/Makefile.am, munch.h, unmunch.h: add missing munch.h and unmunch.h
Reported by Björn Jacke and Khaled Hosny (sf.net Bug ID 1684144)
* hunspell/hunspell.cxx, hunspell.hxx: fix --with-ui compliling error (add get_csconv())
Reported by Khaled Hosny (sf.net Bug ID 1685010)
2007-03-19 Németh László :
* csutil.cxx, hunspell/hunspell.cxx: Unicode non BMP area (>65K character range) support
(except conditional patterns and strip characters of affix rules)
* tests/utf8_nonbmp*: test data
* src/hunspell/*: add Mozilla patches from David Einstein
- run-time generated 8-bit character tables
- other Mozilla related changes (see Mozilla Bugzilla Bug 319778)
* csutil.cxx, affixmgr.cxx, hashmgr.cxx: optimized version of IGNORE feature
- IGNORE works with affixes (except strip characters and affix conditions)
* tests/ignore*: test data with latin characters
* tests/ignoreutf*: Unicode test data with Arabic diacritics (Harakat)
* src/hunspell/suggestmgr.cxx: new edit distance suggestion methods
- capitalization: nasa -> NASA
- long swap: permenant -> permanent
- long mov.: Ghandi -> Gandhi
- double two characters: vacacation -> vacation
* tests/sug.*: test data
* src/hunspell/affixmgr.cxx: space in REP strings (alot -> a lot)
Note: Underline character signs the space in REP strings: REP alot a_lot, and
put the expression with space ("a lot") into the dic file (see tests/sug).
* hashmgr.cxx, affixmgr.cxx: ignore Unicode byte order mark (BOM sequence)
* tests/utf8_bom*: test data
* hunspell/*.cxx: OOo Issue 68903 - Make lingucomponent warning-free on wntmsci10
- fix Hunspell related warning messages on Windows platform (except some assignment
within conditional expressions). Reported and started by Stephan Bergmann.
* hunspell/affixmgr.cxx: fix OOo Issue 66683 - hunspell dmake debug=x fails
- Reported by Stephan Bergmann.
* src/hunspell/hunspell.[ch]xx: thread safe API for Hunspell executable
(removing prev*() functions, new spell(word, info, root) function)
* configure.ac, src/hunspell/*: HUNSPELL_EXPERIMENTAL code
--with-experimental configure option (conditional compiling of morphological analyser
and stemmer tools)
* configure.ac, src/hunspell/*: conditional Hunspell warning messages
--with-warnings configure option
* affixmgr.cxx: new, optimized parsing functions
* affixmgr.cxx: fix homonym handling for German dictionary project,
reported by Björn Jacke (sf.net Bug ID 1592880).
* tests/1592880.*: test data by Björn Jacke
* src/hunspell/affixmgr.cxx: fix CIRCUMFIX suggestion
Bug reported by Erdal Ronahi.
* hunspell.cxx: reverse root word output (complex prefixes)
Bug reported by Munzir Taha.
* tools/hunspell.cxx: fix Emacs compatibility, patch by marot at sf.net
- no % command in PIPE mode (SourceForge BugTracker 1595607)
- fix HUNSPELL_VERSION string
* suggestmgr.[hc]xx: rename check() functions to checkword() (OOo Issue 68296)
adopt MySpell patch by Bryan Petty (tierra at ooo) for Hunspell source
* csutil.cxx, munch.c, unmunch.c: adopt relevant parts of the MinGW patch
(OOo Issue 42504) by tonal at ooo
* affigmgr.cxx: remove double candidate_check() call, reported by Bram Moolenaar
* tests/test.sh: add LC_ALL="C" environment. Locale dependency of make check
reported by Gentoo project.
* src/tools/hunspell.cxx: UTF-8 highlighting fix for console UI
(not solved: breaking long UTF-8 lines)
* src/tools/unmunch.c: fix bad generation if strip is shorter than condition,
reported by Davide Prina
* src/tools/unmunch.h: increase 5000 -> 500000
* src/tools/hunspell.cxx: fix memory error in suggestion (uninitialized parameter),
Bug also reported by Björn Jacke in SourceForge Bug 1469957
* csutil.cxx, affixmgr.cxx: fix Caolan McNamara's patch for non OOo environment
2006-11-11 Caolan McNamara :
* csutil.cxx, affixmgr.cxx: UTF-8 table patch (OOo Issue 71449)
Description: memory optimization (OOo doesn't use the large UTF-8 table).
* Makefile.am: shared library patch (Sourceforge ID 1610756)
* hunspell.h, hunspell.cxx: C API patch (Sourceforge ID 1616353)
* hunspell.pc: pkgconfig patch (Sourceforge ID 1639128)
2006-10-17 Ryan Jones :
* affixmgr.cxx: missing fclose(affixlst) calls
Reported by in OOo Issue 70408
2007-07-11 Taha Zerrouki :
* affixmgr.cxx, hunspell.cxx, hashmgr.cxx, csutil.cxx: IGNORE feature to remove
optional Arabic and other characters from input and dictionary words.
* src/hunspell/langnum.hxx: add Arabic language number, lang_ar=96
* tests/ignore.*: test data
2006-05-28 Miha Vrhovnik :
* src/win_api/*: C API for Windows DLLs
- also Delphi text editor example (see on Hunspell Sourceforge page)
2006-05-18 Kevin F. Quinn :
* utf_info.cxx: struct -> static struct
Shared library patch also developed by Gentoo developers (Hanno Meyer-Thurow,
Diego Pettenò, Kevin F. Quinn)
2006-02-02 Németh László :
* src/hunspell/hunspell.cxx: suggest(): replace "fooBar" -> "foo bar" suggestions
with "fooBar" ->"foo Bar" (missing spaces are typical OCR bugs).
Bug reported by stowrob at OOo in Issue 58202.
* src/hunspell/suggestmgr.cxx: twowords(): permit 1-character words.
(restore MySpell's original behavior). Here: "aNew" -> "a New".
* tests/i58202.*: test data
* src/parsers/textparser.cxx: fix Unicode tokenization in is_wordchar()
(extra word characters (WORDCHARS) didn't work on big-endian platforms).
* src/hunspell/{csutil,affixmgr}.cxx: inline isSubset(), isRevSubset():
little speed optimalization for languages with rich morphology.
* src/tools/hunspell.cxx: fix bad --with-ui and --with-readline compiling
when (N)curses is missing. Reported by Daniel Naber.
2006-01-19 Tor Lillqvist
* src/hunspell/csutil.cxx: mystrsep(): fix locale-dependent isspace() tokenization
2006-01-06 András Tímár
* src/hunspell/{hashmgr.hxx,hunspell.cxx}: fix Visual C++ compiling errors
2006-01-05 Németh László :
* COPYING: set GPL/LGPL/MPL tri-license for Mozilla integration.
Rationale: Mozilla source code contains an old MySpell version
with GPL/LGPL/MPL tri-license. (MPL license is a copyleft license, similar
to the LGPL, but it acts on file level.)
* COPYING.LGPL: GNU Lesser General Public License 2.1 (LGPL)
* COPYING.MPL: Mozilla Public License 1.1 (MPL)
* license.hunspell, src/hunspell/license.hunspell: GPL/LGPL/MPL tri-license
* src/hunspell/{affixmgr,hashmgr}.*: AF, AM alias definitions in affix file:
compression of flag sets and morphological descriptions (see manual,
and tests/alias* test files).
Rationale: Alias compression is also good for loading time and memory
efficiency, not only smaller resources.
* src/tools/makealias: alias compression utility
(usage: ./makealias file.dic file.aff)
* tests/alias{,2,3}: AF, AM tests
* man/hunspell.4: add AF, AM documentation
* src/hunspell/affentry.cxx, atypes.hxx: add new opts bits (aeALIASM, aeALIASF)
* tools/hunspell, src/parser/*, src/hunspell/*: Hunspell program
tokenizes Unicode texts (only with UTF-8 encoded dictionaries).
Missing Unicode tokenization reported by Björn Jacke, Egmont Koblinger,
Jess Body and others.
Note: Curses interactive interface hasn't worked perfectly yet.
* tests/*.tests: remove -1 parameters of Hunspell
* tests/*.{good,wrong}: remove tabulators
* src/hunspell/{hunspell,affixmgr}.cxx: BREAK option: break words at
specified break points and checking word parts separately (see manual).
Note: 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
or possibility to describe precise compound rules with COMPOUNDRULE.
* tests/break.*: BREAK example.
* src/hunspell/{affixmgr,hunspell}.cxx: add CHECKSHARPS declaration instead
of LANG de_DE definitions to handle German sharp s in both spelling and
suggestion.
* src/hunspell/hunspell.cxx: With CHECKSHARPS, uppercase words are valid
with both lower sharp s (it's is optional for names in German legal texts)
and SS (MÜßIG, MÜSSIG). Missing lower sharp s form reported by Björn Jacke.
* src/hunspell/hunspell.cxx: KEEPCASE flag on a sharp s word has a special
meaning with CHECKSHARPS declaration: KEEPCASE permits capitalisation and SS upper
casing of a sharp s word (Müßig and MÜSSIG), but forbids the upper cased form
with lower sharp s character(s): *MÜßIG.
* tests/germancompounding*: add CHECKSHARPS, remove LANG
* tests/checksharps*: add CHECKSHARPS and KEEPCASE, remove LANG
* src/hunspell/hunspell.cxx: improved suggestions:
- suggestions for pressed Caps Lock problems: macARONI -> macaroni
- suggestions for long shift problems: MAcaroni -> Macaroni, macaroni
- suggestions for KEEPCASE words: KG -> kg
* src/hunspell/csutil.cxx: fix mystrrep() function:
- suggestions for lower sharp s in uppercased words: MÜßIG -> MÜSSIG
* tests/checksharps{,utf}.sug: add tests for mystrrep() fix
* src/hunspell/hashmgr.cxx: Now dictionary words can contain slashes
with the "\/" syntax. Problem reported by Frederik Fouvry.
* src/hunspell/hunspell.cxx: fix bad duplicate filter in suggest().
(Suggesting some capitalised compound words caused program crash
with Hungarian dictionary, OOo Issue 59055).
* src/hunspell/affixmgr.cxx: fix bad defcpd_check() call in compound_check().
(Overlapping new COMPOUNDRULE and old compounding methods caused program
crash at suggestion.)
* src/hunspell/affixmgr.{cxx,hxx}: check affix flag duplication at affix classes.
Suggested by Daniel Naber.
* src/hunspell/affentry.cxx: remove unused variable declarations (OOo i58338).
Compiler warnings reported by András Tímár and Martin Hollmichel.
* src/hunspell/hunspell.cxx: morph(): not analyse bad mixed uppercased forms
(fix Arabic morphological analysis with Buckwalter's Arabic transliteration)
* src/hunspell/affentry.{cxx,hxx}, atypes.hxx: little memory optimization
in affentry:
- using unsigned char fields instead of short (stripl, appndl, numconds)
- rename xpflg field to opts
- removing utf8 field, use aeUTF8 bit of opts field
* configure.ac: set tests/maputf.test to XFAILED on ARM platform.
Fail reported by Rene Engelhard.
* configure.ac: link Ncursesw library, if exists.
* BUGS: add BUGS file
* tests/complexprefixes2.*: test for morphological analysis with COMPLEXPREFIXES
* src/hunspell/affixmgr.cxx: use "COMPOUNDRULE" instead of
"COMPOUND". The new name suggested by Bram Moolenaar.
* tests/compoundrule*: modified and renamed compound.* test files
* man/hunspell.4: AF, AM, BREAK, CHECKSHARPS, COMPOUNDRULE, KEEPCASE.
- also new addition to the documentation:
Header of the dictionary file define approximate dictionary size:
``A dictionary file (*.dic) contains a list of words, one per line.
The first line of the dictionaries (except personal dictionaries)
contains the _approximate_ word count (for optimal hash memory size).''
Asked by Frederik Foudry.
One-character replacements in REP definitions: ``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).''
2005-11-11 Németh László :
* src/hunspell/affixmgr.*: fix Unicode MAP errors (sorted only n-1
characters instead of n ones in UTF-16 MAP character lists).
Bug reported by Rene Engelhard.
* src/hunspell/affixmgr.*: fix infinite COMPOUND matching (default char
type is unsigned on PowerPC, s390 and ARM platforms and it will never
be negative). Bug reported by Rene Engelhard.
* src/hunspell/{affixmgr,suggestmgr}.cxx: fix bad ONLYINCOMPOUND
word suggestions.
* tests/onlyincompound.sug: empty test file to check this fix.
Bug reported by Björn Jacke.
* src/hunspell/affixmgr.cxx: fix backtracking in COMPOUND pattern matching.
* tests/compound6.*: test files to check this fix.
* csutil.cxx: set bigger range types in flag_qsort() and flag_bsearch().
* affixmgr.hxx: set better type for cont_classes[] Boolean data (short -> char)
* configure.ac, tests/automake.am: set platform specific XFAIL test
(flagutf8.test on ARM platform)
2005-11-09 Németh László :
improvements:
* src/hunspell/affixmgr.*: new and improved affix file parameters:
- COMPOUND definitions: compound patterns with regexp-like matching.
See manual and test files: tests/compound*.*
Suggested by Bram Moolenaar.
Also useful for simple word-level lexical scanning, for example
analysing numbers or words with numbers (OOo Issue #53643):
http://qa.openoffice.org/issues/show_bug.cgi?id=53643
Examples: tests/compound{4,5}.*.
- NOSUGGEST flag: words signed with NOSUGGEST flag are not suggested.
Proposed flag for vulgar and obscene words (OOo Issue #55498).
Example: tests/nosuggest.*.
Problem reported by bobharvey at OOo:
http://qa.openoffice.org/issues/show_bug.cgi?id=55498
- KEEPCASE flag: Forbid capitalized and uppercased forms of words
signed with KEEPCASE flags. Useful for special ortographies
(measurements and currency often keep their case in uppercased
texts) and other writing systems (eg. keeping lower case of IPA
characters).
- CHECKCOMPOUNDCASE: Forbid upper case characters at word bound in compounds.
Examples: tests/checkcompoundcase* and tests/germancompounding.*
- FLAG UTF-8: New flag type: Unicode character encoded with UTF-8.
Example: tests/flagutf8.*.
Rationale: Unicode character type can be more readable
(in a Unicode text editor) than `long' or `num' flag type.
bug fixes:
* src/hunspell/hunspell.cxx: accept numbers and numbers with separators (i53643)
Bug reported by skelet at OOo:
http://qa.openoffice.org/issues/show_bug.cgi?id=53643
* src/hunspell/csutil.cxx: fix casing data in ISO 8859-13 character table.
* src/hunspell/csutil.cxx: add ISO-8859-15 character encoding (i54980)
Rationale: ISO-8859-15 is the default encoding of the French OpenOffice.org
dictionary. ISO-8859-15 is a modified version of ISO-8859-1
(latin-1) character encoding with French œ ligatures and euro
symbol. Problem reported by cbrunet at OOo in OOo Issue 54980:
http://qa.openoffice.org/issues/show_bug.cgi?id=54980
* src/hunspell/affixmgr.cxx: fix zero-byte malloc after a bad affix header.
Patch by Harri Pitkänen.
* src/hunspell/suggestmgr.cxx: fix bad NEEDAFFIX word suggestion
in ngram suggestions. Reported by Daniel Naber and Friedel Wolff.
* src/hunspell/hashmgr.cxx: fix bad white space checking in affix files.
src/hunspell/{csutil,affixmgr}.cxx: add other white space separators.
Problems with tabulators reported by Frederik Fouvry.
* src/hunspell/*: replace system-dependent #include
parameters with quoted ones. Problem reported by Dafydd Jones.
* src/hunspell/hunspell.cxx: fix missing morphological analysis of dot(s)
Reported by Trón Viktor.
changes:
* src/hunspell/affixmgr.cxx: rename PSEUDOROOT to NEEDAFFIX.
Suggested by Bram Moolenaar.
* src/hunspell/suggestmgr.hxx: Increase default maximum of
ngram suggestions (3->5). Suggested by Kevin Hendricks.
* src/hunspell/htypes.hxx: Increase MAXDELEN for long affix flags.
* src/hunspell/suggestmgr.cxx: modify (perhaps fix) Unicode map suggestion.
tests/maputf test fail on ARM platform reported by Rene Engelhard.
* src/hunspell/{affentry.cxx,atypes.hxx}: remove [PREFIX] and
MISSING_DESCRIPTION messages from morphological analysis.
Problems reported by Trón Viktor.
* tests/germancompounding.{aff,good}: Add "Computer-Arbeit" test word.
Suggested by Daniel Naber.
* doc/man/hunspell.4: Proof-reading patch by Goldman Eleonóra.
* doc/man/hunspell.4: Fix bad affix example (replace `move' with `work').
Bug reported by Frederik Fouvry.
* tests/*: new test files:
affixes.*: simple affix compression example from Hunspell 4 manual page
checkcompoundcase.*, checkcompoundcase2.*, checkcompoundcaseutf.*
compound.*, compound2.*, compound3.*, compound4.*, compound5.*
compoundflag.* (former compound.*)
flagutf8.*: test for FLAG UTF-8
germancompounding.*: simplification with CHECKCOMPOUNDCASE.
germancompoundingold.* (former germancompounding.*)
i53643.*: check numbers with separators
i54980.*: ISO8859-15 test
keepcase.*: test for KEEPCASE
needaffix*.* (former pseudoroot*.* tests)
nosuggest.*: test for NOSUGGEST
2005-09-19 Németh László :
* src/hunspell/suggestmgr.cxx: improved ngram suggestion:
- detect not neighboring swap characters (pernament -> permanent)
Rationale: ngram method has a significant error with not neighboring
swap characters, especially when swap is in the middle of the word.
- suggest uppercase forms (unesco -> UNESCO, siggraph's -> SIGGRAPH's)
- suggest only ngram swap character and uppercase form, if they exist.
Rationale: swap character and casing equivalence give mutch better
suggestions as any other (weighted) ngram suggestions.
- add uppercase suggestion (PERMENANT -> PERMANENT)
* src/hunspell/*: complete comparison with MySpell 3.2 (in OOo beta 2):
- affixmgr.cxx: add missing numrep initialization
- hashmgr.cxx: add_word(): don't allocate temporary records
- hunspell.cxx: in suggest():
- check capitalized words first (better sug. order for proper names),
- check pSMgr->suggest() return value
- set pSMgr->suggest() call to not optional in HUHCAP
- csutil.cxx: fix bad KOI8-U -> koi8r_tbl reference in enc_entry encds
- csutil.cxx: fix casing data in ISO 8859-2, Windows 1251 and KOI8-U
encoding tables. Bug reported by Dmitri Gabinski.
* src/hunspell/affixmgr.*: improved compound word and other features
- generalize hu_HU specific compound word features with new affix file
parameters, suggested by Bram Moolenaar:
- CHECKCOMPOUNDDUP: forbid word duplication in compounds (eg. foo|foo)
- CHECKCOMPOUNDTRIPLE: forbid triple letters in compounds (eg. foo|obar)
- CHECKCOMPOUNDPATTERN: forbid patterns at word bounds in compounds
- CHECKCOMPOUNDREP: using REP replacement table, forbid presumably bad
compounds (useful for languages with unlimited number of compounds)
- ONLYINCOMPOUND flag works also with words (see tests/onlyincompound.*)
Suggested by Daniel Naber, Björn Jacke, Trón Viktor & Bram Moolenaar.
- PSEUDOROOT works also with prefixes and prefix + suffix combinations
(see tests/pseudoroot5.*). Suggested by Trón Viktor.
- man/hunspell.4: updated man page
* src/hunspell/affixmgr.*: fix incomplete prefix handling with twofold
suffixes (delete unnecessary contclasses[] conditions in
prefix_check_twosfx() and prefix_check_twosfx_morph()).
Bug reported by Trón Viktor.
* src/hunspell/affixmgr.*: complete also *_morph() functions with
conditions of new Hunspell features (circumfix, pseudoroot etc.).
* src/hunspell/suggestmgr.cxx:
- fix missing suggestions for words with crossed prefix and suffix
- fix redundant non-compound word checking
- fix losing suggestions problem. Bug reported by Dmitri Gabinski.
* src/hunspell/dictmgr.*:
- add new dictionary manager for Hunspell UNO modul
Problems with eo_ANY Esperanto locale reported by Dmitri Gabinski.
* src/hunspell/*: use precise constant sizes for 8-bit and 16-bit character
arrays with MAXWORDUTF8LEN and MAXSWUTF8L macros.
* src/hunspell/affixmgr.cxx: fix bad MAXNGRAMSUGS parameter handling
* src/hunspell/affixmgr.cxx, src/tools/{un}munch.*: fix GCC 4.0 warnings
on fgets(), reported by Dvornik László
* po/hu.po: improved translation by Dvornik László
* tests/test.sh: improved test environment
- add suggestion testing (see tests/*.sug)
- add memory debugging environment, based on the excellent Valgrind debugger.
Usage on Linux and experimental platforms of Valgrind:
VALGRIND=memcheck make check
- rename test_hunmorph to test.sh
* tests/*: new tests:
- base.*: base example based on MySpell's checkme.lst.
- map{,utf}.*, rep{,utf}: MAP and REP suggestion examples
- tests on new CHECKCOMPOUND, ONLYINCOMPOUND and PSEUDOROOT features
- i54633.*: capitalized suggestion test for Issue 54633 from OOo's Issuezilla
- i35725.*: improved ngram suggestion test for Issue 35725
2005-08-26 Németh László :
improvements:
* src/hunspell/suggestmgr.cxx:
Unicode support in related character map suggestion
* src/hunspell/suggestmgr.cxx: Unicode support in ngram suggestion
* src/hunspell/{suggestmgr,affixmgr,hunspell}.cxx: improve ngram suggestion.
Fix http://qa.openoffice.org/issues/show_bug.cgi?id=35725. See release
notes for examples. This problem reported by beccablain at OOo.
- ngram suggestions now are case insensitive (see `Permenant' bug in Issuezilla)
- weight ngram suggestions (with the longest common subsequent algorithm,
also considering lengths of bad word and suggestion, identical first
letters and almost completely identical character positions)
- set strict affix congruency in expand_rootword(). Now ngram suggestions
are good for languages with rich morphology and also better for English.
Rationale: affixed forms of the first ngram suggestion
very often suppress the second and subsequent root word suggestions. But
faults in affixes are more uncommon, and can be fix without suggestions.
We must prefer the more informative second and subsequent root word
suggestions instead of the suggestions for bad affixes.
- a better suggestion may not be substring of a less good suggestion
Rationale: Suggesting affixed forms of a root word is
unnecessary, when root word has got better weighted ngram value.
(Checking substrings is a good approximation for this refinement.)
- lesser ngram suggestions (default 3 maximum instead of 10)
Rationale: For users need a big extra effort to check a lot of bad ngram
suggestions, nine times out of ten unnecessarily. It is very
distracting, because ngram suggestions could be very different.
Usually Myspell and Hunspell suggest one or two suggestions with
the old suggestion algorithms (maximum is 15), with ngram algorithm
often gives maximum number suggestions. With strict affix congruency
and other refinements, the good suggestion there is usually among the
first three elements.
- new affix parameter: MAXNGRAMSUG
* src/hunspell/*: support agglutinative languages with rich prefix
morphology or with right-to-left writing system (for example, Turkic
and Austronesian languages with (modified) Arabic scripts).
- new affix parameter: COMPLEXPREFIXES
Set twofold prefix stripping (but single suffix stripping)
* src/hunspell/affixmgr.cxx:
- speed up prefix loading with tree sorting algorithm.
* tests/complexprefixes.*, tests/complexprefixesutf.*:
Coptic example posted by Moheb Mekhaiel
* src/hunspell/hashmgr.cxx: check size attribute in dic file
suggested by Daniel Naber
Rationale: With missing size attribute Hunspell allocates too small and
more slower hash memory, and Hunspell can lose first dictionary word.
* src/hunspell/affixmgr.cxx: check stripping characters and condition
compatibility in affix rules (bugs detected in cs_CZ, es_ES, es_NEW,
es_MX, lt_LT, nn_NO, pt_PT, ro_RO and sk_SK dictionaries). See release
notes of Hunspell 1.0.9 in NEWS.
* src/hunspell/affixmgr.cxx: check unnecessary fields in affix rules
(bugs detected in ro_RO and sv_SE dictionaries). See release notes.
* src/hunspell/affixmgr.cxx: remove redundant condition checking
in affix rules with stripping characters (redundancy in OpenOffice.org
dictionaries reported by Eleonóra Goldman)
Rationale: this is a little optimization, but it was excellent for
detect the bad ngram affixation with bad or weak affix conditions.
* tests/germancompounding.aff: improve compound definition
- use dash prefix instead of language specific tokenizer
Rationale: Using uniform approach is the right way to check and analyze
compound words. Language specific word breaking is deprecated, need
a sophisticated grammar checking for word-like word pairs
(for example in Hungarian there is a substandard, but accepted
syntax with dash for word pairs: cats, dogs -> kutyák-macskák (like
cats/dogs in English).
* test Hunspell with 54 OpenOffice.org dictionaries: see release notes
bug fixes:
* src/hunspell/suggestmgr.*: add time limit to exponential
algorithm of the related character map suggestion
Rationale: a long word in agglutinative languages or a special pattern
(for example a horizontal rule) made of map characters can `crash' the
spell checker.
* src/hunspell/affentry.cxx: add() functions: fix bad word generation
checking stripping characters (see similar bug in unmunch)
* src/hunspell/affixmgr.cxx: parse_file(): fix unconditional getNext()
call for ~AffixMgr() when affix file is corrupt.
* src/hunspell/affixmgr.*: AffixMgr(), parse_cpdsyllable(): fix missing
string duplications for ~AffixMgr() when affix file is corrupt.
* src/hunspell/affixmgr.*: parse_affix(): fix fprintf() call when affix
file is corrupt. Bug reported by Daniel Naber.
* suggestmgr.cxx: replace single usage of 'strdup' with 'mystrdup'
patch by Chris Halls (debian.org)
* src/hunspell/makefile.mk: add makefile.mk for compiling in OpenOffice.org
See README in Hunspell UNO modul.
Problems with separated compiling reported by Rene Engelhard
* src/hunspell/hunspell.cxx: fix pseudoroot support
- search a not pseudoroot homonym in check()
* tests/pseudoroot4.*: test this fix
* src/tools/unmunch.c: fix bad word generation when conditions
are shorter or incompatible with stripping characters in affix rules
* src/tools/unmunch.c: fix mychomp() for de_AT.dic and other dic files
without last new line character.
other changes:
* src/hunspell/suggestmgr.*: erase ACCENT suggestion
Rationale: ACCENT suggestion was the same as Kevin Hendrick's map
suggestion algorithm, but with a less good interface in affix file.
* src/hunspell/suggestmgr.*: combine cycle number limit
in badchar(), and forgotchar() with a time limit.
* src/hunspell/affixmgr.*: remove NOMAPSUGS affix parameter
* src/hunspell/{suggestmgr,hunspell}.*: strip periods from
suggestions (restore MySpell's original behaviour)
Rationale: OpenOffice.org has an automatic period handling mechanism
and suggestions look better without periods.
- new affix file parameter: SUGSWITHDOTS
Add period(s) to suggestions, if input word terminates in period(s).
(No need for OpenOffice.org dictionaries.)
* tests/germancompounding.aff: improve bad german affix in affix example
(computeren->computern). Suggested by Daniel Naber.
* src/tools/example.cxx: add Myspell's example
* src/tools/munch.cxx: add Myspell's munch
* man{,/hu}/hunspell.4: refresh manual pages
2005-08-01 Németh László :
* add missing MySpell files and features:
- add MySpell license.readme, README and CONTRIBUTORS ({license,README,AUTHORS}.myspell)
- add MySpell unmunch program (src/tools/unmunch.c)
- add licenses to source (src/hunspell/license.{myspell,hunspell})
- port MAP suggestion (with imperfect UTF-8 support)
- add NOSPLITSUGS affix parameter
- add NOMAPSUGS affix parameter
* src/man/man.4: MAP, COMPOUNDPERMITFLAG, NOSPLITSUGS, NOMAPSUGS
* src/hunspell/aff{entry,ixmgr}.cxx:
- improve compound word support
- new affix parameter: COMPOUNDPERMITFLAG (see manual)
* src/tests/compoundaffix{,2}.*: examples for COMPOUNDPERMITFLAG
* src/tests/germancompounding.*: new solution for German compounding
Problems with German compounding reported by Daniel Naber
* src/hunspell/hunspell.cxx: fix German uppercase word spelling
with the spellsharps() recursive algorithm.
Default recursive depth is 5 (MAXSHARPS).
* src/tests/germansharps*: extended German sharp s tests
* src/tools/hunspell.cxx: fix fatal memory bug in non-interactive
subshells without HOME environmental variable
Bug detected with PHP by András Izsók.
2005-07-22 Németh László :
* src/hunspell/csutil.hxx: utf16_u8()
- fix 3-byte UTF-8 character conversion
2005-07-21 Németh László :
* src/hunspell/csutil.hxx: hunspell_version() for OOo UNO modul
2005-07-19 Németh László :
* renaming:
- src/morphbase -> src/hunspell
- src/hunspell, src/hunmorph -> src/tools
- src/huntokens -> src/parsers
* src/tools/hunstem.cxx: add stemmer example
2005-07-18 Németh László :
* configure.ac: --with-ui, --with-readline configure options
* src/hunspell/hunspell.cxx: fix conditional compiling
* src/hunspell/hunspell.cxx: set HunSPELL.bak temporaly file
in the same dictionary with the checked file.
* src/morphbase/morphbase.cxx:
- handling German sharp s (ß)
- fix (temporaly) analyize()
* tests: a lot of new tests
* po/, intl/, m4/: add gettext from GNU hello
* po/hu.po: add Hungarian translation
* doc/, man/: rename doc to man
2005-07-04 Németh László :
* src/morphbase/hashmgr.cxx: set FLAG attributum instead of FLAG_NUM and FLAG_LONG
* doc/hunspell.4: manual in English
2005-06-30 Németh László :
* src/morphbase/csutil.cxx: add character tables from csutil.cxx of OOo 1.1.4
* src/morphbase/affentry.cxx: fix Unicode condition checking
* tests/{,utf}compound.*: tests compounding
2005-06-27 Németh László :
* src/morphbase/*: fix Unicode compound handling
2005-06-23 Halácsy Péter:
* src/hunmorph/hunmorph.cxx: delete spelling error message and suggest_auto() call
2005-06-21 Németh László :
* src/morphbase: Unicode support
* tests/utf8.*: SET UTF-8 test
* src/morphbase: checking and fixing with Valgrind
Memory handling error reported by Ferenc Szidarovszky
2005-05-26 Németh László :
* suggestmgr.cxx: fix stemming
* AUTHORS, COPYING, ChangeLog: set CC-LGPL free software license
2004-05-25 Varga Dániel
* src/stemtool: new subproject
2005-05-25 Halácsy Péter
* AUTHORS, COPYING: set CC Attribution license
2004-05-23 Varga Dániel
* src: - modifications for compiling with Visual C++
* src/hunmorph/csutil.cxx: correcting header of flag_qsort(),
* src/hunmorph/*: correct csutil include
2005-05-19 Németh László
* csutil.cxx: fix loop condition in lineuniq()
bug reported by Viktor Nagy (nagyv nyelvtud hu).
* morphbase.cxx: handle PSEUDOROOT with zero affixes
bug reported by Viktor Nagy (nagyv nyelvtud hu).
* tests/zeroaffix.*: add zeroaffix tests
2005-04-09 Németh László
* config.h.in: reset with autoheader
* src/hunspell/hunspell.cxx: set version
2005-04-06 Németh László
* tests: tests
* src/morphbase:
New optional parameters in affix file:
- PSEUDOROOT: for forbidding root with not forbidden suffixed forms.
- COMPOUNDWORDMAX: max. words in compounds (default is no limit)
- COMPOUNDROOT: signs compounds in dictionary for handling special compound rules
- remove COMPOUNDWORD, ONLYROOT
2005-03-21 Németh László
* src/morphbase/*:
- 2-byte flags, FLAG_NUM, FLAG_LONG
- CIRCUMFIX: signed suffixes and prefixes can only occur together
- ONLYINCOMPOUND for fogemorpheme (Swedish, Danish) or Flute-elements (German)
- COMPOUNDBEGIN: allow signed roots, and roots with signed suffix in begin of compounds
- COMPOUNDMIDDLE: like before, but middle of compounds
- COMPOUNDEND: like before, but end of compounds
- remove COMPOUNDFIRST, COMPOUNDLAST
3p-libhunspell-main/hunspell/ChangeLog.O 0000664 0000000 0000000 00000047607 14366026630 0020466 0 ustar 00root root 0000000 0000000 Myspell has a lot of parallel development, that is not documented here.
2005-01-11: Nmeth Lszl
* hunspell.cxx:
- interaktv javtsnl hinyz j sor karakterek ptlsa.
A hibt Gefferth Andrs s Khiraly jelezte.
* csutil.cxx:
- pontosvesszk trlse a GCC 3.4-es fordt ignyeinek megfelelen
A hibt Dvornik Lszl jelezte.
- i vltoz ismtelt deklarsnak trlse, ami helyenknt hibs
fordtst eredmnyez.
A hibt Ldoktor s Bencsth Boldizsr jelezte.
* OLVASS.EL:
- Windows alatti fordtsnl Langid.cxx mdostand. A hibt
Ldoktor jelezte.
2004-12-15 Nmeth Lszl
* src/morphbase/*:
- handling K&R morphological encoding (remove plus signs from output)
- LEMMA_PRESENT: put only morphological description to output
- LANG parameter, langnum variable in source for writing language-dependent codes
- remove HU_KOTOHANGZO
- etc.
* doc/hunspell.4:
- adding some
2004-09-29 Halcsy Pter
* doc/ : bemsoltam a hunspell.1 hunspell.4 man oldalakat
* doc/hunspell.1: Kivettem a -s -m kapcsolkrl szl rszt
2004-09-28 Halcsy Pter
* src/hunspell/hunspell.cxx (indexing_interface): Ezt kiszedtem a
HunSpell-bol, mert nem ide valo. Ez egy kulon program lehet.
(main): a hunstem zemmdot is kidobtam, ez se ide val
(main): meg a hunmorph zemmdot is
* src/morphbase/morphbase.cxx (MorphBase): tneveztem a MySpell
osztlyt MorphBase-re
(stems): tnevezten a suggest_stems metdust stem -re (mint to stem)
2004-08-25 Nmeth Lszl
* src/hunbase/suggestmgr.cxx: tvezs visszalltsa, nem
mkdik mg az igektk hozztoldsa a thz, tovbb a
kivtelek kezelse (ehhez a 0.99.4-es sztr szksges mg).
* src/hunbase/myspell.cxx: -s vissza a tvezshez
* src/hunbase/atypes.hxx: HUNSTEM makr definilsa itt az
affixmgr.cxx feltteles kdjhoz
2004-08-12 Halacsy Peter
* src/misc/lexfilter.cxx : uj program, ami a szotar szureshez hasznalhato
lecserelheti a mostani hunmorph, hunspell -G -1 funkciokat
* src/hunbase/myspell.cxx (analyzer) : Uj metodust vettem fel, ami mar
karaktertombben adja vissza az elemzes eredmenyet
2004-08-03 Halcsy Pter
* src/hunspell/hunspell.cxx (HUNSPELL_VERSION): ttettem ide ennek definilst
2004-07-31 Halcsy Pter
* src/hunbase/suggestmgr.cxx (fixstems): A fixstems mirt itt van
s mirt gy hvjk. Ez mehetne egy kln osztlyba.
2004-07-31 Halcsy Pter
* src/huntoken/htmlparser.cxx: Egyebkent az include-ok kezelese
eleg zavaros. Peldaul itt minek a textparser.hxx includolasa?
* src/huntoken/textparser.hxx (MAXLNLEN): thoztam ide a MAXLNLEN makrt
az atypes.hxx-bol, hogy a fuggoseget megszuntessem
* src/hunbase/myspell.cxx (suggest): Kivettem azt a rszt, ami visszaadja a HUNSPELL_VERSION stringet
ha a VERSION_KEYWORD a bemeneti string. Csnya gnyolsnak tartottam
2004-07-27 Halcsy Pter
* src/hunbase/myspell.cxx (morph_with_correction):
* src/hunbase/baseaffix.hxx (class AffEntry): Allandora felvettem a morphcode mezot (last htypes.hxx)
* src/hunbase/affentry.hxx: Kivettem a hunmorph felteteleket (last htypes.hxx)
* src/hunbase/htypes.hxx (struct hentry): Kivettem a HUNMORPH feltetelt a char* description korul. Ertem,
hogy hatekonyabb egy folosleges mutato nelkul, ha nincs morf info, de szerintem felesleges
* src/hunbase/myspell.hxx: HUNSPELL_VERSION es VERSION_KEYWORD makrokat kivettem. Valamiert a
hunspellnek kell majd
* src/hunbase/config.hxx (FLAG): config.hxx torolve, helyet atveszi a kozponti config.h; FLAG
definicioja az atypes.hxx-be ment
* src/hunbase/atypes.hxx (FLAG): config.hxx megszuntetese erdekeben attettem ide a FLAG makro
definialasat, ami az EXT_CLASS-tol fugg
config.hxx include kicserelve a configure altal kezelt config.h-ra
2004-06-29: Nmeth Lszl
* affixmgr.cxx:
- csak utols tagknt megengedett szavak (compound3) toldalk
nlkli elfordulsnak engedlyezse (pl. macskapr)
- tbbszrsen sszetett szavak toldalkolt alakjainak morfolgiai
elemzse
* myspell.cxx:
- rvidtsek, szmok, ktjeles sszetett szavak s a
-e hatrozszt tartalmaz szavak morfolgiai elemzse
* suggestmgr.cxx: suggest_morph_for_spelling_error() optimalizlsa
(csak a felhasznlt egy javaslatot keresi meg, tbbet nem).
* csutil.cxx: kimenetben szerepl res sorok trlse
2004-06-10: Nmeth Lszl
* suggestmgr.cxx: sszetett szavak elemzsnek korltozsa
- a tvezs mg nincs megvalstva a 0.9.9-es vltozatban
(helyette a Hunspell 0.9.7 hasznland a Magyar Ispell 0.99.4-es
vltozatval)
2004-05-19: Nmeth Lszl
* 0.9.9f-alpha
- morf. lers sztringkezelse jav.
- EXT_CLASS: config.cxx-ben
- nagybets alakok is elemezve (a hibt Tron Viktor jelezte)
- szebb kimenet
- rule119 trlve
- firstparser.cxx javtva
2004-02-13: Nmeth Lszl
* 0.9.8a:
- MAXUSERWORD helyett USERWORD, nincs korlt
- description \t-vel dic fjlba
- homonimk kezelse
- aff formtumbvts
- konfixumok
- _morpho fggvnyek
- ketts szuffixum
- hunmorph
- lsd tests/hunmorph
2004-01-29: Nmeth Lszl
* 0.9.7-sztaki:
- memriakezelsi hibk javtsa
2003-12-17: Nmeth Lszl
* 0.9.7-es vltozat:
* affixmgr.cxx:
- suffix_check() javts (tmpword kivltsa isRevSubSet()
fggvnnyel
- betlts optimalizlsa, build_pfxlist() helyett:
- build_pfxtree()
- process_sfx_tree_to_list(), process_sfx_inorder()
* csutil.cxx:
- isSubSet() gyorsabb vltozata
- isRevSubSet()
* langid.cxx, hunp.cxx:
- nyelvfelismer osztly s program (l. man hunp)
* man/hunp.1:
- nyelvfelismer program lersa
* firstparser.cxx:
- csak a tabultorjelet tartalmaz sorokbl a tabultorjel
eltti rszt adja vissza (l. man Hunspell, -1 kapcsol)
* hunspell.cxx:
- -u, -U, -u2 kapcsolk: tipikus hibk kijelzse;
automatikus, illetve lektorlt javtsa. L. man hunspell.
- -w kapcsol teljes sor vizsglathoz
* hunspell.cxx:
- spell(): javts (Valgrind hibajelzs alapjn)
* hunspell.cxx: sprintf()-ek el strlen() felttelvizsglat
* suggestmgr.cxx:
- 0.99.4-es Hunspell sztrral bekerlt tvezsi hiba
javtsa (nem produktv ragozs, sszetett szbam szerepl
fneveknl lpett fel ez a problma).
* OLVASS.EL:
- bvts
2003-11-03: Nmeth Lszl
* SuggestMgr::permute_accent():
- illeglis memriaolvassi hiba javtsa.
* example.cxx::
- dupla free() a "" karakterlnc tvezse utn
A hibkat Sarls Tams
fedezte fel a figyelemre mlt Valgrind nyomkvet
programmal (http://developer.kde.org/~sewardj/)
2003-10-22: Bencsth Boldizsr
* affixmgr.[ch]xx, csutil.[ch]xx: Az eredeti
MySpell foltjainak alkalmazsa az OpenOffice.org 1.1
kompatibilits rdekben. Itt karakterkezel
segdfggvnyek lettek thelyezve elrhetbb helyre.
* dictmgr.[ch]xx: Itt etype paramter hozzadsa.
* makefile.mk: Itt angol sztrak megjegyzsbe ttele.
2003-10-04: Nmeth Lszl
* 0.9.6.3-as vltozat:
* myspell.cxx: suggest() fggvnyben hibs
memriafoglals javtsa. A hiba a pontra vgzd
helytelen szavakra adott javaslattevs sorn
jelentkezett. A hibs mkdst Khiraly
jelezte.
2003-09-15: Nmeth Lszl
* 0.9.6.2-es vltozat:
* latexparser.cxx: TeX elemz javtsa:
- elemzsi hiba ({{}}})
- verb+ +, \verb stb. kezelse
2003-09-01: Nmeth Lszl
* 0.9.6-os vltozat:
* affentry.cxx: check2 trlse, lehetsges
tvek trolsa
* suggestmgr.cxx, myspell.cxx: suggest_pos_stems()
az ismeretlen szavak nvszragjainak s
jeleinek levlasztsra.
* affixmgr.cxx, suggestmgr.cxx: suggest_stems()
szlkezelshez mdostott s javtott fggvny
* myspell.cxx: szmok tvezse (teszt: 5-nek)
* myspell.cxx: egy karakter + sz javaslatok
trlse (pldul cpak->cpa k)
* affixmgr.cxx, myspell.cxx, hunspell.cxx: sztr
verziszmnak kirsa
* hunspell.cxx: \r karaktert tartalmaz sorok
helyes megjelentse
* myspell.cxx, hunspell.cxx: rvidts vgi pontok
hozzadsa fggvnyknyvtr szinten
* hunspell.cxx: pipe_interface(): standard bemenet
tvezsnl hinyz memriafelszabadts ptlsa
* Makefile: install javtsa, tbb felttelvizsglat
deinstall szakasz
2003-07-22: Nmeth Lszl
* 0.9.5-s vltozat
* suggestmgr.cxx: marhalevl->lelevl tvezs javtsa
* myspell.cxx: nagy kezdbets rvidtsek vizsglata (Bp., Btk.)
- pontot tartalmaz szmok helyesnek val elfogadsa, ha:
- az els pontot legalbb egy,
- de legfeljebb hrom szmjegy elzi meg,
- a pontok nem egyms mellett helyezkednek el,
- az utols pont utn legfeljebb kt szmjegy van.
Ezzel elfogadjuk az idpontokat (12.00-kor), a pontozsokat
(1.1.2-ben), de kizrjuk a szkz nlkli hibs dtummegadsokat
(2003.7.22.), valamint a tizedesvessz helyett ponttal rt
tizedestrteket (3.456, 4563.34).
- Javts a tiltott szavakra adott ktjeles javaslatoknl:
Straussal->Strauss-szal, s nem ,,Strauss szal''.
* hunspell.cxx: csak a -a kapcsol megadsval lnek a
csfelleti parancsok. Ezrt most mr nincsenek figyelmen
kvl hagyva pldul a ktjellel kezdd sorok, ha a -l
kapcsolval hibs szavakat keresnk egy llomnyban.
* man/hunspell.1: a -a kapcsol lersnak kiegsztse.
2003-06-13: Nmeth Lszl
* 0.9.4-es vltozat
* bin/*: makedb, lookdb segdprogramok az indexelshez
* man/*: hunstem, makedb, lookdb
* hunspell.cxx: pipe_interface: nyomkvet kirs trlse
- LOG #ifdef-be
2003-06-11: Nmeth Lszl
* 0.9.3-es vltozat
* suggestmgr.cxx: nagybets javaslat tulajdonneveknl
* hunspell.cxx: pipe_interface: hiba javtsa
2003-06-05: Nmeth Lszl
* 0.9.2-es vltozat
* hunspell.cxx: -s kapcsol
* suggestmgr.cxx: suggest_stems()
Sztvek ellltsa
* example.cxx: plda a sztvek ellltsra
2003-05-13: Nmeth Lszl
* 0.9.1-es vltozat
* hunspell.cxx:
- rl_escape(), stb.: a readline sorban ki lett kapcsolva
a fjlnv-kiegszts, s helyette a kt Escape lenyoms
megszaktja a szvegbevitelt. A Csere mveletnl is a
readline() hvs tallhat most mr.
- egy hibs sprintf() sor javtva lett
* Makefile.unix:
- belltsok elklntve az llomny elejn
- Makefile most mr szimblikus kts
* ooomagyarispellteszt.txt: tesztllomny
2003-04-28: Nmeth Lszl
* affixmgr.cxx:
- y vg szavak kezelse: bvebb lers a
Magyar Ispell Changelog llomnyban.
* *parser.cxx:
ISO-8859-1 HTML karakterentitsok kzl a betrtkek
(csak az ISO-8859-2-ben nem szereplk) felismerse
s kezelse.
2003-04-21: Goldman Elenonra
* *.dll fggvnyknyvtr ellltsa Windows alatt:
- StdAfx.h
- libmyspell.def
- dlltest.cpp
2003-04-16: Nmeth Lszl
* Hunspell.cxx, stb: a Mispell tnevezse Hunspell-l.
A nevet Kornai Andrs javasolta.
Knyvtrak: /usr/share/mispell -> /usr/share/myspell
(korbban is ez volt).
A /usr/share/hunmorph sztr a helye a specilis
morfolgiai informcikat tartalmaz Hunmorph (bvtett
Myspell sztrformtum) sztrllomnyoknak.
* Licenc: LGPL
* config.hxx: SZOSZABLYA_POSSIBLE_ROOTS
Ha a makrt bekapcsoljuk, akkor kirsra kerlnek
a lehetsges tvek is, az alkalmazott ragozsi szably
osztlynak betjelvel, illetve az alapszval egytt.
2003-04-10: Nmeth Lszl :
* affixmgr.cxx:
- kthangzk helyes kezelse (hu_kotohangzo kapcsolval),
l. mg Magyar Ispell Changelog
2003-03-24: Nmeth Lszl
* mispell.cxx: pipe_interface(): az adatfjl szrsnl fellp
memriaszivrgs megszntetse a kimaradt free(token) ptlsval
* affixmgr.cxx: prefix_check(): leg-, legesleg- confixum ellenrzs
- onlyroot kapcsol a csak tszt rint tiltshoz. L. Magyar Ispell
Az affixum llomnyban j kapcsolt adhatunk meg az
ONLYROOT paranccsal bevezetve. A kapcsol mdostja a tiltkapcsol
mkdst. L. man 4 mispell
* myspell.cxx:
- spell(): nagybets tulajdonnevek ellenrzse (pl. BALATON)
- onlyroot vizsglat forbiddenword mellett -> mangrove kezelse
2003-03-17: Goldman Elenonra
* Windows port
* makefile.Windows:
2003-03-04: Nmeth Lszl
* firstparser.[ch]xx: adatfjlok szrshez (l. -1 kapcsol)
* mispell.cxx: -L, -1, -G kapcsolk
* man/mispell.1: -L, -1, -G kapcsolk
2003-03-03: Nmeth Lszl
* mispell.cxx: -l, -p, WORDLIST
* man/mispell.1: -l, -p, WORDLIST
2003-02-26: Nmeth Lszl
* mispell.cxx: dialog_screen():
TILTOTT! (FORBIDDEN!) megjelentse a tiltott szsszettelek
esetn.
* suggestmgr.cxx:
- check(): -, - kpzs igeneveket rint kd trlse
- check_forbidden(): a 6 sztagnl hosszabb, tiltott sztvekre
vonatkoz javaslatok nem ktjellel, hanem szkzzel elvlasztva
tartalmazzk a szavakat, ehhez szksges a check_forbidden().
* man/*: j kziknyv oldal az llomnyok formtumrl (mispell(4)),
a mispell(1) bvtse.
* Makefile, mispell.mo: Br rpd javtsai
2003-02-18: Nmeth Lszl
* mispell.cxx: interactive_interface()
- nem nyeli el a MAXLNLEN-t meghalad mret sorokban a MAXLNLEN
mret rszek hatrn lv karaktereket, s a nem jsor karakterre
vgzd llomnyok utols karaktert. (Hibt viszont mg mindig
jelez, ha a MAXLNLEN hatr feldarabol egy amgy helyes szt.)
A MAXLNLEN 8192 karakter jelenleg.
- readline fggvnyknyvtr hasznlata a bevitelnl
- tfelvtelnl egy lehetsges t ellltsa, s a beviteli
sorban val feltntetse. Az gy megjelen sz javthat.
- --help kapcsol
* Makefile: Javtsok az install szakaszban.
A hibkat Br rpd jelezte.
2003-02-07: Nmeth Lszl
* mispell.cxx: put_dots_to_suggestions()
- realloc() cserje malloc()-ra ismeretlen eredet lefagys miatt.
- lehetsges az Ispellhez hasonlan a kapcsolkat kzzel megadni a
sajt sztrban a szavak utn egy perjelet kveten: pldul a
valamicsnyasz/w
sor megadsa utn a valamicsnyasz s toldalkolt vltozatai hibsak
lesznek az ellenrzs alatt. (Tovbbi kapcsolk lersrt lsd a
Magyar Ispell forrsban az aff/aff.fej llomnyt.)
* affixmgr.cxx: compound_check()
- repl_chars() hvsa a megfelel helyre lett tve, ezzel a
javaslattevs sebessge ktszeresre ntt.
- A dinamikus memriakezels lecserelse veremmemrira nem jrt
lnyeges sebessgnvekedssel, de a kzeljvben ezzel elkerlhet
az a memriaszivrgs, ami pldul itt a tiltott szavak kezelsnl
volt az elz vltozatban (javtva).
* affentry.cxx, affixmgr.cxx: szt-elllt kd megalapozsa:
get_possible_root() metdus az utols toldalk-levlaszts
eredmnyvel tr vissza.
2003-02-05: Nmeth Lszl
* mispell.cxx: put_dots_to_suggestions(): amennyiben
a felismert sz pontra, vagy pontokra vgzdik, a
javaslatokat is bvti ezzel.
- @, valamint 1-nl tbb pontot magba foglal (de nem arra vgzd)
szavak ellenrzsnek tiltsa (e-mail, fjlnevek, mg nem opcionlis).
- Hossz sorok helyes megjelentse.
- Tabultorjelet tartalmaz sorok helyes megjelentse.
- Mozaikszavak tfelvtelnl ktjeles alak automatikus rgztse
Pl.: BKV//URH mellett BKV-//URH- is bekerl a sajt sztrba
(a ragozott mozaikszavak felismerse teht automatikus lesz, kivve a
nem trivilis -val/-vel toldalkos alakok, amit kln kell felvenni.)
- PuT trlse (helyette MySpell::put_word(), put_word_suffix(),
put_word_pattern() eljrsok a sajt sztr bvtsre)
- dupla szavak ellenrzsnek trlse a MySpell kdbl (thelyezs majd a
Mispell felletbe), hogy a MySpell meghvhat maradjon prhuzamosan
fut szlakbl.
2002-12-30: Nmeth Lszl
* *parser.cxx, *parser.hxx: elemz osztlyok a rgi s csnya kd helyett
2002-12-10: Nmeth Lszl
* myspell.cxx: 35-os, 20%-kal kezelse
* man/mispell.1: kziknyv
2002-12-04: Noll Jnos
* spdaemon/: kiszolgl fellet, ld. README.spdaemon
2002-12-04: Nmeth Lszl
* mispell.cxx: Emacs kompatibilitshoz hibk javtsa (pl. tbbszrs -d)
* mispell.cxx: CURSES makrval kikapcsolhat az interaktv fellet + locale
(Windows, Macintosh)
2002-11-30: Nmeth Lszl
* affixmgr.cxx: get_checkdoublewords()
2002-11-25: Nmeth Lszl
* affixmgr.cxx: mozgszably (hu_mov_rule)
* myspell.cxx: mozgszably
* affixmgr.cxx: kitljnekmacskt (affix is sszetettben, ha prefix)
2002-11-08 Nmeth Lszl
* myspell.cxx: balatonnak->Balatonnak, balatoninak
2002-11-07 Nmeth Lszl
* myspell: 0.6-os vltozat
2002-10-31 Nmeth Lszl
* Egyszerbb nv: Magyar MySpell 0.5 utn -> MIspell 0.6
* mispell.cxx: tbbnyelv interaktv fellet (ncurses, locale)
* Makefile: make install
2002-09-22 Nmeth Lszl
* affixmgr.cxx: compound_check() macskaugom->macskaugrom, stb. javtsa
* affixmgr.cxx: compound_check() szismtls (pl. macskamacska) tiltsa
* myspell.cxx: szismtlds tiltsa (pl. kutya kutya) msodik rossz
* suggestmgr.cxx: macskarat->macska rat mellett ->macskairat
2002-07-29 Nmeth Lszl
* mispell Windowsra, teszt Emacs-szel (vagy Emacs-csal)
* tiltott szavakat nem javasol, s sszetett szban sem fogad el
* fonev_morfo, fonev_morfo2 lsztvek elutastsa (hzakmacska)
* ktjeles szavak kezelse
* szmok kezelse, ktjeles alakjaikkal egytt, CHECKNUM kapcsol
2002-07-17 Nmeth Lszl
* mispell.cxx: MySpell Ispell cs interfsz
2002-07-04 Nmeth Lszl
* mispell.cxx: MySpell Ispell cs interfsz
* affxmgr.cxx: szszer kiszrse,
* j funkcik:
COMPOUNDFIRST: sz szerepelhet els tagknt a szszettelekben
COMPOUNDLAST: sz szerepelhet utols tagknt a szszettelekben
FORBIDDENWORD: tiltott szavak kapcsolja (ut, uta, stb.)
2002-06-25 Nmeth Lszl
* myspell.cxx, suggestmgr.cxx: get_compound() char* helyett char
* affxmgr.cxx: check_repl() a helyesnek tn, de hibs sszetett
szavak kiszrsre (pl. tejles, szervz)
A szsszettel elfogadsa eltt mg megnzzk, hogy a sz
nem-e a cseretblzatban felvett hibt tartalmaz,
ha igen, akkor a sz hibsnak minsl, hiba helyes szsszettel.
* affxmgr.cxx, suggestmgr.xx: accent: kezetest.
Lers: README.accent
Tovbbi optimalizci: az kezet nlkli bet kezetes
vltozatai szmnak fggvnyben
2002-06-05 Noll Jnos
* myspell.cxx, suggestmgr.cxx: mem. szivrgs javtsa
(a get_compound() felszabadts nlkl lett meghva).
A hiba a GNU mtrace segtsgvel lett detektlva.
2002-06-03 Nmeth Lszl
* Licenc: GPL
* Lsd MYSPELL.HU
* compound_check: 6-3 szably, stb.
MySpell:
2002-xx-xx Kevin Hendricks
* REP: ismtlsek kiszrse a javaslatokbl
* COMPOUNDMIN
2002-xx-xx Nmeth Lszl
* REP cseretblzat
* COMPOUND, szsszettelkpzs
2002-xx-xx David Einstein
* optimalizlt MySpell algoritmus
2001-xx-xx Kevin Hendricks
* Mkd ellenrz, Ispell toldalktmrtsi algoritmussal
3p-libhunspell-main/hunspell/INSTALL 0000664 0000000 0000000 00000036614 14366026630 0017544 0 ustar 00root root 0000000 0000000 Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Briefly, the shell command './configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the 'README' file for
instructions specific to this package. Some packages provide this
'INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a 'Makefile' in each directory of the package.
It may also create one or more '.h' files containing system-dependent
definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a
file 'config.log' containing compiler output (useful mainly for
debugging 'configure').
It can also use an optional file (typically called 'config.cache' and
enabled with '--cache-file=config.cache' or simply '-C') that saves the
results of its tests to speed up reconfiguring. Caching is disabled by
default to prevent problems with accidental use of stale cache files.
If you need to do unusual things to compile the package, please try
to figure out how 'configure' could check whether to do them, and mail
diffs or instructions to the address given in the 'README' so they can
be considered for the next release. If you are using the cache, and at
some point 'config.cache' contains results you don't want to keep, you
may remove or edit it.
The file 'configure.ac' (or 'configure.in') is used to create
'configure' by a program called 'autoconf'. You need 'configure.ac' if
you want to change it or regenerate 'configure' using a newer version of
'autoconf'.
The simplest way to compile this package is:
1. 'cd' to the directory containing the package's source code and type
'./configure' to configure the package for your system.
Running 'configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type 'make' to compile the package.
3. Optionally, type 'make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type 'make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the 'make install' phase executed with root
privileges.
5. Optionally, type 'make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior 'make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing 'make clean'. To also remove the
files that 'configure' created (so you can compile the package for
a different kind of computer), type 'make distclean'. There is
also a 'make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type 'make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide 'make
distcheck', which can by used by developers to test that all other
targets like 'make install' and 'make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the 'configure' script does not know about. Run './configure --help'
for details on some of the pertinent environment variables.
You can give 'configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here is
an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU 'make'. 'cd' to the
directory where you want the object files and executables to go and run
the 'configure' script. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'. This is known
as a "VPATH" build.
With a non-GNU 'make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use 'make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple '-arch' options to the
compiler but only a single '-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the 'lipo' tool if you have problems.
Installation Names
==================
By default, 'make install' installs the package's commands under
'/usr/local/bin', include files under '/usr/local/include', etc. You
can specify an installation prefix other than '/usr/local' by giving
'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like '--bindir=DIR' to specify different values for particular
kinds of files. Run 'configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the default
for these options is expressed in terms of '${prefix}', so that
specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to 'configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
'make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, 'make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
'${prefix}'. Any directories that were specified during 'configure',
but not in terms of '${prefix}', must each be overridden at install time
for the entire installation to be relocated. The approach of makefile
variable overrides for each directory variable is required by the GNU
Coding Standards, and ideally causes no recompilation. However, some
platforms have known limitations with the semantics of shared libraries
that end up requiring recompilation when using this method, particularly
noticeable in packages that use GNU Libtool.
The second method involves providing the 'DESTDIR' variable. For
example, 'make install DESTDIR=/alternate/directory' will prepend
'/alternate/directory' before all installation names. The approach of
'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of '${prefix}'
at 'configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving 'configure' the
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Some packages pay attention to '--enable-FEATURE' options to
'configure', where FEATURE indicates an optional part of the package.
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
is something like 'gnu-as' or 'x' (for the X Window System). The
'README' should mention any '--enable-' and '--with-' options that the
package recognizes.
For packages that use the X Window System, 'configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the 'configure' options '--x-includes=DIR' and
'--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of 'make' will be. For these packages, running './configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with 'make V=1'; while running './configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with 'make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX 'make' updates targets which have the same time stamps as their
prerequisites, which makes it generally unusable when shipped generated
files such as 'configure' are involved. Use GNU 'make' instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its '' header file. The option '-nodtk' can be used as a
workaround. If GNU CC is not installed, it is therefore recommended to
try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
in your 'PATH', put it _after_ '/usr/bin'.
On Haiku, software installed for all users goes in '/boot/common',
not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features 'configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, 'configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
'--build=TYPE' option. TYPE can either be a short name for the system
type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file 'config.sub' for the possible values of each field. If
'config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option '--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with '--host=TYPE'.
Sharing Defaults
================
If you want to set default values for 'configure' scripts to share,
you can create a site shell script called 'config.site' that gives
default values for variables like 'CC', 'cache_file', and 'prefix'.
'configure' looks for 'PREFIX/share/config.site' if it exists, then
'PREFIX/etc/config.site' if it exists. Or, you can set the
'CONFIG_SITE' environment variable to the location of the site script.
A warning: not all 'configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to 'configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the 'configure' command line, using 'VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified 'gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
Autoconf limitation. Until the limitation is lifted, you can use this
workaround:
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
'configure' Invocation
======================
'configure' recognizes the following options to control how it
operates.
'--help'
'-h'
Print a summary of all of the options to 'configure', and exit.
'--help=short'
'--help=recursive'
Print a summary of the options unique to this package's
'configure', and exit. The 'short' variant lists options used only
in the top level, while the 'recursive' variant lists options also
present in any nested packages.
'--version'
'-V'
Print the version of Autoconf used to generate the 'configure'
script, and exit.
'--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally 'config.cache'. FILE defaults to '/dev/null' to
disable caching.
'--config-cache'
'-C'
Alias for '--cache-file=config.cache'.
'--quiet'
'--silent'
'-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to '/dev/null' (any error
messages will still be shown).
'--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
'configure' can determine that directory automatically.
'--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names:: for
more details, including other options available for fine-tuning the
installation locations.
'--no-create'
'-n'
Run the configure checks, but stop before creating any output
files.
'configure' also accepts some other, not widely useful, options. Run
'configure --help' for more details.
3p-libhunspell-main/hunspell/Makefile.am 0000664 0000000 0000000 00000000337 14366026630 0020540 0 ustar 00root root 0000000 0000000 ACLOCAL_AMFLAGS = -I m4
SUBDIRS= po src man tests
pkgconfdir = $(libdir)/pkgconfig
pkgconf_DATA = hunspell.pc
EXTRA_DIST = license.myspell license.hunspell \
ChangeLog.O COPYING.LESSER COPYING.MPL hunspell.pc.in
3p-libhunspell-main/hunspell/Makefile.in 0000664 0000000 0000000 00000070714 14366026630 0020557 0 ustar 00root root 0000000 0000000 # Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# This Makefile.in 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.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
$(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/visibility.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
$(am__configure_deps) $(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = hunspell.pc
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(pkgconfdir)"
DATA = $(pkgconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
$(LISP)config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(srcdir)/hunspell.pc.in ABOUT-NLS AUTHORS COPYING \
COPYING.LESSER ChangeLog INSTALL NEWS README THANKS compile \
config.guess config.rpath config.sub depcomp install-sh \
ltmain.sh missing tap-driver.sh
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CURSESLIB = @CURSESLIB@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
HAVE_CXX11 = @HAVE_CXX11@
HAVE_VISIBILITY = @HAVE_VISIBILITY@
HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@
HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
POSUB = @POSUB@
RANLIB = @RANLIB@
READLINELIB = @READLINELIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = po src man tests
pkgconfdir = $(libdir)/pkgconfig
pkgconf_DATA = hunspell.pc
EXTRA_DIST = license.myspell license.hunspell \
ChangeLog.O COPYING.LESSER COPYING.MPL hunspell.pc.in
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh: Makefile
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
config.h: stamp-h1
@test -f $@ || rm -f stamp-h1
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: $(am__configure_deps)
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
hunspell.pc: $(top_builddir)/config.status $(srcdir)/hunspell.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool config.lt
install-pkgconfDATA: $(pkgconf_DATA)
@$(NORMAL_INSTALL)
@list='$(pkgconf_DATA)'; test -n "$(pkgconfdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(pkgconfdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfdir)" || exit $$?; \
done
uninstall-pkgconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgconf_DATA)'; test -n "$(pkgconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(pkgconfdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
$(am__post_remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__post_remove_distdir)
dist dist-all:
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build/sub \
&& ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__post_remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@test -n '$(distuninstallcheck_dir)' || { \
echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(pkgconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr \
distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am: install-pkgconfDATA
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-pkgconfDATA
.MAKE: $(am__recursive_targets) all install-am install-strip
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-generic \
distclean-hdr distclean-libtool distclean-tags distcleancheck \
distdir distuninstallcheck dvi dvi-am html html-am info \
info-am install install-am install-data install-data-am \
install-dvi install-dvi-am install-exec install-exec-am \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-pkgconfDATA \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-pkgconfDATA
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
3p-libhunspell-main/hunspell/NEWS 0000664 0000000 0000000 00000067540 14366026630 0017214 0 ustar 00root root 0000000 0000000 2022-08-22: Hunspell 1.7.1 release:
- Merge chromium fix for #714 OOB string write in hunspell
- Merge firefox fix for #756 various issues parsing incomplete aff files
- Fix #492 crash with hunspell -l -r
- Merge in weblate translations
2018-11-12: Hunspell 1.7.0 release:
New features and bug fixes by Lszl Nmeth, supported by FSF.hu Foundation:
- No annoying suggestion times any more, especially in languages with
compound word handling and complex morphology. By adding balanced
multi-level time limits, now the guaranteed suggestion time is there
within half a second, not seconds (nor dozen of seconds or more
in extreme cases) for longer misspellings, too.
- add SPELLML support for run-time dictionary extension with optional
affixation of user words. See new "Grammar By" feature of
language-specific user dictionaries of LibreOffice 6.0:
News: https://wiki.documentfoundation.org/ReleaseNotes/6.0#.E2.80.9CGrammar_By.E2.80.9D_spell_checking
Screencast with English example: https://www.youtube.com/watch?v=EsS3gaBTfOo
Screencast with German example: https://www.youtube.com/watch?v=aYVFDqCUb6I
- Improved, highly customizable suggestions on level of dictionary words:
Pronunciations and typical misspellings defined by optional "ph:" fields of
the dictionary words are used not only in n-gram suggestions, but as
elements of the REP replacement list getting the highest priority in normal
suggestions, also giving the best suggestions for short words, too.
More information: see "ph:" in man 5 hunspell.
- Handling multiple word suggestions is much more easier. Like in a
traditional spelling dictionary, for example, to get the correct suggestion
"a lot" for the typical misspelling "alot" at the first place, now it's
enough to put the following line to the dic(tionary) file:
a lot
- Limit compound overgeneration by dictionary based word pairs:
Now it's possible to filter bad compound words by listing
the correct word pairs with space in the dictionary, as in a traditional
spelling dictionary.
- clean-up suggestion:
- no n-gram and compound word suggestions, if "good" suggestion
exists, ie. uppercase, REP, ph: or dictionary word pair suggestions
- word pairs are always suggested, if they exist in the dic file
- word pairs have top priority in suggestions, and
these are the only suggestions if there is no other good suggestion.
- also dictionary word pairs separated by dash instead of space
are handled specially in two-word suggestion (depending from the
language)
- limit bad suggestions by improved n-gram suggestion rules:
don't suggest capitalized dictionary words for lower
case misspellings in n-gram suggestions, except
- PHONE usage, or
- in the case of German, where not only proper
nouns are capitalized, or
- the capitalized word has special pronunciation
and don't suggest if the difference of lengths of misspellings and
suggestions is 5 or more characters.
- Extend dotless i and dotted I rules to Crimean Tatar language
Allow dotted I in dictionary, and disable bad capitalization of i.
- BREAK: extended recursive word breaking algorithm to handle words or
words with suffixes when they already contain word break characters,
for example, "e-mail" is a dictionary word with a word break character, and
it wasn't accepted before in compounds in some languages.
- FORBIDDENWORD precedes BREAK: Now it's possible to forbid compound
forms recognized by BREAK word breaking by adding the bad compounds to
the dictionary with FORBIDDENWORD flags.
- lower limit for "doubletwochars" suggestion algorithm:
one of the typical misspellings recognized by Hunspell suggestion
mechanism is the syllable duplication. Along the old pattern
ABABA -> ABA, for example nutrITITIon -> nutrITIon, now also the
simpler ABAB -> AB pattern is recognized in non-starting position,
for example, regretTETEd -> regretTEd.
- lower limit for longswapchar and movechar: recognized only max.
4-character distances to avoid slow and bad suggestions.
- fix compound handling for new Hungarian orthography reform
- Allow suggestion search for prefix + *two suffixes*:
Remove artificial performance limit to get correct
suggestions for relatively simple misspellings in
Hungarian, etc., when the word form contains prefix
and both derivative and inflectional suffixes, too:
lefikszlsa -> lefixlsa
Improvements for command-line Hunspell:
- Remove false alarms during checking OpenDocument (ODF)
documents by ignoring elements. (LibreOffice
creates a lot of elements also within words
during text reediting, resulted often huge amount of broken
words before this fix.)
- List filenames during filtering multiple files in command-line:
Examples:
$ hunspell -l *.odt
a.odt: mispelling
b.odt: egzample
$ hunspell -l -G *.odt
a.odt: good
b.odt: words
- Dictionary search by option -D doesn't wait for the standard input
(fixed by Siva Mahadevan)
Other improvements:
- makealias dictionary compression: add option --minimize-diff
to reuse free positions of alias lists to create minimal and
readable diffs for alias compressed dictionaries stored in
revision control systems, as dictionaries of LibreOffice.
- Brazilian-Portuguese translation by Rafael Fontenelle
- Catalan translation by robert dot buj at gmail
- Minor bug fixes by several contributors, see git log
2017-09-03: Hunspell 1.6.2 release:
- Library changes: no. Same as 1.6.1.
- Command line tool:
- Added German translation
- Fixed bug with wrong output encoding, not respecting system locale.
2017-03-25: Hunspell 1.6.1 release:
- Library changes:
- Performance improvements in suggest()
- Fixes regressions for Hungarian related to compounding.
- Fixes regressions for Korean related to ICONV.
- Command line tool:
- Added Tajik translation
- Fix regarding serching of OOo dicts installed in user folder
- Manpages:
- Fix microsoft-cp1251 to cp1251. Dicts should not use the first.
- Typos.
2016-12-22: Hunspell 1.6.0 release:
- Library changes:
- Performance improvement in ngsuggest(), suggestions should be faster.
- Revert MAXWORDLEN to 100 as in 1.3.3 for performance reasons.
- MAXWORDLEN can be set during build time with -D defines.
- Fix crash when word with 102 consecutive X is spelled.
- Command line tool:
- -D shows all loaded dictionares insted of only the first.
- -D properly lists all available dictionaries on Windows.
2016-11-30: Hunspell 1.5.4 release:
- Fixes the command COMPOUNDSYLLABLE used in Hungarian dictionary.
2016-11-28: Hunspell 1.5.3 release:
- Removed a #include from hunspell.hxx that was creating trouble
2016-11-27: Hunspell 1.5.2 release:
- Reverted full backward compatibility with 1.4 public API, again
2016-11-27: Hunspell 1.5.1 release:
- Reverted full backward compatibility with 1.4 public API
2016-11-18: Hunspell 1.5.0 release:
- Lot of stability fixes
- Fixed compilation errors on various systems (Windows, FreeBSD)
- Small performance improvement compared to 1.4.0
- The C++ API is updated to use modern C++ types (string, vector).
Backward compatibility is kept for most of the functions except for
the following:
- get_wordchars();
- get_version();
- input_conv(string, string);
- removed get_csconv();
2016-04-15: Hunspell 1.4.0 release:
- various abi changes due to moving away from char* to std::string
2014-06-02: Hunspell 1.3.3 release:
- OpenDocument (ODF and Flat ODF) support (ODF needs unzip program)
- various bug fixes
2011-02-02: Hunspell 1.3.2 release:
- fix library versioning
- improved manual
2011-02-02: Hunspell 1.3.1 release:
- bug fixes
2011-01-26: Hunspell 1.2.15/1.3 release:
- new features: MAXDIFF, ONLYMAXDIFF, MAXCPDSUGS, FORBIDWARN, see manual
- bug fixes
2011-01-21:
- new features: FORCEUCASE and WARN, see manual
- new options: -r to filter potential mistakes (rare words
signed by flag WARN in the dictionary)
- limited and optimized suggestions
2011-01-06: Hunspell 1.2.14 release:
- bug fix
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:
- Maintenance release bug fixes
2010-03-03: Hunspell 1.2.9 release:
- Maintenance release bug fixes and warnings
- MAP support for composed characters or character sequences
2008-11-01: Hunspell 1.2.8 release:
- Default BREAK feature and better hyphenated word suggestion to accept
and fix (compound) words with hyphen characters by spell checker
instead of by work breaking code of OpenOffice.org. With this feature
it's possible to accept hyphenated compound words, such as "scot-free",
where "scot" is not a correct English word.
- ICONV & OCONV: input and output conversion tables for optional character
handling or using special inner format. Example:
# Accepting de facto replacements of the Romanian comma acuted letters
SET UTF-8
ICONV 4
ICONV ş ș
ICONV ţ ț
ICONV Ş Ș
ICONV Ţ Ț
Typical usage of ICONV/OCONV is to manage an inner format for a segmental
writing system, like the Ethiopic script of the Amharic language.
- Extended CHECKCOMPOUNDPATTERN to handle conpound word alternations, like
sandhi feature of Telugu and other writing systems.
- SIMPLIFIEDTRIPLE compound word feature: allow simplified Swedish and
Norwegian compound word forms, like tillåta (till|låta) and
bussjåfør (buss|sjåfør)
- wordforms: word generator script for dictionary developers (Hunspell
version of unmunch).
- bug fixes
2008-08-15: Hunspell 1.2.7 release:
- FULLSTRIP: new option for affix handling. With FULLSTRIP, affix rules can
strip full words, not only one less characters.
- COMPOUNDRULE works with all flag types. (COMPOUNDRULE is for pattern
matching. For example, en_US dictionary of OpenOffice.org uses COMPOUNDRULE
for ordinal number recognition: 1st, 2nd, 11th, 12th, 22nd, 112th, 1000122nd
etc.).
- optimized suggestions:
- modified 1-character distance suggestion algorithms: search a TRY character
in all position instead of all TRY characters in a character position
(it can give more readable suggestion order, also better suggestions
in the first positions, when TRY characters are sorted by frequency.)
For example, suggestions for "moze":
ooze, doze, Roze, maze, more etc. (Hunspell 1.2.6),
maze, more, mote, ooze, mole etc. (Hunspell 1.2.7).
- extended compound word checking for better COMPOUNDRULE related
suggestions, for example English ordinal numbers: 121323th -> 121323rd
(it needs also a th->rd REP definition).
- bug fixes
2008-07-15: Hunspell 1.2.6 release:
- bug fix release (fix affix rule condition checking of sk_SK dictionary,
iconv support in stemming and morphological analysis of the Hunspell
utility, see also Changelog)
2008-07-09: Hunspell 1.2.5 release:
- bug fix release (fix affix rule condition checking of en_GB dictionary,
also morphological analysis by dictionaries with two-level suffixes)
2008-06-18: Hunspell 1.2.4-2 release:
- fix GCC compiler warnings
2008-06-17: Hunspell 1.2.4 release:
- add free_list() for C, C++ interfaces to deallocate suggestion lists
- bug fixes
2008-06-17: Hunspell 1.2.3 release:
- extended XML interface to use morphological functions by standard
spell checking interface, spell() and suggest(). See hunspell.3 manual page.
- default dash suggestions for compound words: newword-> new word and new-word
- new manual pages: hunspell.3, hzip.1, hunzip.1.
- bug fixes
2008-04-12: Hunspell 1.2.2 release:
- extended dictionary (dic file) support to use multiple base and
special dictionaries.
- new and improved options of command line hunspell:
-m: morphological analysis or flag debug mode (without affix
rule data it signs the flag of the affix rules)
-s: stemming mode
-D: list available dictionaries and search path
-d: support extra dictionaries by comma separated list. Example:
hunspell -d en_US,en_med,de_DE,de_med,de_geo UNESCO.txt
- forbidding in personal dictionary (with asterisk, / signs affixation)
- optional compressed dictionary format "hzip" for aff and dic files
usage:
hzip example.aff example.dic
mv example.aff example.dic /tmp
hunspell -d example
hunzip example.aff.hz >example.aff
hunzip example.dic.hz >example.dic
- new affix compression tool "affixcompress": compression tool for
large (millions of words) dictionaries.
- support encrypted dictionaries for closed OpenOffice.org extensions or
other commercial programs
- improved manual
- bug fixes
2007-11-01: Hunspell 1.2.1 release:
- new memory efficient condition checking algorithm for affix rules
- new morphological functions:
- stem() for stemming
- analyze() for morphological analysis
- generate() for morphological generation
- new demos:
- analyze: stemming, morphological analysis and generation
- chmorph: morphological conversion of texts
2007-09-05: Hunspell 1.1.12 release:
- dictionary based phonetic suggestion for words with
special or foreign pronounciation or alternative (bad) transliteration
(see Changelog, tests/phone.* and manual).
- improved data structure and memory optimization for dictionaries
with variable count fields
- bug fixes for Unicode encoding dictionaries and ngram suggestions
- improved REP suggestions with space: it works without dictionary
modification
- updated and new project files for Windows API
2007-08-27: Hunspell 1.1.11 release:
- portability fixes
2007-08-23: Hunspell 1.1.10 release:
- pronounciation based suggestion using Bjrn Jacke's original Aspell
phonetic transcription algorithm (http://aspell.net), relicensed under
GPL/LGPL/MPL tri-license with the permission of the author
- keyboard base suggestion by KEY (see manual)
- better time limits for suggestion search
- test environment for suggestion based on Wikipedia data
- bug fixes for non standard Mozilla platforms etc.
2007-07-25: Hunspell 1.1.9 release:
- better tokenization:
- for URLs, mail addresses and directory paths (default: skip these tokens)
- for colons in words (for Finnish and Swedish)
- new examples:
- affixation of personal dictionary words
- digits in words
- bug fixes (see ChangeLog)
2007-07-16: Hunspell 1.1.8 release:
- better Mac OS X/Cygwin and Windows compatibility
- fix Hunspell's Valgrind environment and memory handling errors
detected by Valgrind
- other bug fixes (see ChangeLog)
2007-07-06: Hunspell 1.1.7 release:
- fix warning messages of OpenOffice.org build
2007-06-29: Hunspell 1.1.6 release:
- check capitalization of the following word forms
- words with mixed capitalisation: OpenOffice.org - OPENOFFICE.ORG
- allcap words and suffixes: UNICEF's - UNICEF'S
- prefixes with apostrophe and proper names: Sant'Elia - SANT'ELIA
- suggestion for missing sentence spacing: something.The -> something. The
- Hunspell executable: improved locale support
- -i option: custom input encoding
- use locale data for default dictionary names.
- tools/hunspell.cxx: fix 8-bit tokenization (letters without
casing, like ß or Hebrew characters now are handled well)
- dictionary search path (automatic detection of OpenOffice.org directories)
- DICPATH environmental variable
- -D option: show directory path of loaded dictionary
- patches and bug fixes for Mozilla, OpenOffice.org.
2007-03-19: Hunspell 1.1.5 release:
- optimizations: 10-100% speed up, smaller code size and memory footprint
(conditional experimental code and warning messages)
- extended Unicode support:
- non BMP Unicode characters in dictionary words and affixes (except
affix rules and conditions)
- support BOM sequence in aff and dic files
- IGNORE feature for Arabic diacritics and other optional characters
- New edit distance suggestion methods:
- capitalisation: nasa -> NASA
- long swap: permenant -> permanent
- long move: Ghandi -> Gandhi, greatful -> grateful
- double two characters: vacacation -> vacation
- spaces in REP sug.: REP alot a_lot (NOTE: "a lot" must be a dictionary word)
- patches and bug fixes for Mozilla, OpenOffice.org, Emacs, MinGW, Aqua,
German and Arabic language, etc.
2006-02-01: Hunspell 1.1.4 release:
- Improved suggestion for typical OCR bugs (missing spaces between
capitalized words). For example: "aNew" -> "a New".
http://qa.openoffice.org/issues/show_bug.cgi?id=58202
- tokenization fixes (fix incomplete tokenization of input texts on big-endian
platforms, and locale-dependent tokenization of dictionary entries)
2006-01-06: Hunspell 1.1.3.2 release:
- fix Visual C++ compiling errors
2006-01-05: Hunspell 1.1.3 release:
- GPL/LGPL/MPL tri-license for Mozilla integration
- Alias compression of flag sets and morphological descriptions.
(For example, 16 MB Arabic dic file can be compressed to 1 MB.)
- Improved suggestion.
- Improved, language independent German sharp s casing with CHECKSHARPS
declaration.
- Unicode tokenization in Hunspell program.
- Bug fixes (at new and old compound word handling methods), etc.
2005-11-11: Hunspell 1.1.2 release:
- Bug fixes (MAP Unicode, COMPOUND pattern matching, ONLYINCOMPOUND
suggestions)
- Checked with 51 regression tests in Valgrind debugging environment,
and tested with 52 OOo dictionaries on i686-pc-linux platform.
2005-11-09: Hunspell 1.1.1 release:
- Compound word patterns for complex compound word handling and
simple word-level lexical scanning. Ideal for checking
Arabic and Roman numbers, ordinal numbers in English, affixed
numbers in agglutinative languages, etc.
http://qa.openoffice.org/issues/show_bug.cgi?id=53643
- Support ISO-8859-15 encoding for French (French oe ligatures are
missing from the latin-1 encoding).
http://qa.openoffice.org/issues/show_bug.cgi?id=54980
- Implemented a flag to forbid obscene word suggestion:
http://qa.openoffice.org/issues/show_bug.cgi?id=55498
- Checked with 50 regression tests in Valgrind debugging environment,
and tested with 52 OOo dictionaries.
- other improvements and bug fixes (see ChangeLog)
2005-09-19: Hunspell 1.1.0 release
* complete comparison with MySpell 3.2 (from OpenOffice.org 2 beta)
* improved ngram suggestion with swap character detection and
case insensitivity
------ examples for ngram improvement (input word and suggestions) -----
1. pernament (instead of permanent)
MySpell 3.2: tournaments, tournament, ornaments, ornament's, ornamenting, ornamented,
ornament, ornamentals, ornamental, ornamentally
Hunspell 1.0.9: ornamental, ornament, tournament
Hunspell 1.1.0: permanent
Note: swap character detection
2. PERNAMENT (instead of PERMANENT)
MySpell 3.2: -
Hunspell 1.0.9: -
Hunspell 1.1.0: PERMANENT
3. Unesco (instead of UNESCO)
MySpell 3.2: Genesco, Ionesco, Genesco's, Ionesco's, Frescoing, Fresco's,
Frescoed, Fresco, Escorts, Escorting
Hunspell 1.0.9: Genesco, Ionesco, Fresco
Hunspell 1.1.0: UNESCO
4. siggraph's (instead of SIGGRAPH's)
MySpell 3.2: serigraph's, photograph's, serigraphs, physiography's,
physiography, digraphs, serigraph, stratigraphy's, stratigraphy
epigraphs
Hunspell 1.0.9: serigraph's, epigraph's, digraph's
Hunspell 1.1.0: SIGGRAPH's
--------------- end of examples --------------------
* improved testing environment with suggestion checking and memory debugging
memory debugging of all tests with a simple command:
VALGRIND=memcheck make check
* lots of other improvements and bug fixes (see ChangeLog)
2005-08-26: Hunspell 1.0.9 release
* improved related character map suggestion
* improved ngram suggestion
------ examples for ngram improvement (O=old, N = new ngram suggestions) --
1. Permenant (instead of Permanent)
O: Endangerment, Ferment, Fermented, Deferment's, Empowerment,
Ferment's, Ferments, Fermenting, Countermen, Weathermen
N: Permanent, Supermen, Preferment
Note: Ngram suggestions was case sensitive.
2. permenant (instead of permanent)
O: supermen, newspapermen, empowerment, endangerment, preferments,
preferment, permanent, preferment's, permanently, impermanent
N: permanent, supermen, preferment
Note: new suggestions are also weighted with longest common subsequence,
first letter and common character positions
3. pernemant (instead of permanent)
O: pimpernel's, pimpernel, pimpernels, permanently, permanents, permanent,
supernatant, impermanent, semipermanent, impermanently
N: permanent, supernatant, pimpernel
Note: new method also prefers root word instead of not
relevant affixes ('s, s and ly)
4. pernament (instead of permanent)
O: tournaments, tournament, ornaments, ornament's, ornamenting, ornamented,
ornament, ornamentals, ornamental, ornamentally
N: ornamental, ornament, tournament
Note: Both ngram methods misses here.
5. obvus (instad of obvious):
O: obvious, Corvus, obverse, obviously, Jacobus, obtuser, obtuse,
obviates, obviate, Travus
N: obvious, obtuse, obverse
Note: new method also prefers common first letters.
6. unambigus (instead of unambiguous)
O: unambiguous, unambiguity, unambiguously, ambiguously, ambiguous,
unambitious, ambiguities, ambiguousness
N: unambiguous, unambiguity, unambitious
7. consecvence (instead of consequence)
O: consecutive, consecutively, consecutiveness, nonconsecutive, consequence,
consecutiveness's, convenience's, consistences, consistence
N: consequence, consecutive, consecrates
An example in a language with rich morphology:
8. Misisipiben (instead of Mississippiben [`in Mississippi' in Hungarian]):
O: Misikdiben, Pisisediben, Misikiiben, Pisisekiben, Misikiben,
Misikidiben, Misikkiben, Misikikiben, Misikimiben, Mississippiiben
N: Mississippiben, Mississippiiben, Misiiben
Note: Suggesting not relevant affixes was the biggest fault in ngram
suggestion for languages with a lot of affixes.
--------------- end of examples --------------------
* support twofold prefix cutting
* lots of other improvements and bug fixes (see ChangeLog)
* test Hunspell with 54 OpenOffice.org dictionaries:
source: ftp://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
testing shell script:
-------------------------------------------------------
for i in `ls *zip | grep '^[a-z]*_[A-Z]*[.]'`
do
dic=`basename $i .zip`
mkdir $dic
echo unzip $dic
unzip -d $dic $i 2>/dev/null
cd $dic
echo unmunch and test $dic
unmunch $dic.dic $dic.aff 2>/dev/null | awk '{print$0"\t"}' |
hunspell -d $dic -l -1 >$dic.result 2>$dic.err || rm -f $dic.result
cd ..
done
--------------------------------------------------------
test result (0 size is o.k.):
$ for i in *_*/*.result; do wc -c $i; done
0 af_ZA/af_ZA.result
0 bg_BG/bg_BG.result
0 ca_ES/ca_ES.result
0 cy_GB/cy_GB.result
0 cs_CZ/cs_CZ.result
0 da_DK/da_DK.result
0 de_AT/de_AT.result
0 de_CH/de_CH.result
0 de_DE/de_DE.result
0 el_GR/el_GR.result
6 en_AU/en_AU.result
0 en_CA/en_CA.result
0 en_GB/en_GB.result
0 en_NZ/en_NZ.result
0 en_US/en_US.result
0 eo_EO/eo_EO.result
0 es_ES/es_ES.result
0 es_MX/es_MX.result
0 es_NEW/es_NEW.result
0 fo_FO/fo_FO.result
0 fr_FR/fr_FR.result
0 ga_IE/ga_IE.result
0 gd_GB/gd_GB.result
0 gl_ES/gl_ES.result
0 he_IL/he_IL.result
0 hr_HR/hr_HR.result
200694989 hu_HU/hu_HU.result
0 id_ID/id_ID.result
0 it_IT/it_IT.result
0 ku_TR/ku_TR.result
0 lt_LT/lt_LT.result
0 lv_LV/lv_LV.result
0 mg_MG/mg_MG.result
0 mi_NZ/mi_NZ.result
0 ms_MY/ms_MY.result
0 nb_NO/nb_NO.result
0 nl_NL/nl_NL.result
0 nn_NO/nn_NO.result
0 ny_MW/ny_MW.result
0 pl_PL/pl_PL.result
0 pt_BR/pt_BR.result
0 pt_PT/pt_PT.result
0 ro_RO/ro_RO.result
0 ru_RU/ru_RU.result
0 rw_RW/rw_RW.result
0 sk_SK/sk_SK.result
0 sl_SI/sl_SI.result
0 sv_SE/sv_SE.result
0 sw_KE/sw_KE.result
0 tet_ID/tet_ID.result
0 tl_PH/tl_PH.result
0 tn_ZA/tn_ZA.result
0 uk_UA/uk_UA.result
0 zu_ZA/zu_ZA.result
In en_AU dictionary, there is an abbrevation with two dots (`eqn..'), but
`eqn.' is missing. Presumably it is a dictionary bug. Myspell also
haven't accepted it.
Hungarian dictionary contains pseudoroots and forbidden words.
Unmunch haven't supported these features yet, and generates bad words, too.
* check affix rules and OOo dictionaries. Detected bugs in cs_CZ,
es_ES, es_NEW, es_MX, lt_LT, nn_NO, pt_PT, ro_RO, sk_SK and sv_SE dictionaries).
Details:
--------------------------------------------------------
cs_CZ
warning - incompatible stripping characters and condition:
SFX D us ech [^ighk]os
SFX D us y [^i]os
SFX Q os ech [^ghk]es
SFX M o ech [^ghkei]a
SFX J m ej m
SFX J m ejme m
SFX J m ejte m
SFX A ouit up oupit
SFX A ouit upme oupit
SFX A ouit upte oupit
SFX A nout l [aeiouyr][^aeiouyrl][^aeiouy
SFX A nout l [aeiouyr][^aeiouyrl][^aeiouy
es_ES
warning - incompatible stripping characters and condition:
SFX W umar se [ae]husar
SFX W emir iis eir
es_NEW
warning - incompatible stripping characters and condition:
SFX I unan nen unar
es_MX
warning - incompatible stripping characters and condition:
SFX A a ote e
SFX W umar se [ae]husar
SFX W emir iis eir
lt_LT
warning - incompatible stripping characters and condition:
SFX U ti siuosi tis
SFX U ti siuosi tis
SFX U ti siesi tis
SFX U ti siesi tis
SFX U ti sis tis
SFX U ti sis tis
SFX U ti sims tis
SFX U ti sims tis
SFX U ti sits tis
SFX U ti sits tis
nn_NO
warning - incompatible stripping characters and condition:
SFX D ar rar [^fmk]er
SFX U re orde ere
SFX U re ort ere
pt_PT
warning - incompatible stripping characters and condition:
SFX g os oas o
SFX g os oas o
ro_RO
warning - bad field number:
SFX L 0 le [^cg] i
SFX L 0 i [cg] i
SFX U 0 i [^i] ii
warning - incompatible stripping characters and condition:
SFX P l i l [<- there is an unnecessary tabulator here)
SFX I a ii [gc] a
warning - bad field number:
SFX I a ii [gc] a
SFX I a ei [^cg] a
sk_SK
warning - incompatible stripping characters and condition:
SFX T a ol kla
SFX T a olc kla
SFX T sa l sla
SFX T sa lc sla
SFX R c liem c
SFX R is tie mias
SFX R iez iem [^i]ez
SFX R iez ie [^i]ez
SFX R iez ie [^i]ez
SFX R iez eme [^i]ez
SFX R iez ete [^i]ez
SFX R iez [^i]ez
SFX R iez c [^i]ez
SFX R iez z [^i]ez
SFX R iez me [^i]ez
SFX R iez te [^i]ez
sv_SE
warning - bad field number:
SFX C 0 net nets [^e]n
--------------------------------------------------------
2005-08-01: Hunspell 1.0.8 release
- improved compound word support
- fix German S handling
- port MySpell files and MAP feature
2005-07-22: Hunspell 1.0.7 release
2005-07-21: new home page: http://hunspell.sourceforge.net
3p-libhunspell-main/hunspell/README 0000664 0000000 0000000 00000025077 14366026630 0017374 0 ustar 00root root 0000000 0000000 # About Hunspell
Hunspell is a free spell checker and morphological analyzer library
and command-line tool, licensed under LGPL/GPL/MPL tri-license.
Hunspell is used by LibreOffice office suite, free browsers, like
Mozilla Firefox and Google Chrome, and other tools and OSes, like
Linux distributions and macOS. It is also a command-line tool for
Linux, Unix-like and other OSes.
It is designed for quick and high quality spell checking and
correcting for languages with word-level writing system,
including languages with rich morphology, complex word compounding
and character encoding.
Hunspell interfaces: Ispell-like terminal interface using Curses
library, Ispell pipe interface, C++/C APIs and shared library, also
with existing language bindings for other programming languages.
Hunspell's code base comes from OpenOffice.org's MySpell library,
developed by Kevin Hendricks (originally a C++ reimplementation of
spell checking and affixation of Geoff Kuenning's International
Ispell from scratch, later extended with eg. n-gram suggestions),
see http://lingucomponent.openoffice.org/MySpell-3.zip, and
its README, CONTRIBUTORS and license.readme (here: license.myspell) files.
Main features of Hunspell library, developed by László Németh:
- Unicode support
- Highly customizable suggestions: word-part replacement tables and
stem-level phonetic and other alternative transcriptions to recognize
and fix all typical misspellings, don't suggest offensive words etc.
- Complex morphology: dictionary and affix homonyms; twofold affix
stripping to handle inflectional and derivational morpheme groups for
agglutinative languages, like Azeri, Basque, Estonian, Finnish, Hungarian,
Turkish; 64 thousand affix classes with arbitrary number of affixes;
conditional affixes, circumfixes, fogemorphemes, zero morphemes,
virtual dictionary stems, forbidden words to avoid overgeneration etc.
- Handling complex compounds (for example, for Finno-Ugric, German and
Indo-Aryan languages): recognizing compounds made of arbitrary
number of words, handle affixation within compounds etc.
- Custom dictionaries with affixation
- Stemming
- Morphological analysis (in custom item and arrangement style)
- Morphological generation
- SPELLML XML API over plain spell() API function for easier integration
of stemming, morpological generation and custom dictionaries with affixation
- Language specific algorithms, like special casing of Azeri or Turkish
dotted i and German sharp s, and special compound rules of Hungarian.
Main features of Hunspell command line tool, developed by László Németh:
- Reimplementation of quick interactive interface of Geoff Kuenning's Ispell
- Parsing formats: text, OpenDocument, TeX/LaTeX, HTML/SGML/XML, nroff/troff
- Custom dictionaries with optional affixation, specified by a model word
- Multiple dictionary usage (for example hunspell -d en_US,de_DE,de_medical)
- Various filtering options (bad or good words/lines)
- Morphological analysis (option -m)
- Stemming (option -s)
See man hunspell, man 3 hunspell, man 5 hunspell for complete manual.
Translations: Hunspell has been translated into several languages already. If your language is missing or incomplete, please use [Weblate](https://hosted.weblate.org/engage/hunspell/) to help translate Hunspell.
# Dependencies
Build only dependencies:
g++ make autoconf automake autopoint libtool
Runtime dependencies:
| | Mandatory | Optional |
|---------------|------------------|------------------|
|libhunspell | | |
|hunspell tool | libiconv gettext | ncurses readline |
# Compiling on GNU/Linux and Unixes
We first need to download the dependencies. On Linux, `gettext` and
`libiconv` are part of the standard library. On other Unixes we
need to manually install them.
For Ubuntu:
sudo apt install autoconf automake autopoint libtool
Then run the following commands:
autoreconf -vfi
./configure
make
sudo make install
sudo ldconfig
For dictionary development, use the `--with-warnings` option of
configure.
For interactive user interface of Hunspell executable, use the
`--with-ui` option.
Optional developer packages:
- ncurses (need for --with-ui), eg. libncursesw5 for UTF-8
- readline (for fancy input line editing, configure parameter:
--with-readline)
In Ubuntu, the packages are:
libncurses5-dev libreadline-dev
# Compiling on OSX and macOS
On macOS for compiler always use `clang` and not `g++` because Homebrew
dependencies are build with that.
brew install autoconf automake libtool gettext
brew link gettext --force
Then run:
autoreconf -vfi
./configure
make
# Compiling on Windows
## Compiling with Mingw64 and MSYS2
Download Msys2, update everything and install the following
packages:
pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libtool
Open Mingw-w64 Win64 prompt and compile the same way as on Linux, see
above.
## Compiling in Cygwin environment
Download and install Cygwin environment for Windows with the following
extra packages:
- make
- automake
- autoconf
- libtool
- gcc-g++ development package
- ncurses, readline (for user interface)
- iconv (character conversion)
Then compile the same way as on Linux. Cygwin builds depend on
Cygwin1.dll.
# Debugging
It is recommended to install a debug build of the standard library:
libstdc++6-6-dbg
For debugging we need to create a debug build and then we need to start
`gdb`.
./configure CXXFLAGS='-g -O0 -Wall -Wextra'
make
./libtool --mode=execute gdb src/tools/hunspell
You can also pass the `CXXFLAGS` directly to `make` without calling
`./configure`, but we don't recommend this way during long development
sessions.
If you like to develop and debug with an IDE, see documentation at
https://github.com/hunspell/hunspell/wiki/IDE-Setup
# Testing
Testing Hunspell (see tests in tests/ subdirectory):
make check
or with Valgrind debugger:
make check
VALGRIND=[Valgrind_tool] make check
For example:
make check
VALGRIND=memcheck make check
# Documentation
features and dictionary format:
man 5 hunspell
man hunspell
hunspell -h
http://hunspell.github.io/
# Usage
After compiling and installing (see INSTALL) you can run the Hunspell
spell checker (compiled with user interface) with a Hunspell or Myspell
dictionary:
hunspell -d en_US text.txt
or without interface:
hunspell
hunspell -d en_GB -l
Linking with Hunspell static library:
g++ -lhunspell-1.7 example.cxx
# or better, use pkg-config
g++ $(pkg-config --cflags --libs hunspell) example.cxx
# Installing Hunspell (vcpkg)
Alternatively, you can build and install hunspell using [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install hunspell
The hunspell port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
## Dictionaries
Hunspell (MySpell) dictionaries:
- https://wiki.documentfoundation.org/Language_support_of_LibreOffice
- http://cgit.freedesktop.org/libreoffice/dictionaries
- http://extensions.libreoffice.org
- https://extensions.openoffice.org
- https://wiki.openoffice.org/wiki/Dictionaries
Aspell dictionaries (conversion: man 5 hunspell):
- ftp://ftp.gnu.org/gnu/aspell/dict
László Németh, nemeth at numbertext org
3p-libhunspell-main/hunspell/THANKS 0000664 0000000 0000000 00000011603 14366026630 0017415 0 ustar 00root root 0000000 0000000 Many thanks to the following contributors and supporters:
Mehmet Akin
Göran Andersson
Lars Aronsson
Ruud Baars
Bartkó Zoltán
Mathias Bauer
Bencsáth Boldizsár
Bíró Árpád
Ingo H. de Boer
Simon Brouwer
Jeppe Bundsgaard
Ginn Chen
Tomáš Chvátal
Aaron Digulla
Dmitri Gabinski
Dvornik László
David Einstein
Rene Engelhard
Frederik Fouvry
Flemming Frandsen
Serge Gautherie
Marek Gleń
Gavins at OOo
Gefferth András
Godó Ferenc
Goldman Eleonóra
Steinar H. Gunderson
Halácsy Péter
Chris Halls
Khaled Hosny
Izsók András
Björn Jacke
Mike Tian-Jian Jiang
Dafydd Jones
Ryan Jones
Jean-Christophe Helary
Kevin Hendricks
Martin Hollmichel
Pavel Janík
John Winters
Mohamed Kebdani
Kelemen Gábor
Shewangizaw Gulilat
Kéménczy Kálmán
Dan Kenigsberg
Pham Ngoc Khanh
Khiraly László
Koblinger Egmont
Kornai András
Tor Lillqvist
Christian Lohmaier
Robert Longson
Marot at SF dot net
Mark McClain
Caolan McNamara
Michael Meeks
Moheb Mekhaiel
Laurie Mercer
Ladislav Michnovič
Ellis Miller
Giuseppe Modugno
János Mohácsi
Bram Moolenaar
Daniel Naber
Nagy Viktor
John Nisly
Noll János
S Page
Christophe Paris
Malcolm Parsons
Sylvain Paschein
Volkov Peter
Bryan Petty
Harri Pitkänen
Davide Prina
Kevin F. Quinn
Erdal Ronahi
Olivier Ronez
Bernhard Rosenkraenzer
Sarlós Tamás
Thobias Schlemmer
Jan Seeger
Jose da Silva
Paulo Ney de Souza
Roland Smith
Munzir Taha
Timeless at bemail dot org
Tímár András
Tonal at OOo
Török László
Trón Viktor
Gianluca Turconi
Ryan VanderMeulen
Varga Dániel
Elio Voci
Miha Vrhovnik
Martijn Wargers
Michel Weimerskirch
Brett Wilson
Friedel Wolff
Daniel Yacob
Gábor Zahemszky
Taha Zerrouki
and others (see also MySpell authors bellow)
FSF.hu Foundation
http://www.fsf.hu
LibreOffice community
http://www.libreoffice.org
MOKK Research Centre
Budapest University of Technology and Economics
Sociology and Communications Department
http://www.mokk.bme.hu
Hungarian Ministry of Informatics and Telecommunications
IMEDIA Kft.
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,
Németh László
nemeth at numbertext org
--------------------------
MySpell Developer Credits:
Special credit and thanks go to ispell's creator Geoff Kuenning.
Ispell affix compression code was used as the basis for the
affix code used in MySpell. Specifically Geoff's use of a
conds[] array that makes it easy to check if the conditions
required for a particular affix are present was very
ingenious! Kudos to Geoff. Very nicely done.
BTW: ispell is available under a BSD style license
from Geoff Kuennings ispell website:
http://www.cs.ucla.edu/ficus-members/geoff/ispell.html
Kevin Hendricks is the original
author and now maintainer of the MySpell codebase. Recent
additions include ngram support, and related character maps
to help improve and create suggestions for very poorly
spelled words.
Please send any and all contributions or improvements
to him or to dev@lingucomponent.openoffice.org.
David Einstein (Deinst@world.std.com) developed an almost
complete rewrite of MySpell for use by the Mozilla project.
David and I are now working on parallel development tracks
to help our respective projects (Mozilla and OpenOffice.org)
and we will maintain full affix file and dictionary file
compatibility and work on merging our versions of MySpell
back into a single tree. David has been a significant help
in improving MySpell.
Németh László is the author of
the Hungarian dictionary and he developed and contributed
extensive changes to MySpell including ...
* code to support compound words in MySpell
* fixed numerous problems with encoding case conversion tables.
* designed/developed replacement tables to improve suggestions
* changed affix file parsing to trees to greatly speed loading
* removed the need for malloc/free pairs in suffix_check which
speeds up spell checking in suffix rich languages by 20%
Davide Prina , Giuseppe Modugno
, Gianluca Turconi
all from the it_IT OpenOffice.org team performed an
extremely detailed code review of MySpell and generated
fixes for bugs, leaks, and speedup improvements.
Simon Brouwer for fixes and enhancements
that have greatly improved MySpell auggestions
* n-gram suggestions for an initcap word have an init. cap.
* fix for too many n-gram suggestions from specialized dictionary,
* fix for long suggestions rather than close ones in case of
dictionaries with many compound words (kompuuter)
* optionally disabling split-word suggestions (controlled
by NOSPLITSUGS line in affix file)
Special Thanks to all others who have either contributed ideas or
testing for MySpell
Thanks,
Kevin Hendricks
kevin.hendricks@sympatico.ca
3p-libhunspell-main/hunspell/aclocal.m4 0000664 0000000 0000000 00000132545 14366026630 0020353 0 ustar 00root root 0000000 0000000 # generated automatically by aclocal 1.15.1 -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# 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.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
[m4_warning([this file was generated for autoconf 2.69.
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'.])])
# intlmacosx.m4 serial 5 (gettext-0.18.2)
dnl Copyright (C) 2004-2014, 2016 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Checks for special options needed on Mac OS X.
dnl Defines INTL_MACOSX_LIBS.
AC_DEFUN([gt_INTL_MACOSX],
[
dnl Check for API introduced in Mac OS X 10.2.
AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
[gt_cv_func_CFPreferencesCopyAppValue],
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include ]],
[[CFPreferencesCopyAppValue(NULL, NULL)]])],
[gt_cv_func_CFPreferencesCopyAppValue=yes],
[gt_cv_func_CFPreferencesCopyAppValue=no])
LIBS="$gt_save_LIBS"])
if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
[Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
fi
dnl Check for API introduced in Mac OS X 10.3.
AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include ]],
[[CFLocaleCopyCurrent();]])],
[gt_cv_func_CFLocaleCopyCurrent=yes],
[gt_cv_func_CFLocaleCopyCurrent=no])
LIBS="$gt_save_LIBS"])
if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
[Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
fi
INTL_MACOSX_LIBS=
if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
fi
AC_SUBST([INTL_MACOSX_LIBS])
])
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
#
# 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.
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.15'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.15.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# _AM_AUTOCONF_VERSION(VERSION)
# -----------------------------
# aclocal traces this macro to find the Autoconf version.
# This is a private macro too. Using m4_define simplifies
# the logic in aclocal, which can simply ignore this definition.
m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.15.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# 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.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is '.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
#
# 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.
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
[AC_PREREQ([2.52])dnl
m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
m4_define([_AM_COND_VALUE_$1], [$2])dnl
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi
AC_CONFIG_COMMANDS_PRE(
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
AC_MSG_ERROR([[conditional "$1" was never defined.
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# 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.
# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
[$1], [CXX], [depcc="$CXX" am_compiler_list=],
[$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
[$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
[$1], [UPC], [depcc="$UPC" am_compiler_list=],
[$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named 'D' -- because '-MD' means "put the output
# in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
am__universal=false
m4_case([$1], [CC],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac],
[CXX],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac])
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
# Solaris 10 /bin/sh.
echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle '-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# After this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
AM_CONDITIONAL([am__fastdep$1], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE([dependency-tracking], [dnl
AS_HELP_STRING(
[--enable-dependency-tracking],
[do not reject slow dependency extractors])
AS_HELP_STRING(
[--disable-dependency-tracking],
[speeds up one-time build])])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
am__nodep='_no'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
AC_SUBST([am__nodep])dnl
_AM_SUBST_NOTMAKE([am__nodep])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# 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.
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
shift
for mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named 'Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`AS_DIRNAME("$mf")`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running 'make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "$am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
AS_MKDIR_P([$dirpart/$fdir])
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
# AM_OUTPUT_DEPENDENCY_COMMANDS
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each '.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# 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.
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
m4_define([AC_PROG_CC],
m4_defn([AC_PROG_CC])
[_AM_PROG_CC_C_O
])
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
# The call with PACKAGE and VERSION arguments is the old style
# call (pre autoconf-2.50), which is being phased out. PACKAGE
# and VERSION should now be passed to AC_INIT and removed from
# the call to AM_INIT_AUTOMAKE.
# We support both call styles for the transition. After
# the next Automake release, Autoconf can make the AC_INIT
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.65])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
AC_SUBST([CYGPATH_W])
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
[AC_DIAGNOSE([obsolete],
[$0: two- and three-arguments forms are deprecated.])
m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(
m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
[ok:ok],,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
AM_MISSING_PROG([AUTOCONF], [autoconf])
AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
AM_MISSING_PROG([AUTOHEADER], [autoheader])
AM_MISSING_PROG([MAKEINFO], [makeinfo])
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
#
#
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES([CC])],
[m4_define([AC_PROG_CC],
m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
[_AM_DEPENDENCIES([CXX])],
[m4_define([AC_PROG_CXX],
m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
[_AM_DEPENDENCIES([OBJC])],
[m4_define([AC_PROG_OBJC],
m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
[_AM_DEPENDENCIES([OBJCXX])],
[m4_define([AC_PROG_OBJCXX],
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
])
AC_REQUIRE([AM_SILENT_RULES])dnl
dnl The testsuite driver may need to know about EXEEXT, so add the
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
# POSIX will say in a future version that running "rm -f" with no argument
# is OK; and we want to be able to make that assumption in our Makefile
# recipes. So use an aggressive probe to check that the usage we want is
# actually supported "in the wild" to an acceptable degree.
# See automake bug#10828.
# To make any issue more visible, cause the running configure to be aborted
# by default if the 'rm' program in use doesn't match our expectations; the
# user can still override this though.
if rm -f && rm -fr && rm -rf; then : OK; else
cat >&2 <<'END'
Oops!
Your 'rm' program seems unable to run without file operands specified
on the command line, even when the '-f' option is present. This is contrary
to the behaviour of most rm programs out there, and not conforming with
the upcoming POSIX standard:
Please tell bug-automake@gnu.org about your system, including the value
of your $PATH and any error possibly output before this message. This
can help us improve future automake versions.
END
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
echo 'Configuration will proceed anyway, since you have set the' >&2
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
echo >&2
else
cat >&2 <<'END'
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
that behaves properly: .
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
to "yes", and re-run configure.
END
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
fi
fi
dnl The trailing newline in this macro's definition is deliberate, for
dnl backward compatibility and to allow trailing 'dnl'-style comments
dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
# loop where config.status creates the headers, so we can generate
# our stamp files there.
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
[# Compute $1's index in $config_headers.
_am_arg=$1
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# 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.
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
AC_SUBST([install_sh])])
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
#
# 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.
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
[rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# 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.
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from 'make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
#
# 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.
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it is modern enough.
# If it is, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
AC_MSG_WARN(['missing' script is too old or missing])
fi
])
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
#
# 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.
# AM_PROG_MKDIR_P
# ---------------
# Check for 'mkdir -p'.
AC_DEFUN([AM_PROG_MKDIR_P],
[AC_PREREQ([2.60])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
dnl FIXME we are no longer going to remove this! adjust warning
dnl FIXME message accordingly.
AC_DIAGNOSE([obsolete],
[$0: this macro is deprecated, and will soon be removed.
You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.])
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
dnl while keeping a definition of mkdir_p for backward compatibility.
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
dnl Makefile.ins that do not define MKDIR_P, so we do our own
dnl adjustment using top_builddir (which is defined more often than
dnl MKDIR_P).
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
case $mkdir_p in
[[\\/$]]* | ?:[[\\/]]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
])
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# 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.
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
# _AM_SET_OPTIONS(OPTIONS)
# ------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# 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.
# _AM_PROG_CC_C_O
# ---------------
# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
# to automatically call this.
AC_DEFUN([_AM_PROG_CC_C_O],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([compile])dnl
AC_LANG_PUSH([C])dnl
AC_CACHE_CHECK(
[whether $CC understands -c and -o together],
[am_cv_prog_cc_c_o],
[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
# Make sure it works both with $CC and with simple cc.
# Following AC_PROG_CC_C_O, we do the test twice because some
# compilers refuse to overwrite an existing .o file with -o,
# though they will create one.
am_cv_prog_cc_c_o=yes
for am_i in 1 2; do
if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
&& test -f conftest2.$ac_objext; then
: OK
else
am_cv_prog_cc_c_o=no
break
fi
done
rm -f core conftest*
unset am_i])
if test "$am_cv_prog_cc_c_o" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__CC in this case,
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
CC="$am_aux_dir/compile $CC"
fi
AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# 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.
# AM_RUN_LOG(COMMAND)
# -------------------
# Run COMMAND, save the exit status in ac_status, and log it.
# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
AC_DEFUN([AM_RUN_LOG],
[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
(exit $ac_status); }])
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# 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.
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[[\\\"\#\$\&\'\`$am_lf]]*)
AC_MSG_ERROR([unsafe absolute working directory name]);;
esac
case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
esac
# Do 'set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
am_has_slept=no
for am_try in 1 2; do
echo "timestamp, slept: $am_has_slept" > conftest.file
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# 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".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
if test "$[2]" = conftest.file || test $am_try -eq 2; then
break
fi
# Just in case.
sleep 1
am_has_slept=yes
done
test "$[2]" = conftest.file
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
AC_MSG_RESULT([yes])
# If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer.
am_sleep_pid=
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
( sleep 1 ) &
am_sleep_pid=$!
fi
AC_CONFIG_COMMANDS_PRE(
[AC_MSG_CHECKING([that generated files are newer than configure])
if test -n "$am_sleep_pid"; then
# Hide warnings about reused PIDs.
wait $am_sleep_pid 2>/dev/null
fi
AC_MSG_RESULT([done])])
rm -f conftest.file
])
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
#
# 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.
# AM_SILENT_RULES([DEFAULT])
# --------------------------
# Enable less verbose build rules; with the default set to DEFAULT
# ("yes" being less verbose, "no" or empty being verbose).
AC_DEFUN([AM_SILENT_RULES],
[AC_ARG_ENABLE([silent-rules], [dnl
AS_HELP_STRING(
[--enable-silent-rules],
[less verbose build output (undo: "make V=1")])
AS_HELP_STRING(
[--disable-silent-rules],
[verbose build output (undo: "make V=0")])dnl
])
case $enable_silent_rules in @%:@ (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
esac
dnl
dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
dnl do not support nested variable expansions.
dnl See automake bug#9928 and bug#10237.
am_make=${MAKE-make}
AC_CACHE_CHECK([whether $am_make supports nested variables],
[am_cv_make_support_nested_variables],
[if AS_ECHO([['TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
@$(TRUE)
.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
am_cv_make_support_nested_variables=yes
else
am_cv_make_support_nested_variables=no
fi])
if test $am_cv_make_support_nested_variables = yes; then
dnl Using '$V' instead of '$(V)' breaks IRIX make.
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AC_SUBST([AM_V])dnl
AM_SUBST_NOTMAKE([AM_V])dnl
AC_SUBST([AM_DEFAULT_V])dnl
AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
AM_BACKSLASH='\'
AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# 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.
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor 'install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in "make install-strip", and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
# Installed binaries are usually stripped using 'strip' when the user
# run "make install-strip". However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the 'STRIP' environment variable to overrule this program.
dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
#
# 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.
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# This macro is traced by Automake.
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
# --------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
#
# 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.
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# FORMAT should be one of 'v7', 'ustar', or 'pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# $tardir.
# tardir=directory && $(am__tar) > result.tar
#
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
#
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AC_SUBST([AMTAR], ['$${TAR-tar}'])
# We'll loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
m4_if([$1], [v7],
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
[m4_case([$1],
[ustar],
[# The POSIX 1988 'ustar' format is defined with fixed-size fields.
# There is notably a 21 bits limit for the UID and the GID. In fact,
# the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
# and bug#13588).
am_max_uid=2097151 # 2^21 - 1
am_max_gid=$am_max_uid
# The $UID and $GID variables are not portable, so we need to resort
# to the POSIX-mandated id(1) utility. Errors in the 'id' calls
# below are definitely unexpected, so allow the users to see them
# (that is, avoid stderr redirection).
am_uid=`id -u || echo unknown`
am_gid=`id -g || echo unknown`
AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
if test $am_uid -le $am_max_uid; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
_am_tools=none
fi
AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
if test $am_gid -le $am_max_gid; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
_am_tools=none
fi],
[pax],
[],
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
# Go ahead even if we have the value already cached. We do so because we
# need to set the values for the 'am__tar' and 'am__untar' variables.
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
for _am_tool in $_am_tools; do
case $_am_tool in
gnutar)
for _am_tar in tar gnutar gtar; do
AM_RUN_LOG([$_am_tar --version]) && break
done
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
am__untar="$_am_tar -xf -"
;;
plaintar)
# Must skip GNU tar: if it does not support --format= it doesn't create
# ustar tarball either.
(tar --version) >/dev/null 2>&1 && continue
am__tar='tar chf - "$$tardir"'
am__tar_='tar chf - "$tardir"'
am__untar='tar xf -'
;;
pax)
am__tar='pax -L -x $1 -w "$$tardir"'
am__tar_='pax -L -x $1 -w "$tardir"'
am__untar='pax -r'
;;
cpio)
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
am__untar='cpio -i -H $1 -d'
;;
none)
am__tar=false
am__tar_=false
am__untar=false
;;
esac
# If the value was cached, stop now. We just wanted to have am__tar
# and am__untar set.
test -n "${am_cv_prog_tar_$1}" && break
# tar/untar a dummy directory, and stop if the command works.
rm -rf conftest.dir
mkdir conftest.dir
echo GrepMe > conftest.dir/file
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
AM_RUN_LOG([$am__untar /dev/null 2>&1 && break
fi
done
rm -rf conftest.dir
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([m4/ax_cxx_compile_stdcxx.m4])
m4_include([m4/ax_cxx_compile_stdcxx_11.m4])
m4_include([m4/gettext.m4])
m4_include([m4/iconv.m4])
m4_include([m4/lib-ld.m4])
m4_include([m4/lib-link.m4])
m4_include([m4/lib-prefix.m4])
m4_include([m4/libtool.m4])
m4_include([m4/ltoptions.m4])
m4_include([m4/ltsugar.m4])
m4_include([m4/ltversion.m4])
m4_include([m4/lt~obsolete.m4])
m4_include([m4/nls.m4])
m4_include([m4/po.m4])
m4_include([m4/progtest.m4])
m4_include([m4/visibility.m4])
3p-libhunspell-main/hunspell/compile 0000775 0000000 0000000 00000016245 14366026630 0020067 0 ustar 00root root 0000000 0000000 #! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2012-10-14.11; # UTC
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Written by Tom Tromey .
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to or send patches to
# .
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to .
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
3p-libhunspell-main/hunspell/config.guess 0000775 0000000 0000000 00000126373 14366026630 0021035 0 ustar 00root root 0000000 0000000 #! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2018 Free Software Foundation, Inc.
timestamp='2018-02-24'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see .
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to .
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to ."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > "$dummy.c" ;
for c in cc gcc c89 c99 ; do
if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
eval "$set_cc_for_build"
cat <<-EOF > "$dummy.c"
#include
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
LIBC=gnu
#endif
EOF
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
# If ldd exists, use it to detect musl libc.
if command -v ldd >/dev/null && \
ldd --version 2>&1 | grep -q ^musl
then
LIBC=musl
fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
"/sbin/$sysctl" 2>/dev/null || \
"/usr/sbin/$sysctl" 2>/dev/null || \
echo unknown)`
case "$UNAME_MACHINE_ARCH" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
machine="${arch}${endian}"-unknown
;;
*) machine="$UNAME_MACHINE_ARCH"-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
case "$UNAME_MACHINE_ARCH" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval "$set_cc_for_build"
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
# Determine ABI tags.
case "$UNAME_MACHINE_ARCH" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "$UNAME_VERSION" in
Debian*)
release='-gnu'
;;
*)
release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "$machine-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
exit ;;
*:MidnightBSD:*:*)
echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
exit ;;
*:ekkoBSD:*:*)
echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
exit ;;
*:SolidBSD:*:*)
echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:MirBSD:*:*)
echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:Sortix:*:*)
echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
*:Redox:*:*)
echo "$UNAME_MACHINE"-unknown-redox
exit ;;
mips:OSF1:*.*)
echo mips-dec-osf1
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
UNAME_MACHINE=alpha ;;
"LCA4 (21066/21068)")
UNAME_MACHINE=alpha ;;
"EV5 (21164)")
UNAME_MACHINE=alphaev5 ;;
"EV5.6 (21164A)")
UNAME_MACHINE=alphaev56 ;;
"EV5.6 (21164PC)")
UNAME_MACHINE=alphapca56 ;;
"EV5.7 (21164PC)")
UNAME_MACHINE=alphapca57 ;;
"EV6 (21264)")
UNAME_MACHINE=alphaev6 ;;
"EV6.7 (21264A)")
UNAME_MACHINE=alphaev67 ;;
"EV6.8CB (21264C)")
UNAME_MACHINE=alphaev68 ;;
"EV6.8AL (21264B)")
UNAME_MACHINE=alphaev68 ;;
"EV6.8CX (21264D)")
UNAME_MACHINE=alphaev68 ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE=alphaev69 ;;
"EV7 (21364)")
UNAME_MACHINE=alphaev7 ;;
"EV7.9 (21364A)")
UNAME_MACHINE=alphaev79 ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo "$UNAME_MACHINE"-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo "$UNAME_MACHINE"-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix"$UNAME_RELEASE"
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux"$UNAME_RELEASE"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval "$set_cc_for_build"
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
fi
fi
echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos"$UNAME_RELEASE"
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos"$UNAME_RELEASE"
;;
sun4)
echo sparc-sun-sunos"$UNAME_RELEASE"
;;
esac
exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos"$UNAME_RELEASE"
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint"$UNAME_RELEASE"
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint"$UNAME_RELEASE"
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint"$UNAME_RELEASE"
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten"$UNAME_RELEASE"
exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten"$UNAME_RELEASE"
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix"$UNAME_RELEASE"
exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix"$UNAME_RELEASE"
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix"$UNAME_RELEASE"
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos"$UNAME_RELEASE"
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
then
if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
[ "$TARGET_BINARY_INTERFACE"x = x ]
then
echo m88k-dg-dgux"$UNAME_RELEASE"
else
echo m88k-dg-dguxbcs"$UNAME_RELEASE"
fi
else
echo i586-dg-dgux"$UNAME_RELEASE"
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#include
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
echo "$SYSTEM_NAME"
else
echo rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/lslpp ] ; then
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
case "$UNAME_MACHINE" in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "$sc_cpu_version" in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "$sc_kernel_bits" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
if [ "$HP_ARCH" = "" ]; then
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include
#include
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ "$HP_ARCH" = hppa2.0w ]
then
eval "$set_cc_for_build"
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
HP_ARCH=hppa2.0w
else
HP_ARCH=hppa64
fi
fi
echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#include
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo "$UNAME_MACHINE"-unknown-osf1mk
else
echo "$UNAME_MACHINE"-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:BSD/OS:*:*)
echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
case "$UNAME_PROCESSOR" in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
i*:CYGWIN*:*)
echo "$UNAME_MACHINE"-pc-cygwin
exit ;;
*:MINGW64*:*)
echo "$UNAME_MACHINE"-pc-mingw64
exit ;;
*:MINGW*:*)
echo "$UNAME_MACHINE"-pc-mingw32
exit ;;
*:MSYS*:*)
echo "$UNAME_MACHINE"-pc-msys
exit ;;
i*:PW*:*)
echo "$UNAME_MACHINE"-pc-pw32
exit ;;
*:Interix*:*)
case "$UNAME_MACHINE" in
x86)
echo i586-pc-interix"$UNAME_RELEASE"
exit ;;
authenticamd | genuineintel | EM64T)
echo x86_64-unknown-interix"$UNAME_RELEASE"
exit ;;
IA64)
echo ia64-unknown-interix"$UNAME_RELEASE"
exit ;;
esac ;;
i*:UWIN*:*)
echo "$UNAME_MACHINE"-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
*:GNU:*:*)
# the GNU system
echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
exit ;;
i*86:Minix:*:*)
echo "$UNAME_MACHINE"-pc-minix
exit ;;
aarch64:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arm*:Linux:*:*)
eval "$set_cc_for_build"
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
else
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
cris:Linux:*:*)
echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
crisv32:Linux:*:*)
echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
e2k:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
frv:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
hexagon:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:Linux:*:*)
echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
ia64:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
k1om:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m32r*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m68*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
;;
mips64el:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
openrisc*:Linux:*:*)
echo or1k-unknown-linux-"$LIBC"
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
padre:Linux:*:*)
echo sparc-unknown-linux-"$LIBC"
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-"$LIBC"
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
*) echo hppa-unknown-linux-"$LIBC" ;;
esac
exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-"$LIBC"
exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-"$LIBC"
exit ;;
ppc64le:Linux:*:*)
echo powerpc64le-unknown-linux-"$LIBC"
exit ;;
ppcle:Linux:*:*)
echo powerpcle-unknown-linux-"$LIBC"
exit ;;
riscv32:Linux:*:* | riscv64:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
exit ;;
sh64*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sh*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
tile*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
vax:Linux:*:*)
echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
exit ;;
x86_64:Linux:*:*)
if objdump -f /bin/sh | grep -q elf32-x86-64; then
echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32
else
echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
fi
exit ;;
xtensa*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo "$UNAME_MACHINE"-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
echo "$UNAME_MACHINE"-unknown-stop
exit ;;
i*86:atheos:*:*)
echo "$UNAME_MACHINE"-unknown-atheos
exit ;;
i*86:syllable:*:*)
echo "$UNAME_MACHINE"-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos"$UNAME_RELEASE"
exit ;;
i*86:*DOS:*:*)
echo "$UNAME_MACHINE"-pc-msdosdjgpp
exit ;;
i*86:*:4.*:*)
UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
else
echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
fi
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
else
echo "$UNAME_MACHINE"-pc-sysv32
fi
exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
paragon:*:*:*)
echo i860-intel-osf1
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos"$UNAME_RELEASE"
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos"$UNAME_RELEASE"
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv"$UNAME_RELEASE"
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo "$UNAME_MACHINE"-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says
echo i586-unisys-sysv4
exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes .
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
echo "$UNAME_MACHINE"-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux"$UNAME_RELEASE"
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv"$UNAME_RELEASE"
else
echo mips-unknown-sysv"$UNAME_RELEASE"
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
x86_64:Haiku:*:*)
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux"$UNAME_RELEASE"
exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux"$UNAME_RELEASE"
exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux"$UNAME_RELEASE"
exit ;;
SX-7:SUPER-UX:*:*)
echo sx7-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8:SUPER-UX:*:*)
echo sx8-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8R:SUPER-UX:*:*)
echo sx8r-nec-superux"$UNAME_RELEASE"
exit ;;
SX-ACE:SUPER-UX:*:*)
echo sxace-nec-superux"$UNAME_RELEASE"
exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Rhapsody:*:*)
echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
eval "$set_cc_for_build"
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_PPC >/dev/null
then
UNAME_PROCESSOR=powerpc
fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that puts up a graphical alert prompting to install
# developer tools. Any system running Mac OS X 10.7 or
# later (Darwin 11 and later) is required to have a 64-bit
# processor. This is not true of the ARM version of Darwin
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-*:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSR-*:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSV-*:NONSTOP_KERNEL:*:*)
echo nsv-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
echo nsx-tandem-nsk"$UNAME_RELEASE"
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
echo "$UNAME_MACHINE"-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux"$UNAME_RELEASE"
exit ;;
*:DragonFly:*:*)
echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "$UNAME_MACHINE" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
esac ;;
*:XENIX:*:SysV)
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
exit ;;
i*86:rdos:*:*)
echo "$UNAME_MACHINE"-pc-rdos
exit ;;
i*86:AROS:*:*)
echo "$UNAME_MACHINE"-pc-aros
exit ;;
x86_64:VMkernel:*:*)
echo "$UNAME_MACHINE"-unknown-esx
exit ;;
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
exit ;;
esac
echo "$0: unable to guess system type" >&2
case "$UNAME_MACHINE:$UNAME_SYSTEM" in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <&2 </dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
UNAME_MACHINE = "$UNAME_MACHINE"
UNAME_RELEASE = "$UNAME_RELEASE"
UNAME_SYSTEM = "$UNAME_SYSTEM"
UNAME_VERSION = "$UNAME_VERSION"
EOF
exit 1
# Local variables:
# eval: (add-hook 'write-file-functions 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
3p-libhunspell-main/hunspell/config.h.in 0000664 0000000 0000000 00000007440 14366026630 0020531 0 ustar 00root root 0000000 0000000 /* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
CoreFoundation framework. */
#undef HAVE_CFLOCALECOPYCURRENT
/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
/* Define to 1 if you have the header file. */
#undef HAVE_CURSES_H
/* define if the compiler supports basic C++11 syntax */
#undef HAVE_CXX11
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
#undef HAVE_DCGETTEXT
/* Define to 1 if you have the header file. */
#undef HAVE_DLFCN_H
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
/* Define if you have the iconv() function and it works. */
#undef HAVE_ICONV
/* Define to 1 if you have the header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the header file. */
#undef HAVE_LANGINFO_H
/* Define to 1 if you have the header file. */
#undef HAVE_LOCALE_H
/* Define to 1 if you have the