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