Kaydet (Commit) a20a2d7e authored tarafından László Németh's avatar László Németh

bump hunspell to 1.7

Change-Id: Ia8d1f4831e651b3a8d5115f78e5a5239b56c71c4
Reviewed-on: https://gerrit.libreoffice.org/63015
Tested-by: Jenkins
Reviewed-by: 's avatarLászló Németh <nemeth@numbertext.org>
üst c4ebcb21
......@@ -9614,7 +9614,7 @@ else
if test "$COM" = "MSC"; then
HUNSPELL_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/hunspell.lib"
else
HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.6"
HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.7"
fi
BUILD_TYPE="$BUILD_TYPE HUNSPELL"
fi
......
......@@ -100,8 +100,8 @@ export HARFBUZZ_SHA256SUM := 3c592f86fa0da69e2e0e98cae9f5d5b61def3bb7948aa00ca45
export HARFBUZZ_TARBALL := harfbuzz-1.8.4.tar.bz2
export HSQLDB_SHA256SUM := d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370
export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
export HUNSPELL_SHA256SUM := 3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4
export HUNSPELL_TARBALL := hunspell-1.6.2.tar.gz
export HUNSPELL_SHA256SUM := 57be4e03ae9dd62c3471f667a0d81a14513e314d4d92081292b90435944ff951
export HUNSPELL_TARBALL := hunspell-1.7.0.tar.gz
export HYPHEN_SHA256SUM := 304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705
export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
export ICU_SHA256SUM := 05c490b69454fce5860b7e8e2821231674af0a11d7ef2febea9a32512998cb9d
......
From 88cf975c295e3ec808efb77bb1a2a031d77f0c89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?=
<laszlo.nemeth@collabora.com>
Date: Thu, 5 Oct 2017 12:24:02 +0200
Subject: [PATCH] Allow dotted I in dictionary, and disable bad capitalization
of i.
Dictionary words weren't recognized with dotted I, but dictionary
words with the letter i were recognized with dotted I, too.
---
src/hunspell/hunspell.cxx | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/hunspell/hunspell.cxx b/src/hunspell/hunspell.cxx
index 1ef11df..5c98f8a 100644
--- a/src/hunspell/hunspell.cxx
+++ b/src/hunspell/hunspell.cxx
@@ -562,11 +562,15 @@ bool HunspellImpl::spell(const std::string& word, int* info, std::string* root)
}
}
case INITCAP: {
-
+ // handle special capitalization of dotted I
+ bool Idot = (utf8 && (unsigned char) scw[0] == 0xc4 && (unsigned char) scw[1] == 0xb0);
*info += SPELL_ORIGCAP;
- mkallsmall2(scw, sunicw);
- std::string u8buffer(scw);
- mkinitcap2(scw, sunicw);
+ if (captype == ALLCAP) {
+ mkallsmall2(scw, sunicw);
+ mkinitcap2(scw, sunicw);
+ if (Idot)
+ scw.replace(0, 1, "\xc4\xb0");
+ }
if (captype == INITCAP)
*info += SPELL_INITCAP;
rv = checkword(scw, info, root);
@@ -581,9 +585,13 @@ bool HunspellImpl::spell(const std::string& word, int* info, std::string* root)
}
if (rv && is_keepcase(rv) && (captype == ALLCAP))
rv = NULL;
- if (rv)
+ if (rv || (Idot && langnum != LANG_az && langnum != LANG_tr && langnum != LANG_crh))
break;
+ mkallsmall2(scw, sunicw);
+ std::string u8buffer(scw);
+ mkinitcap2(scw, sunicw);
+
rv = checkword(u8buffer, info, root);
if (abbv && !rv) {
u8buffer.push_back('.');
--
1.9.1
From 66badb7449c2053c89456f11a7f71f3f5916b550 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?=
<laszlo.nemeth@collabora.com>
Date: Thu, 5 Oct 2017 11:13:28 +0200
Subject: [PATCH] Extend dotless i and dotted I rules to Crimean Tatar language
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
to support its special casing of ı/I, i/İ.
(Use
LANG crh
in the affix file to use this feature.)
---
src/hunspell/csutil.cxx | 5 +++--
src/hunspell/langnum.hxx | 1 +
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/hunspell/csutil.cxx b/src/hunspell/csutil.cxx
index df97b57..2980da7 100644
--- a/src/hunspell/csutil.cxx
+++ b/src/hunspell/csutil.cxx
@@ -2401,6 +2401,7 @@ static struct lang_map lang2enc[] =
{{"ar", LANG_ar}, {"az", LANG_az},
{"az_AZ", LANG_az}, // for back-compatibility
{"bg", LANG_bg}, {"ca", LANG_ca},
+ {"crh", LANG_crh},
{"cs", LANG_cs}, {"da", LANG_da},
{"de", LANG_de}, {"el", LANG_el},
{"en", LANG_en}, {"es", LANG_es},
@@ -2458,7 +2459,7 @@ unsigned short unicodetoupper(unsigned short c, int langnum) {
// In Azeri and Turkish, I and i dictinct letters:
// There are a dotless lower case i pair of upper `I',
// and an upper I with dot pair of lower `i'.
- if (c == 0x0069 && ((langnum == LANG_az) || (langnum == LANG_tr)))
+ if (c == 0x0069 && ((langnum == LANG_az) || (langnum == LANG_tr) || (langnum == LANG_crh)))
return 0x0130;
#ifdef OPENOFFICEORG
return static_cast<unsigned short>(u_toupper(c));
@@ -2475,7 +2476,7 @@ unsigned short unicodetolower(unsigned short c, int langnum) {
// In Azeri and Turkish, I and i dictinct letters:
// There are a dotless lower case i pair of upper `I',
// and an upper I with dot pair of lower `i'.
- if (c == 0x0049 && ((langnum == LANG_az) || (langnum == LANG_tr)))
+ if (c == 0x0049 && ((langnum == LANG_az) || (langnum == LANG_tr) || (langnum == LANG_crh)))
return 0x0131;
#ifdef OPENOFFICEORG
return static_cast<unsigned short>(u_tolower(c));
diff --git a/src/hunspell/langnum.hxx b/src/hunspell/langnum.hxx
index a64d3d7..f09de40 100644
--- a/src/hunspell/langnum.hxx
+++ b/src/hunspell/langnum.hxx
@@ -48,6 +48,7 @@ enum {
LANG_az = 100, // custom number
LANG_bg = 41,
LANG_ca = 37,
+ LANG_crh = 102, // custom number
LANG_cs = 42,
LANG_da = 45,
LANG_de = 49,
--
1.9.1
From 39b785a6b03b35cc8a27f43f6005dcaa432694e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= <nemeth@numbertext.org>
Date: Mon, 9 Oct 2017 13:02:39 +0200
Subject: [PATCH] FORBIDDENWORD precedes BREAK
Now it's possible to forbid compound forms recognized by
BREAK word breaking.
---
src/hunspell/hunspell.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hunspell/hunspell.cxx b/src/hunspell/hunspell.cxx
index 5c98f8a..3fd0d16 100644
--- a/src/hunspell/hunspell.cxx
+++ b/src/hunspell/hunspell.cxx
@@ -633,7 +633,7 @@ bool HunspellImpl::spell(const std::string& word, int* info, std::string* root)
}
// recursive breaking at break points
- if (!wordbreak.empty()) {
+ if (!wordbreak.empty() && !(*info & SPELL_FORBIDDEN)) {
int nbr = 0;
wl = scw.size();
--
1.9.1
From e13ff056fd65990b88d29fb9eae304b411e58234 Mon Sep 17 00:00:00 2001
From: Changwoo Ryu <cwryu@debian.org>
Date: Wed, 8 Mar 2017 14:04:26 +0900
Subject: [PATCH] Hunspell patches for missing OCONV conversion
4e2abfd Clean up PR #479
cc2d71e Add oconv2 test to Makefile
ca14fdb Avoid gotos across variable initialization
7e5cb62 Use goto to reduce repetitive code
f528192 Add missing OCONV conversion of root and morphemes output
---
src/hunspell/hunspell.cxx | 59 +++++++++++++++++++++++++++++++++++++++--------
tests/test.sh | 23 +++++++++++++++---
2 files changed, 70 insertions(+), 12 deletions(-)
diff --git a/src/hunspell/hunspell.cxx b/src/hunspell/hunspell.cxx
index 1100a6f..87d1b4a 100644
--- a/src/hunspell/hunspell.cxx
+++ b/src/hunspell/hunspell.cxx
@@ -98,10 +98,13 @@ public:
std::vector<std::string> stem(const std::string& word);
std::vector<std::string> stem(const std::vector<std::string>& morph);
std::vector<std::string> analyze(const std::string& word);
+ std::vector<std::string> analyze_internal(const std::string& word);
int get_langnum() const;
bool input_conv(const std::string& word, std::string& dest);
bool spell(const std::string& word, int* info = NULL, std::string* root = NULL);
+ bool spell_internal(const std::string& word, int* info = NULL, std::string* root = NULL);
std::vector<std::string> suggest(const std::string& word);
+ std::vector<std::string> suggest_internal(const std::string& word);
const std::string& get_wordchars() const;
const std::vector<w_char>& get_wordchars_utf16() const;
const std::string& get_dict_encoding() const;
@@ -415,6 +418,21 @@ bool Hunspell::spell(const std::string& word, int* info, std::string* root) {
}
bool HunspellImpl::spell(const std::string& word, int* info, std::string* root) {
+ bool r = spell_internal(word, info, root);
+ if (r && root) {
+ // output conversion
+ RepList* rl = (pAMgr) ? pAMgr->get_oconvtable() : NULL;
+ if (rl) {
+ std::string wspace;
+ if (rl->conv(*root, wspace)) {
+ *root = wspace;
+ }
+ }
+ }
+ return r;
+}
+
+bool HunspellImpl::spell_internal(const std::string& word, int* info, std::string* root) {
struct hentry* rv = NULL;
int info2 = 0;
@@ -834,6 +852,22 @@ std::vector<std::string> Hunspell::suggest(const std::string& word) {
std::vector<std::string> HunspellImpl::suggest(const std::string& word) {
std::vector<std::string> slst;
+ slst = suggest_internal(word);
+ // output conversion
+ RepList* rl = (pAMgr) ? pAMgr->get_oconvtable() : NULL;
+ if (rl) {
+ for (size_t i = 0; rl && i < slst.size(); ++i) {
+ std::string wspace;
+ if (rl->conv(slst[i], wspace)) {
+ slst[i] = wspace;
+ }
+ }
+ }
+ return slst;
+}
+
+std::vector<std::string> HunspellImpl::suggest_internal(const std::string& word) {
+ std::vector<std::string> slst;
int onlycmpdsug = 0;
if (!pSMgr || m_HMgrs.empty())
@@ -1150,15 +1184,6 @@ std::vector<std::string> HunspellImpl::suggest(const std::string& word) {
}
slst.resize(l);
- // output conversion
- rl = (pAMgr) ? pAMgr->get_oconvtable() : NULL;
- for (size_t j = 0; rl && j < slst.size(); ++j) {
- std::string wspace;
- if (rl->conv(slst[j], wspace)) {
- slst[j] = wspace;
- }
- }
-
return slst;
}
@@ -1365,6 +1390,22 @@ std::vector<std::string> Hunspell::analyze(const std::string& word) {
std::vector<std::string> HunspellImpl::analyze(const std::string& word) {
std::vector<std::string> slst;
+ slst = analyze_internal(word);
+ // output conversion
+ RepList* rl = (pAMgr) ? pAMgr->get_oconvtable() : NULL;
+ if (rl) {
+ for (size_t i = 0; rl && i < slst.size(); ++i) {
+ std::string wspace;
+ if (rl->conv(slst[i], wspace)) {
+ slst[i] = wspace;
+ }
+ }
+ }
+ return slst;
+}
+
+std::vector<std::string> HunspellImpl::analyze_internal(const std::string& word) {
+ std::vector<std::string> slst;
if (!pSMgr || m_HMgrs.empty())
return slst;
if (utf8) {
diff --git a/tests/test.sh b/tests/test.sh
index 22e5087..9344f82 100755
--- a/tests/test.sh
+++ b/tests/test.sh
@@ -112,7 +112,7 @@ if test -f $TESTDIR/$NAME.wrong; then
echo "============================================="
echo "Fail in $NAME.wrong. Bad words recognised as good:"
tr -d ' ' <$TESTDIR/$NAME.wrong >$TEMPDIR/$NAME.wrong.detab
- diff $TEMPDIR/$NAME.wrong.detab $TEMPDIR/$NAME.wrong | grep '^<' | sed 's/^..//'
+ diff -u $TEMPDIR/$NAME.wrong.detab $TEMPDIR/$NAME.wrong | grep '^<' | sed 's/^..//'
rm -f $TEMPDIR/$NAME.wrong $TEMPDIR/$NAME.wrong.detab
exit 1
fi
@@ -121,6 +121,23 @@ fi
check_valgrind_log "bad words"
+# Tests good words' root
+if test -f $TESTDIR/$NAME.root; then
+ # Extract the root words of the affixed words, after '+'
+ hunspell $* -d $TESTDIR/$NAME <$TESTDIR/$NAME.good | grep -a '^+ ' | \
+ sed 's/^+ //' >$TEMPDIR/$NAME.root
+ if ! cmp $TEMPDIR/$NAME.root $TESTDIR/$NAME.root >/dev/null; then
+ echo "============================================="
+ echo "Fail in $NAME.root. Bad prefix or suffix?"
+ diff -u $TESTDIR/$NAME.root $TEMPDIR/$NAME.root
+ rm -f $TEMPDIR/$NAME.root
+ exit 1
+ fi
+ rm -f $TEMPDIR/$NAME.root
+fi
+
+check_valgrind_log "root"
+
# Tests morphological analysis
if test -f $TESTDIR/$NAME.morph; then
sed 's/ $//' $TESTDIR/$NAME.good >$TEMPDIR/$NAME.good
@@ -129,7 +146,7 @@ if test -f $TESTDIR/$NAME.morph; then
if ! cmp $TEMPDIR/$NAME.morph $TESTDIR/$NAME.morph >/dev/null; then
echo "============================================="
echo "Fail in $NAME.morph. Bad analysis?"
- diff $TESTDIR/$NAME.morph $TEMPDIR/$NAME.morph | grep '^<' | sed 's/^..//'
+ diff -u $TESTDIR/$NAME.morph $TEMPDIR/$NAME.morph | grep '^<' | sed 's/^..//'
rm -f $TEMPDIR/$NAME.morph
exit 1
fi
@@ -145,7 +162,7 @@ if test -f $TESTDIR/$NAME.sug; then
if ! cmp $TEMPDIR/$NAME.sug $TESTDIR/$NAME.sug >/dev/null; then
echo "============================================="
echo "Fail in $NAME.sug. Bad suggestion?"
- diff $TESTDIR/$NAME.sug $TEMPDIR/$NAME.sug
+ diff -u $TESTDIR/$NAME.sug $TEMPDIR/$NAME.sug
rm -f $TEMPDIR/$NAME.sug
exit 1
fi
--
2.7.4
From 0f691abe68788d0a58e72ab66877a9f670cd2741 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= <nemeth@numbertext.org>
Date: Tue, 10 Oct 2017 11:58:43 +0200
Subject: [PATCH] Remove forbidden words from dash suggestion list
---
src/hunspell/hunspell.cxx | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/hunspell/hunspell.cxx b/src/hunspell/hunspell.cxx
index 3fd0d16..76e61b1 100644
--- a/src/hunspell/hunspell.cxx
+++ b/src/hunspell/hunspell.cxx
@@ -1069,7 +1069,11 @@ std::vector<std::string> HunspellImpl::suggest(const std::string& word) {
wspace.append("-");
wspace.append(scw.substr(dash_pos + 1));
}
- insert_sug(slst, wspace);
+ int info = 0;
+ if (pAMgr && pAMgr->get_forbiddenword())
+ checkword(wspace, &info, NULL);
+ if (!(info & SPELL_FORBIDDEN))
+ insert_sug(slst, wspace);
}
nodashsug = 0;
}
--
1.9.1
From 643bd113f5dbfa6e8ffa61aae6ab7ccc4f63bccc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= <nemeth@numbertext.org>
Date: Thu, 9 Nov 2017 13:22:55 +0100
Subject: [PATCH] add SPELLML support for run-time dictionary extension
to use in new "Affixation/Compounding By" feature
of language-specific LibreOffice user dictionaries.
---
src/hunspell/hunspell.cxx | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/hunspell/hunspell.cxx b/src/hunspell/hunspell.cxx
index b271750..09fd6ee 100644
--- a/src/hunspell/hunspell.cxx
+++ b/src/hunspell/hunspell.cxx
@@ -1733,6 +1733,21 @@ std::vector<std::string> HunspellImpl::spellml(const std::string& in_word) {
}
}
}
+ } else if (check_xml_par(q, "type=", "add")) {
+ std::string cw = get_xml_par(strchr(q2, '>'));
+ if (cw.empty())
+ return slst;
+ const char* q3 = strstr(q2 + 1, "<word");
+ if (q3) {
+ std::string cw2 = get_xml_par(strchr(q3, '>'));
+ if (!cw2.empty()) {
+ add_with_affix(cw, cw2);
+ } else {
+ add(cw);
+ }
+ } else {
+ add(cw);
+ }
}
return slst;
}
--
2.7.4
From 15b2cde4f01706f0a648518a5cfc57394d015448 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= <nemeth@numbertext.org>
Date: Thu, 12 Oct 2017 16:47:57 +0200
Subject: [PATCH] fix compound handling for new Hungarian orthography
Extend partial fix in commit 42807f970ac2d65f0d13a7c57eb454b210e92240.
---
src/hunspell/affixmgr.cxx | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/hunspell/affixmgr.cxx b/src/hunspell/affixmgr.cxx
index ffce7bb..ea0f0fc 100644
--- a/src/hunspell/affixmgr.cxx
+++ b/src/hunspell/affixmgr.cxx
@@ -1990,6 +1990,8 @@ struct hentry* AffixMgr::compound_check(const std::string& word,
std::string tmp(sfxappnd);
reverseword(tmp);
numsyllable -= get_syllable(tmp) + sfxextra;
+ } else {
+ numsyllable -= sfxextra;
}
// + 1 word, if syllable number of the prefix > 1 (hungarian
@@ -2024,7 +2026,6 @@ struct hentry* AffixMgr::compound_check(const std::string& word,
(TESTAFF(rv->astr, compoundroot, rv->alen))) {
wordnum++;
}
-
// second word is acceptable, as a word with prefix or/and suffix?
// hungarian conventions: compounding is acceptable,
// when compound forms consist 2 word, otherwise
@@ -2553,6 +2554,8 @@ int AffixMgr::compound_check_morph(const char* word,
std::string tmp(sfxappnd);
reverseword(tmp);
numsyllable -= get_syllable(tmp) + sfxextra;
+ } else {
+ numsyllable -= sfxextra;
}
// + 1 word, if syllable number of the prefix > 1 (hungarian
--
1.9.1
From de3ae6844af62300e473f7b7b66a56e54153b4b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= <nemeth@numbertext.org>
Date: Mon, 16 Oct 2017 23:00:23 +0200
Subject: [PATCH] fix compound word part "pa:"
(regression in morphological analysis)
---
src/hunspell/affixmgr.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hunspell/affixmgr.cxx b/src/hunspell/affixmgr.cxx
index ea0f0fc..52c7fa5 100644
--- a/src/hunspell/affixmgr.cxx
+++ b/src/hunspell/affixmgr.cxx
@@ -2608,7 +2608,7 @@ int AffixMgr::compound_check_morph(const char* word,
if (!m.empty()) {
result.push_back(MSEP_FLD);
result.append(MORPH_PART);
- result.append(word + 1);
+ result.append(word + i);
line_uniq_app(m, MSEP_REC);
result.append(m);
}
--
1.9.1
From 987fd8c3ed648ca7d637f2dbb86e97c600954d2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= <nemeth@numbertext.org>
Date: Sun, 25 Mar 2018 23:51:47 +0200
Subject: [PATCH] tdf#116586 fix LibreOffice crash by Hungarian personal
dictionary
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
"AkH. 11. (old orthography)", caused by bad handling of forbidden words
of alias compressed dictionaries during run-time dictionary extension.
Note: accepting also all – previously forbidden – affixed
forms of the modified stem is a removed function: "Grammar by" spell
checking (for example, in LibreOffice via SPELLML interface of Hunspell)
supports user words with affixation and compounding.
The original idea was to add substandard or interfering words
as forbidden words – but with flags – to the dictionary, and adding
the stem to the personal dictionary could “switch on” the affixed
forms of the word, too. Now the suggested method is using
"Grammar by" personal dictionaries, as in LibreOffice:
https://wiki.documentfoundation.org/ReleaseNotes/6.0#.E2.80.9CGrammar_By.E2.80.9D_spell_checking
---
src/hunspell/hashmgr.cxx | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/src/hunspell/hashmgr.cxx b/src/hunspell/hashmgr.cxx
index ec3803b..5183f02 100644
--- a/src/hunspell/hashmgr.cxx
+++ b/src/hunspell/hashmgr.cxx
@@ -506,24 +506,8 @@ int HashMgr::remove_forbidden_flag(const std::string& word) {
if (!dp)
return 1;
while (dp) {
- if (dp->astr && TESTAFF(dp->astr, forbiddenword, dp->alen)) {
- if (dp->alen == 1)
- dp->alen = 0; // XXX forbidden words of personal dic.
- else {
- unsigned short* flags2 =
- (unsigned short*)malloc(sizeof(unsigned short) * (dp->alen - 1));
- if (!flags2)
- return 1;
- int i, j = 0;
- for (i = 0; i < dp->alen; i++) {
- if (dp->astr[i] != forbiddenword)
- flags2[j++] = dp->astr[i];
- }
- dp->alen--;
- free(dp->astr);
- dp->astr = flags2; // XXX allowed forbidden words
- }
- }
+ if (dp->astr && TESTAFF(dp->astr, forbiddenword, dp->alen))
+ dp->alen = 0; // XXX forbidden words of personal dic.
dp = dp->next_homonym;
}
return 0;
--
2.7.4
......@@ -20,18 +20,6 @@ endif
$(eval $(call gb_UnpackedTarball_set_patchlevel,hunspell,1))
$(eval $(call gb_UnpackedTarball_add_patches,hunspell, \
external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch \
external/hunspell/0001-Extend-dotless-i-and-dotted-I-rules-to-Crimean-Tatar.patch \
external/hunspell/0001-Allow-dotted-I-in-dictionary-and-disable-bad-capital.patch \
external/hunspell/0001-FORBIDDENWORD-precedes-BREAK.patch \
external/hunspell/0001-Remove-forbidden-words-from-dash-suggestion-list.patch \
external/hunspell/0001-fix-compound-handling-for-new-Hungarian-orthography.patch \
external/hunspell/0001-fix-compound-word-part-pa.patch \
external/hunspell/0001-add-SPELLML-support-for-run-time-dictionary-extensio.patch \
external/hunspell/0001-Recent-Hunspell-fixes-and-improvements.patch \
external/hunspell/0001-tdf-116586-fix-LibreOffice-crash-by-Hungarian-person.patch \
external/hunspell/0001-Hunspell-patches-for-missing-OCONV-conversion.patch \
external/hunspell/0001-recent-Hunspell-fixes-for-suggestion-spelling-and-an.patch \
))
# vim: set noet sw=4 ts=4:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment