summaryrefslogtreecommitdiff
path: root/external/hyphen/hyphen-rhmin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'external/hyphen/hyphen-rhmin.patch')
-rw-r--r--external/hyphen/hyphen-rhmin.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/external/hyphen/hyphen-rhmin.patch b/external/hyphen/hyphen-rhmin.patch
new file mode 100644
index 000000000000..12fff19f4466
--- /dev/null
+++ b/external/hyphen/hyphen-rhmin.patch
@@ -0,0 +1,27 @@
+--- misc//hyphen-2.8.4/hyphen.c
++++ misc/build/hyphen-2.8.4/hyphen.c
+@@ -734,13 +734,13 @@
+ int hnj_hyphen_rhmin(int utf8, const char *word, int word_size, char * hyphens,
+ char *** rep, int ** pos, int ** cut, int rhmin)
+ {
+- int i = 1;
++ int i = 0;
+ int j;
+
+ // ignore numbers
+ for (j = word_size - 1; j > 0 && word[j] <= '9' && word[j] >= '0'; j--) i--;
+
+- for (j = word_size - 2; i < rhmin && j > 0; j--) {
++ for (j = word_size - 1; i < rhmin && j > 0; j--) {
+ // check length of the non-standard part
+ if (*rep && *pos && *cut && (*rep)[j]) {
+ char * rh = strchr((*rep)[j], '=');
+@@ -753,7 +753,7 @@
+ } else {
+ hyphens[j] = '0';
+ }
+- if (!utf8 || (word[j] & 0xc0) != 0xc0) i++;
++ if (!utf8 || (word[j] & 0xc0) == 0xc0 || (word[j] & 0x80) != 0x80) i++;
+ }
+ return 0;
+ }