summaryrefslogtreecommitdiffstats
path: root/third_party/hyphen/google.patch
blob: fa5cac3634ccd60da2d8a030c0c4dcebe0066828 (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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Index: hyphen.c
===================================================================
RCS file: /cvsroot/hunspell/hyphen/hyphen.c,v
retrieving revision 1.8
diff -u -r1.8 hyphen.c
--- hyphen.c	13 Sep 2012 07:50:49 -0000	1.8
+++ hyphen.c	6 Feb 2013 17:31:51 -0000
@@ -374,19 +374,28 @@
 HyphenDict *
 hnj_hyphen_load (const char *fn)
 {
+  HyphenDict *result;
+  FILE *f;
+  f = fopen (fn, "r");
+  if (f == NULL)
+    return NULL;
+
+  result = hnj_hyphen_load_file(f);
+
+  fclose(f);
+  return result;
+}
+
+HyphenDict *
+hnj_hyphen_load_file (FILE *f)
+{
   HyphenDict *dict[2];
   HashTab *hashtab;
-  FILE *f;
   char buf[MAX_CHARS];
   int nextlevel = 0;
   int i, j, k;
   HashEntry *e;
   int state_num = 0;
-
-  f = fopen (fn, "r");
-  if (f == NULL)
-    return NULL;
-
 // loading one or two dictionaries (separated by NEXTLEVEL keyword)
 for (k = 0; k < 2; k++) { 
   hashtab = hnj_hash_new ();
@@ -497,7 +506,6 @@
 #endif
   state_num = 0;
 }
-  fclose(f);
   if (nextlevel) dict[0]->nextlevel = dict[1];
   else {
     dict[1] -> nextlevel = dict[0];
Index: hyphen.h
===================================================================
RCS file: /cvsroot/hunspell/hyphen/hyphen.h,v
retrieving revision 1.2
diff -u -r1.2 hyphen.h
--- hyphen.h	27 Nov 2010 02:20:33 -0000	1.2
+++ hyphen.h	6 Feb 2013 17:31:51 -0000
@@ -90,7 +90,11 @@
   int new_state;
 };
 
+#if 0
+/* DO NOT USE, there are known problems with Unicode on Windows. */
 HyphenDict *hnj_hyphen_load (const char *fn);
+#endif
+HyphenDict *hnj_hyphen_load_file (FILE *f);
 void hnj_hyphen_free (HyphenDict *dict);
 
 /* obsolete, use hnj_hyphen_hyphenate2() or *hyphenate3() functions) */