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) */
|