summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-text/hunspell')
-rw-r--r--app-text/hunspell/Manifest1
-rw-r--r--app-text/hunspell/files/hunspell-1.3-renameexes.patch135
-rw-r--r--app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch59
-rw-r--r--app-text/hunspell/hunspell-1.3.3.ebuild86
-rw-r--r--app-text/hunspell/metadata.xml10
5 files changed, 291 insertions, 0 deletions
diff --git a/app-text/hunspell/Manifest b/app-text/hunspell/Manifest
new file mode 100644
index 000000000000..6086c5a90c39
--- /dev/null
+++ b/app-text/hunspell/Manifest
@@ -0,0 +1 @@
+DIST hunspell-1.3.3.tar.gz 986081 SHA256 a7b2c0de0e2ce17426821dc1ac8eb115029959b3ada9d80a81739fa19373246c SHA512 7599981d002a4a032c41c83f6287243a4942b0e25c408049a3ba86c16f63ce964800a3ac325ace0402b0d7256690c4a4151a66f19a8f58cc455af0498bb1af04 WHIRLPOOL c10f7f7b326ce886bd031da29e9e04a1f4a5914f24cbe75061ed539958e7a8efaa4d4ea16f2b17437c63d97d6f558a27c092bc43c9f56c75078667d5344402f8
diff --git a/app-text/hunspell/files/hunspell-1.3-renameexes.patch b/app-text/hunspell/files/hunspell-1.3-renameexes.patch
new file mode 100644
index 000000000000..70c5b748edba
--- /dev/null
+++ b/app-text/hunspell/files/hunspell-1.3-renameexes.patch
@@ -0,0 +1,135 @@
+=== modified file 'src/tools/Makefile.am'
+--- src/tools/Makefile.am 2011-05-24 15:55:29 +0000
++++ src/tools/Makefile.am 2011-05-24 15:58:36 +0000
+@@ -1,4 +1,4 @@
+-bin_PROGRAMS=analyze chmorph hunspell munch unmunch hzip hunzip
++bin_PROGRAMS=hunspell-analyze hunspell-chmorph hunspell hunspell-munch hunspell-unmunch hzip hunzip
+
+ INCLUDES=-I${top_srcdir}/src/hunspell -I${top_srcdir}/src/parsers
+
+@@ -6,8 +6,8 @@
+ hunzip_SOURCES=hunzip.cxx
+ hunzip_LDADD = ../hunspell/libhunspell-1.3.la
+
+-munch_SOURCES=munch.c munch.h
+-unmunch_SOURCES=unmunch.c unmunch.h
++hunspell_munch_SOURCES=munch.c munch.h
++hunspell_unmunch_SOURCES=unmunch.c unmunch.h
+
+ example_SOURCES=example.cxx
+ example_LDADD = ../hunspell/libhunspell-1.3.la
+@@ -16,11 +16,11 @@
+ hunspell_LDADD = @LIBINTL@ @LIBICONV@ ../parsers/libparsers.a \
+ ../hunspell/libhunspell-1.3.la @CURSESLIB@ @READLINELIB@
+
+-analyze_SOURCES=analyze.cxx
+-analyze_LDADD = ../hunspell/libhunspell-1.3.la
++hunspell_analyze_SOURCES=analyze.cxx
++hunspell_analyze_LDADD = ../hunspell/libhunspell-1.3.la
+
+-chmorph_SOURCES=chmorph.cxx
+-chmorph_LDADD = ../parsers/libparsers.a ../hunspell/libhunspell-1.3.la
++hunspell_chmorph_SOURCES=chmorph.cxx
++hunspell_chmorph_LDADD = ../parsers/libparsers.a ../hunspell/libhunspell-1.3.la
+
+ noinst_PROGRAMS=example
+
+
+=== modified file 'src/tools/chmorph.cxx'
+--- src/tools/chmorph.cxx 2011-05-24 15:55:29 +0000
++++ src/tools/chmorph.cxx 2011-05-24 16:00:54 +0000
+@@ -19,11 +19,11 @@
+ for (int i = 1; i < 6; i++)
+ if (!argv[i]) {
+ fprintf(stderr,
+- "chmorph - change affixes by morphological analysis and generation\n"
+- "correct syntax is:\nchmorph affix_file "
++ "hunspell-chmorph - change affixes by morphological analysis and generation\n"
++ "correct syntax is:\nhunspell-chmorph affix_file "
+ "dictionary_file file_to_convert STRING1 STRING2\n"
+ "STRINGS may be arbitrary parts of the morphological descriptions\n"
+- "example: chmorph hu.aff hu.dic hu.txt SG_2 SG_3 "
++ "example: hunspell-chmorph hu.aff hu.dic hu.txt SG_2 SG_3 "
+ " (convert informal Hungarian second person texts to formal third person texts)\n");
+ exit(1);
+ }
+
+=== modified file 'src/tools/example.cxx'
+--- src/tools/example.cxx 2011-05-24 15:55:29 +0000
++++ src/tools/example.cxx 2011-05-24 15:55:37 +0000
+@@ -17,8 +17,8 @@
+ /* first parse the command line options */
+
+ if (argc < 4) {
+- fprintf(stderr,"example (now it works with more dictionary files):\n");
+- fprintf(stderr,"example affix_file dictionary_file(s) file_of_words_to_check\n");
++ fprintf(stderr,"hunspell-example (now it works with more dictionary files):\n");
++ fprintf(stderr,"hunspell-example affix_file dictionary_file(s) file_of_words_to_check\n");
+ exit(1);
+ }
+
+
+=== modified file 'src/tools/munch.c'
+--- src/tools/munch.c 2011-05-24 15:55:29 +0000
++++ src/tools/munch.c 2011-05-24 15:55:37 +0000
+@@ -42,14 +42,14 @@
+ wf = mystrdup(argv[1]);
+ } else {
+ fprintf(stderr,"correct syntax is:\n");
+- fprintf(stderr,"munch word_list_file affix_file\n");
++ fprintf(stderr,"hunspell-munch word_list_file affix_file\n");
+ exit(1);
+ }
+ if (argv[2]) {
+ af = mystrdup(argv[2]);
+ } else {
+ fprintf(stderr,"correct syntax is:\n");
+- fprintf(stderr,"munch word_list_file affix_file\n");
++ fprintf(stderr,"hunspell-munch word_list_file affix_file\n");
+ exit(1);
+ }
+
+
+=== modified file 'src/tools/unmunch.c'
+--- src/tools/unmunch.c 2011-05-24 15:55:29 +0000
++++ src/tools/unmunch.c 2011-05-24 15:55:37 +0000
+@@ -39,14 +39,14 @@
+ wf = mystrdup(argv[1]);
+ } else {
+ fprintf(stderr,"correct syntax is:\n");
+- fprintf(stderr,"unmunch dic_file affix_file\n");
++ fprintf(stderr,"hunspell-unmunch dic_file affix_file\n");
+ exit(1);
+ }
+ if (argv[2]) {
+ af = mystrdup(argv[2]);
+ } else {
+ fprintf(stderr,"correct syntax is:\n");
+- fprintf(stderr,"unmunch dic_file affix_file\n");
++ fprintf(stderr,"hunspell-unmunch dic_file affix_file\n");
+ exit(1);
+ }
+
+
+=== modified file 'tests/test.sh'
+--- tests/test.sh 2011-05-24 15:55:29 +0000
++++ tests/test.sh 2011-05-24 15:55:37 +0000
+@@ -34,7 +34,7 @@
+ shopt -s expand_aliases
+
+ alias hunspell='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la ../src/tools/hunspell'
+-alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la ../src/tools/analyze'
++alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la ../src/tools/hunspell-analyze'
+
+ if [ "$VALGRIND" != "" ]; then
+ rm -f $TEMPDIR/test.pid*
+@@ -43,7 +43,7 @@
+ fi
+
+ alias hunspell='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la valgrind --tool=$VALGRIND --leak-check=yes --show-reachable=yes --log-file=$TEMPDIR/test.pid ../src/tools/hunspell'
+- alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la valgrind --tool=$VALGRIND --leak-check=yes --show-reachable=yes --log-file=$TEMPDIR/test.pid ../src/tools/analyze'
++ alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la valgrind --tool=$VALGRIND --leak-check=yes --show-reachable=yes --log-file=$TEMPDIR/test.pid ../src/tools/hunspell-analyze'
+ fi
+
+ # Tests good words
+
diff --git a/app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch b/app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch
new file mode 100644
index 000000000000..848bc8fe8950
--- /dev/null
+++ b/app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch
@@ -0,0 +1,59 @@
+http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7781#31
+https://bugs.gentoo.org/518740
+
+--- src/tools/hunspell.cxx
++++ src/tools/hunspell.cxx
+@@ -710,13 +748,22 @@ if (pos >= 0) {
+ fflush(stdout);
+ } else {
+ char ** wlst = NULL;
+- int ns = pMS[d]->suggest(&wlst, token);
++ int byte_offset = parser->get_tokenpos() + pos;
++ int char_offset = 0;
++ if (strcmp(io_enc, "UTF-8") == 0) {
++ for (int i = 0; i < byte_offset; i++) {
++ if ((buf[i] & 0xc0) != 0x80)
++ char_offset++;
++ }
++ } else {
++ char_offset = byte_offset;
++ }
++ int ns = pMS[d]->suggest(&wlst, chenc(token, io_enc, dic_enc[d]));
+ if (ns == 0) {
+- fprintf(stdout,"# %s %d", token,
+- parser->get_tokenpos() + pos);
++ fprintf(stdout,"# %s %d", token, char_offset);
+ } else {
+ fprintf(stdout,"& %s %d %d: ", token, ns,
+- parser->get_tokenpos() + pos);
++ char_offset);
+ fprintf(stdout,"%s", chenc(wlst[0], dic_enc[d], io_enc));
+ }
+ for (int j = 1; j < ns; j++) {
+@@ -745,13 +792,23 @@ if (pos >= 0) {
+ if (root) free(root);
+ } else {
+ char ** wlst = NULL;
++ int byte_offset = parser->get_tokenpos() + pos;
++ int char_offset = 0;
++ if (strcmp(io_enc, "UTF-8") == 0) {
++ for (int i = 0; i < byte_offset; i++) {
++ if ((buf[i] & 0xc0) != 0x80)
++ char_offset++;
++ }
++ } else {
++ char_offset = byte_offset;
++ }
+ int ns = pMS[d]->suggest(&wlst, chenc(token, io_enc, dic_enc[d]));
+ if (ns == 0) {
+ fprintf(stdout,"# %s %d", chenc(token, io_enc, ui_enc),
+- parser->get_tokenpos() + pos);
++ char_offset);
+ } else {
+ fprintf(stdout,"& %s %d %d: ", chenc(token, io_enc, ui_enc), ns,
+- parser->get_tokenpos() + pos);
++ char_offset);
+ fprintf(stdout,"%s", chenc(wlst[0], dic_enc[d], ui_enc));
+ }
+ for (int j = 1; j < ns; j++) {
+
diff --git a/app-text/hunspell/hunspell-1.3.3.ebuild b/app-text/hunspell/hunspell-1.3.3.ebuild
new file mode 100644
index 000000000000..a83d9e4e0f36
--- /dev/null
+++ b/app-text/hunspell/hunspell-1.3.3.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils multilib autotools flag-o-matic versionator
+
+MY_P=${PN}-${PV/_beta/b}
+
+DESCRIPTION="Hunspell spell checker - an improved replacement for myspell in OOo"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+HOMEPAGE="http://hunspell.sourceforge.net/"
+
+SLOT="0"
+LICENSE="MPL-1.1 GPL-2 LGPL-2.1"
+IUSE="ncurses nls readline static-libs"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+
+RDEPEND="
+ ncurses? ( sys-libs/ncurses )
+ readline? ( sys-libs/readline )"
+DEPEND="${RDEPEND}
+ sys-devel/gettext"
+
+# describe properly mi
+LANGS="af bg ca cs cy da de el en eo es et fo fr ga gl he hr hu ia id is it km
+ku lt lv mk ms nb nl nn pl pt pt_BR ro ru sk sl sq sv sw tn uk zu"
+
+DICT_DEP="app-dicts/myspell-en"
+for lang in ${LANGS}; do
+ if [[ ${lang} == de ]] ; then
+ DICT_DEP+=" linguas_de? (
+ || (
+ app-dicts/myspell-de
+ app-dicts/myspell-de-alt
+ )
+ )"
+ else
+ DICT_DEP+=" linguas_${lang}? ( app-dicts/myspell-${lang/pt_BR/pt-br} )"
+ fi
+ IUSE+=" linguas_${lang}"
+done
+PDEPEND="${DICT_DEP}"
+
+unset lang LANGS DICT_DEP
+
+S=${WORKDIR}/${MY_P}
+
+DOCS=(
+ AUTHORS ChangeLog NEWS README THANKS TODO license.hunspell
+ AUTHORS.myspell README.myspell license.myspell
+)
+
+src_prepare() {
+ # Upstream package creates some executables which names are too generic
+ # to be placed in /usr/bin - this patch prefixes them with 'hunspell-'.
+ # It modifies a Makefile.am file, hence eautoreconf.
+ epatch "${FILESDIR}"/${PN}-1.3-renameexes.patch \
+ "${FILESDIR}"/${PN}-1.3.3-multibyte-chars.patch
+ eautoreconf
+}
+
+src_configure() {
+ # missing somehow, and I am too lazy to fix it properly
+ [[ ${CHOST} == *-darwin* ]] && append-libs -liconv
+
+ # I wanted to put the include files in /usr/include/hunspell.
+ # You can do that, libreoffice can find them anywhere, just
+ # ping me when you do so ; -- scarabeus
+ econf \
+ $(use_enable nls) \
+ $(use_with ncurses ui) \
+ $(use_with readline readline) \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+
+ prune_libtool_files --all
+
+ #342449
+ pushd "${ED}"/usr/$(get_libdir)/ >/dev/null
+ ln -s lib${PN}{-$(get_major_version).$(get_version_component_range 2).so.0.0.0,.so}
+ popd >/dev/null
+}
diff --git a/app-text/hunspell/metadata.xml b/app-text/hunspell/metadata.xml
new file mode 100644
index 000000000000..69445b065e66
--- /dev/null
+++ b/app-text/hunspell/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">hunspell</remote-id>
+ </upstream>
+</pkgmetadata>