summaryrefslogtreecommitdiff
path: root/hyphen/hyphen-rhmin.patch
blob: 12fff19f44660e42ba23dd8001a804d8ad84ba55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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;
 }