patch 7.4.2069
Problem:    spell.c is too big.
Solution:   Split it in spell file handling and spell checking.
diff --git a/src/proto/spell.pro b/src/proto/spell.pro
index 07eb4bd..ed0c495 100644
--- a/src/proto/spell.pro
+++ b/src/proto/spell.pro
@@ -2,20 +2,32 @@
 int spell_check(win_T *wp, char_u *ptr, hlf_T *attrp, int *capcol, int docount);
 int spell_move_to(win_T *wp, int dir, int allwords, int curline, hlf_T *attrp);
 void spell_cat_line(char_u *buf, char_u *line, int maxlen);
+char_u *spell_enc(void);
+slang_T *slang_alloc(char_u *lang);
+void slang_free(slang_T *lp);
+void slang_clear(slang_T *lp);
+void slang_clear_sug(slang_T *lp);
+void count_common_word(slang_T *lp, char_u *word, int len, int count);
+int byte_in_str(char_u *str, int n);
+int init_syl_tab(slang_T *slang);
 char_u *did_set_spelllang(win_T *wp);
+int captype(char_u *word, char_u *end);
 void spell_delete_wordlist(void);
 void spell_free_all(void);
 void spell_reload(void);
-int spell_check_msm(void);
-void ex_mkspell(exarg_T *eap);
-void ex_spell(exarg_T *eap);
-void spell_add_word(char_u *word, int len, int bad, int idx, int undo);
+buf_T *open_spellbuf(void);
+void close_spellbuf(buf_T *buf);
+void clear_spell_chartab(spelltab_T *sp);
 void init_spell_chartab(void);
+int spell_iswordp_nmw(char_u *p, win_T *wp);
+int spell_casefold(char_u *str, int len, char_u *buf, int buflen);
 int spell_check_sps(void);
 void spell_suggest(int count);
 void ex_spellrepall(exarg_T *eap);
 void spell_suggest_list(garray_T *gap, char_u *word, int maxcount, int need_cap, int interactive);
+void onecap_copy(char_u *word, char_u *wcopy, int upper);
 char_u *eval_soundfold(char_u *word);
+void spell_soundfold(slang_T *slang, char_u *inword, int folded, char_u *res);
 void ex_spellinfo(exarg_T *eap);
 void ex_spelldump(exarg_T *eap);
 void spell_dump_compl(char_u *pat, int ic, int *dir, int dumpflags_arg);
diff --git a/src/proto/spellfile.pro b/src/proto/spellfile.pro
new file mode 100644
index 0000000..70e993a
--- /dev/null
+++ b/src/proto/spellfile.pro
@@ -0,0 +1,9 @@
+/* spellfile.c */
+slang_T *spell_load_file(char_u *fname, char_u *lang, slang_T *old_lp, int silent);
+void suggest_load_files(void);
+int spell_check_msm(void);
+void ex_mkspell(exarg_T *eap);
+void mkspell(int fcount, char_u **fnames, int ascii, int over_write, int added_word);
+void ex_spell(exarg_T *eap);
+void spell_add_word(char_u *word, int len, int bad, int idx, int undo);
+/* vim: set ft=c : */