changeset 300:86cd0a77d2ae

updated for version 7.0079
author vimboss
date Sat, 04 Jun 2005 21:55:20 +0000
parents 2bfc2b703314
children 006e9c8a6a8a
files runtime/doc/develop.txt runtime/doc/map.txt runtime/spell/en.utf-8.spl src/buffer.c src/getchar.c src/mark.c src/normal.c src/proto/charset.pro src/spell.c
diffstat 9 files changed, 1422 insertions(+), 3785 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 7.0aa.  Last change: 2005 Mar 29
+*develop.txt*   For Vim version 7.0aa.  Last change: 2005 Jun 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -381,10 +381,10 @@ checking engine in Vim, for various reas
   fly (while redrawing), just like syntax highlighting.  But the mechanisms
   used by other code are much slower.  Myspell uses a simplistic hashtable,
   for example.
-- For a program like aspell a communication mechanism would have to be setup.
-  That's complicated to do in a portable way (Unix-only would be relatively
-  simple, but that's not good enough).  And performance will become a problem
-  (lots of process switching involved).
+- For using an external program like aspell a communication mechanism would
+  have to be setup.  That's complicated to do in a portable way (Unix-only
+  would be relatively simple, but that's not good enough).  And performance
+  will become a problem (lots of process switching involved).
 - Missing support for words with non-word characters, such as "Etten-Leur" and
   "et al.", would require marking the pieces of them OK, lowering the
   reliability.
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.0aa.  Last change: 2005 Mar 29
+*map.txt*       For Vim version 7.0aa.  Last change: 2005 Jun 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1032,6 +1032,7 @@ The valid escape sequences are
 If the first two characters of an escape sequence are "q-" (for example,
 <q-args>) then the value is quoted in such a way as to make it a valid value
 for use in an expression.  This uses the argument as one single value.
+When there is no argument <q-args> is an empty string.
 
 To allow commands to pass their arguments on to a user-defined function, there
 is a special form <f-args> ("function args").  This splits the command
index 156c0979e9340220fbf160ec40a14145fd493a13..300f6ce8076de277c944a23c4de43ae4282ce2e0
GIT binary patch
literal 562278
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%0D*;dU_Fz6lx)01
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%0D0gV76jROXjKHmJ`fPt?c)`JU&3UN*;^9
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
P7f03H6itFDB!d3|Y<$`5
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -854,11 +854,11 @@ do_bufdel(command, arg, addr_count, star
 	if (deleted == 0)
 	{
 	    if (command == DOBUF_UNLOAD)
-		sprintf((char *)IObuff, _("E515: No buffers were unloaded"));
+		STRCPY(IObuff, _("E515: No buffers were unloaded"));
 	    else if (command == DOBUF_DEL)
-		sprintf((char *)IObuff, _("E516: No buffers were deleted"));
+		STRCPY(IObuff, _("E516: No buffers were deleted"));
 	    else
-		sprintf((char *)IObuff, _("E517: No buffers were wiped out"));
+		STRCPY(IObuff, _("E517: No buffers were wiped out"));
 	    errormsg = IObuff;
 	}
 	else if (deleted >= p_report)
@@ -2450,7 +2450,7 @@ buflist_list(eap)
 	else
 	    home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
 
-	sprintf((char *)IObuff, "%3d%c%c%c%c%c \"",
+	vim_snprintf((char *)IObuff, IOSIZE - 20, "%3d%c%c%c%c%c \"%s\"",
 		buf->b_fnum,
 		buf->b_p_bl ? ' ' : 'u',
 		buf == curbuf ? '%' :
@@ -2459,18 +2459,11 @@ buflist_list(eap)
 			(buf->b_nwindows == 0 ? 'h' : 'a'),
 		!buf->b_p_ma ? '-' : (buf->b_p_ro ? '=' : ' '),
 		(buf->b_flags & BF_READERR) ? 'x'
-					    : (bufIsChanged(buf) ? '+' : ' ')
-		);
-
-	len = (int)STRLEN(IObuff);
-	STRNCPY(IObuff + len, NameBuff, IOSIZE - 20 - len);
-	IObuff[IOSIZE - 20 - len] = NUL;    /* make sure it's terminated */
-
-	len = (int)STRLEN(IObuff);
-	IObuff[len++] = '"';
+					    : (bufIsChanged(buf) ? '+' : ' '),
+		NameBuff);
 
 	/* put "line 999" in column 40 or after the file name */
-	IObuff[len] = NUL;
+	len = STRLEN(IObuff);
 	i = 40 - vim_strsize(IObuff);
 	do
 	{
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -4342,7 +4342,7 @@ put_escstr(fd, strstart, what)
 	if (p != NULL)
 	{
 	    while (*p != NUL)
-		if (putc(*p++, fd) < 0)
+		if (fputc(*p++, fd) < 0)
 		    return FAIL;
 	    --str;
 	    continue;
--- a/src/mark.c
+++ b/src/mark.c
@@ -1445,6 +1445,7 @@ removable(name)
     char_u  *p;
     char_u  part[51];
     int	    retval = FALSE;
+    int	    n;
 
     name = home_replace_save(NULL, name);
     if (name != NULL)
@@ -1452,11 +1453,14 @@ removable(name)
 	for (p = p_viminfo; *p; )
 	{
 	    copy_option_part(&p, part, 51, ", ");
-	    if (part[0] == 'r'
-			&& MB_STRNICMP(part + 1, name, STRLEN(part + 1)) == 0)
+	    if (part[0] == 'r')
 	    {
-		retval = TRUE;
-		break;
+		n = STRLEN(part + 1);
+		if (MB_STRNICMP(part + 1, name, n) == 0)
+		{
+		    retval = TRUE;
+		    break;
+		}
 	    }
 	}
 	vim_free(name);
--- a/src/normal.c
+++ b/src/normal.c
@@ -2823,6 +2823,7 @@ do_mouse(oap, c, dir, count, fixindent)
 	if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_2CLICK)
 	{
 	    pos_T	*pos = NULL;
+	    int		gc;
 
 	    if (is_click)
 	    {
@@ -2830,7 +2831,7 @@ do_mouse(oap, c, dir, count, fixindent)
 		 * not a word character, try finding a match and select a (),
 		 * {}, [], #if/#endif, etc. block. */
 		end_visual = curwin->w_cursor;
-		while (vim_iswhite(gchar_pos(&end_visual)))
+		while (gc = gchar_pos(&end_visual), vim_iswhite(gc))
 		    inc(&end_visual);
 		if (oap != NULL)
 		    oap->motion_type = MCHAR;
--- a/src/proto/charset.pro
+++ b/src/proto/charset.pro
@@ -40,6 +40,7 @@ void getvvcol __ARGS((win_T *wp, pos_T *
 void getvcols __ARGS((win_T *wp, pos_T *pos1, pos_T *pos2, colnr_T *left, colnr_T *right));
 char_u *skipwhite __ARGS((char_u *p));
 char_u *skipdigits __ARGS((char_u *p));
+char_u *skiphex __ARGS((char_u *p));
 char_u *skiptodigit __ARGS((char_u *p));
 char_u *skiptohex __ARGS((char_u *p));
 int vim_isdigit __ARGS((int c));
--- a/src/spell.c
+++ b/src/spell.c
@@ -10,25 +10,91 @@
 /*
  * spell.c: code for spell checking
  *
- * The basic spell checking mechanism is:
- * 1. Isolate a word, up to the next non-word character.
- * 2. Find the word in the hashtable of basic words.
- * 3. If not found, look in the hashtable with "prewords".  These are prefixes
- *    with a non-word character following a word character, e.g., "de-".
- * 4. If still not found, for each matching a prefix try if the word matches
- *    without the prefix (and with the "chop" string added back).
- * 5. If still still not found, for each matching suffix try if the word
- *    matches without the suffix (and with the "chop" string added back).
+ * The spell checking mechanism uses a tree (aka trie).  Each node in the tree
+ * has a list of bytes that can appear (siblings).  For each byte there is a
+ * pointer to the node with the byte that follows in the word (child).
+ * A NUL byte is used where the word may end.
+ *
+ * There are two trees: one with case-folded words and one with words in
+ * original case.  The second one is only used for keep-case words and is
+ * usually small.
+ *
+ * Thanks to Olaf Seibert for providing an example implementation of this tree
+ * and the compression mechanism.
  *
  * Matching involves checking the caps type: Onecap ALLCAP KeepCap.
- * After finding a matching word check for a leadstring (non-word characters
- * before the word) and addstring (more text following, starting with a
- * non-word character).
  *
  * Why doesn't Vim use aspell/ispell/myspell/etc.?
  * See ":help develop-spell".
  */
 
+/*
+ * Vim spell file format:  <HEADER> <SUGGEST> <LWORDTREE> <KWORDTREE>
+ *
+ * <HEADER>: <fileID> <regioncnt> <regionname> ...
+ *		 <charflagslen> <charflags> <fcharslen> <fchars>
+ *
+ * <fileID>     10 bytes    "VIMspell05"
+ * <regioncnt>  1 byte	    number of regions following (8 supported)
+ * <regionname>	2 bytes     Region name: ca, au, etc.
+ *			    First <regionname> is region 1.
+ *
+ * <charflagslen> 1 byte    Number of bytes in <charflags> (should be 128).
+ * <charflags>  N bytes     List of flags (first one is for character 128):
+ *			    0x01  word character
+ *			    0x01  upper-case character
+ * <fcharslen>  2 bytes     Number of bytes in <fchars>.
+ * <fchars>     N bytes	    Folded characters, first one is for character 128.
+ *
+ *
+ * <SUGGEST> : <suggestlen> <more> ...
+ *
+ * <suggestlen> 4 bytes	    Length of <SUGGEST> in bytes, excluding
+ *			    <suggestlen>.  MSB first.
+ * <more>		    To be defined.
+ *
+ *
+ * <LWORDTREE>: <wordtree>
+ *
+ * <wordtree>: <nodecount> <nodedata> ...
+ *
+ * <nodecount>	4 bytes	    Number of nodes following.  MSB first.
+ *
+ * <nodedata>: <siblingcount> <sibling> ...
+ *
+ * <siblingcount> 1 byte    Number of siblings in this node.  The siblings
+ *			    follow in sorted order.
+ *
+ * <sibling>: <byte> [<nodeidx> <xbyte> | <flags> [<region>]]
+ *
+ * <byte>	1 byte	    Byte value of the sibling.  Special cases:
+ *			    BY_NOFLAGS: End of word without flags and for all
+ *					regions.
+ *			    BY_FLAGS: End of word, <flags> follow.
+ *			    BY_INDEX: Child of sibling is shared, <nodeidx>
+ *					and <xbyte> follow.
+ *
+ * <nodeidx>	3 bytes	    Index of child for this sibling, MSB first.
+ *
+ * <xbyte>	1 byte	    byte value of the sibling.
+ *
+ * <flags>	1 byte	    bitmask of:
+ *			    WF_ALLCAP	word must have only capitals
+ *			    WF_ONECAP   first char of word must be capital
+ *			    WF_RARE	rare word
+ *			    WF_REGION	<region> follows
+ *
+ * <region>	1 byte	    Bitmask for regions in which word is valid.  When
+ *			    omitted it's valid in all regions.
+ *			    Lowest bit is for region 1.
+ *
+ * <KWORDTREE>: <wordtree>
+ *
+ *
+ * All text characters are in 'encoding', but stored as single bytes.
+ * The region name is ASCII.
+ */
+
 #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
 # include <io.h>	/* for lseek(), must be before vim.h */
 #endif
@@ -41,21 +107,20 @@
 # include <fcntl.h>
 #endif
 
-#define MAXWLEN 100		/* assume max. word len is this many bytes */
+#define MAXWLEN 250		/* assume max. word len is this many bytes */
 
-/*
- * Structure that is used to store the structures and strings from the
- * language file.  This avoids the need to allocate space for each individual
- * word.  It's allocated in big chunks for speed.  It's freed all at once when
- * 'encoding' changes.
- */
-#define  SBLOCKSIZE 4096	/* default size of sb_data */
-typedef struct sblock_S sblock_T;
-struct sblock_S
-{
-    sblock_T	*sb_next;	/* next block in list */
-    char_u	sb_data[1];	/* data, actually longer */
-};
+/* Flags used for a word. */
+#define WF_REGION   0x01	/* region byte follows */
+#define WF_ONECAP   0x02	/* word with one capital (or all capitals) */
+#define WF_ALLCAP   0x04	/* word must be all capitals */
+#define WF_RARE	    0x08	/* rare word */
+
+#define WF_KEEPCAP  0x100	/* keep-case word */
+
+#define BY_NOFLAGS  0		/* end of word without flags or region */
+#define BY_FLAGS    1		/* end of word, flag byte follows */
+#define BY_INDEX    2		/* child is shared, index follows */
+#define BY_SPECIAL  BY_INDEX	/* hightest special byte value */
 
 /* Info from "REP" entries in ".aff" file used in af_rep.
  * TODO: This is not used yet.  Either use it or remove it. */
@@ -66,58 +131,33 @@ typedef struct repentry_S
 } repentry_T;
 
 /*
- * Structure to store affix info.
- */
-typedef struct affitem_S affitem_T;
-struct affitem_S
-{
-    affitem_T	*ai_next;	/* next affix with same ai_add[] or NULL */
-    short_u	ai_nr;		/* affix number */
-    char_u	ai_flags;	/* AFF_ flags */
-    char_u	ai_choplen;	/* length of chop string in bytes */
-    char_u	ai_addlen;	/* length of ai_add in bytes */
-    char_u	ai_leadlen;	/* for AFF_PREWORD: length of lead string */
-    char_u	ai_taillen;	/* for AFF_PREWORD: length of tail string */
-    char_u	ai_add[1];	/* Text added to basic word. This stores:
-				 * 0: word for AFF_PREWORD or whole addition
-				 * ai_addlen + 1: chop string
-				 * + ai_choplen + 1: lead string for AFF_PREWORD
-				 * + ai_leadlen + 1: trail string f. AFF_PREWORD
-				 */
-};
-
-/* Get affitem_T pointer from hashitem that uses ai_add */
-static affitem_T dumai;
-#define HI2AI(hi)	((affitem_T *)((hi)->hi_key - (dumai.ai_add - (char_u *)&dumai)))
-
-/* ai_flags: Affix item flags */
-#define AFF_COMBINE	0x01	/* prefix combines with suffix */
-#define AFF_PREWORD	0x02	/* prefix includes word */
-
-/*
  * Structure used to store words and other info for one language, loaded from
  * a .spl file.
- * The main access is through hashtable "sl_word", using the case-folded
- * word as the key.  This finds a linked list of fword_T.
+ * The main access is through the tree in "sl_fbyts/sl_fidxs", storing the
+ * case-folded words.  "sl_kbyts/sl_kidxs" is for keep-case words.
+ *
+ * The "byts" array stores the possible bytes in each tree node, preceded by
+ * the number of possible bytes, sorted on byte value:
+ *	<len> <byte1> <byte2> ...
+ * The "idxs" array stores the index of the child node corresponding to the
+ * byte in "byts".
+ * Exception: when the byte is zero, the word may end here and "idxs" holds
+ * the flags and region for the word.  There may be several zeros in sequence
+ * for alternative flag/region combinations.
  */
 typedef struct slang_S slang_T;
 struct slang_S
 {
     slang_T	*sl_next;	/* next language */
     char_u	*sl_name;	/* language name "en", "en.rare", "nl", etc. */
-    hashtab_T	sl_words;	/* main word table, fword_T */
-    int		sl_prefcnt;	/* number of prefix NRs */
-    garray_T	sl_preftab;	/* list of hashtables to lookup prefixes */
-    affitem_T	*sl_prefzero;	/* list of prefixes with zero add length */
-    hashtab_T	sl_prewords;	/* prefixes that include a word */
-    int		sl_suffcnt;	/* number of suffix NRs */
-    garray_T	sl_sufftab;	/* list of hashtables to lookup suffixes */
-    affitem_T	*sl_suffzero;	/* list of suffixes with zero add length */
+    char_u	*sl_fbyts;	/* case-folded word bytes */
+    int		*sl_fidxs;	/* case-folded word indexes */
+    char_u	*sl_kbyts;	/* keep-case word bytes */
+    int		*sl_kidxs;	/* keep-case word indexes */
     char_u	*sl_try;	/* "TRY" from .aff file  TODO: not used */
     garray_T	sl_rep;		/* list of repentry_T entries from REP lines
 				 * TODO not used */
     char_u	sl_regions[17];	/* table with up to 8 region names plus NUL */
-    sblock_T	*sl_block;	/* list with allocated memory blocks */
     int		sl_error;	/* error while loading */
 };
 
@@ -125,57 +165,6 @@ struct slang_S
  * languages. */
 static slang_T *first_lang = NULL;
 
-/*
- * Structure to store an addition to a basic word.
- * There are many of these, keep it small!
- */
-typedef struct addword_S addword_T;
-struct addword_S
-{
-    addword_T	*aw_next;	/* next addition */
-    char_u	aw_flags;	/* ADD_ flags */
-    char_u	aw_region;	/* region for word with this addition */
-    char_u	aw_leadlen;	/* byte length of lead in aw_word */
-    char_u	aw_wordlen;	/* byte length of first word in aw_word */
-    char_u	aw_saveb;	/* saved byte where aw_word[] is truncated at
-				   end of hashtable key; NUL when not using
-				   hashtable */
-    char_u	aw_word[1];	/* text, actually longer: case-folded addition
-				   plus, with ADD_KEEPCAP: keep-case addition */
-};
-
-/* Get addword_T pointer from hashitem that uses aw_word */
-static addword_T dumaw;
-#define HI2ADDWORD(hi)	((addword_T *)((hi)->hi_key - (dumaw.aw_word - (char_u *)&dumaw)))
-
-/*
- * Structure to store a basic word.
- * There are many of these, keep it small!
- * The list of prefix and suffix NRs is stored after "fw_word" to avoid the
- * need for two extra pointers.
- */
-typedef struct fword_S fword_T;
-struct fword_S
-{
-    fword_T	*fw_next;	/* same basic word with different caps and/or
-				 * affixes */
-    addword_T	*fw_adds;	/* first addword_T entry */
-    short_u	fw_flags;	/* BWF_ flags */
-    char_u	fw_region;	/* region bits */
-    char_u	fw_prefixcnt;	/* number of prefix NRs */
-    char_u	fw_suffixcnt;	/* number of suffix NRs */
-    char_u	fw_word[1];	/* actually longer:
-				 * 0:  case folded word or keep-case word when
-				 *     (flags & BWF_KEEPCAP)
-				 * + word length + 1: list of prefix NRs
-				 * + fw_prefixcnt [* 2]: list of suffix NRs
-				 */
-};
-
-/* Get fword_T pointer from hashitem that uses fw_word */
-static fword_T dumfw;
-#define HI2FWORD(hi)	((fword_T *)((hi)->hi_key - (dumfw.fw_word - (char_u *)&dumfw)))
-
 #define REGION_ALL 0xff
 
 
@@ -195,39 +184,7 @@ typedef struct langp_S
 #define SP_RARE		2
 #define SP_LOCAL	3
 
-/* flags used for basic words in the spell file */
-#define BWF_VALID	0x01	    /* word is valid without additions */
-#define BWF_REGION	0x02	    /* region byte follows */
-#define BWF_ONECAP	0x04	    /* first letter must be capital */
-#define BWF_SUFFIX	0x08	    /* has suffix NR list */
-#define BWF_SECOND	0x10	    /* second flags byte follows */
-
-#define BWF_ADDS	0x0100	    /* there are additions */
-#define BWF_PREFIX	0x0200	    /* has prefix NR list */
-#define BWF_ALLCAP	0x0400	    /* all letters must be capital (not used
-				       for single-letter words) */
-#define BWF_KEEPCAP	0x0800	    /* Keep case as-is */
-#define BWF_ADDS_M	0x1000	    /* there are more than 255 additions */
-
-#define BWF_ADDHASH	0x8000	    /* Internal: use hashtab for additions */
-
-#define NOWC_KEY (char_u *)"x"	    /* hashtab key used for additions without
-				       any word character */
-
-/* flags used for addition in the spell file */
-#define ADD_REGION	0x02	    /* region byte follows */
-#define ADD_ONECAP	0x04	    /* first letter must be capital */
-#define ADD_LEADLEN	0x10	    /* there is a leadlen byte */
-#define ADD_COPYLEN	0x20	    /* there is a copylen byte */
-#define ADD_ALLCAP	0x40	    /* all letters must be capital (not used
-				       for single-letter words) */
-#define ADD_KEEPCAP	0x80	    /* fixed case */
-
-/* Translate ADD_ flags to BWF_ flags.
- * (Needed to keep ADD_ flags in one byte.) */
-#define ADD2BWF(x)	(((x) & 0x0f) | (((x) & 0xf0) << 4))
-
-#define VIMSPELLMAGIC "VIMspell04"  /* string at start of Vim spell file */
+#define VIMSPELLMAGIC "VIMspell05"  /* string at start of Vim spell file */
 #define VIMSPELLMAGICL 10
 
 /*
@@ -239,49 +196,33 @@ typedef struct matchinf_S
     slang_T	*mi_slang;		/* info for the language */
 
     /* pointers to original text to be checked */
-    char_u	*mi_line;		/* start of line containing word */
     char_u	*mi_word;		/* start of word being checked */
-    char_u	*mi_end;		/* first non-word char after mi_word */
-    char_u	*mi_wend;		/* end of matching word (is mi_end
-					 * or further) */
+    char_u	*mi_end;		/* end of matching word */
     char_u	*mi_fend;		/* next char to be added to mi_fword */
+    char_u	*mi_cend;		/* char after what was used for
+					   mi_capflags */
 
     /* case-folded text */
     char_u	mi_fword[MAXWLEN + 1];	/* mi_word case-folded */
-    int		mi_fendlen;		/* byte length of first word in
-					   mi_fword */
-    int		mi_faddlen;		/* byte length of text in mi_fword
-					   after first word */
-    char_u	*mi_cword;		/* word to check, points in mi_fword */
-    char_u	*mi_awend;		/* after next word, to check for
-					   addition (NULL when not done yet) */
-    int		mi_did_awend;		/* did compute mi_awend */
+    int		mi_fwordlen;		/* nr of valid bytes in mi_fword */
 
     /* others */
     int		mi_result;		/* result so far: SP_BAD, SP_OK, etc. */
-    int		mi_capflags;		/* BWF_ONECAP BWF_ALLCAP BWF_KEEPCAP */
+    int		mi_capflags;		/* WF_ONECAP WF_ALLCAP WF_KEEPCAP */
 } matchinf_T;
 
-static int word_match __ARGS((matchinf_T *mip));
-static int check_adds __ARGS((matchinf_T *mip, fword_T *fw, int req_pref, int req_suf));
-static void fill_awend __ARGS((matchinf_T *mip));
-static void fold_addchars __ARGS((matchinf_T *mip, int addlen));
-static int supports_affix __ARGS((int cnt, char_u *afflist, int afflistlen, int nr));
-static int prefix_match __ARGS((matchinf_T *mip));
-static int noprefix_match __ARGS((matchinf_T *mip, char_u *pword, char_u *cstart, affitem_T *ai));
-static int suffix_match __ARGS((matchinf_T *mip));
-static int match_caps __ARGS((int flags, char_u *caseword, matchinf_T *mip, char_u *cword, char_u *end));
 static slang_T *slang_alloc __ARGS((char_u *lang));
 static void slang_free __ARGS((slang_T *lp));
+static void find_word __ARGS((matchinf_T *mip, int keepcap));
 static slang_T *spell_load_lang __ARGS((char_u *lang));
 static void spell_load_file __ARGS((char_u *fname, void *cookie));
-static void *getroom __ARGS((slang_T *lp, int *bl_used, int len));
+static int read_tree __ARGS((FILE *fd, char_u *byts, int *idxs, int maxidx, int startidx));
 static int find_region __ARGS((char_u *rp, char_u *region));
 static int captype __ARGS((char_u *word, char_u *end));
 
 /*
  * Main spell-checking function.
- * "ptr" points to the start of a word.
+ * "ptr" points to a character that could be the start of a word.
  * "*attrp" is set to the attributes for a badly spelled word.  For a non-word
  * or when it's OK it remains unchanged.
  * This must only be called when 'spelllang' is not empty.
@@ -289,885 +230,328 @@ static int captype __ARGS((char_u *word,
  * caller can skip over the word.
  */
     int
-spell_check(wp, line, ptr, attrp)
+spell_check(wp, ptr, attrp)
     win_T	*wp;		/* current window */
-    char_u	*line;		/* start of line where "ptr" points into */
     char_u	*ptr;
     int		*attrp;
 {
     matchinf_T	mi;		/* Most things are put in "mi" so that it can
 				   be passed to functions quickly. */
 
-    /* Find the end of the word.  We already know that *ptr is a word char. */
+    /* Find the end of the word. */
     mi.mi_word = ptr;
     mi.mi_end = ptr;
-    do
-    {
-	mb_ptr_adv(mi.mi_end);
-    } while (*mi.mi_end != NUL && spell_iswordc(mi.mi_end));
-
-    /* A word starting with a number is always OK. */
-    if (*ptr >= '0' && *ptr <= '9')
-	return (int)(mi.mi_end - ptr);
-
-    /* Make case-folded copy of the word. */
-    (void)spell_casefold(ptr, mi.mi_end - ptr, mi.mi_fword, MAXWLEN + 1);
-    mi.mi_cword = mi.mi_fword;
-    mi.mi_fendlen = STRLEN(mi.mi_fword);
-    mi.mi_faddlen = 0;
-    mi.mi_fend = mi.mi_end;
-
-    /* Check the caps type of the word. */
-    mi.mi_capflags = captype(ptr, mi.mi_end);
-
-    /* The word is bad unless we recognize it. */
-    mi.mi_result = SP_BAD;
-    mi.mi_wend = mi.mi_end;
-
-    mi.mi_awend = NULL;
-    mi.mi_did_awend = FALSE;
-    mi.mi_line = line;
 
-    /*
-     * Loop over the languages specified in 'spelllang'.
-     * We check them all, because a matching word may have additions that are
-     * longer than an already found matching word.
-     */
-    for (mi.mi_lp = LANGP_ENTRY(wp->w_buffer->b_langp, 0);
-				       mi.mi_lp->lp_slang != NULL; ++mi.mi_lp)
+    /* A word starting with a number is always OK.  Also skip hexadecimal
+     * numbers 0xFF99 and 0X99FF. */
+    if (*ptr >= '0' && *ptr <= '9')
+    {
+	if (*ptr == '0' && (ptr[1] == 'x' || ptr[2] == 'X'))
+	    mi.mi_end = skiphex(ptr);
+	else
+	    mi.mi_end = skipdigits(ptr);
+    }
+    else
     {
-	/*
-	 * Check for a matching word.
-	 * If not found or wrong region try removing prefixes (and then
-	 * suffixes).
-	 * If still not found or wrong region try removing suffixes.
-	 */
-	mi.mi_slang = mi.mi_lp->lp_slang;
-	if (!word_match(&mi) || mi.mi_result != SP_OK)
-	    if (!prefix_match(&mi) || mi.mi_result != SP_OK)
-		suffix_match(&mi);
-    }
+	mi.mi_fend = ptr;
+	if (spell_iswordc(mi.mi_fend))
+	{
+	    /* Make case-folded copy of the characters until the next non-word
+	     * character. */
+	    do
+	    {
+		mb_ptr_adv(mi.mi_fend);
+	    } while (*mi.mi_fend != NUL && spell_iswordc(mi.mi_fend));
 
-    if (mi.mi_result != SP_OK)
-    {
-	if (mi.mi_result == SP_BAD)
-	    *attrp = highlight_attr[HLF_SPB];
-	else if (mi.mi_result == SP_RARE)
-	    *attrp = highlight_attr[HLF_SPR];
-	else
-	    *attrp = highlight_attr[HLF_SPL];
-    }
+	    (void)spell_casefold(ptr, (int)(mi.mi_fend - ptr), mi.mi_fword,
+								 MAXWLEN + 1);
+	    mi.mi_fwordlen = STRLEN(mi.mi_fword);
 
-    return (int)(mi.mi_wend - ptr);
-}
+	    /* Check the caps type of the word. */
+	    mi.mi_capflags = captype(ptr, mi.mi_fend);
 
-/*
- * Check if the word "mip->mi_word" matches.
- * "mip->mi_fword" is the same word case-folded;
- *
- * This checks the word as a whole and for prefixes that include a word.
- *
- * Note that when called mi_fword only contains the word up to mip->mi_end,
- * but when checking additions it gets longer.
- */
-    static int
-word_match(mip)
-    matchinf_T *mip;
-{
-    hash_T	fhash = hash_hash(mip->mi_fword);
-    hashitem_T	*hi;
-    fword_T	*fw;
-    int		valid = FALSE;
-    char_u	*p;
-    char_u	pword[MAXWLEN + 1];
-    int		charlen;
-    int		capflags_save;
-    affitem_T	*ai;
-    char_u	*cstart;
-    int		addlen;
-    int		n;
-    char_u	*save_end;
-    int		cc;
+	    /* We always use the characters up to the next non-word character,
+	     * also for bad words. */
+	    mi.mi_end = mi.mi_fend;
+	}
+	else
+	{
+	    /* No word characters.  Don't case-fold anything, we may quickly
+	     * find out this is not a word (but it could be!). */
+	    mi.mi_fwordlen = 0;
+	    mi.mi_capflags = 0;
+	}
 
-    hi = hash_lookup(&mip->mi_slang->sl_words, mip->mi_fword, fhash);
-    if (!HASHITEM_EMPTY(hi))
-    {
-	/*
-	 * Find a basic word for which the case of "mi_word" is correct.
-	 * If it is, check additions and use the longest one.
-	 */
-	for (fw = HI2FWORD(hi); fw != NULL; fw = fw->fw_next)
-	    if (match_caps(fw->fw_flags, fw->fw_word, mip,
-						   mip->mi_word, mip->mi_end))
-		valid |= check_adds(mip, fw, -1, -1);
-    }
+	mi.mi_cend = mi.mi_fend;
+
+	/* The word is bad unless we recognize it. */
+	mi.mi_result = SP_BAD;
 
-    /*
-     * Try finding a matching preword for "mip->mi_word".  These are
-     * prefixes that have a non-word character after a word character:
-     * "d'", "de-", "'s-", "l'de-".  But not "'s".
-     * Also need to do this when a matching word was already found, because we
-     * might find a longer match this way (French: "qu" and "qu'a-t-elle").
-     * The check above may have added characters to mi_fword, thus we need to
-     * truncate it after the basic word for the hash lookup.
-     */
-    cc = mip->mi_fword[mip->mi_fendlen];
-    mip->mi_fword[mip->mi_fendlen] = NUL;
-    hi = hash_lookup(&mip->mi_slang->sl_prewords, mip->mi_fword, fhash);
-    mip->mi_fword[mip->mi_fendlen] = cc;
-    if (!HASHITEM_EMPTY(hi))
-    {
-	capflags_save = mip->mi_capflags;
-
-	/* Go through the list of matching prewords. */
-	for (ai = HI2AI(hi); ai != NULL; ai = ai->ai_next)
+	/*
+	 * Loop over the languages specified in 'spelllang'.
+	 * We check them all, because a matching word may be longer than an
+	 * already found matching word.
+	 */
+	for (mi.mi_lp = LANGP_ENTRY(wp->w_buffer->b_langp, 0);
+				       mi.mi_lp->lp_slang != NULL; ++mi.mi_lp)
 	{
-	    /* Check that the lead string matches before the word. */
-	    p = ai->ai_add + ai->ai_addlen + ai->ai_choplen + 2;
-	    if (ai->ai_leadlen > 0)
-	    {
-		if (mip->mi_word - mip->mi_line < ai->ai_leadlen
-			|| STRNCMP(mip->mi_word - ai->ai_leadlen, p,
-						     ai->ai_leadlen) != 0)
-		    continue;
-		p += ai->ai_leadlen + 1;	/* advance "p" to tail */
-	    }
-	    else
-		++p;			/* advance "p" to tail */
+	    /* Check for a matching word in case-folded words. */
+	    find_word(&mi, FALSE);
+
+	    /* Try keep-case words. */
+	    find_word(&mi, TRUE);
+	}
 
-	    /* Check that the tail string matches after the word.  Need
-	     * to fold case first.  */
-	    if (ai->ai_taillen > 0)
+	if (mi.mi_result != SP_OK)
+	{
+	    /* When we are at a non-word character there is no error, just
+	     * skip over the character (try looking for a word after it). */
+	    if (!spell_iswordc(ptr))
 	    {
-		if (ai->ai_taillen >= mip->mi_faddlen)
-		{
-		    fold_addchars(mip, ai->ai_taillen);
-		    if (ai->ai_taillen > mip->mi_faddlen)
-			continue;	/* not enough chars, can't match */
-		}
-		if (STRNCMP(mip->mi_fword + mip->mi_fendlen,
-						  p, ai->ai_taillen) != 0)
-		    continue;
+#ifdef FEAT_MBYTE
+		if (has_mbyte)
+		    return mb_ptr2len_check(ptr);
+#endif
+		return 1;
 	    }
 
-	    /*
-	     * This preword matches.  Remove the preword and check that
-	     * the resulting word exits.
-	     */
-
-	    /* Find the place in the original word where the tail ends,
-	     * needed for case checks. */
-#ifdef FEAT_MBYTE
-	    charlen = mb_charlen(p);
-#else
-	    charlen = ai->ai_taillen;
-#endif
-	    cstart = mip->mi_end;
-	    for (n = 0; n < charlen; ++n)
-		mb_ptr_adv(cstart);
-
-	    /* The new word starts with the chop. Then add up to the next
-	     * non-word char. */
-	    mch_memmove(pword, ai->ai_add + ai->ai_addlen + 1,
-							  ai->ai_choplen);
-	    p = mip->mi_fword + mip->mi_fendlen + ai->ai_taillen;
-	    addlen = ai->ai_taillen;
-	    while (spell_iswordc(p))
-	    {
-		++charlen;
-#ifdef FEAT_MBYTE
-		addlen += (*mb_ptr2len_check)(p);
-#else
-		++addlen;
-#endif
-		mb_ptr_adv(p);
-		if (addlen >= mip->mi_faddlen)
-		{
-		    /* Get more folded characters in mip->mi_fword. */
-		    fold_addchars(mip, addlen);
-		    if (addlen >= mip->mi_faddlen)
-			break;	/* not enough chars, can't match */
-		}
-	    }
-	    mch_memmove(pword + ai->ai_choplen,
-		    mip->mi_fword + mip->mi_fendlen + ai->ai_taillen,
-						 addlen - ai->ai_taillen);
-	    pword[ai->ai_choplen + addlen - ai->ai_taillen] = NUL;
-
-	    /* Need to set mi_end to find additions.  Also set mi_fendlen
-	     * and mi_faddlen. */
-	    save_end = mip->mi_end;
-	    while (--charlen >= 0)
-		mb_ptr_adv(mip->mi_end);
-	    mip->mi_fendlen += addlen;
-	    mip->mi_faddlen -= addlen;
-
-	    /* Find the word "pword", caseword "cstart". */
-	    n = noprefix_match(mip, pword, cstart, ai);
-	    mip->mi_end = save_end;
-	    mip->mi_fendlen -= addlen;
-	    mip->mi_faddlen += addlen;
-	    if (n)
-		valid = TRUE;
-
-	    /* If we found a valid word, we still need to try other
-	     * suffixes, because it may have an addition that's longer. */
-	}
-
-	mip->mi_capflags = capflags_save;
-    }
-
-    return valid;
-}
-
-/*
- * Check a matching basic word for additions.
- * Return TRUE if we have a valid match.
- */
-    static int
-check_adds(mip, fw, req_pref, req_suf)
-    matchinf_T	*mip;
-    fword_T	*fw;
-    int		req_pref;	/* required prefix nr, -1 if none */
-    int		req_suf;	/* required suffix nr, -1 if none */
-{
-    int		valid = FALSE;
-    addword_T	*aw;
-    addword_T	*naw = NULL;
-    char_u	*p;
-    int		addlen;
-    int		cc;
-    hashitem_T	*hi;
-    char_u	*cp = NULL;
-    int		n;
-
-    /* Check if required prefixes and suffixes are supported.  These are on
-     * the basic word, not on each addition. */
-    if (req_pref >= 0 || req_suf >= 0)
-    {
-	/* Prefix NRs are stored just after the word in fw_word. */
-	cp = fw->fw_word + STRLEN(fw->fw_word) + 1;
-	if (req_pref >= 0 && !supports_affix(mip->mi_slang->sl_prefcnt,
-					      cp, fw->fw_prefixcnt, req_pref))
-	    return FALSE;
-	if (req_suf >= 0)
-	{
-	    /* Suffix NRs are stored just after the Prefix NRs. */
-	    if (fw->fw_prefixcnt > 0)
-	    {
-		if (mip->mi_slang->sl_prefcnt > 256)
-		    cp += fw->fw_prefixcnt * 2;
-		else
-		    cp += fw->fw_prefixcnt;
-	    }
-	    if (!supports_affix(mip->mi_slang->sl_suffcnt,
-					       cp, fw->fw_suffixcnt, req_suf))
-		return FALSE;
+	    if (mi.mi_result == SP_BAD)
+		*attrp = highlight_attr[HLF_SPB];
+	    else if (mi.mi_result == SP_RARE)
+		*attrp = highlight_attr[HLF_SPR];
+	    else
+		*attrp = highlight_attr[HLF_SPL];
 	}
     }
 
-    /* A word may be valid without an addition. */
-    if (fw->fw_flags & BWF_VALID)
-    {
-	valid = TRUE;
-	if (mip->mi_result != SP_OK)
-	{
-	    if ((fw->fw_region & mip->mi_lp->lp_region) == 0)
-		mip->mi_result = SP_LOCAL;
-	    else
-		mip->mi_result = SP_OK;
-	}
-	/* Set word end, required when matching a word after a preword. */
-	if (mip->mi_wend < mip->mi_end)
-	    mip->mi_wend = mip->mi_end;
-    }
-
-    /*
-     * Check additions, both before and after the word.
-     * This may make the word longer, thus we also need to check
-     * when we already found a matching word.
-     * When the BWF_ADDHASH flag is present then fw_adds points to a hashtable
-     * for quick lookup.  Otherwise it points to the list of all possible
-     * additions.
-     */
-    if (fw->fw_flags & BWF_ADDHASH)
-    {
-	/* Locate the text up to the next end-of-word. */
-	if (!mip->mi_did_awend)
-	    fill_awend(mip);
-	if (mip->mi_awend == NULL)
-	    return valid;	    /* there is no next word */
-
-	cc = *mip->mi_awend;
-	*mip->mi_awend = NUL;
-	hi = hash_find((hashtab_T *)fw->fw_adds,
-					     mip->mi_fword + mip->mi_fendlen);
-	*mip->mi_awend = cc;
-	if (HASHITEM_EMPTY(hi))
-	    return valid;		/* no matching addition */
-	aw = HI2ADDWORD(hi);
-
-	/* Also check additions without word characters.  If they are there,
-	 * skip the first dummy entry. */
-	hi = hash_find((hashtab_T *)fw->fw_adds, NOWC_KEY);
-	if (!HASHITEM_EMPTY(hi))
-	    naw = HI2ADDWORD(hi)->aw_next;
-    }
-    else
-	aw = fw->fw_adds;
-
-    for ( ; ; aw = aw->aw_next)
-    {
-	if (aw == NULL)
-	{
-	    /* At end of list: may also try additions without word chars. */
-	    if (naw == NULL)
-		break;
-	    aw = naw;
-	    naw = NULL;
-	}
-
-	if (aw->aw_leadlen > 0)
-	{
-	    /* There is a leader, verify that it matches. */
-	    if (aw->aw_leadlen > mip->mi_word - mip->mi_line
-		    || STRNCMP(mip->mi_word - aw->aw_leadlen,
-					    aw->aw_word, aw->aw_leadlen) != 0)
-		continue;
-	    if (mip->mi_word - aw->aw_leadlen > mip->mi_line)
-	    {
-		/* There must not be a word character just before the
-		 * leader. */
-		p = mip->mi_word - aw->aw_leadlen;
-		mb_ptr_back(mip->mi_line, p);
-		if (spell_iswordc(p))
-		    continue;
-	    }
-	    /* Leader matches.  Addition is rest of "aw_word". */
-	    p = aw->aw_word + aw->aw_leadlen;
-	}
-	else
-	    /* No leader, use whole of "aw_word" for addition. */
-	    p = aw->aw_word;
-
-	addlen = aw->aw_wordlen - aw->aw_leadlen;
-	if (addlen > 0)
-	{
-	    /* Check for matching addition and no word character after it.
-	     * First make sure we have enough case-folded chars to compare
-	     * with. */
-	    if (addlen >= mip->mi_faddlen)
-		fold_addchars(mip, addlen);
-
-	    /* Put back the saved char, if needed. */
-	    if (aw->aw_saveb != NUL)
-	    {
-		cp = p + STRLEN(p);
-		*cp = aw->aw_saveb;
-	    }
-	    n = STRNCMP(mip->mi_fword + mip->mi_fendlen, p, addlen);
-	    if (aw->aw_saveb != NUL)
-		*cp = NUL;
-
-	    if (n != 0 || (mip->mi_fword[mip->mi_fendlen + addlen] != NUL
-		  && spell_iswordc(mip->mi_fword + mip->mi_fendlen + addlen)))
-		continue;
-
-	    /* Compute the length in the original word, before case folding. */
-#ifdef FEAT_MBYTE
-	    if (has_mbyte)
-	    {
-		int	l;
-
-		p = mip->mi_end;
-		for (l = 0; l < addlen; l += (*mb_ptr2len_check)(mip->mi_fword
-						       + mip->mi_fendlen + l))
-		    mb_ptr_adv(p);
-		addlen = p - mip->mi_end;
-	    }
-#endif
-
-	    /* Check case of the addition. */
-	    if (!match_caps(ADD2BWF(aw->aw_flags),
-			  aw->aw_word + aw->aw_wordlen + 1, mip,
-					   mip->mi_end, mip->mi_end + addlen))
-		continue;
-	}
-
-	/* Match!  Use the new length if it's longer. */
-	if (mip->mi_wend < mip->mi_end + addlen)
-	    mip->mi_wend = mip->mi_end + addlen;
-
-	valid = TRUE;
-	if (mip->mi_result != SP_OK)
-	{
-	    if ((aw->aw_region & mip->mi_lp->lp_region) == 0)
-		mip->mi_result = SP_LOCAL;
-	    else
-		mip->mi_result = SP_OK;
-	}
-    }
-
-    return valid;
+    return (int)(mi.mi_end - ptr);
 }
 
 /*
- * Locate the text up to the next end-of-word after mip->mi_end.
- */
-    static void
-fill_awend(mip)
-    matchinf_T	*mip;
-{
-    char_u	*p = mip->mi_end;
-    int		addlen = 0;
-    int		find_word = TRUE;
-
-    mip->mi_did_awend = TRUE;
-    if (mip->mi_faddlen == 0)
-	fold_addchars(mip, 0);	    /* need to fold first char */
-
-    /* 1: find_word == TRUE: skip over non-word characters after mi_end.
-     * 2: find_word == FALSE: skip over following word characters. */
-    for (p = mip->mi_fword + mip->mi_fendlen; *p != NUL; mb_ptr_adv(p))
-    {
-	if (spell_iswordc(p) == find_word)
-	{
-	    if (!find_word)
-		break;		    /* done */
-	    find_word = !find_word;
-	}
-#ifdef FEAT_MBYTE
-	addlen += (*mb_ptr2len_check)(p);
-#else
-	++addlen;
-#endif
-	if (addlen >= mip->mi_faddlen)
-	    fold_addchars(mip, addlen);	    /* need to fold more chars */
-    }
-
-    /* If there are extra chars store the result. */
-    if (addlen != 0)
-	mip->mi_awend = p;
-}
-
-/*
- * Fold enough characters of the checked text to be able to compare with an
- * addition of length "addlen" plus one character (to be able to check the
- * next character to be a non-word char).
- * When there are not enough characters (end of line) mip->mi_faddlen will be
- * smaller than "addlen".
+ * Check if the word at "mip->mi_word" is in the tree.
+ * When "keepcap" is TRUE check in keep-case word tree.
+ *
+ * For a match mip->mi_result is updated.
  */
     static void
-fold_addchars(mip, addlen)
+find_word(mip, keepcap)
     matchinf_T	*mip;
-    int		addlen;
+    int		keepcap;
 {
-    int		l;
-    char_u	*p = mip->mi_fword + mip->mi_fendlen;
-
-    while (mip->mi_faddlen <= addlen)
-    {
-	if (*mip->mi_fend == NUL)	/* end of the line */
-	{
-	    p[mip->mi_faddlen] = NUL;
-	    break;
-	}
+    int		arridx = 0;
+    int		endlen[MAXWLEN];    /* length at possible word endings */
+    int		endidx[MAXWLEN];    /* possible word endings */
+    int		endidxcnt = 0;
+    int		len;
+    int		wlen = 0;
+    int		flen;
+    int		c;
+    char_u	*ptr;
+    unsigned	lo, hi, m;
 #ifdef FEAT_MBYTE
-	if (has_mbyte)
-	    l = (*mb_ptr2len_check)(mip->mi_fend);
-	else
+    char_u	*s;
+    char_u	*p;
 #endif
-	    l = 1;
-	(void)spell_casefold(mip->mi_fend, l, p + mip->mi_faddlen,
-				 MAXWLEN - mip->mi_fendlen - mip->mi_faddlen);
-	mip->mi_fend += l;
-	mip->mi_faddlen += STRLEN(p + mip->mi_faddlen);
-    }
-}
+    int		res;
+    int		valid;
+    slang_T	*slang = mip->mi_lp->lp_slang;
+    unsigned	flags;
+    char_u	*byts;
+    int		*idxs;
 
-/*
- * Return TRUE if affix "nr" appears in affix list "afflist[afflistlen]".
- */
-    static int
-supports_affix(cnt, afflist, afflistlen, nr)
-    int		cnt;		/* total affix NR count */
-    char_u	*afflist;
-    int		afflistlen;	/* affix count in "afflist" */
-    int		nr;
-{
-    char_u	*pc = afflist;
-    int		i;
-    int		nr_msb, nr_lsb;
-
-    if (cnt <= 256)
+    if (keepcap)
     {
-	/* one byte affix numbers */
-	for (i = afflistlen; --i >= 0; )
-	    if (*pc++ == nr)
-		return TRUE;
+	/* Check for word with matching case in keep-case tree. */
+	ptr = mip->mi_word;
+	flen = 9999;		    /* no case folding, always enough bytes */
+	byts = slang->sl_kbyts;
+	idxs = slang->sl_kidxs;
     }
     else
     {
-	/* two byte affix numbers, MSB first */
-	nr_msb = (unsigned)nr >> 8;
-	nr_lsb = nr & 0xff;
-	for (i = afflistlen; --i >= 0; )
-	{
-	    if (*pc++ == nr_msb && *pc == nr_lsb)
-		return TRUE;
-	    ++pc;
-	}
-    }
-    return FALSE;
-}
-
-/*
- * Try finding a match for "mip->mi_cword" by removing prefixes.
- */
-    static int
-prefix_match(mip)
-    matchinf_T	*mip;
-{
-    int		len = 0;
-    int		charlen = 0;
-    int		cc;
-    affitem_T	*ai;
-    char_u	pword[MAXWLEN + 1];
-    hashtab_T	*ht;
-    hashitem_T	*hi;
-    int		found_valid = FALSE;
-    int		cstart_charlen = 0;
-    char_u	*cstart = mip->mi_word;
-    int		capflags_save = mip->mi_capflags;
-
-    /*
-     * Check for prefixes with different character lengths.
-     * Start with zero length (only chop off).
-     */
-    for (charlen = 0; charlen <= mip->mi_slang->sl_preftab.ga_len; ++charlen)
-    {
-	if (charlen > 0)
-	{
-#ifdef FEAT_MBYTE
-	    if (has_mbyte)
-		len += (*mb_ptr2len_check)(mip->mi_cword + len);
-	    else
-#endif
-		len += 1;
-	}
-	if (mip->mi_cword[len] == NUL)	/* end of word, no prefix possible */
-	    break;
-
-	if (charlen == 0)
-	    ai = mip->mi_slang->sl_prefzero;
-	else
-	{
-	    /* Get pointer to hashtab for prefix of this many chars. */
-	    ht = ((hashtab_T *)mip->mi_slang->sl_preftab.ga_data) + charlen - 1;
-	    if (ht->ht_used == 0)
-		continue;
-
-	    cc = mip->mi_cword[len];
-	    mip->mi_cword[len] = NUL;
-	    hi = hash_find(ht, mip->mi_cword);
-	    mip->mi_cword[len] = cc;
-
-	    if (HASHITEM_EMPTY(hi))
-		ai = NULL;
-	    else
-		ai = HI2AI(hi);
-	}
-
-	/* Loop over all matching prefixes. */
-	for ( ; ai != NULL; ai = ai->ai_next)
-	{
-	    /* Create the basic word from the chop string and the word after
-	     * the matching add string. */
-	    mch_memmove(pword, ai->ai_add + ai->ai_addlen + 1, ai->ai_choplen);
-	    mch_memmove(pword + ai->ai_choplen, mip->mi_cword + ai->ai_addlen,
-					     mip->mi_fendlen - ai->ai_addlen);
-	    pword[mip->mi_fendlen - ai->ai_addlen] = NUL;
-
-	    /* Adjust the word start for case checks, we only check the
-	     * part after the prefix. */
-	    while (cstart_charlen < charlen)
-	    {
-		mb_ptr_adv(cstart);
-		++cstart_charlen;
-	    }
-
-	    /* Find the word "pword", caseword "cstart". */
-	    found_valid |= noprefix_match(mip, pword, cstart, ai);
-
-	    if (found_valid && mip->mi_result == SP_OK)
-	    {
-		/* Found a valid word, no need to try other suffixes. */
-		mip->mi_capflags = capflags_save;
-		return TRUE;
-	    }
-	}
-    }
-
-    mip->mi_capflags = capflags_save;
-    return FALSE;
-}
-
-/*
- * Check for matching word after removing a prefix.
- * Return TRUE if found.
- */
-    static int
-noprefix_match(mip, pword, cstart, ai)
-    matchinf_T	*mip;
-    char_u	*pword;	    /* case-folded word */
-    char_u	*cstart;    /* original word after removed prefix */
-    affitem_T	*ai;	    /* the prefix item */
-{
-    hashitem_T	*hi;
-    fword_T	*fw;
-    int		found_valid = FALSE;
-    char_u	*word;
-    int		i;
-    int		fendlen;
-
-    /* Removing the prefix may change the caps, e.g. for
-     * "deAlf" removing "de" makes it ONECAP. */
-    mip->mi_capflags = captype(cstart, mip->mi_end);
-
-    /* Find the basic word. */
-    hi = hash_find(&mip->mi_slang->sl_words, pword);
-    if (!HASHITEM_EMPTY(hi))
-    {
-	/* Check if the word supports this prefix. */
-	for (fw = HI2FWORD(hi); fw != NULL; fw = fw->fw_next)
-	    if (match_caps(fw->fw_flags, fw->fw_word, mip,
-						 cstart, mip->mi_end))
-		found_valid |= check_adds(mip, fw, ai->ai_nr, -1);
-
-	if (found_valid && mip->mi_result == SP_OK)
-	    /* Found a valid word, no need to try other suffixes. */
-	    return TRUE;
+	/* Check for case-folded in case-folded tree. */
+	ptr = mip->mi_fword;
+	flen = mip->mi_fwordlen;    /* available case-folded bytes */
+	byts = slang->sl_fbyts;
+	idxs = slang->sl_fidxs;
     }
 
-    /* No matching basic word without prefix.  When combining is
-     * allowed try with suffixes. */
-    if (ai->ai_flags & AFF_COMBINE)
-    {
-	/* Pass the word with prefix removed to suffix_match(). */
-	mip->mi_cword = pword;
-	word = mip->mi_word;
-	mip->mi_word = cstart;
-	fendlen = mip->mi_fendlen;
-	mip->mi_fendlen = STRLEN(pword);
-	i = suffix_match(mip);
-	mip->mi_cword = mip->mi_fword;
-	mip->mi_word = word;
-	mip->mi_fendlen = fendlen;
-	if (i)
-	    return TRUE;
-    }
-
-    return FALSE;
-}
-
-/*
- * Try finding a match for "mip->mi_cword" by removing suffixes.
- */
-    static int
-suffix_match(mip)
-    matchinf_T	*mip;
-{
-    char_u	*sufp;
-    char_u	*endw = mip->mi_cword + mip->mi_fendlen;
-    int		endw_c = *endw;
-    int		charlen;
-    affitem_T	*ai;
-    char_u	pword[MAXWLEN + 1];
-    fword_T	*fw;
-    hashtab_T	*ht;
-    hashitem_T	*hi;
-    int		tlen;
-    int		cend_charlen = 0;
-    char_u	*cend = mip->mi_end;
-    int		found_valid = FALSE;
-    int		capflags_save = mip->mi_capflags;
+    if (byts == NULL)
+	return;			/* array is empty */
 
     /*
-     * Try suffixes of different length, starting with an empty suffix (chop
-     * only, thus adds something).
-     * Stop checking if there are no suffixes with so many characters.
+     * Repeat advancing in the tree until there is a byte that doesn't match,
+     * we reach the end of the tree or we reach the end of the line.
      */
-    sufp = endw;
-    *endw = NUL;	/* truncate after possible suffix */
-
-    for (charlen = 0; charlen <= mip->mi_slang->sl_sufftab.ga_len; ++charlen)
+    for (;;)
     {
-	/* Move the pointer to the possible suffix back one character, unless
-	 * doing the first round (empty suffix). */
-	if (charlen > 0)
-	{
-	    mb_ptr_back(mip->mi_cword, sufp);
-	    if (sufp <= mip->mi_cword)	/* start of word, no suffix possible */
-		break;
-	}
-
-	if (charlen == 0)
-	    ai = mip->mi_slang->sl_suffzero;
-	else
-	{
-	    /* Get pointer to hashtab for suffix of this many chars. */
-	    ht = ((hashtab_T *)mip->mi_slang->sl_sufftab.ga_data) + charlen - 1;
-	    if (ht->ht_used == 0)
-		continue;
-
-	    hi = hash_find(ht, sufp);
-	    if (HASHITEM_EMPTY(hi))
-		ai = NULL;
-	    else
-		ai = HI2AI(hi);
-	}
-
-	if (ai != NULL)
+	if (flen == 0 && *mip->mi_fend != NUL)
 	{
-	    /* Found a list of matching suffixes.  Now check that there is one
-	     * we can use. */
-	    tlen = sufp - mip->mi_cword;    /* length of word without suffix */
-	    mch_memmove(pword, mip->mi_cword, tlen);
-	    *endw = endw_c;
-
-	    for ( ; ai != NULL; ai = ai->ai_next)
-	    {
-		/* Found a matching suffix.  Create the basic word by removing
-		 * the suffix and adding the chop string. */
-		if (ai->ai_choplen == 0)
-		    pword[tlen] = NUL;
-		else
-		    mch_memmove(pword + tlen, ai->ai_add + ai->ai_addlen + 1,
-							  ai->ai_choplen + 1);
-
-		/* Find the basic word. */
-		hi = hash_find(&mip->mi_slang->sl_words, pword);
-		if (!HASHITEM_EMPTY(hi))
-		{
-		    /* Adjust the end for case checks, we only check the part
-		     * before the suffix. */
-		    while (cend_charlen < charlen)
-		    {
-			mb_ptr_back(mip->mi_word, cend);
-			++cend_charlen;
-		    }
-
-		    /* Removing the suffix may change the caps, e.g. for
-		     * "UFOs" removing 's' makes it ALLCAP. */
-		    mip->mi_capflags = captype(mip->mi_word, cend);
-
-		    /* Check if the word supports this suffix. */
-		    for (fw = HI2FWORD(hi); fw != NULL; fw = fw->fw_next)
-			if (match_caps(fw->fw_flags, fw->fw_word, mip,
-							  mip->mi_word, cend))
-			    found_valid |= check_adds(mip, fw, -1, ai->ai_nr);
-
-		    if (found_valid && mip->mi_result == SP_OK)
-		    {
-			/* Found a valid word, no need to try other suffixes. */
-			mip->mi_capflags = capflags_save;
-			return TRUE;
-		    }
-		}
-	    }
-
-	    *endw = NUL;	/* truncate after possible suffix */
-	}
-    }
-
-    *endw = endw_c;
-    mip->mi_capflags = capflags_save;
-    return FALSE;
-}
-
-/*
- * Return TRUE if case of "cword" meets the requirements of case flags
- * "flags".
- */
-    static int
-match_caps(flags, caseword, mip, cword, end)
-    int		flags;	    /* flags required by basic word or addition */
-    char_u	*caseword;  /* word with case as required */
-    matchinf_T	*mip;
-    char_u	*cword;	    /* word to compare against "caseword" */
-    char_u	*end;	    /* end of "cword" */
-{
-    char_u	*p;
-    int		c;
-    int		len;
-    int		capflags = mip->mi_capflags;	    /* flags of checked word */
-    int		past_second;
-
-    if ((capflags & BWF_KEEPCAP) == 0 && end > mip->mi_end)
-    {
-	/* If "end" is past "mip->mi_end" we need to adjust the caps type for
-	 * characters after the basic word. */
-#ifdef FEAT_MBYTE
-	past_second = (mip->mi_word + (*mb_ptr2len_check)(mip->mi_word)
-							       < mip->mi_end);
-#else
-	past_second = mip->mi_word + 1 < mip->mi_end;
-#endif
-	for (p = mip->mi_end; p < end; )
-	{
-	    if (!spell_iswordc(p))
-		mb_ptr_adv(p);
-	    else
+	    /* Need to fold at least one more character.  Do until next
+	     * non-word character for efficiency. */
+	    do
 	    {
 #ifdef FEAT_MBYTE
 		if (has_mbyte)
-		    c = mb_ptr2char_adv(&p);
+		    flen += mb_ptr2len_check(mip->mi_fend + flen);
 		else
 #endif
-		    c = *p++;
-		if (spell_isupper(c))
-		{
-		    if (capflags == 0 || (capflags & BWF_ONECAP))
-		    {
-			capflags = BWF_KEEPCAP;	/* lU or UlU */
-			break;
-		    }
-		}
-		else
-		{
-		    if (capflags & BWF_ALLCAP)
-		    {
-			if (past_second)
-			{
-			    capflags = BWF_KEEPCAP;	/* UUl */
-			    break;
-			}
-			capflags = BWF_ONECAP;		/* Uu */
-		    }
-		}
-		past_second = TRUE;
+		    ++flen;
+	    } while (spell_iswordc(mip->mi_fend + flen));
+
+	    (void)spell_casefold(mip->mi_fend, flen,
+				     mip->mi_fword + mip->mi_fwordlen,
+				     MAXWLEN - mip->mi_fwordlen);
+	    mip->mi_fend += flen;
+	    flen = STRLEN(mip->mi_fword + mip->mi_fwordlen);
+	    mip->mi_fwordlen += flen;
+	}
+
+	len = byts[arridx++];
+
+	/* If the first possible byte is a zero the word could end here.
+	 * Remember this index, we first check for the longest word. */
+	if (byts[arridx] == 0)
+	{
+	    endlen[endidxcnt] = wlen;
+	    endidx[endidxcnt++] = arridx++;
+	    --len;
+
+	    /* Skip over the zeros, there can be several flag/region
+	     * combinations. */
+	    while (len > 0 && byts[arridx] == 0)
+	    {
+		++arridx;
+		--len;
+	    }
+	    if (len == 0)
+		break;	    /* no children, word must end here */
+	}
+
+	/* Stop looking at end of the line. */
+	if (ptr[wlen] == NUL)
+	    break;
+
+	/* Perform a binary search in the list of accepted bytes. */
+	c = ptr[wlen];
+	lo = arridx;
+	hi = arridx + len - 1;
+	while (lo < hi)
+	{
+	    m = (lo + hi) / 2;
+	    if (byts[m] > c)
+		hi = m - 1;
+	    else if (byts[m] < c)
+		lo = m + 1;
+	    else
+	    {
+		lo = hi = m;
+		break;
 	    }
 	}
+
+	/* Stop if there is no matching byte. */
+	if (hi < lo || byts[lo] != c)
+	    break;
+
+	/* Continue at the child (if there is one). */
+	arridx = idxs[lo];
+	++wlen;
+	--flen;
     }
 
-    if (capflags == BWF_ALLCAP)
-	return TRUE;		/* All caps is always OK. */
+    /*
+     * Verify that one of the possible endings is valid.  Try the longest
+     * first.
+     */
+    while (endidxcnt > 0)
+    {
+	--endidxcnt;
+	arridx = endidx[endidxcnt];
+	wlen = endlen[endidxcnt];
 
-    if (flags & BWF_KEEPCAP)
-    {
-	len = STRLEN(caseword);
-	return (len == end - cword && STRNCMP(caseword, cword, len) == 0);
-    }
+#ifdef FEAT_MBYTE
+	if ((*mb_head_off)(ptr, ptr + wlen) > 0)
+	    continue;	    /* not at first byte of character */
+#endif
+	if (spell_iswordc(ptr + wlen))
+	    continue;	    /* next char is a word character */
+
+#ifdef FEAT_MBYTE
+	if (!keepcap && has_mbyte)
+	{
+	    /* Compute byte length in original word, length may change
+	     * when folding case. */
+	    p = mip->mi_word;
+	    for (s = ptr; s < ptr + wlen; mb_ptr_adv(s))
+		mb_ptr_adv(p);
+	    wlen = p - mip->mi_word;
+	}
+#endif
 
-    if (flags & BWF_ALLCAP)
-	return FALSE;		/* need ALLCAP, already checked above */
+	/* Check flags and region.  Repeat this if there are more
+	 * flags/region alternatives until there is a match. */
+	res = SP_BAD;
+	for (len = byts[arridx - 1]; len > 0 && byts[arridx] == 0; --len)
+	{
+	    flags = idxs[arridx];
+	    if (keepcap)
+	    {
+		/* For "keepcap" tree the case is always right. */
+		valid = TRUE;
+	    }
+	    else
+	    {
+		/* Check that the word is in the required case. */
+		if (mip->mi_cend != mip->mi_word + wlen)
+		{
+		    /* mi_capflags was set for a different word
+		     * length, need to do it again. */
+		    mip->mi_cend = mip->mi_word + wlen;
+		    mip->mi_capflags = captype(mip->mi_word,
+							mip->mi_cend);
+		}
+
+		valid = (mip->mi_capflags == WF_ALLCAP
+			|| ((flags & WF_ALLCAP) == 0
+			    && ((flags & WF_ONECAP) == 0
+				|| mip->mi_capflags == WF_ONECAP)));
+	    }
 
-    if (flags & BWF_ONECAP)
-	return capflags == BWF_ONECAP;
+	    if (valid && res != SP_OK)
+	    {
+		if (flags & WF_REGION)
+		{
+		    /* Check region. */
+		    if ((mip->mi_lp->lp_region & (flags >> 8)) != 0)
+			res = SP_OK;
+		    else
+			res = SP_LOCAL;
+		}
+		else if (flags & WF_RARE)
+		    res = SP_RARE;
+		else
+		    res = SP_OK;
+	    }
 
-    return capflags != BWF_KEEPCAP;	/* no case check, only KEEPCAP is bad */
+	    if (res == SP_OK)
+		break;
+	    ++arridx;
+	}
+
+	if (valid)
+	{
+	    /* Valid word!  Always use the longest match. */
+	    if (mip->mi_end < mip->mi_word + wlen)
+		mip->mi_end = mip->mi_word + wlen;
+	    if (mip->mi_result != SP_OK)
+		mip->mi_result = res;
+	    break;
+	}
+    }
 }
 
+
 /*
  * Move to next spell error.
  * Return OK if found, FAIL otherwise.
@@ -1181,8 +565,6 @@ spell_move_to(dir, allwords)
     pos_T	found_pos;
     char_u	*line;
     char_u	*p;
-    int		wc;
-    int		nwc;
     int		attr = 0;
     int		len;
     int		has_syntax = syntax_present(curbuf);
@@ -1209,77 +591,69 @@ spell_move_to(dir, allwords)
     {
 	line = ml_get(lnum);
 	p = line;
-	wc = FALSE;
 
 	while (*p != NUL)
 	{
-	    nwc = spell_iswordc(p);
-	    if (!wc && nwc)
-	    {
-		/* When searching backward don't search after the cursor. */
-		if (dir == BACKWARD
-			&& lnum == curwin->w_cursor.lnum
-			&& (colnr_T)(p - line) >= curwin->w_cursor.col)
-		    break;
+	    /* When searching backward don't search after the cursor. */
+	    if (dir == BACKWARD
+		    && lnum == curwin->w_cursor.lnum
+		    && (colnr_T)(p - line) >= curwin->w_cursor.col)
+		break;
 
-		/* start of word */
-		len = spell_check(curwin, line, p, &attr);
+	    /* start of word */
+	    len = spell_check(curwin, p, &attr);
 
-		if (attr != 0)
+	    if (attr != 0)
+	    {
+		/* We found a bad word.  Check the attribute. */
+		/* TODO: check for syntax @Spell cluster. */
+		if (allwords || attr == highlight_attr[HLF_SPB])
 		{
-		    /* We found a bad word.  Check the attribute. */
-		    /* TODO: check for syntax @Spell cluster. */
-		    if (allwords || attr == highlight_attr[HLF_SPB])
+		    /* When searching forward only accept a bad word after
+		     * the cursor. */
+		    if (dir == BACKWARD
+			    || lnum > curwin->w_cursor.lnum
+			    || (lnum == curwin->w_cursor.lnum
+				&& (colnr_T)(p - line)
+						  > curwin->w_cursor.col))
 		    {
-			/* When searching forward only accept a bad word after
-			 * the cursor. */
-			if (dir == BACKWARD
-				|| lnum > curwin->w_cursor.lnum
-				|| (lnum == curwin->w_cursor.lnum
-				    && (colnr_T)(p - line)
-						      > curwin->w_cursor.col))
+			if (has_syntax)
 			{
-			    if (has_syntax)
-			    {
-				col = p - line;
-				(void)syn_get_id(lnum, (colnr_T)col,
-							   FALSE, &can_spell);
+			    col = p - line;
+			    (void)syn_get_id(lnum, (colnr_T)col,
+						       FALSE, &can_spell);
 
-				/* have to get the line again, a multi-line
-				 * regexp may make it invalid */
-				line = ml_get(lnum);
-				p = line + col;
-			    }
-			    else
-				can_spell = TRUE;
+			    /* have to get the line again, a multi-line
+			     * regexp may make it invalid */
+			    line = ml_get(lnum);
+			    p = line + col;
+			}
+			else
+			    can_spell = TRUE;
 
-			    if (can_spell)
-			    {
-				found_pos.lnum = lnum;
-				found_pos.col = p - line;
+			if (can_spell)
+			{
+			    found_pos.lnum = lnum;
+			    found_pos.col = p - line;
 #ifdef FEAT_VIRTUALEDIT
-				found_pos.coladd = 0;
+			    found_pos.coladd = 0;
 #endif
-				if (dir == FORWARD)
-				{
-				    /* No need to search further. */
-				    curwin->w_cursor = found_pos;
-				    return OK;
-				}
+			    if (dir == FORWARD)
+			    {
+				/* No need to search further. */
+				curwin->w_cursor = found_pos;
+				return OK;
 			    }
 			}
 		    }
-		    attr = 0;
 		}
-		p += len;
-		if (*p == NUL)
-		    break;
-		nwc = FALSE;
+		attr = 0;
 	    }
 
-	    /* advance to next character */
-	    mb_ptr_adv(p);
-	    wc = nwc;
+	    /* advance to character after the word */
+	    p += len;
+	    if (*p == NUL)
+		break;
 	}
 
 	/* Advance to next line. */
@@ -1372,21 +746,11 @@ slang_alloc(lang)
 {
     slang_T *lp;
 
-    lp = (slang_T *)alloc(sizeof(slang_T));
+    lp = (slang_T *)alloc_clear(sizeof(slang_T));
     if (lp != NULL)
     {
 	lp->sl_name = vim_strsave(lang);
-	hash_init(&lp->sl_words);
-	ga_init2(&lp->sl_preftab, sizeof(hashtab_T), 4);
-	hash_init(&lp->sl_prewords);
-	ga_init2(&lp->sl_sufftab, sizeof(hashtab_T), 4);
-	lp->sl_prefzero = NULL;
-	lp->sl_suffzero = NULL;
-	lp->sl_try = NULL;
 	ga_init2(&lp->sl_rep, sizeof(repentry_T), 4);
-	lp->sl_regions[0] = NUL;
-	lp->sl_block = NULL;
-	lp->sl_error = FALSE;
     }
     return lp;
 }
@@ -1398,44 +762,13 @@ slang_alloc(lang)
 slang_free(lp)
     slang_T	*lp;
 {
-    sblock_T	*sp;
-    int		i;
-    fword_T	*fw;
-    int		todo;
-    hashitem_T	*hi;
-
     vim_free(lp->sl_name);
-
-    /* The words themselves are in memory blocks referenced by "sl_block".
-     * Only the hashtables for additions need to be cleared. */
-    todo = lp->sl_words.ht_used;
-    for (hi = lp->sl_words.ht_array; todo > 0; ++hi)
-    {
-	if (!HASHITEM_EMPTY(hi))
-	{
-	    --todo;
-	    fw = HI2FWORD(hi);
-	    if (fw->fw_flags & BWF_ADDHASH)
-		hash_clear((hashtab_T *)fw->fw_adds);
-	}
-    }
-    hash_clear(&lp->sl_words);
-
-    for (i = 0; i < lp->sl_preftab.ga_len; ++i)
-	hash_clear(((hashtab_T *)lp->sl_preftab.ga_data) + i);
-    ga_clear(&lp->sl_preftab);
-    hash_clear(&lp->sl_prewords);
-    for (i = 0; i < lp->sl_sufftab.ga_len; ++i)
-	hash_clear(((hashtab_T *)lp->sl_sufftab.ga_data) + i);
-    ga_clear(&lp->sl_sufftab);
+    vim_free(lp->sl_fbyts);
+    vim_free(lp->sl_kbyts);
+    vim_free(lp->sl_fidxs);
+    vim_free(lp->sl_kidxs);
     ga_clear(&lp->sl_rep);
     vim_free(lp->sl_try);
-    while (lp->sl_block != NULL)
-    {
-	sp = lp->sl_block;
-	lp->sl_block = sp->sb_next;
-	vim_free(sp);
-    }
     vim_free(lp);
 }
 
@@ -1451,41 +784,13 @@ spell_load_file(fname, cookie)
     slang_T	*lp = cookie;
     FILE	*fd;
     char_u	buf[MAXWLEN + 1];
-    char_u	cbuf[MAXWLEN + 1];
-    char_u	fbuf[MAXWLEN + 1];
-    char_u	affixbuf[256 * 2 * 2]; /* max 2 * 256 affix nrs of 2 bytes */
     char_u	*p;
-    int		itm;
     int		i;
-    int		affcount;
-    int		affnr;
-    int		affflags;
-    int		affitemcnt;
-    int		prefixcnt, suffixcnt;
-    int		bl_used = SBLOCKSIZE;
-    int		widx;
-    int		prefm = 0;  /* 1 if <= 256 prefixes, sizeof(short_u) otherw. */
-    int		suffm = 0;  /* 1 if <= 256 suffixes, sizeof(short_u) otherw. */
-    int		wlen;
-    int		flags;
-    affitem_T	*ai, *ai2, **aip;
+    int		len;
     int		round;
     char_u	*save_sourcing_name = sourcing_name;
     linenr_T	save_sourcing_lnum = sourcing_lnum;
     int		cnt, ccnt;
-    int		choplen;
-    int		addlen;
-    int		leadlen;
-    int		wordcount;
-    fword_T	*fw, *fw2;
-    garray_T	*gap;
-    hashtab_T	*ht;
-    hashitem_T	*hi;
-    hash_T	hash;
-    int		adds;
-    addword_T	*aw, *naw;
-    int		flen;
-    int		xlen;
     char_u	*fol;
 
     fd = fopen((char *)fname, "r");
@@ -1532,7 +837,7 @@ formerr:
     cnt = getc(fd);					/* <charflagslen> */
     if (cnt > 0)
     {
-	p = (char_u *)getroom(lp, &bl_used, cnt);
+	p = alloc((unsigned)cnt);
 	if (p == NULL)
 	    goto endFAIL;
 	for (i = 0; i < cnt; ++i)
@@ -1540,16 +845,25 @@ formerr:
 
 	ccnt = (getc(fd) << 8) + getc(fd);		/* <fcharslen> */
 	if (ccnt <= 0)
+	{
+	    vim_free(p);
 	    goto formerr;
-	fol = (char_u *)getroom(lp, &bl_used, ccnt + 1);
+	}
+	fol = alloc((unsigned)ccnt + 1);
 	if (fol == NULL)
+	{
+	    vim_free(p);
 	    goto endFAIL;
+	}
 	for (i = 0; i < ccnt; ++i)
 	    fol[i] = getc(fd);				/* <fchars> */
 	fol[i] = NUL;
 
 	/* Set the word-char flags and fill spell_isupper() table. */
-	if (set_spell_charflags(p, cnt, fol) == FAIL)
+	i = set_spell_charflags(p, cnt, fol);
+	vim_free(p);
+	vim_free(fol);
+	if (i == FAIL)
 	    goto formerr;
     }
     else
@@ -1560,196 +874,6 @@ formerr:
 	    goto formerr;
     }
 
-    /* round 1: <PREFIXLIST>: <affcount> <affix> ...
-     * round 2: <SUFFIXLIST>: <affcount> <affix> ...  */
-    for (round = 1; round <= 2; ++round)
-    {
-	affcount = (getc(fd) << 8) + getc(fd);		/* <affcount> */
-	if (affcount < 0)
-	    goto truncerr;
-	if (round == 1)
-	{
-	    gap = &lp->sl_preftab;
-	    aip = &lp->sl_prefzero;
-	    lp->sl_prefcnt = affcount;
-	    prefm = affcount > 256 ? 2 : 1;
-	}
-	else
-	{
-	    gap = &lp->sl_sufftab;
-	    aip = &lp->sl_suffzero;
-	    lp->sl_suffcnt = affcount;
-	    suffm = affcount > 256 ? 2 : 1;
-	}
-
-	/*
-	 * For each affix NR there can be several affixes.
-	 */
-	for (affnr = 0; affnr < affcount; ++affnr)
-	{
-	    /* <affix>: <affitemcnt> <affitem> ... */
-	    affitemcnt = (getc(fd) << 8) + getc(fd);	/* <affitemcnt> */
-	    if (affitemcnt < 0)
-		goto truncerr;
-	    for (itm = 0; itm < affitemcnt; ++itm)
-	    {
-		/* <affitem>: <affflags> <affchoplen> <affchop>
-		 *				    <affaddlen> <affadd> */
-		affflags = getc(fd);			/* <affflags> */
-		choplen = getc(fd);			/* <affchoplen> */
-		if (choplen < 0)
-		    goto truncerr;
-		if (choplen >= MAXWLEN)
-		    goto formerr;
-		for (i = 0; i < choplen; ++i)		/* <affchop> */
-		    buf[i] = getc(fd);
-		buf[i] = NUL;
-		addlen = getc(fd);			/* <affaddlen> */
-		if (addlen < 0)
-		    goto truncerr;
-		if (affflags & AFF_PREWORD)
-		    xlen = addlen + 2;	/* space for lead and trail string */
-		else
-		    xlen = 0;
-
-		/* Get room to store the affitem_T, chop and add strings. */
-		ai = (affitem_T *)getroom(lp, &bl_used,
-			     sizeof(affitem_T) + addlen + choplen + 1 + xlen);
-		if (ai == NULL)
-		    goto endFAIL;
-
-		ai->ai_nr = affnr;
-		ai->ai_flags = affflags;
-		ai->ai_choplen = choplen;
-		ai->ai_addlen = addlen;
-
-		/* Chop string is at ai_add[ai_addlen + 1]. */
-		p = ai->ai_add + addlen + 1;
-		STRCPY(p, buf);
-
-		p = ai->ai_add;
-		for (i = 0; i < addlen; ++i)		/* <affadd> */
-		    p[i] = getc(fd);
-		p[i] = NUL;
-
-		if (affflags & AFF_PREWORD)
-		{
-		    int	    l, leadoff, trailoff;
-
-		    /*
-		     * A preword is a prefix that's recognized as a word: it
-		     * contains a word characters folled by a non-word
-		     * character.
-		     * <affadd> is the whole prefix.  Separate lead and trail
-		     * string, put the word itself at ai_add, so that it can
-		     * be used as hashtable key.
-		     */
-		    /* lead string: up to first word char */
-		    while (*p != NUL && !spell_iswordc(p))
-			mb_ptr_adv(p);
-		    ai->ai_leadlen = p - ai->ai_add;
-		    leadoff = addlen + choplen + 2;
-		    mch_memmove(ai->ai_add + leadoff, ai->ai_add,
-							      ai->ai_leadlen);
-		    ai->ai_add[leadoff + ai->ai_leadlen] = NUL;
-
-		    /* trail string: after last word char */
-		    while (*p != NUL && spell_iswordc(p))
-			mb_ptr_adv(p);
-		    trailoff = leadoff + ai->ai_leadlen + 1;
-		    STRCPY(ai->ai_add + trailoff, p);
-		    ai->ai_taillen = STRLEN(p);
-
-		    /* word itself */
-		    l = (p - ai->ai_add) - ai->ai_leadlen;
-		    mch_memmove(ai->ai_add, ai->ai_add + ai->ai_leadlen, l);
-		    ai->ai_add[l] = NUL;
-		    hash = hash_hash(ai->ai_add);
-		    hi = hash_lookup(&lp->sl_prewords, ai->ai_add, hash);
-		    if (HASHITEM_EMPTY(hi))
-		    {
-			/* First preword with this word, add to hashtable. */
-			hash_add_item(&lp->sl_prewords, hi, ai->ai_add, hash);
-			ai->ai_next = NULL;
-		    }
-		    else
-		    {
-			/* There already is a preword with this word, link in
-			 * the list.  */
-			ai2 = HI2AI(hi);
-			ai->ai_next = ai2->ai_next;
-			ai2->ai_next = ai;
-		    }
-		}
-		else
-		{
-		    /*
-		     * Add the affix to a hashtable.  Which one depends on the
-		     * length of the added string in characters.
-		     */
-#ifdef FEAT_MBYTE
-		    /* Change "addlen" from length in bytes to length in
-		     * chars. */
-		    if (has_mbyte)
-			addlen = mb_charlen(p);
-#endif
-		    if (addlen == 0)
-		    {
-			/* Link in list of zero length affixes. */
-			ai->ai_next = *aip;
-			*aip = ai;
-		    }
-		    else
-		    {
-			if (gap->ga_len < addlen)
-			{
-			    /* Longer affix, need more hashtables. */
-			    if (ga_grow(gap, addlen - gap->ga_len) == FAIL)
-				goto endFAIL;
-
-			    /* Re-allocating ga_data means that an ht_array
-			     * pointing to ht_smallarray becomes invalid.  We
-			     * can recognize this: ht_mask is at its init
-			     * value. */
-			    for (i = 0; i < gap->ga_len; ++i)
-			    {
-				ht = ((hashtab_T *)gap->ga_data) + i;
-				if (ht->ht_mask == HT_INIT_SIZE - 1)
-				    ht->ht_array = ht->ht_smallarray;
-			    }
-
-			    /* Init the newly used hashtable(s). */
-			    while (gap->ga_len < addlen)
-			    {
-				hash_init(((hashtab_T *)gap->ga_data)
-							       + gap->ga_len);
-				++gap->ga_len;
-			    }
-			}
-			ht = ((hashtab_T *)gap->ga_data) + addlen - 1;
-			hash = hash_hash(p);
-			hi = hash_lookup(ht, p, hash);
-			if (HASHITEM_EMPTY(hi))
-			{
-			    /* First affix with this "ai_add", add to
-			     * hashtable. */
-			    hash_add_item(ht, hi, p, hash);
-			    ai->ai_next = NULL;
-			}
-			else
-			{
-			    /* There already is an affix with this "ai_add",
-			     * link in the list.  */
-			    ai2 = HI2AI(hi);
-			    ai->ai_next = ai2->ai_next;
-			    ai2->ai_next = ai;
-			}
-		    }
-		}
-	    }
-	}
-    }
-
     /* <SUGGEST> : <suggestlen> <more> ... */
     /* TODO, just skip this for now */
     i = (getc(fd) << 24) + (getc(fd) << 16) + (getc(fd) << 8) + getc(fd);
@@ -1757,305 +881,48 @@ formerr:
 	if (getc(fd) == EOF)				/* <suggestlen> */
 	    goto truncerr;
 
-    /* <WORDLIST>: <wordcount> <worditem> ... */	/* <wordcount> */
-    wordcount = (getc(fd) << 24) + (getc(fd) << 16) + (getc(fd) << 8)
-								   + getc(fd);
-    if (wordcount < 0)
-	goto truncerr;
-
-    /* Init hashtable for this number of words, so that it doesn't need to
-     * reallocate the table halfway. */
-    hash_lock_size(&lp->sl_words, wordcount);
-
-    for (widx = 0; ; ++widx)
+    /* round 1: <LWORDTREE>
+     * round 2: <KWORDTREE> */
+    for (round = 1; round <= 2; ++round)
     {
-	/* <worditem>: <nr> <string> <flags> [<flags2>]
-	 *			  [<caselen> <caseword>]
-	 *			  [<affixcnt> <affixNR> ...]    (prefixes)
-	 *			  [<affixcnt> <affixNR> ...]	(suffixes)
-	 *			  [<region>]
-	 *			  [<addcnt> <add> ...]
-	 */
-	/* Use <nr> bytes from the previous word. */
-	wlen = getc(fd);				/* <nr> */
-	if (wlen < 0)
+	/* The tree size was computed when writing the file, so that we can
+	 * allocate it as one long block. <nodecount> */
+	len = (getc(fd) << 24) + (getc(fd) << 16) + (getc(fd) << 8) + getc(fd);
+	if (len < 0)
+	    goto truncerr;
+	if (len > 0)
 	{
-	    if (widx >= wordcount)	/* normal way to end the file */
-		break;
-	    goto truncerr;
-	}
+	    /* Allocate the byte array. */
+	    p = lalloc((long_u)len, TRUE);
+	    if (p == NULL)
+		goto endFAIL;
+	    if (round == 1)
+		lp->sl_fbyts = p;
+	    else
+		lp->sl_kbyts = p;
 
-	/* Read further word bytes until one below 0x20, that one must be the
-	 * flags.  Keep this fast! */
-	for (;;)
-	{
-	    if ((buf[wlen] = getc(fd)) < 0x20)		/* <string> */
-		break;
-	    if (++wlen == MAXWLEN)
+	    /* Allocate the index array. */
+	    p = lalloc_clear((long_u)(len * sizeof(int)), TRUE);
+	    if (p == NULL)
+		goto endFAIL;
+	    if (round == 1)
+		lp->sl_fidxs = (int *)p;
+	    else
+		lp->sl_kidxs = (int *)p;
+
+
+	    /* Read the tree and store it in the array. */
+	    i = read_tree(fd,
+			round == 1 ? lp->sl_fbyts : lp->sl_kbyts,
+			round == 1 ? lp->sl_fidxs : lp->sl_kidxs,
+			len, 0);
+	    if (i == -1)
+		goto truncerr;
+	    if (i < 0)
 		goto formerr;
 	}
-	flags = buf[wlen];				/* <flags> */
-	buf[wlen] = NUL;
-
-	/* Get more flags if they're there. */
-	if (flags & BWF_SECOND)
-	    flags += getc(fd) << 8;			/* <flags2> */
-
-	if (flags & BWF_KEEPCAP)
-	{
-	    /* Read <caselen> and <caseword> first, its length may differ from
-	     * the case-folded word.  Note: this should only happen after the
-	     * basic word without KEEPCAP! */
-	    wlen = getc(fd);
-	    if (wlen < 0)
-		goto truncerr;
-	    if (wlen >= MAXWLEN)
-		goto formerr;
-	    for (i = 0; i < wlen; ++i)
-		cbuf[i] = getc(fd);
-	    cbuf[i] = NUL;
-	}
-
-	/* Optional prefixes */
-	p = affixbuf;
-	if (flags & BWF_PREFIX)
-	{
-	    cnt = getc(fd);				/* <affixcnt> */
-	    if (cnt < 0)
-		goto truncerr;
-	    prefixcnt = cnt;
-	    for (i = cnt * prefm; --i >= 0; )		/* <affixNR> */
-		*p++ = getc(fd);
-	}
-	else
-	    prefixcnt = 0;
-
-	/* Optional suffixes */
-	if (flags & BWF_SUFFIX)
-	{
-	    cnt = getc(fd);				/* <affixcnt> */
-	    if (cnt < 0)
-		goto truncerr;
-	    suffixcnt = cnt;
-	    for (i = cnt * suffm; --i >= 0; )		/* <affixNR> */
-		*p++ = getc(fd);
-	}
-	else
-	    suffixcnt = 0;
-
-	/* Find room to store the word in an fword_T. */
-	fw = (fword_T *)getroom(lp, &bl_used, (int)sizeof(fword_T) + wlen
-							    + (p - affixbuf));
-	if (fw == NULL)
-	    goto endFAIL;
-	mch_memmove(fw->fw_word, (flags & BWF_KEEPCAP) ? cbuf : buf, wlen + 1);
-
-	/* Put the affix NRs just after the word, if any. */
-	if (p > affixbuf)
-	    mch_memmove(fw->fw_word + wlen + 1, affixbuf, p - affixbuf);
-
-	fw->fw_flags = flags;
-	fw->fw_prefixcnt = prefixcnt;
-	fw->fw_suffixcnt = suffixcnt;
-
-	/* We store the word in the hashtable case-folded.  For a KEEPCAP word
-	 * the entry must already exist, because fw_word can't be used as the
-	 * key, it differs from "buf"! */
-	hash = hash_hash(buf);
-	hi = hash_lookup(&lp->sl_words, buf, hash);
-	if (HASHITEM_EMPTY(hi))
-	{
-	    if (hash_add_item(&lp->sl_words, hi, fw->fw_word, hash) == FAIL)
-		goto endFAIL;
-	    fw->fw_next = NULL;
-	}
-	else
-	{
-	    /* Already have this basic word in the hashtable, this one will
-	     * have different case flags and/or affixes. */
-	    fw2 = HI2FWORD(hi);
-	    fw->fw_next = fw2->fw_next;
-	    fw2->fw_next = fw;
-	    --widx;		/* don't count this one as a basic word */
-	}
-
-	if (flags & BWF_REGION)
-	    fw->fw_region = getc(fd);			/* <region> */
-	else
-	    fw->fw_region = REGION_ALL;
-
-	fw->fw_adds = NULL;
-	if (flags & BWF_ADDS)
-	{
-	    if (flags & BWF_ADDS_M)
-		adds = (getc(fd) << 8) + getc(fd);	/* <addcnt> */
-	    else
-		adds = getc(fd);			/* <addcnt> */
-	    if (adds < 0)
-		goto formerr;
-
-	    if (adds > 30)
-	    {
-		/* Use a hashtable to lookup the part until the next word end.
-		 * Thus for "de-bur-die" "de" is the basic word, "-bur" is key
-		 * in the addition hashtable, "-bur<NUL>die" the whole
-		 * addition and "aw_saveb" is '-'.
-		 * This uses more memory and involves some overhead, thus only
-		 * do it when there are many additions (e.g., for French). */
-		ht = (hashtab_T *)getroom(lp, &bl_used, sizeof(hashtab_T));
-		if (ht == NULL)
-		    goto endFAIL;
-		hash_init(ht);
-		fw->fw_adds = (addword_T *)ht;
-		fw->fw_flags |= BWF_ADDHASH;
-
-		/* Preset the size of the hashtable. It's never unlocked. */
-		hash_lock_size(ht, adds + 1);
-	    }
-	    else
-		ht = NULL;
+    }
 
-	    /*
-	     * Note: uses cbuf[] to copy bytes from previous addition.
-	     */
-	    while (--adds >= 0)
-	    {
-		/* <add>: <addflags> <addlen> [<leadlen>] [<copylen>]
-		 *				[<addstring>] [<region>] */
-		flags = getc(fd);			/* <addflags> */
-		addlen = getc(fd);			/* <addlen> */
-		if (addlen < 0)
-		    goto truncerr;
-		if (addlen >= MAXWLEN)
-		    goto formerr;
-
-		if (flags & ADD_LEADLEN)
-		{
-		    leadlen = getc(fd);			/* <leadlen> */
-		    if (leadlen > addlen)
-			goto formerr;
-		}
-		else
-		    leadlen = 0;
-
-		if (addlen > 0)
-		{
-		    if (flags & ADD_COPYLEN)
-			i = getc(fd);			/* <copylen> */
-		    else
-			i = 0;
-		    for ( ; i < addlen; ++i)		/* <addstring> */
-			cbuf[i] = getc(fd);
-		    cbuf[i] = NUL;
-		}
-
-		if (flags & ADD_KEEPCAP)
-		{
-		    /* <addstring> is in original case, need to get
-		     * case-folded word too. */
-		    (void)spell_casefold(cbuf, addlen, fbuf, MAXWLEN);
-		    flen = addlen - leadlen + 1;
-		    addlen = STRLEN(fbuf);
-		}
-		else
-		    flen = 0;
-
-		aw = (addword_T *)getroom(lp, &bl_used,
-					   sizeof(addword_T) + addlen + flen);
-		if (aw == NULL)
-		    goto endFAIL;
-
-		if (flags & ADD_KEEPCAP)
-		{
-		    /* Put the addition in original case after the case-folded
-		     * string. */
-		    STRCPY(aw->aw_word, fbuf);
-		    STRCPY(aw->aw_word + addlen + 1, cbuf + leadlen);
-		}
-		else
-		    STRCPY(aw->aw_word, cbuf);
-
-		aw->aw_flags = flags;
-		aw->aw_wordlen = addlen;
-		aw->aw_leadlen = leadlen;
-
-		if (flags & ADD_REGION)
-		    aw->aw_region = getc(fd);		/* <region> */
-		else
-		    aw->aw_region = REGION_ALL;
-
-		if (ht == NULL)
-		{
-		    /* Using simple linked list, put it in front. */
-		    aw->aw_next = fw->fw_adds;
-		    fw->fw_adds = aw;
-		    aw->aw_saveb = NUL;
-		}
-		else
-		{
-		    /* Put addition in hashtable.  For key we use the part up
-		     * to the next end-of-word. */
-		    if (leadlen == 0)
-		    {
-			p = aw->aw_word;
-			while (*p != NUL && !spell_iswordc(p))
-			    mb_ptr_adv(p);
-		    }
-
-		    if (leadlen != 0 || *p == NUL)
-		    {
-			/* Only non-word characters in addition, add it to the
-			 * list with the special key NOWC_KEY.  Also do this
-			 * when there is a leadstring, it would get too
-			 * complicated. */
-			hash = hash_hash(NOWC_KEY);
-			hi = hash_lookup(ht, NOWC_KEY, hash);
-			if (HASHITEM_EMPTY(hi))
-			{
-			    /* we use a dummy item as the list header */
-			    naw = (addword_T *)getroom(lp, &bl_used,
-					sizeof(addword_T) + STRLEN(NOWC_KEY));
-			    if (naw == NULL)
-				goto endFAIL;
-			    STRCPY(naw->aw_word, NOWC_KEY);
-			    hash_add_item(ht, hi, naw->aw_word, hash);
-			    naw->aw_next = aw;
-			    aw->aw_next = NULL;
-			}
-			else
-			{
-			    naw = HI2ADDWORD(hi);
-			    aw->aw_next = naw->aw_next;
-			    naw->aw_next = aw;
-			}
-			aw->aw_saveb = NUL;
-		    }
-		    else
-		    {
-			/* Truncate at next non-word character, store that
-			 * byte in "aw_saveb". */
-			while (*p != NUL && spell_iswordc(p))
-			    mb_ptr_adv(p);
-			aw->aw_saveb = *p;
-			*p = NUL;
-			hash = hash_hash(aw->aw_word);
-			hi = hash_lookup(ht, aw->aw_word, hash);
-			if (HASHITEM_EMPTY(hi))
-			{
-			    hash_add_item(ht, hi, aw->aw_word, hash);
-			    aw->aw_next = NULL;
-			}
-			else
-			{
-			    naw = HI2ADDWORD(hi);
-			    aw->aw_next = naw->aw_next;
-			    naw->aw_next = aw;
-			}
-		    }
-		}
-	    }
-	}
-    }
     goto endOK;
 
 endFAIL:
@@ -2064,40 +931,97 @@ endFAIL:
 endOK:
     if (fd != NULL)
 	fclose(fd);
-    hash_unlock(&lp->sl_words);
     sourcing_name = save_sourcing_name;
     sourcing_lnum = save_sourcing_lnum;
 }
 
 /*
- * Get part of an sblock_T, at least "len" bytes long.
- * Returns NULL when out of memory.
+ * Read one row of siblings from the spell file and store it in the byte array
+ * "byts" and index array "idxs".  Recursively read the children.
+ *
+ * NOTE: The code here must match put_tree().
+ *
+ * Returns the index follosing the siblings.
+ * Returns -1 if the file is shorter than expected.
+ * Returns -2 if there is a format error.
  */
-    static void *
-getroom(lp, bl_used, len)
-    slang_T	*lp;	    /* lp->sl_block is current block or NULL */
-    int		*bl_used;    /* used up from current block */
-    int		len;	    /* length needed */
+    static int
+read_tree(fd, byts, idxs, maxidx, startidx)
+    FILE	*fd;
+    char_u	*byts;
+    int		*idxs;
+    int		maxidx;		    /* size of arrays */
+    int		startidx;	    /* current index in "byts" and "idxs" */
 {
-    char_u	*p;
-    sblock_T	*bl = lp->sl_block;
+    int		len;
+    int		i;
+    int		n;
+    int		idx = startidx;
+    int		c;
+#define SHARED_MASK	0x8000000
 
-    if (bl == NULL || *bl_used + len > SBLOCKSIZE)
+    len = getc(fd);					/* <siblingcount> */
+    if (len <= 0)
+	return -1;
+
+    if (startidx + len >= maxidx)
+	return -2;
+    byts[idx++] = len;
+
+    /* Read the byte values, flag/region bytes and shared indexes. */
+    for (i = 1; i <= len; ++i)
     {
-	/* Allocate a block of memory. This is not freed until spell_reload()
-	 * is called. */
-	bl = (sblock_T *)alloc((unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
-	if (bl == NULL)
-	    return NULL;
-	bl->sb_next = lp->sl_block;
-	lp->sl_block = bl;
-	*bl_used = 0;
+	c = getc(fd);					/* <byte> */
+	if (c < 0)
+	    return -1;
+	if (c <= BY_SPECIAL)
+	{
+	    if (c == BY_NOFLAGS)
+	    {
+		/* No flags, all regions. */
+		idxs[idx] = 0;
+		c = 0;
+	    }
+	    else if (c == BY_FLAGS)
+	    {
+		/* Read flags and option region. */
+		c = getc(fd);				/* <flags> */
+		if (c & WF_REGION)
+		    c = (getc(fd) << 8) + c;		/* <region> */
+		idxs[idx] = c;
+		c = 0;
+	    }
+	    else /* c == BY_INDEX */
+	    {
+							/* <nodeidx> */
+		n = (getc(fd) << 16) + (getc(fd) << 8) + getc(fd);
+		if (n < 0 || n >= maxidx)
+		    return -2;
+		idxs[idx] = n + SHARED_MASK;
+		c = getc(fd);				/* <xbyte> */
+	    }
+	}
+	byts[idx++] = c;
     }
 
-    p = bl->sb_data + *bl_used;
-    *bl_used += len;
+    /* Recursively read the children for non-shared siblings.
+     * Skip the end-of-word ones (zero byte value) and the shared ones (and
+     * remove SHARED_MASK) */
+    for (i = 1; i <= len; ++i)
+	if (byts[startidx + i] != 0)
+	{
+	    if (idxs[startidx + i] & SHARED_MASK)
+		idxs[startidx + i] &= ~SHARED_MASK;
+	    else
+	    {
+		idxs[startidx + i] = idx;
+		idx = read_tree(fd, byts, idxs, maxidx, idx);
+		if (idx < 0)
+		    break;
+	    }
+	}
 
-    return p;
+    return idx;
 }
 
 /*
@@ -2226,9 +1150,9 @@ find_region(rp, region)
 /*
  * Return type of word:
  * w word	0
- * Word		BWF_ONECAP
- * W WORD	BWF_ALLCAP
- * WoRd	wOrd	BWF_KEEPCAP
+ * Word		WF_ONECAP
+ * W WORD	WF_ALLCAP
+ * WoRd	wOrd	WF_KEEPCAP
  */
     static int
 captype(word, end)
@@ -2268,19 +1192,19 @@ captype(word, end)
 	    {
 		/* UUl -> KEEPCAP */
 		if (past_second && allcap)
-		    return BWF_KEEPCAP;
+		    return WF_KEEPCAP;
 		allcap = FALSE;
 	    }
 	    else if (!allcap)
 		/* UlU -> KEEPCAP */
-		return BWF_KEEPCAP;
+		return WF_KEEPCAP;
 	    past_second = TRUE;
 	}
 
     if (allcap)
-	return BWF_ALLCAP;
+	return WF_ALLCAP;
     if (firstcap)
-	return BWF_ONECAP;
+	return WF_ONECAP;
     return 0;
 }
 
@@ -2316,20 +1240,6 @@ spell_reload()
 }
 # endif
 
-/*
- * Recognizing words uses a two-step mechanism:
- * 1. Locate a basic word, made out of word characters only and separated by
- *    non-word characters.
- * 2. When a basic word is found, check if (possibly required) additions
- *    before and after the word are present.
- *
- * Both mechanisms use affixes (prefixes and suffixes) to reduce the number of
- * words.  When no matching word was found in the hashtable the start of the
- * word is checked for matching prefixes and the end of the word for matching
- * suffixes.  All matching affixes are removed and then the resulting word is
- * searched for.  If found it is checked if it supports the used affix.
- */
-
 
 #if defined(FEAT_MBYTE) || defined(PROTO)
 /*
@@ -2337,7 +1247,7 @@ spell_reload()
  * Only possible with the multi-byte feature.
  */
 
-#define MAXLINELEN  300		/* Maximum length in bytes of a line in a .aff
+#define MAXLINELEN  500		/* Maximum length in bytes of a line in a .aff
 				   and .dic file. */
 /*
  * Main structure to store the contents of a ".aff" file.
@@ -2352,132 +1262,100 @@ typedef struct afffile_S
 } afffile_T;
 
 typedef struct affentry_S affentry_T;
-
-/* Affix header from ".aff" file.  Used for af_pref and af_suff. */
-typedef struct affheader_S
-{
-    char_u	ah_key[2];	/* key for hashtable == name of affix entry */
-    int		ah_combine;
-    affentry_T	*ah_first;	/* first affix entry */
-    short_u	ah_affnr;	/* used in get_new_aff() */
-} affheader_T;
-
-#define HI2AH(hi)   ((affheader_T *)(hi)->hi_key)
-
 /* Affix entry from ".aff" file.  Used for prefixes and suffixes. */
 struct affentry_S
 {
     affentry_T	*ae_next;	/* next affix with same name/number */
     char_u	*ae_chop;	/* text to chop off basic word (can be NULL) */
     char_u	*ae_add;	/* text to add to basic word (can be NULL) */
-    char_u	*ae_add_nw;	/* For a suffix: first non-word char in
-				 * "ae_add"; for a prefix with only non-word
-				 * chars: equal to "ae_add", for a prefix with
-				 * word and non-word chars: first non-word
-				 * char after word char.  NULL otherwise. */
-    char_u	*ae_add_pw;	/* For a prefix with both word and non-word
-			         * chars: first word char.  NULL otherwise. */
-    char_u	ae_preword;	/* TRUE for a prefix with one word */
     char_u	*ae_cond;	/* condition (NULL for ".") */
     regprog_T	*ae_prog;	/* regexp program for ae_cond or NULL */
-    short_u	ae_affnr;	/* for old affix: new affix number */
+};
+
+/* Affix header from ".aff" file.  Used for af_pref and af_suff. */
+typedef struct affheader_S
+{
+    char_u	ah_key[2];	/* key for hashtable == name of affix entry */
+    int		ah_combine;	/* suffix may combine with prefix */
+    affentry_T	*ah_first;	/* first affix entry */
+} affheader_T;
+
+#define HI2AH(hi)   ((affheader_T *)(hi)->hi_key)
+
+/*
+ * Structure that is used to store the items in the word tree.  This avoids
+ * the need to keep track of each allocated thing, it's freed all at once
+ * after ":mkspell" is done.
+ */
+#define  SBLOCKSIZE 16000	/* size of sb_data */
+typedef struct sblock_S sblock_T;
+struct sblock_S
+{
+    sblock_T	*sb_next;	/* next block in list */
+    int		sb_used;	/* nr of bytes already in use */
+    char_u	sb_data[1];	/* data, actually longer */
 };
 
 /*
- * Structure to store a word from a ".dic" file.
+ * A node in the tree.
  */
-typedef struct dicword_S
+typedef struct wordnode_S wordnode_T;
+struct wordnode_S
 {
-    char_u	*dw_affnm;	/* original affix names */
-    char_u	dw_word[1];	/* actually longer: the word in 'encoding' */
-} dicword_T;
-
-static dicword_T dumdw;
-#define HI2DW(hi)	((dicword_T *)((hi)->hi_key - (dumdw.dw_word - (char_u *)&dumdw)))
-
-/*
- * Structure to store a basic word for the spell file.
- * This is used for ":mkspell", not for spell checking.
- */
-typedef struct basicword_S basicword_T;
-struct basicword_S
-{
-    basicword_T	*bw_next;	/* next word with same basic word */
-    basicword_T	*bw_cnext;	/* next word with same caps */
-    int		bw_flags;	/* BWF_ flags */
-    garray_T	bw_prefix;	/* table with prefix numbers */
-    garray_T	bw_suffix;	/* table with suffix numbers */
-    int		bw_region;	/* region bits */
-    char_u	*bw_caseword;	/* keep-case word or NULL */
-    char_u	*bw_leadstring;	/* must come before bw_word or NULL */
-    char_u	*bw_addstring;	/* must come after bw_word or NULL */
-    char_u	bw_word[1];	/* actually longer: word case folded */
+    char_u	wn_hashkey[6];	/* room for the hash key */
+    wordnode_T	*wn_next;	/* next node with same hash key */
+    wordnode_T	*wn_child;	/* child (next byte in word) */
+    wordnode_T  *wn_sibling;	/* next sibling (alternate byte in word,
+				   always sorted) */
+    wordnode_T	*wn_wnode;	/* parent node that will write this node */
+    int		wn_index;	/* index in written nodes (valid after first
+				   round) */
+    char_u	wn_byte;	/* Byte for this node. NUL for word end */
+    char_u	wn_flags;	/* when wn_byte is NUL: WF_ flags */
+    char_u	wn_region;	/* when wn_byte is NUL: region mask */
 };
 
-static basicword_T dumbw;
-#define KEY2BW(p)	((basicword_T *)((p) - (dumbw.bw_word - (char_u *)&dumbw)))
-#define HI2BW(hi)	KEY2BW((hi)->hi_key)
+#define HI2WN(hi)    (wordnode_T *)((hi)->hi_key)
 
-/* Store the affix number related with a certain string. */
-typedef struct affhash_S
-{
-    short_u	as_nr;		/* the affix nr */
-    char_u	as_word[1];	/* actually longer */
-} affhash_T;
-
-static affhash_T dumas;
-#define HI2AS(hi)	((affhash_T *)((hi)->hi_key - (dumas.as_word - (char_u *)&dumas)))
-
-/* info for writing the spell file */
-typedef struct winfo_S
+/*
+ * Info used while reading the spell files.
+ */
+typedef struct spellinfo_S
 {
-    FILE	*wif_fd;
-    basicword_T	*wif_prevbw;	/* last written basic word */
-    int		wif_regionmask;	/* regions supported */
-    int		wif_prefm;	/* 1 or 2 bytes used for prefix NR */
-    int		wif_suffm;	/* 1 or 2 bytes used for suffix NR */
-    long	wif_wcount;	/* written word count */
-    long	wif_acount;	/* written addition count */
-    long	wif_addmax;	/* max number of additions on one word */
-    char_u	*wif_addmaxw;	/* word with max additions */
-} winfo_T;
+    wordnode_T	*si_foldroot;	/* tree with case-folded words */
+    wordnode_T	*si_keeproot;	/* tree with keep-case words */
+    sblock_T	*si_blocks;	/* memory blocks used */
+    int		si_ascii;	/* handling only ASCII words */
+    int		si_region;	/* region mask */
+    vimconv_T	si_conv;	/* for conversion to 'encoding' */
+} spellinfo_T;
 
-
-static afffile_T *spell_read_aff __ARGS((char_u *fname, vimconv_T *conv, int ascii));
-static void spell_free_aff __ARGS((afffile_T *aff));
+static afffile_T *spell_read_aff __ARGS((char_u *fname, spellinfo_T *spin));
 static int has_non_ascii __ARGS((char_u *s));
-static int spell_read_dic __ARGS((hashtab_T *ht, char_u *fname, vimconv_T *conv, int ascii));
-static int get_new_aff __ARGS((hashtab_T *oldaff, garray_T *gap, int prefix));
-static void spell_free_dic __ARGS((hashtab_T *dic));
-static int same_affentries __ARGS((affheader_T *ah1, affheader_T *ah2));
-static void add_affhash __ARGS((hashtab_T *ht, char_u *key, int newnr));
-static void clear_affhash __ARGS((hashtab_T *ht));
-static void trans_affixes __ARGS((dicword_T *dw, basicword_T *bw, afffile_T *oldaff, hashtab_T *newwords));
-static int build_wordlist __ARGS((hashtab_T *newwords, hashtab_T *oldwords, afffile_T *oldaff, int regionmask));
-static basicword_T *get_basicword __ARGS((char_u *word, int asize));
-static void combine_regions __ARGS((hashtab_T *newwords));
-static int same_affixes __ARGS((basicword_T *bw, basicword_T *nbw));
-static int expand_affixes __ARGS((hashtab_T *newwords, garray_T *prefgap, garray_T *suffgap));
-static int expand_one_aff __ARGS((basicword_T *bw, garray_T *add_words, affentry_T *pae, affentry_T *sae));
-static int add_to_wordlist __ARGS((hashtab_T *newwords, basicword_T *bw));
-static void write_affix __ARGS((FILE *fd, affheader_T *ah));
-static void write_affixlist __ARGS((FILE *fd, garray_T *aff, int bytes));
-static void write_vim_spell __ARGS((char_u *fname, garray_T *prefga, garray_T *suffga, hashtab_T *newwords, int regcount, char_u *regchars, int ascii));
-static void write_bword __ARGS((winfo_T *wif, basicword_T *bw, int lowcap));
-static void free_wordtable __ARGS((hashtab_T *ht));
-static void free_basicword __ARGS((basicword_T *bw));
-static void free_affixentries __ARGS((affentry_T *first));
-static void free_affix_entry __ARGS((affentry_T *ap));
+static void spell_free_aff __ARGS((afffile_T *aff));
+static int spell_read_dic __ARGS((char_u *fname, spellinfo_T *spin, afffile_T *affile));
+static int store_aff_word __ARGS((char_u *word, spellinfo_T *spin, char_u *afflist, hashtab_T *ht, hashtab_T *xht, int comb));
+static int spell_read_wordfile __ARGS((char_u *fname, spellinfo_T *spin));
+static void *getroom __ARGS((sblock_T **blp, size_t len));
+static char_u *getroom_save __ARGS((sblock_T **blp, char_u *s));
+static void free_blocks __ARGS((sblock_T *bl));
+static wordnode_T *wordtree_alloc __ARGS((sblock_T **blp));
+static int store_word __ARGS((char_u *word, spellinfo_T *spin));
+static int tree_add_word __ARGS((char_u *word, wordnode_T *tree, int flags, int region, sblock_T **blp));
+static void wordtree_compress __ARGS((wordnode_T *root));
+static int node_compress __ARGS((wordnode_T *node, hashtab_T *ht, int *tot));
+static int node_equal __ARGS((wordnode_T *n1, wordnode_T *n2));
+static void write_vim_spell __ARGS((char_u *fname, spellinfo_T *spin, int regcount, char_u *regchars));
+static int put_tree __ARGS((FILE *fd, wordnode_T *node, int index, int regionmask));
 
 /*
  * Read an affix ".aff" file.
  * Returns an afffile_T, NULL for failure.
  */
     static afffile_T *
-spell_read_aff(fname, conv, ascii)
+spell_read_aff(fname, spin)
     char_u	*fname;
-    vimconv_T	*conv;		/* info for encoding conversion */
-    int		ascii;		/* Only accept ASCII characters */
+    spellinfo_T	*spin;
 {
     FILE	*fd;
     afffile_T	*aff;
@@ -2495,6 +1373,9 @@ spell_read_aff(fname, conv, ascii)
     char_u	*fol = NULL;
     char_u	*upp = NULL;
 
+    /*
+     * Open the file.
+     */
     fd = fopen((char *)fname, "r");
     if (fd == NULL)
     {
@@ -2505,7 +1386,10 @@ spell_read_aff(fname, conv, ascii)
     smsg((char_u *)_("Reading affix file %s..."), fname);
     out_flush();
 
-    aff = (afffile_T *)alloc_clear((unsigned)sizeof(afffile_T));
+    /*
+     * Allocate and init the afffile_T structure.
+     */
+    aff = (afffile_T *)getroom(&spin->si_blocks, sizeof(afffile_T));
     if (aff == NULL)
 	return NULL;
     hash_init(&aff->af_pref);
@@ -2526,9 +1410,9 @@ spell_read_aff(fname, conv, ascii)
 
 	/* Convert from "SET" to 'encoding' when needed. */
 	vim_free(pc);
-	if (conv->vc_type != CONV_NONE)
+	if (spin->si_conv.vc_type != CONV_NONE)
 	{
-	    pc = string_convert(conv, rline, NULL);
+	    pc = string_convert(&spin->si_conv, rline, NULL);
 	    if (pc == NULL)
 	    {
 		smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
@@ -2552,8 +1436,10 @@ spell_read_aff(fname, conv, ascii)
 		++p;
 	    if (*p == NUL)
 		break;
+	    if (itemcnt == 6)	    /* too many items */
+		break;
 	    items[itemcnt++] = p;
-	    while (*p > ' ')  /* skip until white space or CR/NL */
+	    while (*p > ' ')	    /* skip until white space or CR/NL */
 		++p;
 	    if (*p == NUL)
 		break;
@@ -2566,29 +1452,27 @@ spell_read_aff(fname, conv, ascii)
 	    if (STRCMP(items[0], "SET") == 0 && itemcnt == 2
 						       && aff->af_enc == NULL)
 	    {
-		if (aff->af_enc != NULL)
-		    smsg((char_u *)_("Duplicate SET line ignored in %s line %d: %s"),
-						       fname, lnum, line);
-		else
-		{
-		    /* Setup for conversion from "ENC" to 'encoding'. */
-		    aff->af_enc = enc_canonize(items[1]);
-		    if (aff->af_enc != NULL && !ascii
-			    && convert_setup(conv, aff->af_enc, p_enc) == FAIL)
-			smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
-						   fname, aff->af_enc, p_enc);
-		}
+		/* Setup for conversion from "ENC" to 'encoding'. */
+		aff->af_enc = enc_canonize(items[1]);
+		if (aff->af_enc != NULL && !spin->si_ascii
+			&& convert_setup(&spin->si_conv, aff->af_enc,
+							       p_enc) == FAIL)
+		    smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
+					       fname, aff->af_enc, p_enc);
 	    }
 	    else if (STRCMP(items[0], "TRY") == 0 && itemcnt == 2
 						       && aff->af_try == NULL)
-		aff->af_try = vim_strsave(items[1]);
+	    {
+		aff->af_try = getroom_save(&spin->si_blocks, items[1]);
+	    }
 	    else if ((STRCMP(items[0], "PFX") == 0
 					      || STRCMP(items[0], "SFX") == 0)
 		    && aff_todo == 0
 		    && itemcnt == 4)
 	    {
 		/* New affix letter. */
-		cur_aff = (affheader_T *)alloc((unsigned)sizeof(affheader_T));
+		cur_aff = (affheader_T *)getroom(&spin->si_blocks,
+							 sizeof(affheader_T));
 		if (cur_aff == NULL)
 		    break;
 		cur_aff->ah_key[0] = *items[1];
@@ -2598,27 +1482,22 @@ spell_read_aff(fname, conv, ascii)
 						       fname, lnum, items[1]);
 		if (*items[2] == 'Y')
 		    cur_aff->ah_combine = TRUE;
-		else if (*items[2] == 'N')
-		    cur_aff->ah_combine = FALSE;
-		else if (p_verbose > 0)
-		{
-		    verbose_enter();
+		else if (*items[2] != 'N')
 		    smsg((char_u *)_("Expected Y or N in %s line %d: %s"),
 						       fname, lnum, items[2]);
-		    verbose_leave();
-		}
-		cur_aff->ah_first = NULL;
 		if (*items[0] == 'P')
 		    tp = &aff->af_pref;
 		else
 		    tp = &aff->af_suff;
+		aff_todo = atoi((char *)items[3]);
 		if (!HASHITEM_EMPTY(hash_find(tp, cur_aff->ah_key)))
+		{
 		    smsg((char_u *)_("Duplicate affix in %s line %d: %s"),
 						       fname, lnum, items[1]);
+		    aff_todo = 0;
+		}
 		else
 		    hash_add(tp, cur_aff->ah_key);
-
-		aff_todo = atoi((char *)items[3]);
 	    }
 	    else if ((STRCMP(items[0], "PFX") == 0
 					      || STRCMP(items[0], "SFX") == 0)
@@ -2630,38 +1509,39 @@ spell_read_aff(fname, conv, ascii)
 
 		/* New item for an affix letter. */
 		--aff_todo;
-		aff_entry = (affentry_T *)alloc_clear(
-						(unsigned)sizeof(affentry_T));
+		aff_entry = (affentry_T *)getroom(&spin->si_blocks,
+							  sizeof(affentry_T));
 		if (aff_entry == NULL)
 		    break;
 
 		if (STRCMP(items[2], "0") != 0)
-		    aff_entry->ae_chop = vim_strsave(items[2]);
+		    aff_entry->ae_chop = getroom_save(&spin->si_blocks,
+								    items[2]);
 		if (STRCMP(items[3], "0") != 0)
-		    aff_entry->ae_add = vim_strsave(items[3]);
-		if (STRCMP(items[4], ".") != 0)
-		{
-		    char_u	buf[MAXLINELEN];
+		    aff_entry->ae_add = getroom_save(&spin->si_blocks,
+								    items[3]);
 
-		    aff_entry->ae_cond = vim_strsave(items[4]);
-		    if (*items[0] == 'P')
-			sprintf((char *)buf, "^%s", items[4]);
-		    else
-			sprintf((char *)buf, "%s$", items[4]);
-		    aff_entry->ae_prog = vim_regcomp(buf, RE_MAGIC + RE_STRING);
-		}
-
-		if (ascii && (has_non_ascii(aff_entry->ae_chop)
+		/* Don't use an affix entry with non-ASCII characters when
+		 * "spin->si_ascii" is TRUE. */
+		if (!spin->si_ascii || !(has_non_ascii(aff_entry->ae_chop)
 					  || has_non_ascii(aff_entry->ae_add)))
 		{
-		    /* Don't use an affix entry with non-ASCII characters when
-		     * "ascii" is TRUE. */
-		    free_affix_entry(aff_entry);
-		}
-		else
-		{
 		    aff_entry->ae_next = cur_aff->ah_first;
 		    cur_aff->ah_first = aff_entry;
+
+		    if (STRCMP(items[4], ".") != 0)
+		    {
+			char_u	buf[MAXLINELEN];
+
+			aff_entry->ae_cond = getroom_save(&spin->si_blocks,
+								    items[4]);
+			if (*items[0] == 'P')
+			    sprintf((char *)buf, "^%s", items[4]);
+			else
+			    sprintf((char *)buf, "%s$", items[4]);
+			aff_entry->ae_prog = vim_regcomp(buf,
+							RE_MAGIC + RE_STRING);
+		    }
 		}
 	    }
 	    else if (STRCMP(items[0], "FOL") == 0 && itemcnt == 2)
@@ -2698,26 +1578,21 @@ spell_read_aff(fname, conv, ascii)
 		if (ga_grow(&aff->af_rep, 1) == FAIL)
 		    break;
 		rp = ((repentry_T *)aff->af_rep.ga_data) + aff->af_rep.ga_len;
-		rp->re_from = vim_strsave(items[1]);
-		rp->re_to = vim_strsave(items[2]);
+		rp->re_from = getroom_save(&spin->si_blocks, items[1]);
+		rp->re_to = getroom_save(&spin->si_blocks, items[2]);
 		++aff->af_rep.ga_len;
 	    }
-	    else if (p_verbose > 0)
-	    {
-		verbose_enter();
+	    else
 		smsg((char_u *)_("Unrecognized item in %s line %d: %s"),
 						       fname, lnum, items[0]);
-		verbose_leave();
-	    }
 	}
-
     }
 
     if (fol != NULL || low != NULL || upp != NULL)
     {
 	/* Don't write a word table for an ASCII file, so that we don't check
 	 * for conflicts with a word table that matches 'encoding'. */
-	if (!ascii)
+	if (!spin->si_ascii)
 	{
 	    if (fol == NULL || low == NULL || upp == NULL)
 		smsg((char_u *)_("Missing FOL/LOW/UPP line in %s"), fname);
@@ -2762,13 +1637,12 @@ spell_free_aff(aff)
     hashtab_T	*ht;
     hashitem_T	*hi;
     int		todo;
-    int		i;
-    repentry_T  *rp;
     affheader_T	*ah;
+    affentry_T	*ae;
 
     vim_free(aff->af_enc);
-    vim_free(aff->af_try);
 
+    /* All this trouble to foree the "ae_prog" items... */
     for (ht = &aff->af_pref; ; ht = &aff->af_suff)
     {
 	todo = ht->ht_used;
@@ -2778,42 +1652,33 @@ spell_free_aff(aff)
 	    {
 		--todo;
 		ah = HI2AH(hi);
-		free_affixentries(ah->ah_first);
-		vim_free(ah);
+		for (ae = ah->ah_first; ae != NULL; ae = ae->ae_next)
+		    vim_free(ae->ae_prog);
 	    }
 	}
 	if (ht == &aff->af_suff)
 	    break;
     }
+
     hash_clear(&aff->af_pref);
     hash_clear(&aff->af_suff);
-
-    for (i = 0; i < aff->af_rep.ga_len; ++i)
-    {
-	rp = ((repentry_T *)aff->af_rep.ga_data) + i;
-	vim_free(rp->re_from);
-	vim_free(rp->re_to);
-    }
     ga_clear(&aff->af_rep);
-
-    vim_free(aff);
 }
 
 /*
- * Read a dictionary ".dic" file.
+ * Read dictionary file "fname".
  * Returns OK or FAIL;
- * Each entry in the hashtab_T is a dicword_T.
  */
     static int
-spell_read_dic(ht, fname, conv, ascii)
-    hashtab_T	*ht;
+spell_read_dic(fname, spin, affile)
     char_u	*fname;
-    vimconv_T	*conv;		/* info for encoding conversion */
-    int		ascii;		/* only accept ASCII words */
+    spellinfo_T	*spin;
+    afffile_T	*affile;
 {
+    hashtab_T	ht;
     char_u	line[MAXLINELEN];
-    char_u	*p;
-    dicword_T	*dw;
+    char_u	*afflist;
+    char_u	*dw;
     char_u	*pc;
     char_u	*w;
     int		l;
@@ -2821,7 +1686,13 @@ spell_read_dic(ht, fname, conv, ascii)
     hashitem_T	*hi;
     FILE	*fd;
     int		lnum = 1;
+    int		non_ascii = 0;
+    int		retval = OK;
+    char_u	message[MAXLINELEN + MAXWLEN];
 
+    /*
+     * Open the file.
+     */
     fd = fopen((char *)fname, "r");
     if (fd == NULL)
     {
@@ -2829,6 +1700,9 @@ spell_read_dic(ht, fname, conv, ascii)
 	return FAIL;
     }
 
+    /* The hashtable is only used to detect duplicated words. */
+    hash_init(&ht);
+
     smsg((char_u *)_("Reading dictionary file %s..."), fname);
     out_flush();
 
@@ -2847,7 +1721,8 @@ spell_read_dic(ht, fname, conv, ascii)
 	line_breakcheck();
 	++lnum;
 
-	/* Remove CR, LF and white space from end. */
+	/* Remove CR, LF and white space from the end.  White space halfway
+	 * the word is kept to allow e.g., "et al.". */
 	l = STRLEN(line);
 	while (l > 0 && line[l - 1] <= ' ')
 	    --l;
@@ -2855,19 +1730,35 @@ spell_read_dic(ht, fname, conv, ascii)
 	    continue;	/* empty line */
 	line[l] = NUL;
 
+	/* This takes time, print a message now and then. */
+	if ((lnum & 0x3ff) == 0)
+	{
+	    vim_snprintf((char *)message, sizeof(message),
+					      _("line %6d - %s"), lnum, line);
+	    msg_start();
+	    msg_outtrans_attr(message, 0);
+	    msg_clr_eos();
+	    msg_didout = FALSE;
+	    msg_col = 0;
+	    out_flush();
+	}
+
 	/* Find the optional affix names. */
-	p = vim_strchr(line, '/');
-	if (p != NULL)
-	    *p++ = NUL;
+	afflist = vim_strchr(line, '/');
+	if (afflist != NULL)
+	    *afflist++ = NUL;
 
-	/* Skip non-ASCII words when "ascii" is TRUE. */
-	if (ascii && has_non_ascii(line))
+	/* Skip non-ASCII words when "spin->si_ascii" is TRUE. */
+	if (spin->si_ascii && has_non_ascii(line))
+	{
+	    ++non_ascii;
 	    continue;
+	}
 
 	/* Convert from "SET" to 'encoding' when needed. */
-	if (conv->vc_type != CONV_NONE)
+	if (spin->si_conv.vc_type != CONV_NONE)
 	{
-	    pc = string_convert(conv, line, NULL);
+	    pc = string_convert(&spin->si_conv, line, NULL);
 	    if (pc == NULL)
 	    {
 		smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
@@ -2882,285 +1773,146 @@ spell_read_dic(ht, fname, conv, ascii)
 	    w = line;
 	}
 
-	dw = (dicword_T *)alloc_clear((unsigned)sizeof(dicword_T)
-							     + STRLEN(w));
+	/* Store the word in the hashtable to be able to find duplicates. */
+	dw = (char_u *)getroom_save(&spin->si_blocks, w);
 	if (dw == NULL)
-	{
-	    vim_free(pc);
+	    retval = FAIL;
+	vim_free(pc);
+	if (retval == FAIL)
 	    break;
-	}
-	STRCPY(dw->dw_word, w);
-	vim_free(pc);
 
-	hash = hash_hash(dw->dw_word);
-	hi = hash_lookup(ht, dw->dw_word, hash);
+	hash = hash_hash(dw);
+	hi = hash_lookup(&ht, dw, hash);
 	if (!HASHITEM_EMPTY(hi))
 	    smsg((char_u *)_("Duplicate word in %s line %d: %s"),
-						       fname, lnum, line);
+							   fname, lnum, line);
 	else
-	    hash_add_item(ht, hi, dw->dw_word, hash);
+	    hash_add_item(&ht, hi, dw, hash);
+
+	/* Add the word to the word tree(s). */
+	if (store_word(dw, spin) == FAIL)
+	    retval = FAIL;
 
-	if (p != NULL)
-	    dw->dw_affnm = vim_strsave(p);
+	if (afflist != NULL)
+	{
+	    /* Find all matching suffixes and add the resulting words.
+	     * Additionally do matching prefixes that combine. */
+	    if (store_aff_word(dw, spin, afflist,
+			   &affile->af_suff, &affile->af_pref, FALSE) == FAIL)
+		retval = FAIL;
+
+	    /* Find all matching prefixes and add the resulting words. */
+	    if (store_aff_word(dw, spin, afflist,
+				       &affile->af_pref, NULL, FALSE) == FAIL)
+		retval = FAIL;
+	}
     }
 
+    if (spin->si_ascii && non_ascii > 0)
+	smsg((char_u *)_("Ignored %d words with non-ASCII characters"),
+								   non_ascii);
+    hash_clear(&ht);
+
     fclose(fd);
-    return OK;
+    return retval;
 }
 
 /*
- * Free the structure filled by spell_read_dic().
+ * Apply affixes to a word and store the resulting words.
+ * "ht" is the hashtable with affentry_T that need to be applied, either
+ * prefixes or suffixes.
+ * "xht", when not NULL, is the prefix hashtable, to be used additionally on
+ * the resulting words for combining affixes.
+ *
+ * Returns FAIL when out of memory.
  */
-    static void
-spell_free_dic(dic)
-    hashtab_T	*dic;
+    static int
+store_aff_word(word, spin, afflist, ht, xht, comb)
+    char_u	*word;		/* basic word start */
+    spellinfo_T	*spin;		/* spell info */
+    char_u	*afflist;	/* list of names of supported affixes */
+    hashtab_T	*ht;
+    hashtab_T	*xht;
+    int		comb;		/* only use affixes that combine */
 {
     int		todo;
-    dicword_T	*dw;
     hashitem_T	*hi;
+    affheader_T	*ah;
+    affentry_T	*ae;
+    regmatch_T	regmatch;
+    char_u	newword[MAXWLEN];
+    int		retval = OK;
+    int		i;
+    char_u	*p;
 
-    todo = dic->ht_used;
-    for (hi = dic->ht_array; todo > 0; ++hi)
+    todo = ht->ht_used;
+    for (hi = ht->ht_array; todo > 0 && retval == OK; ++hi)
     {
 	if (!HASHITEM_EMPTY(hi))
 	{
 	    --todo;
-	    dw = HI2DW(hi);
-	    vim_free(dw->dw_affnm);
-	    vim_free(dw);
-	}
-    }
-    hash_clear(dic);
-}
-
-/*
- * Take the affixes read by spell_read_aff() and add them to the new list.
- * Attempts to re-use the same number for identical affixes (ignoring the
- * condition, since we remove that).  That is especially important when using
- * multiple regions.
- * Returns OK or FAIL;
- */
-    static int
-get_new_aff(oldaff, gap, prefix)
-    hashtab_T	*oldaff;	/* hashtable with affheader_T */
-    garray_T	*gap;		/* table with new affixes */
-    int		prefix;		/* TRUE when doing prefixes, FALSE for
-				   suffixes */
-{
-    int		oldtodo;
-    affheader_T	*oldah, *newah, *gapah;
-    affentry_T	*oldae, *newae;
-    hashitem_T	*oldhi;
-    hashitem_T	*hi;
-    hashtab_T	condht;		/* conditions already found */
-    char_u	condkey[MAXLINELEN];
-    int		newnr;
-    int		gapnr;
-    int		retval = OK;
-    char_u	*p;
-    garray_T	tga;
-    int		preword;
+	    ah = HI2AH(hi);
 
-    /*
-     * Loop over all the old affix names.
-     */
-    oldtodo = oldaff->ht_used;
-    for (oldhi = oldaff->ht_array; oldtodo > 0 && retval == OK; ++oldhi)
-    {
-	if (!HASHITEM_EMPTY(oldhi))
-	{
-	    --oldtodo;
-	    oldah = (affheader_T *)oldhi->hi_key;
-
-	    /* Put entries with the same condition under the same new affix
-	     * nr in "tga".  Use hashtable "condht" to find them. */
-	    ga_init2(&tga, sizeof(affheader_T), 10);
-	    hash_init(&condht);
-
-	    /*
-	     * Loop over all affixes with the same name.
-	     * The affixes with the same condition will get the same number,
-	     * since they can be used with the same words.
-	     * 1. build the lists of new affentry_T, with the headers in "tga".
-	     * 2. Check if some of the lists already exist in "gap", re-use
-	     *    their number.
-	     * 3. Assign the new numbers to the old affixes.
-	     */
-
-	    /* 1. build the lists of new affentry_T. */
-	    for (oldae = oldah->ah_first; oldae != NULL && retval == OK;
-						       oldae = oldae->ae_next)
+	    /* Check that the affix combines, if required, and that the word
+	     * supports this affix. */
+	    if ((!comb || ah->ah_combine)
+				  && vim_strchr(afflist, *ah->ah_key) != NULL)
 	    {
-		preword = FALSE;
-		oldae->ae_add_nw = NULL;
-		oldae->ae_add_pw = NULL;
-		if (oldae->ae_add != NULL)
+		/* Loop over all affix entries with this name. */
+		for (ae = ah->ah_first; ae != NULL; ae = ae->ae_next)
 		{
-		    /* Check for non-word characters in the affix.  If there
-		     * is one a suffix will be turned into an addition, a
-		     * prefix may be turned into a leadstring.
-		     * This is stored with the old affix, that is where
-		     * trans_affixes() will check. */
-		    for (p = oldae->ae_add; *p != NUL; mb_ptr_adv(p))
-			if (!spell_iswordc(p))
+		    /* Check the condition.  It's not logical to match case
+		     * here, but it is required for compatibility with
+		     * Myspell. */
+		    regmatch.regprog = ae->ae_prog;
+		    regmatch.rm_ic = FALSE;
+		    if (ae->ae_prog == NULL
+				  || vim_regexec(&regmatch, word, (colnr_T)0))
+		    {
+			/* Match.  Remove the chop and add the affix. */
+			if (xht == NULL)
 			{
-			    oldae->ae_add_nw = p;
-			    break;
+			    /* prefix: chop/add at the start of the word */
+			    if (ae->ae_add == NULL)
+				*newword = NUL;
+			    else
+				STRCPY(newword, ae->ae_add);
+			    p = word;
+			    if (ae->ae_chop != NULL)
+				/* Skip chop string. */
+				for (i = mb_charlen(ae->ae_chop); i > 0; --i)
+				    mb_ptr_adv(p);
+			    STRCAT(newword, p);
+			}
+			else
+			{
+			    /* suffix: chop/add at the end of the word */
+			    STRCPY(newword, word);
+			    if (ae->ae_chop != NULL)
+			    {
+				/* Remove chop string. */
+				p = newword + STRLEN(newword);
+				for (i = mb_charlen(ae->ae_chop); i > 0; --i)
+				    mb_ptr_back(newword, p);
+				*p = NUL;
+			    }
+			    if (ae->ae_add != NULL)
+				STRCAT(newword, ae->ae_add);
 			}
 
-		    if (prefix && oldae->ae_add_nw != NULL)
-		    {
-			/* If a prefix has non-word characters special
-			 * treatment is necessary:
-			 * - If it has only non-word characters it becomes a
-			 *   leadstring.
-			 * - If it has a sequence of word characters followed
-			 *   by a non-word char it becomes a "preword": "d'",
-			 *   "de-", "d'ai", etc.
-			 * - if it has another mix of word and non-word
-			 *   characters the part before the last word char
-			 *   becomes a leadstring: "'d", etc.
-			 */
-			for (p = oldae->ae_add; *p != NUL; mb_ptr_adv(p))
-			    if (spell_iswordc(p))
-			    {
-				oldae->ae_add_pw = p;
-				break;
-			    }
-			if (oldae->ae_add_pw != NULL)
-			{
-			    /* Mixed prefix, set ae_add_nw to first non-word
-			     * char after ae_add_pw (if there is one). */
-			    oldae->ae_add_nw = NULL;
-			    for ( ; *p != NUL; mb_ptr_adv(p))
-				if (!spell_iswordc(p))
-				{
-				    oldae->ae_add_nw = p;
-				    break;
-				}
-			    if (oldae->ae_add_nw != NULL)
-			    {
-				preword = TRUE;
-				oldae->ae_add_pw = NULL;
-				oldae->ae_add_nw = NULL;
-			    }
-			}
-		    }
-		}
+			/* Store the modified word. */
+			if (store_word(newword, spin) == FAIL)
+			    retval = FAIL;
 
-		if (oldae->ae_cond == NULL)
-		    /* hashtable requires a non-empty key */
-		    STRCPY(condkey, "---");
-		else
-		    STRCPY(condkey, oldae->ae_cond);
-
-		/* Look for an existing list with this name and condition. */
-		hi = hash_find(&condht, condkey);
-		if (!HASHITEM_EMPTY(hi))
-		    /* Match with existing affix, use that one. */
-		    newnr = HI2AS(hi)->as_nr;
-		else
-		{
-		    /* Add a new affix number. */
-		    newnr = tga.ga_len;
-		    if (ga_grow(&tga, 1) == FAIL)
-			retval = FAIL;
-		    else
-		    {
-			newah = ((affheader_T *)tga.ga_data) + newnr;
-			newah->ah_combine = oldah->ah_combine;
-			newah->ah_first = NULL;
-			++tga.ga_len;
-
-			/* Add the new list to the condht hashtable. */
-			add_affhash(&condht, condkey, newnr);
+			/* When added a suffix and combining is allowed also
+			 * try adding prefixes additionally. */
+			if (xht != NULL && ah->ah_combine)
+			    if (store_aff_word(newword, spin, afflist,
+						     xht, NULL, TRUE) == FAIL)
+				retval = FAIL;
 		    }
 		}
-
-		/* Add the new affentry_T to the list. */
-		newah = ((affheader_T *)tga.ga_data) + newnr;
-		newae = (affentry_T *)alloc_clear((unsigned)sizeof(affentry_T));
-		if (newae == NULL)
-		    retval = FAIL;
-		else
-		{
-		    newae->ae_next = newah->ah_first;
-		    newah->ah_first = newae;
-		    if (oldae->ae_chop == NULL)
-			newae->ae_chop = NULL;
-		    else
-			newae->ae_chop = vim_strsave(oldae->ae_chop);
-		    if (oldae->ae_add == NULL)
-			newae->ae_add = NULL;
-		    else
-			newae->ae_add = vim_strsave(oldae->ae_add);
-		    newae->ae_preword = preword;
-
-		    /* The condition is not copied, since the new affix is
-		     * only used for words where the condition matches. */
-		}
 	    }
-
-	    /* 2. Check if some of the lists already exist, re-use their
-	     *    number.  Otherwise add the list to "gap". */
-	    for (newnr = 0; newnr < tga.ga_len; ++newnr)
-	    {
-		newah = ((affheader_T *)tga.ga_data) + newnr;
-		for (gapnr = 0; gapnr < gap->ga_len; ++gapnr)
-		{
-		    gapah = ((affheader_T *)gap->ga_data) + gapnr;
-		    if (newah->ah_combine == gapah->ah_combine
-					     && same_affentries(newah, gapah))
-			/* Found an existing affheader_T entry with same
-			 * affentry_T list, use its number. */
-			break;
-		}
-
-		newah->ah_affnr = gapnr;
-		if (gapnr == gap->ga_len)
-		{
-		    /* This is a new affentry_T list, add it. */
-		    if (ga_grow(gap, 1) == FAIL)
-			retval = FAIL;
-		    else
-		    {
-			*(((affheader_T *)gap->ga_data) + gap->ga_len) = *newah;
-			++gap->ga_len;
-		    }
-		}
-		else
-		{
-		    /* free unused affentry_T list */
-		    free_affixentries(newah->ah_first);
-		}
-	    }
-
-	    /* 3. Assign the new affix numbers to the old affixes. */
-	    for (oldae = oldah->ah_first; oldae != NULL && retval == OK;
-						       oldae = oldae->ae_next)
-	    {
-		if (oldae->ae_cond == NULL)
-		    /* hashtable requires a non-empty key */
-		    STRCPY(condkey, "---");
-		else
-		    STRCPY(condkey, oldae->ae_cond);
-
-		/* Look for an existing affix with this name and condition. */
-		hi = hash_find(&condht, condkey);
-		if (!HASHITEM_EMPTY(hi))
-		    /* Match with existing affix, use that one. */
-		    newnr = HI2AS(hi)->as_nr;
-		else
-		{
-		    EMSG(_(e_internal));
-		    retval = FAIL;
-		}
-		newah = ((affheader_T *)tga.ga_data) + newnr;
-		oldae->ae_affnr = newah->ah_affnr;
-	    }
-
-	    ga_clear(&tga);
-	    clear_affhash(&condht);
 	}
     }
 
@@ -3168,962 +1920,428 @@ get_new_aff(oldaff, gap, prefix)
 }
 
 /*
- * Return TRUE if the affentry_T lists for "ah1" and "ah2" contain the same
- * items, ignoring the order.
- * Only compares the chop and add strings, not the condition.
+ * Read a file with a list of words.
  */
     static int
-same_affentries(ah1, ah2)
-    affheader_T	*ah1;
-    affheader_T	*ah2;
+spell_read_wordfile(fname, spin)
+    char_u	*fname;
+    spellinfo_T	*spin;
 {
-    affentry_T	*ae1, *ae2;
+    FILE	*fd;
+    long	lnum = 0;
+    char_u	rline[MAXLINELEN];
+    char_u	*line;
+    char_u	*pc = NULL;
+    int		l;
+    int		retval = OK;
+    int		did_word = FALSE;
+    int		non_ascii = 0;
+    char_u	*enc;
 
-    /* Check the length of the lists first. */
-    ae2 = ah2->ah_first;
-    for (ae1 = ah1->ah_first; ae1 != NULL; ae1 = ae1->ae_next)
+    /*
+     * Open the file.
+     */
+    fd = fopen((char *)fname, "r");
+    if (fd == NULL)
     {
-	if (ae2 == NULL)
-	    return FALSE;	/* "ah1" list is longer */
-	ae2 = ae2->ae_next;
-    }
-    if (ae2 != NULL)
-	return FALSE;		/* "ah2" list is longer */
-
-    /* Check that each entry in "ah1" appears in "ah2". */
-    for (ae1 = ah1->ah_first; ae1 != NULL; ae1 = ae1->ae_next)
-    {
-	for (ae2 = ah2->ah_first; ae2 != NULL; ae2 = ae2->ae_next)
-	{
-	    if ((ae1->ae_chop == NULL) == (ae2->ae_chop == NULL)
-		&& (ae1->ae_add == NULL) == (ae2->ae_add == NULL)
-		&& (ae1->ae_chop == NULL
-				   || STRCMP(ae1->ae_chop, ae2->ae_chop) == 0)
-		&& (ae1->ae_add == NULL
-				    || STRCMP(ae1->ae_add, ae2->ae_add) == 0))
-		break;
-	}
-	if (ae2 == NULL)
-	    return FALSE;
+	EMSG2(_(e_notopen), fname);
+	return FAIL;
     }
 
-    return TRUE;
+    smsg((char_u *)_("Reading word file %s..."), fname);
+    out_flush();
+
+    /*
+     * Read all the lines in the file one by one.
+     */
+    while (!vim_fgets(rline, MAXLINELEN, fd) && !got_int)
+    {
+	line_breakcheck();
+	++lnum;
+
+	/* Skip comment lines. */
+	if (*rline == '#')
+	    continue;
+
+	/* Remove CR, LF and white space from the end. */
+	l = STRLEN(rline);
+	while (l > 0 && rline[l - 1] <= ' ')
+	    --l;
+	if (l == 0)
+	    continue;	/* empty or blank line */
+	rline[l] = NUL;
+
+	/* Convert from "=encoding={encoding}" to 'encoding' when needed. */
+	vim_free(pc);
+	if (spin->si_conv.vc_type != CONV_NONE)
+	{
+	    pc = string_convert(&spin->si_conv, rline, NULL);
+	    if (pc == NULL)
+	    {
+		smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
+							   fname, lnum, rline);
+		continue;
+	    }
+	    line = pc;
+	}
+	else
+	{
+	    pc = NULL;
+	    line = rline;
+	}
+
+	if (*line == '=')
+	{
+	    if (STRNCMP(line + 1, "encoding=", 9) == 0)
+	    {
+		if (spin->si_conv.vc_type != CONV_NONE)
+		    smsg((char_u *)_("Duplicate =encoding= line ignored in %s line %d: %s"),
+						       fname, lnum, line);
+		else if (did_word)
+		    smsg((char_u *)_("=encoding= line after word ignored in %s line %d: %s"),
+						       fname, lnum, line);
+		else
+		{
+		    /* Setup for conversion to 'encoding'. */
+		    enc = enc_canonize(line + 10);
+		    if (enc != NULL && !spin->si_ascii
+			    && convert_setup(&spin->si_conv, enc,
+							       p_enc) == FAIL)
+			smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
+						   fname, line + 10, p_enc);
+		    vim_free(enc);
+		}
+	    }
+	    else
+		smsg((char_u *)_("= line ignored in %s line %d: %s"),
+							   fname, lnum, line);
+	    continue;
+	}
+
+	/* Skip non-ASCII words when "spin->si_ascii" is TRUE. */
+	if (spin->si_ascii && has_non_ascii(line))
+	{
+	    ++non_ascii;
+	    continue;
+	}
+
+	/* Normal word: store it. */
+	if (store_word(line, spin) == FAIL)
+	{
+	    retval = FAIL;
+	    break;
+	}
+	did_word = TRUE;
+    }
+
+    vim_free(pc);
+    fclose(fd);
+
+    if (spin->si_ascii && non_ascii > 0)
+	smsg((char_u *)_("Ignored %d words with non-ASCII characters"),
+								   non_ascii);
+    return retval;
 }
 
 /*
- * Add a chop/add or cond hashtable entry.
+ * Get part of an sblock_T, "len" bytes long.
+ * This avoids calling free() for every little struct we use.
+ * The memory is cleared to all zeros.
+ * Returns NULL when out of memory.
+ */
+    static void *
+getroom(blp, len)
+    sblock_T	**blp;
+    size_t	len;	    /* length needed */
+{
+    char_u	*p;
+    sblock_T	*bl = *blp;
+
+    if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
+    {
+	/* Allocate a block of memory. This is not freed until much later. */
+	bl = (sblock_T *)alloc_clear((unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
+	if (bl == NULL)
+	    return NULL;
+	bl->sb_next = *blp;
+	*blp = bl;
+	bl->sb_used = 0;
+    }
+
+    p = bl->sb_data + bl->sb_used;
+    bl->sb_used += len;
+
+    return p;
+}
+
+/*
+ * Make a copy of a string into memory allocated with getroom().
+ */
+    static char_u *
+getroom_save(blp, s)
+    sblock_T	**blp;
+    char_u	*s;
+{
+    char_u	*sc;
+
+    sc = (char_u *)getroom(blp, STRLEN(s) + 1);
+    if (sc != NULL)
+	STRCPY(sc, s);
+    return sc;
+}
+
+
+/*
+ * Free the list of allocated sblock_T.
  */
     static void
-add_affhash(ht, key, newnr)
-    hashtab_T	*ht;
-    char_u	*key;
-    int		newnr;
+free_blocks(bl)
+    sblock_T	*bl;
 {
-    affhash_T	*as;
+    sblock_T	*next;
 
-    as = (affhash_T *)alloc((unsigned)sizeof(affhash_T) + STRLEN(key));
-    if (as != NULL)
+    while (bl != NULL)
     {
-	as->as_nr = newnr;
-	STRCPY(as->as_word, key);
-	hash_add(ht, as->as_word);
+	next = bl->sb_next;
+	vim_free(bl);
+	bl = next;
     }
 }
 
 /*
- * Clear the chop/add hashtable used to detect identical affixes.
+ * Allocate the root of a word tree.
  */
-    static void
-clear_affhash(ht)
-    hashtab_T	*ht;
+    static wordnode_T *
+wordtree_alloc(blp)
+    sblock_T	**blp;
 {
-    int		todo;
-    hashitem_T	*hi;
-
-    todo = ht->ht_used;
-    for (hi = ht->ht_array; todo > 0; ++hi)
-    {
-	if (!HASHITEM_EMPTY(hi))
-	{
-	    --todo;
-	    vim_free(HI2AS(hi));
-	}
-    }
-    hash_clear(ht);
+    return (wordnode_T *)getroom(blp, sizeof(wordnode_T));
 }
 
 /*
- * Translate list of affix names for an old word to affix numbers in a new
- * basic word.
- * This checks if the conditions match with the old word.  The result is that
- * the new affix does not need to store the condition.
- */
-    static void
-trans_affixes(dw, bw, oldaff, newwords)
-    dicword_T	*dw;		/* old word */
-    basicword_T *bw;		/* basic word */
-    afffile_T	*oldaff;	/* affixes for "oldwords" */
-    hashtab_T	*newwords;	/* table with words */
-{
-    char_u	key[2];
-    char_u	*p;
-    char_u	*affnm;
-    garray_T	*gap, *agap;
-    hashitem_T	*aff_hi;
-    affheader_T	*ah;
-    affentry_T	*ae;
-    regmatch_T	regmatch;
-    int		i;
-    basicword_T *nbw;
-    int		alen;
-    garray_T	suffixga;	/* list of words with non-word suffixes */
-    garray_T	prefixga;	/* list of words with non-word prefixes */
-    char_u	nword[MAXWLEN];
-    int		flags;
-    int		n;
-
-    ga_init2(&suffixga, (int)sizeof(basicword_T *), 5);
-    ga_init2(&prefixga, (int)sizeof(basicword_T *), 5);
-
-    /* Loop over all the affix names of the old word. */
-    key[1] = NUL;
-    for (affnm = dw->dw_affnm; *affnm != NUL; ++affnm)
-    {
-	key[0] = *affnm;
-	aff_hi = hash_find(&oldaff->af_pref, key);
-	if (!HASHITEM_EMPTY(aff_hi))
-	    gap = &bw->bw_prefix;	/* found a prefix */
-	else
-	{
-	    gap = &bw->bw_suffix;	/* must be a suffix */
-	    aff_hi = hash_find(&oldaff->af_suff, key);
-	    if (HASHITEM_EMPTY(aff_hi))
-	    {
-		smsg((char_u *)_("No affix entry '%s' for word %s"),
-							    key, dw->dw_word);
-		continue;
-	    }
-	}
-
-	/* Loop over all the affix entries for this affix name. */
-	ah = HI2AH(aff_hi);
-	for (ae = ah->ah_first; ae != NULL; ae = ae->ae_next)
-	{
-	    /* Setup for regexp matching.  Note that we don't ignore case.
-	     * This is weird, because the rules in an .aff file don't care
-	     * about case, but it's necessary for compatibility with Myspell.
-	     */
-	    regmatch.regprog = ae->ae_prog;
-	    regmatch.rm_ic = FALSE;
-	    if (ae->ae_prog == NULL
-			   || vim_regexec(&regmatch, dw->dw_word, (colnr_T)0))
-	    {
-		if ((ae->ae_add_nw != NULL || ae->ae_add_pw != NULL)
-			&& (gap != &bw->bw_suffix || bw->bw_addstring == NULL))
-		{
-		    /*
-		     * Affix has a non-word character and isn't prepended to
-		     * leader or appended to addition.  Need to use another
-		     * word with a leadstring and/or addstring.
-		     */
-		    if (gap == &bw->bw_suffix || ae->ae_add_nw == NULL)
-		    {
-			/* Suffix or prefix with only non-word chars.
-			 * Build the new basic word in "nword": Remove chop
-			 * string and append/prepend addition. */
-			if (gap == &bw->bw_suffix)
-			{
-			    /* suffix goes at the end of the word */
-			    STRCPY(nword, dw->dw_word);
-			    if (ae->ae_chop != NULL)
-			    {
-				/* Remove chop string. */
-				p = nword + STRLEN(nword);
-				for (i = mb_charlen(ae->ae_chop); i > 0; --i)
-				    mb_ptr_back(nword, p);
-				*p = NUL;
-			    }
-			    STRCAT(nword, ae->ae_add);
-			    agap = &suffixga;
-			}
-			else
-			{
-			    /* prefix goes before the word */
-			    STRCPY(nword, ae->ae_add);
-			    p = dw->dw_word;
-			    if (ae->ae_chop != NULL)
-				/* Skip chop string. */
-				for (i = mb_charlen(ae->ae_chop); i > 0; --i)
-				    mb_ptr_adv( p);
-			    STRCAT(nword, p);
-			    agap = &prefixga;
-			}
-
-			/* Create a basicword_T from the word. */
-			nbw = get_basicword(nword, 1);
-			if (nbw != NULL)
-			{
-			    nbw->bw_region = bw->bw_region;
-			    nbw->bw_flags |= bw->bw_flags
-				   & ~(BWF_ONECAP | BWF_ALLCAP | BWF_KEEPCAP);
-
-			    if (STRCMP(bw->bw_word, nbw->bw_word) != 0)
-				/* Basic word differs, add new word entry. */
-				(void)add_to_wordlist(newwords, nbw);
-			    else
-			    {
-				/* Basic word is the same, link "nbw" after
-				 * "bw". */
-				nbw->bw_next = bw->bw_next;
-				bw->bw_next = nbw;
-			    }
-
-			    /* Remember this word, we need to set bw_prefix
-			     * or bw_suffix later. */
-			    if (ga_grow(agap, 1) == OK)
-				((basicword_T **)agap->ga_data)
-						       [agap->ga_len++] = nbw;
-			}
-		    }
-		    else
-		    {
-			/* Prefix with both non-word and word characters: Turn
-			 * prefix into basic word, original word becomes an
-			 * addstring. */
-
-			/* Fold-case the word characters in the prefix into
-			 * nword[]. */
-			alen = 0;
-			for (p = ae->ae_add_pw; p < ae->ae_add_nw; p += n)
-			{
-#ifdef FEAT_MBYTE
-			    n = (*mb_ptr2len_check)(p);
-#else
-			    n = 1;
-#endif
-			    (void)spell_casefold(p, n, nword + alen,
-							      MAXWLEN - alen);
-			    alen += STRLEN(nword + alen);
-			}
-
-			/* Allocate a new word entry. */
-			nbw = (basicword_T *)alloc((unsigned)(
-					     sizeof(basicword_T) + alen + 1));
-			if (nbw != NULL)
-			{
-			    *nbw = *bw;
-			    ga_init2(&nbw->bw_prefix, sizeof(short_u), 1);
-			    ga_init2(&nbw->bw_suffix, sizeof(short_u), 1);
-
-			    mch_memmove(nbw->bw_word, nword, alen);
-			    nbw->bw_word[alen] = NUL;
-
-			    /* Use the cap type of the prefix. */
-			    alen = ae->ae_add_nw - ae->ae_add_pw;
-			    mch_memmove(nword, ae->ae_add_pw, alen);
-			    nword[alen] = NUL;
-			    flags = captype(nword, nword + STRLEN(nword));
-			    if (flags & BWF_KEEPCAP)
-				nbw->bw_caseword = vim_strsave(nword);
-			    else
-				nbw->bw_caseword = NULL;
-			    nbw->bw_flags &= ~(BWF_ONECAP | BWF_ALLCAP
-							       | BWF_KEEPCAP);
-			    nbw->bw_flags |= flags;
-
-			    /* The addstring is the prefix after the word
-			     * characters, the original word excluding "chop",
-			     * plus any addition. */
-			    STRCPY(nword, ae->ae_add_nw);
-			    p = bw->bw_word;
-			    if (ae->ae_chop != NULL)
-				p += STRLEN(ae->ae_chop);
-			    STRCAT(nword, p);
-			    if (bw->bw_addstring != NULL)
-				STRCAT(nword, bw->bw_addstring);
-			    nbw->bw_addstring = vim_strsave(nword);
-
-			    if (ae->ae_add_pw > ae->ae_add)
-				nbw->bw_leadstring = vim_strnsave(ae->ae_add,
-						  ae->ae_add_pw - ae->ae_add);
-			    else
-				nbw->bw_leadstring = NULL;
-
-			    (void)add_to_wordlist(newwords, nbw);
-
-			    /* Remember this word, we need to set bw_suffix
-			     * and bw_suffix later. */
-			    if (ga_grow(&prefixga, 1) == OK)
-				((basicword_T **)prefixga.ga_data)
-						    [prefixga.ga_len++] = nbw;
-			}
-		    }
-		}
-		else
-		{
-		    /* Affix applies to this word, add the related affix
-		     * number.  But only if it's not there yet.  And keep the
-		     * list sorted, so that we can compare it later. */
-		    for (i = 0; i < gap->ga_len; ++i)
-		    {
-			n = ((short_u *)gap->ga_data)[i];
-			if (n >= ae->ae_affnr)
-			{
-			    if (n == ae->ae_affnr)
-				i = -1;
-			    break;
-			}
-		    }
-		    if (i >= 0 && ga_grow(gap, 1) == OK)
-		    {
-			if (i < gap->ga_len)
-			    mch_memmove(((short_u *)gap->ga_data) + i + 1,
-					((short_u *)gap->ga_data) + i,
-					 sizeof(short_u) * (gap->ga_len - i));
-			((short_u *)gap->ga_data)[i] = ae->ae_affnr;
-			++gap->ga_len;
-		    }
-		}
-	    }
-	}
-    }
-
-    /*
-     * For the words that we added for suffixes with non-word characters: Use
-     * the prefix list of the main word.
-     */
-    for (i = 0; i < suffixga.ga_len; ++i)
-    {
-	nbw = ((basicword_T **)suffixga.ga_data)[i];
-	if (ga_grow(&nbw->bw_prefix, bw->bw_prefix.ga_len) == OK)
-	{
-	    mch_memmove(nbw->bw_prefix.ga_data, bw->bw_prefix.ga_data,
-				      bw->bw_prefix.ga_len * sizeof(short_u));
-	    nbw->bw_prefix.ga_len = bw->bw_prefix.ga_len;
-	}
-    }
-
-    /*
-     * For the words that we added for prefixes with non-word characters: Use
-     * the suffix list of the main word.
-     */
-    for (i = 0; i < prefixga.ga_len; ++i)
-    {
-	nbw = ((basicword_T **)prefixga.ga_data)[i];
-	if (ga_grow(&nbw->bw_suffix, bw->bw_suffix.ga_len) == OK)
-	{
-	    mch_memmove(nbw->bw_suffix.ga_data, bw->bw_suffix.ga_data,
-				      bw->bw_suffix.ga_len * sizeof(short_u));
-	    nbw->bw_suffix.ga_len = bw->bw_suffix.ga_len;
-	}
-    }
-
-    ga_clear(&suffixga);
-    ga_clear(&prefixga);
-}
-
-/*
- * Go over all words in "oldwords" and change the old affix names to the new
- * affix numbers, check the conditions, fold case, extract the basic word and
- * additions.
+ * Store a word in the tree(s).
+ * Always store it in the case-folded tree.
+ * For a keep-case word also store it in the keep-case tree.
  */
     static int
-build_wordlist(newwords, oldwords, oldaff, regionmask)
-    hashtab_T	*newwords;	/* basicword_T entries */
-    hashtab_T	*oldwords;	/* dicword_T entries */
-    afffile_T	*oldaff;	/* affixes for "oldwords" */
-    int		regionmask;	/* value for bw_region */
+store_word(word, spin)
+    char_u	*word;
+    spellinfo_T	*spin;
 {
-    int		todo;
-    hashitem_T	*old_hi;
-    dicword_T	*dw;
-    basicword_T *bw;
-    char_u	message[MAXLINELEN + MAXWLEN];
-
-    todo = oldwords->ht_used;
-    for (old_hi = oldwords->ht_array; todo > 0; ++old_hi)
-    {
-	if (!HASHITEM_EMPTY(old_hi))
-	{
-	    --todo;
-	    dw = HI2DW(old_hi);
+    int		len = STRLEN(word);
+    int		ct = captype(word, word + len);
+    char_u	foldword[MAXWLEN];
+    int		res;
 
-	    /* This takes time, print a message now and then. */
-	    if ((todo & 0x3ff) == 0 || todo == (int)oldwords->ht_used - 1)
-	    {
-		sprintf((char *)message, _("%6d todo - %s"),
-							   todo, dw->dw_word);
-		msg_start();
-		msg_outtrans_attr(message, 0);
-		msg_clr_eos();
-		msg_didout = FALSE;
-		msg_col = 0;
-		out_flush();
-		ui_breakcheck();
-		if (got_int)
-		    break;
-	    }
-
-	    bw = get_basicword(dw->dw_word, 10);
-	    if (bw == NULL)
-		break;
-	    bw->bw_region = regionmask;
-
-	    (void)add_to_wordlist(newwords, bw);
-
-	    /* Deal with any affix names on the old word, translate them
-	     * into affix numbers. */
-	    if (dw->dw_affnm != NULL)
-		trans_affixes(dw, bw, oldaff, newwords);
-	}
-    }
-    if (todo > 0)
-	return FAIL;
-    return OK;
+    (void)spell_casefold(word, len, foldword, MAXWLEN);
+    res = tree_add_word(foldword, spin->si_foldroot, ct, spin->si_region,
+							    &spin->si_blocks);
+    if (res == OK && ct == WF_KEEPCAP)
+	res = tree_add_word(word, spin->si_keeproot, ct, spin->si_region,
+							    &spin->si_blocks);
+    return res;
 }
 
 /*
- * Get a basicword_T from a word in original case.
- * Caller must set bw_region.
- * Returns NULL when something fails.
- */
-    static basicword_T *
-get_basicword(word, asize)
-    char_u	*word;
-    int		asize;	    /* growsize for affix garray */
-{
-    int		dwlen;
-    char_u	foldword[MAXLINELEN];
-    int		flags;
-    int		clen;
-    int		leadlen;
-    char_u	*p;
-    char_u	leadstring[MAXLINELEN];
-    int		addlen;
-    char_u	addstring[MAXLINELEN];
-    char_u	*cp = NULL;
-    int		l;
-    basicword_T *bw;
-
-    /* The basic words are always stored with folded case. */
-    dwlen = STRLEN(word);
-    (void)spell_casefold(word, dwlen, foldword, MAXLINELEN);
-    flags = captype(word, word + dwlen);
-
-    /* Check for non-word characters before the word. */
-    clen = 0;
-    leadlen = 0;
-    if (!spell_iswordc(foldword))
-    {
-	p = foldword;
-	for (;;)
-	{
-	    mb_ptr_adv(p);
-	    ++clen;
-	    if (*p == NUL)	/* Only non-word chars (bad word!) */
-	    {
-		if (p_verbose > 0)
-		{
-		    verbose_enter();
-		    smsg((char_u *)_("Warning: word without word characters: \"%s\""),
-							    foldword);
-		    verbose_leave();
-		}
-		break;
-	    }
-	    if (spell_iswordc(p))
-	    {
-		/* Move the leader to "leadstring" and remove it from
-		 * "foldword". */
-		leadlen = p - foldword;
-		mch_memmove(leadstring, foldword, leadlen);
-		leadstring[leadlen] = NUL;
-		mch_memmove(foldword, p, STRLEN(p) + 1);
-		break;
-	    }
-	}
-    }
-
-    /* Check for non-word characters after word characters. */
-    addlen = 0;
-    for (p = foldword; spell_iswordc(p); mb_ptr_adv(p))
-    {
-	if (*p == NUL)
-	    break;
-	++clen;
-    }
-    if (*p != NUL)
-    {
-	/* Move the addition to "addstring" and truncate "foldword". */
-	if (flags & BWF_KEEPCAP)
-	{
-	    /* Preserve caps, need to skip the right number of
-	     * characters in the original word (case folding may
-	     * change the byte count). */
-	    l = 0;
-	    for (cp = word; l < clen; mb_ptr_adv(cp))
-		++l;
-	    addlen = STRLEN(cp);
-	    mch_memmove(addstring, cp, addlen + 1);
-	}
-	else
-	{
-	    addlen = STRLEN(p);
-	    mch_memmove(addstring, p, addlen + 1);
-	}
-	*p = NUL;
-    }
-
-    bw = (basicword_T *)alloc_clear((unsigned)sizeof(basicword_T)
-							  + STRLEN(foldword));
-    if (bw == NULL)
-	return NULL;
-
-    STRCPY(bw->bw_word, foldword);
-
-    if (leadlen > 0)
-	bw->bw_leadstring = vim_strsave(leadstring);
-    else
-	bw->bw_leadstring = NULL;
-    if (addlen > 0)
-	bw->bw_addstring = vim_strsave(addstring);
-    else
-	bw->bw_addstring = NULL;
-
-    if (flags & BWF_KEEPCAP)
-    {
-	if (addlen == 0)
-	    /* use the whole word */
-	    bw->bw_caseword = vim_strsave(word + leadlen);
-	else
-	    /* use only up to the addition */
-	    bw->bw_caseword = vim_strnsave(word + leadlen,
-							 cp - word - leadlen);
-    }
-
-    bw->bw_flags = flags;
-    ga_init2(&bw->bw_prefix, sizeof(short_u), asize);
-    ga_init2(&bw->bw_suffix, sizeof(short_u), asize);
-
-    return bw;
-}
-
-/*
- * Go through the list of words and combine the ones that are identical except
- * for the region.
- */
-    static void
-combine_regions(newwords)
-    hashtab_T	*newwords;
-{
-    int		todo;
-    hashitem_T	*hi;
-    basicword_T *bw, *nbw, *pbw;
-
-    /* Loop over all basic words in the words table. */
-    todo = newwords->ht_used;
-    for (hi = newwords->ht_array; todo > 0; ++hi)
-    {
-	if (!HASHITEM_EMPTY(hi))
-	{
-	    --todo;
-
-	    /* Loop over the list of words for this basic word.  Compare with
-	     * each following word in the same list. */
-	    for (bw = HI2BW(hi); bw != NULL; bw = bw->bw_next)
-	    {
-		pbw = bw;
-		for (nbw = pbw->bw_next; nbw != NULL; nbw = pbw->bw_next)
-		{
-		    if (bw->bw_flags == nbw->bw_flags
-			    && (bw->bw_leadstring == NULL)
-					       == (nbw->bw_leadstring == NULL)
-			    && (bw->bw_addstring == NULL)
-						== (nbw->bw_addstring == NULL)
-			    && ((bw->bw_flags & BWF_KEEPCAP) == 0
-				|| bw->bw_caseword == NULL
-				|| nbw->bw_caseword == NULL
-				|| STRCMP(bw->bw_caseword,
-						      nbw->bw_caseword) == 0)
-			    && (bw->bw_leadstring == NULL
-				|| STRCMP(bw->bw_leadstring,
-						    nbw->bw_leadstring) == 0)
-			    && (bw->bw_addstring == NULL
-				|| STRCMP(bw->bw_addstring,
-						     nbw->bw_addstring) == 0)
-			    && same_affixes(bw, nbw)
-			    )
-		    {
-			/* Match, combine regions and delete "nbw". */
-			pbw->bw_next = nbw->bw_next;
-			bw->bw_region |= nbw->bw_region;
-			free_basicword(nbw);
-		    }
-		    else
-			/* No match, continue with next one. */
-			pbw = nbw;
-		}
-	    }
-	}
-    }
-}
-
-/*
- * Return TRUE when the prefixes and suffixes for "bw" and "nbw" are equal.
- */
-    static int
-same_affixes(bw, nbw)
-    basicword_T	*bw;
-    basicword_T	*nbw;
-{
-    return (bw->bw_prefix.ga_len == nbw->bw_prefix.ga_len
-	    && bw->bw_suffix.ga_len == nbw->bw_suffix.ga_len
-	    && (bw->bw_prefix.ga_len == 0
-		|| vim_memcmp(bw->bw_prefix.ga_data,
-		    nbw->bw_prefix.ga_data,
-		    bw->bw_prefix.ga_len * sizeof(short_u)) == 0)
-	    && (bw->bw_suffix.ga_len == 0
-		|| vim_memcmp(bw->bw_suffix.ga_data,
-		    nbw->bw_suffix.ga_data,
-		    bw->bw_suffix.ga_len * sizeof(short_u)) == 0));
-}
-
-/*
- * For each basic word with additions turn the suffixes into other additions
- * and/or new basic words.  For each basic word with a leadstring turn the
- * prefixes into other leadstrings and/or new basic words.
- * The result is that no affixes apply to the additions or leadstring of a
- * word.
- * This is also needed when a word with an addition has a prefix and the word
- * with prefix also exists.  E.g., "blurp's/D" (D is prefix "de") and
- * "deblurp".  "deblurp" would match and no prefix would be tried.
- *
+ * Add word "word" to a word tree at "root".
  * Returns FAIL when out of memory.
  */
     static int
-expand_affixes(newwords, prefgap, suffgap)
-    hashtab_T	*newwords;
-    garray_T	*prefgap;
-    garray_T	*suffgap;
-{
-    int		todo;
-    hashitem_T	*hi;
-    basicword_T *bw;
-    int		pi, si;
-    affentry_T	*pae, *sae;
-    garray_T	add_words;
-    int		n;
-    char_u	message[MAXLINELEN + MAXWLEN];
-    int		retval = OK;
-
-    ga_init2(&add_words, sizeof(basicword_T *), 10);
-
-    todo = newwords->ht_used;
-    for (hi = newwords->ht_array; todo > 0; ++hi)
-    {
-	if (!HASHITEM_EMPTY(hi))
-	{
-	    --todo;
-
-	    /* This takes time, print a message now and then. */
-	    if ((todo & 0x3ff) == 0 || todo == (int)newwords->ht_used - 1)
-	    {
-		sprintf((char *)message, _("%6d todo - %s"),
-						    todo, HI2BW(hi)->bw_word);
-		msg_start();
-		msg_outtrans_attr(message, 0);
-		msg_clr_eos();
-		msg_didout = FALSE;
-		msg_col = 0;
-		out_flush();
-		ui_breakcheck();
-		if (got_int)
-		    break;
-	    }
-
-	    for (bw = HI2BW(hi); bw != NULL; bw = bw->bw_next)
-	    {
-		/*
-		 * Need to fix affixes if there is a leader or addition and
-		 * there are prefixes or suffixes.
-		 */
-		if ((bw->bw_leadstring != NULL || bw->bw_addstring != NULL)
-			&& (bw->bw_prefix.ga_len != 0
-						|| bw->bw_suffix.ga_len != 0))
-		{
-		    /* Loop over all prefix numbers, but first without a
-		     * prefix. */
-		    for (pi = -1; pi < bw->bw_prefix.ga_len; ++pi)
-		    {
-			pae = NULL;
-			if (pi >= 0)
-			{
-			    n = ((short_u *)bw->bw_prefix.ga_data)[pi];
-			    pae = ((affheader_T *)prefgap->ga_data + n)
-								   ->ah_first;
-			}
-
-			/* Loop over all entries for prefix "pi".  Do it once
-			 * when there is no prefix (pi == -1). */
-			do
-			{
-			  /* Skip prewords, they don't need to be expanded. */
-			  if (pae == NULL || !pae->ae_preword)
-			  {
-			    /* Loop over all suffix numbers.  Do without a
-			     * suffix first when there is a prefix. */
-			    for (si = (pi == -1 ? 0 : -1);
-					      si < bw->bw_suffix.ga_len; ++si)
-			    {
-				sae = NULL;
-				if (si >= 0)
-				{
-				    n = ((short_u *)bw->bw_suffix.ga_data)[si];
-				    sae = ((affheader_T *)suffgap->ga_data + n)
-								   ->ah_first;
-				}
-
-				/* Loop over all entries for suffix "si".  Do
-				 * it once when there is no suffix (si == -1).
-				 */
-				do
-				{
-				    /* Expand the word for this combination of
-				     * prefixes and affixes. */
-				    if (expand_one_aff(bw, &add_words,
-							    pae, sae) == FAIL)
-				    {
-					retval = FAIL;
-					goto theend;
-				    }
-
-				    /* Advance to next suffix entry, if there
-				     * is one. */
-				    if (sae != NULL)
-					sae = sae->ae_next;
-				} while (sae != NULL);
-			    }
-			  }
-
-			  /* Advance to next prefix entry, if there is one. */
-			  if (pae != NULL)
-			      pae = pae->ae_next;
-			} while (pae != NULL);
-		    }
-		}
-	    }
-	}
-    }
-
-    /*
-     * Add the new words afterwards, can't change "newwords" while going over
-     * all its items.
-     */
-    for (pi = 0; pi < add_words.ga_len; ++pi)
-    {
-	retval = add_to_wordlist(newwords,
-				     ((basicword_T **)add_words.ga_data)[pi]);
-	if (retval == FAIL)
-	    break;
-    }
-
-theend:
-    ga_clear(&add_words);
-    return retval;
-}
-
-/*
- * Add one word to "add_words" for basic word "bw" with additions, adding
- * prefix "pae" and suffix "sae".  Either "pae" or "sae" can be NULL.
- * Don't do this when not necessary:
- * - no leadstring and adding prefix doesn't result in existing word.
- * Returns FAIL when out of memory.
- */
-    static int
-expand_one_aff(bw, add_words, pae, sae)
-    basicword_T	    *bw;
-    garray_T	    *add_words;
-    affentry_T	    *pae;
-    affentry_T	    *sae;
+tree_add_word(word, root, flags, region, blp)
+    char_u	*word;
+    wordnode_T	*root;
+    int		flags;
+    int		region;
+    sblock_T	**blp;
 {
-    char_u	word[MAXWLEN + 1];
-    char_u	caseword[MAXWLEN + 1];
-    int		l = 0;
-    int		choplen = 0;
-    int		ll;
-    basicword_T	*nbw;
-
-    /* Prepend prefix to the basic word if there is a prefix and there is no
-     * leadstring. */
-    if (pae != NULL && bw->bw_leadstring == NULL)
-    {
-	if (pae->ae_add != NULL)
-	{
-	    l = STRLEN(pae->ae_add);
-	    mch_memmove(word, pae->ae_add, l);
-	}
-	if (pae->ae_chop != NULL)
-	    choplen = STRLEN(pae->ae_chop);
-    }
-
-    /* Copy the body of the word. */
-    STRCPY(word + l, bw->bw_word + choplen);
-
-    /* Do the same for bw_caseword, if it's there. */
-    if ((bw->bw_flags & BWF_KEEPCAP) && bw->bw_caseword != NULL)
-    {
-	if (l > 0)
-	    mch_memmove(caseword, pae->ae_add, l);
-	STRCPY(caseword + l, bw->bw_caseword + choplen);
-    }
-
-    /* Append suffix to the basic word if there is a suffix and there is no
-     * addstring. */
-    if (sae != 0 && bw->bw_addstring == NULL)
-    {
-	l = STRLEN(word);
-	if (sae->ae_chop != NULL)
-	    l -= STRLEN(sae->ae_chop);
-	if (sae->ae_add == NULL)
-	    word[l] = NUL;
-	else
-	    STRCPY(word + l, sae->ae_add);
-
-	if (bw->bw_flags & BWF_KEEPCAP)
-	{
-	    /* Do the same for the caseword. */
-	    l = STRLEN(caseword);
-	    if (sae->ae_chop != NULL)
-		l -= STRLEN(sae->ae_chop);
-	    if (sae->ae_add == NULL)
-		caseword[l] = NUL;
-	    else
-		STRCPY(caseword + l, sae->ae_add);
-	}
-    }
-
-    nbw = (basicword_T *)alloc_clear((unsigned)
-					  sizeof(basicword_T) + STRLEN(word));
-    if (nbw == NULL)
-	return FAIL;
-
-    /* Add the new word to the list of words to be added later. */
-    if (ga_grow(add_words, 1) == FAIL)
-    {
-	vim_free(nbw);
-	return FAIL;
-    }
-    ((basicword_T **)add_words->ga_data)[add_words->ga_len++] = nbw;
+    wordnode_T	*node = root;
+    wordnode_T	*np;
+    wordnode_T	**prev = NULL;
+    int		i;
 
-    /* Copy the (modified) basic word, flags and region. */
-    STRCPY(nbw->bw_word, word);
-    nbw->bw_flags = bw->bw_flags;
-    nbw->bw_region = bw->bw_region;
-
-    /* Set the (modified) caseword. */
-    if (bw->bw_flags & BWF_KEEPCAP)
-	nbw->bw_caseword = vim_strsave(caseword);
-    else
-	nbw->bw_caseword = NULL;
-
-    if (bw->bw_leadstring != NULL)
-    {
-	if (pae != NULL)
-	{
-	    /* Prepend prefix to leadstring. */
-	    ll = STRLEN(bw->bw_leadstring);
-	    l = choplen = 0;
-	    if (pae->ae_add != NULL)
-		l = STRLEN(pae->ae_add);
-	    if (pae->ae_chop != NULL)
-	    {
-		choplen = STRLEN(pae->ae_chop);
-		if (choplen > ll)	    /* TODO: error? */
-		    choplen = ll;
-	    }
-	    nbw->bw_leadstring = alloc((unsigned)(ll + l - choplen + 1));
-	    if (nbw->bw_leadstring != NULL)
-	    {
-		if (l > 0)
-		    mch_memmove(nbw->bw_leadstring, pae->ae_add, l);
-		STRCPY(nbw->bw_leadstring + l, bw->bw_leadstring + choplen);
-	    }
-	}
-	else
-	    nbw->bw_leadstring = vim_strsave(bw->bw_leadstring);
-    }
-    else if (bw->bw_prefix.ga_len > 0)
+    /* Add each byte of the word to the tree, including the NUL at the end. */
+    for (i = 0; ; ++i)
     {
-	/* There is no leadstring, copy the list of possible prefixes. */
-	ga_init2(&nbw->bw_prefix, sizeof(short_u), 1);
-	if (ga_grow(&nbw->bw_prefix, bw->bw_prefix.ga_len) == OK)
+	/* Look for the sibling that has the same character.  They are sorted
+	 * on byte value, thus stop searching when a sibling is found with a
+	 * higher byte value.  For zero bytes (end of word) check that the
+	 * flags are equal, there is a separate zero byte for each flag value.
+	 */
+	while (node != NULL && (node->wn_byte < word[i]
+			  || (node->wn_byte == 0 && node->wn_flags != flags)))
 	{
-	    mch_memmove(nbw->bw_prefix.ga_data, bw->bw_prefix.ga_data,
-				  bw->bw_prefix.ga_len * sizeof(short_u));
-	    nbw->bw_prefix.ga_len = bw->bw_prefix.ga_len;
+	    prev = &node->wn_sibling;
+	    node = *prev;
 	}
-    }
-
-    if (bw->bw_addstring != NULL)
-    {
-	if (sae != NULL)
+	if (node == NULL || node->wn_byte != word[i])
 	{
-	    /* Append suffix to addstring. */
-	    l = STRLEN(bw->bw_addstring);
-	    if (sae->ae_chop != NULL)
-	    {
-		l -= STRLEN(sae->ae_chop);
-		if (l < 0)	    /* TODO: error? */
-		    l = 0;
-	    }
-	    if (sae->ae_add == NULL)
-		ll = 0;
-	    else
-		ll = STRLEN(sae->ae_add);
-	    nbw->bw_addstring = alloc((unsigned)(ll + l - choplen + 1));
-	    if (nbw->bw_addstring != NULL)
-	    {
-		STRCPY(nbw->bw_addstring, bw->bw_addstring);
-		if (sae->ae_add == NULL)
-		    nbw->bw_addstring[l] = NUL;
-		else
-		    STRCPY(nbw->bw_addstring + l, sae->ae_add);
-	    }
+	    /* Allocate a new node. */
+	    np = (wordnode_T *)getroom(blp, sizeof(wordnode_T));
+	    if (np == NULL)
+		return FAIL;
+	    np->wn_byte = word[i];
+	    *prev = np;
+	    np->wn_sibling = node;
+	    node = np;
 	}
-	else
-	    nbw->bw_addstring = vim_strsave(bw->bw_addstring);
+
+	if (word[i] == NUL)
+	{
+	    node->wn_flags = flags;
+	    node->wn_region |= region;
+	    break;
+	}
+	prev = &node->wn_child;
+	node = *prev;
     }
 
     return OK;
 }
 
 /*
- * Add basicword_T "*bw" to wordlist "newwords".
+ * Compress a tree: find tails that are identical and can be shared.
+ */
+    static void
+wordtree_compress(root)
+    wordnode_T	    *root;
+{
+    hashtab_T	    ht;
+    int		    n;
+    int		    tot = 0;
+
+    if (root != NULL)
+    {
+	hash_init(&ht);
+	n = node_compress(root, &ht, &tot);
+	smsg((char_u *)_("Compressed %d of %d nodes; %d%% remaining"),
+					       n, tot, (tot - n) * 100 / tot);
+	hash_clear(&ht);
+    }
+}
+
+/*
+ * Compress a node, its siblings and its children, depth first.
+ * Returns the number of compressed nodes.
  */
     static int
-add_to_wordlist(newwords, bw)
-    hashtab_T	*newwords;
-    basicword_T	*bw;
+node_compress(node, ht, tot)
+    wordnode_T	*node;
+    hashtab_T	*ht;
+    int		*tot;	    /* total count of nodes before compressing,
+			       incremented while going through the tree */
 {
+    wordnode_T	*np;
+    wordnode_T	*tp;
+    wordnode_T	*child;
+    hash_T	hash;
     hashitem_T	*hi;
-    basicword_T *bw2;
-    int		retval = OK;
+    int		len = 0;
+    unsigned	nr, n;
+    int		compressed = 0;
 
-    hi = hash_find(newwords, bw->bw_word);
-    if (HASHITEM_EMPTY(hi))
+    /*
+     * Go through the list of siblings.  Compress each child and then try
+     * finding an identical child to replace it.
+     * Note that with "child" we mean not just the node that is pointed to,
+     * but the whole list of siblings, of which the node is the first.
+     */
+    for (np = node; np != NULL; np = np->wn_sibling)
     {
-	/* New entry, add to hashlist. */
-	retval = hash_add(newwords, bw->bw_word);
-	bw->bw_next = NULL;
+	++len;
+	if ((child = np->wn_child) != NULL)
+	{
+	    /* Compress the child.  This fills wn_hashkey. */
+	    compressed += node_compress(child, ht, tot);
+
+	    /* Try to find an identical child. */
+	    hash = hash_hash(child->wn_hashkey);
+	    hi = hash_lookup(ht, child->wn_hashkey, hash);
+	    tp = NULL;
+	    if (!HASHITEM_EMPTY(hi))
+	    {
+		/* There are children with an identical hash value.  Now check
+		 * if there is one that is really identical. */
+		for (tp = HI2WN(hi); tp != NULL; tp = tp->wn_next)
+		    if (node_equal(child, tp))
+		    {
+			/* Found one!  Now use that child in place of the
+			 * current one.  This means the current child is
+			 * dropped from the tree. */
+			np->wn_child = tp;
+			++compressed;
+			break;
+		    }
+		if (tp == NULL)
+		{
+		    /* No other child with this hash value equals the child of
+		     * the node, add it to the linked list after the first
+		     * item. */
+		    tp = HI2WN(hi);
+		    child->wn_next = tp->wn_next;
+		    tp->wn_next = child;
+		}
+	    }
+	    else
+		/* No other child has this hash value, add it to the
+		 * hashtable. */
+		hash_add_item(ht, hi, child->wn_hashkey, hash);
+	}
     }
-    else
+    *tot += len;
+
+    /*
+     * Make a hash key for the node and its siblings, so that we can quickly
+     * find a lookalike node.  This must be done after compressing the sibling
+     * list, otherwise the hash key would become invalid by the compression.
+     */
+    node->wn_hashkey[0] = len;
+    nr = 0;
+    for (np = node; np != NULL; np = np->wn_sibling)
     {
-	/* Existing entry, append to list of basic words. */
-	bw2 = HI2BW(hi);
-	bw->bw_next = bw2->bw_next;
-	bw2->bw_next = bw;
+	if (np->wn_byte == NUL)
+	    /* end node: only use wn_flags and wn_region */
+	    n = np->wn_flags + (np->wn_region << 8);
+	else
+	    /* byte node: use the byte value and the child pointer */
+	    n = np->wn_byte + ((long_u)np->wn_child << 8);
+	nr = nr * 101 + n;
     }
-    return retval;
+
+    /* Avoid NUL bytes, it terminates the hash key. */
+    n = nr & 0xff;
+    node->wn_hashkey[1] = n == 0 ? 1 : n;
+    n = (nr >> 8) & 0xff;
+    node->wn_hashkey[2] = n == 0 ? 1 : n;
+    n = (nr >> 16) & 0xff;
+    node->wn_hashkey[3] = n == 0 ? 1 : n;
+    n = (nr >> 24) & 0xff;
+    node->wn_hashkey[4] = n == 0 ? 1 : n;
+    node->wn_hashkey[5] = NUL;
+
+    return compressed;
+}
+
+/*
+ * Return TRUE when two nodes have identical siblings and children.
+ */
+    static int
+node_equal(n1, n2)
+    wordnode_T	*n1;
+    wordnode_T	*n2;
+{
+    wordnode_T	*p1;
+    wordnode_T	*p2;
+
+    for (p1 = n1, p2 = n2; p1 != NULL && p2 != NULL;
+				     p1 = p1->wn_sibling, p2 = p2->wn_sibling)
+	if (p1->wn_byte != p2->wn_byte
+		|| (p1->wn_byte == NUL
+		    ? (p1->wn_flags != p2->wn_flags
+					    || p1->wn_region != p2->wn_region)
+		    : (p1->wn_child != p2->wn_child)))
+	    break;
+
+    return p1 == NULL && p2 == NULL;
 }
 
 /*
@@ -4142,209 +2360,23 @@ put_bytes(fd, nr, len)
 }
 
 /*
- * Write affix info.  <affitemcnt> <affitem> ...
- */
-    static void
-write_affix(fd, ah)
-    FILE	*fd;
-    affheader_T	*ah;
-{
-    int		i = 0;
-    affentry_T	*ae;
-    char_u	*p;
-    int		round;
-    int		flags;
-
-    /* Count the number of entries. */
-    for (ae = ah->ah_first; ae != NULL; ae = ae->ae_next)
-	++i;
-    put_bytes(fd, (long_u)i, 2);		/* <affitemcnt> */
-
-    /* <affitem>: <affflags> <affchoplen> <affchop> <affaddlen> <affadd> */
-    for (ae = ah->ah_first; ae != NULL; ae = ae->ae_next)
-    {
-	flags = ah->ah_combine ? AFF_COMBINE : 0;
-	if (ae->ae_preword)
-	    flags |= AFF_PREWORD;
-	fputc(flags, fd);			/* <affflags> */
-
-	for (round = 1; round <= 2; ++round)
-	{
-	    p = round == 1 ? ae->ae_chop : ae->ae_add;
-	    if (p == NULL)
-		putc(0, fd);		/* <affchoplen> / <affaddlen> */
-	    else
-	    {
-		putc(STRLEN(p), fd);	/* <affchoplen> / <affaddlen> */
-					/* <affchop> / <affadd> */
-		fwrite(p, STRLEN(p), (size_t)1, fd);
-	    }
-	}
-    }
-}
-
-/*
- * Write list of affix NRs: <affixcnt> <affixNR> ...
- */
-    static void
-write_affixlist(fd, aff, bytes)
-    FILE	*fd;
-    garray_T	*aff;
-    int		bytes;
-{
-    int		i;
-
-    if (aff->ga_len > 0)
-    {
-	putc(aff->ga_len, fd);	    /* <affixcnt> */
-	for (i = 0; i < aff->ga_len; ++i)
-	    put_bytes(fd, (long_u )((short_u *)aff->ga_data)[i], bytes);
-    }
-}
-
-/*
- * Vim spell file format:  <HEADER> <PREFIXLIST> <SUFFIXLIST>
- *						    <SUGGEST> <WORDLIST>
- *
- * <HEADER>: <fileID> <regioncnt> <regionname> ...
- *		 <charflagslen> <charflags> <fcharslen> <fchars>
- *
- * <fileID>     10 bytes    "VIMspell04"
- * <regioncnt>  1 byte	    number of regions following (8 supported)
- * <regionname>	2 bytes     Region name: ca, au, etc.
- *			    First <regionname> is region 1.
- *
- * <charflagslen> 1 byte    Number of bytes in <charflags> (should be 128).
- * <charflags>  N bytes     List of flags (first one is for character 128):
- *			    0x01  word character
- *			    0x01  upper-case character
- * <fcharslen>  2 bytes     Number of bytes in <fchars>.
- * <fchars>     N bytes	    Folded characters, first one is for character 128.
- *
- *
- * <PREFIXLIST>: <affcount> <affix> ...
- * <SUFFIXLIST>: <affcount> <affix> ...
- *		list of possible affixes: prefixes and suffixes.
- *
- * <affcount>	2 bytes	    Number of affixes (MSB comes first).
- *                          When more than 256 an affixNR is 2 bytes.
- *                          This is separate for prefixes and suffixes!
- *                          First affixNR is 0.
- *
- * <affix>: <affitemcnt> <affitem> ...
- *
- * <affitemcnt> 2 bytes	    Number of affixes with this affixNR (MSB first).
- *
- * <affitem>: <affflags> <affchoplen> <affchop> <affaddlen> <affadd>
- *
- * <affflags>	1 byte	    0x01: prefix combines with suffix, AFF_COMBINE
- *			    0x02: prefix includes word, AFF_PREWORD
- *			    0x04-0x80: unset
- * <affchoplen> 1 byte	    Length of <affchop> in bytes.
- * <affchop>    N bytes     To be removed from basic word.
- * <affaddlen>  1 byte	    Length of <affadd> in bytes.
- * <affadd>     N bytes     To be added to basic word.
- *
- *
- * <SUGGEST> : <suggestlen> <more> ...
- *
- * <suggestlen> 4 bytes	    Length of <SUGGEST> in bytes, excluding
- *			    <suggestlen>.  MSB first.
- * <more>		    To be defined.
- *
- *
- * <WORDLIST>: <wordcount> <worditem> ...
- *
- * <wordcount>	4 bytes	    Number of <worditem> following.  MSB first.
- *
- * <worditem>: <nr> <string> <flags> [<flags2>]
- *			  [<caselen> <caseword>]
- *			  [<affixcnt> <affixNR> ...]    (prefixes)
- *			  [<affixcnt> <affixNR> ...]	(suffixes)
- *			  [<region>]
- *			  [<addcnt> <add> ...]
- *
- * <nr>	i	1 byte	    Number of bytes copied from previous word.
- * <string>	N bytes	    Additional bytes for word, up to byte smaller than
- *			    0x20 (space).
- *			    Must only contain case-folded word characters.
- * <flags>	1 byte	    0x01: word is valid without addition, BWF_VALID
- *			    0x02: has region byte, BWF_REGION
- *			    0x04: first letter must be upper-case, BWF_ONECAP
- *			    0x08: has suffixes, <affixcnt> and <affixNR> follow
- *					BWF_SUFFIX
- *			    0x10: more flags, <flags2> follows next, BWF_SECOND
- *			    0x20-0x80: can't be used, unset
- * <flags2>	1 byte	    0x01: has additions, <addcnt> and <add> follow,
- *					BWF_ADDS
- *			    0x02: has prefixes, <affixcnt> and <affixNR> follow
- *					BWF_PREFIX
- *			    0x04: all letters must be upper-case, BWF_ALLCAP
- *			    0x08: case must match, BWF_KEEPCAP
- *			    0x10: has more than 255 additions, <addcnt> is two
- *				  bytes, BWF_ADDS_M
- *			    0x10-0x80: unset
- * <caselen>	1 byte	    Length of <caseword>.
- * <caseword>	N bytes	    Word with matching case.
- * <affixcnt>	1 byte	    Number of affix NRs following.
- * <affixNR>	1 or 2 byte Number of possible affix for this word.
- *			    When using 2 bytes MSB comes first.
- * <region>	1 byte	    Bitmask for regions in which word is valid.  When
- *			    omitted it's valid in all regions.
- *			    Lowest bit is for region 1.
- * <addcnt>	1 or 2 byte Number of <add> items following.
- *
- * <add>: <addflags> <addlen> [<leadlen>] [<copylen>] [<addstring>] [<region>]
- *
- * <addflags>	1 byte	    0x01: unset
- *			    0x02: has region byte, ADD_REGION
- *			    0x04: first letter must be upper-case, ADD_ONECAP
- *			    0x08: unset
- *			    0x10: has a <leadlen>, ADD_LEADLEN
- *			    0x20: has a <copylen>, ADD_COPYLEN
- *			    0x40: all letters must be upper-case, ADD_ALLCAP
- *			    0x80: fixed case, <addstring> is the whole word
- *				  with matching case, ADD_KEEPCAP.
- * <addlen>	1 byte	    Length of <addstring> in bytes.
- * <leadlen>	1 byte	    Number of bytes at start of <addstring> that must
- *			    come before the start of the basic word.
- * <copylen>	1 byte	    Number of bytes copied from previous <addstring>.
- * <addstring>	N bytes	    Word characters, before/in/after the word.
- *
- * All text characters are in 'encoding': <affchop>, <affadd>, <string>,
- * <caseword>> and <addstring>.
- * All other fields are ASCII: <regionname>
- * <string> is always case-folded.
- */
-
-/*
  * Write the Vim spell file "fname".
  */
     static void
-write_vim_spell(fname, prefga, suffga, newwords, regcount, regchars, ascii)
+write_vim_spell(fname, spin, regcount, regchars)
     char_u	*fname;
-    garray_T	*prefga;	/* prefixes, affheader_T entries */
-    garray_T	*suffga;	/* suffixes, affheader_T entries */
-    hashtab_T	*newwords;	/* basic words, basicword_T entries */
+    spellinfo_T	*spin;
     int		regcount;	/* number of regions */
     char_u	*regchars;	/* region names */
-    int		ascii;		/* TRUE for ascii spell file */
 {
-    winfo_T	wif;
-    garray_T	*gap;
-    hashitem_T	*hi;
-    char_u	**wtab;
-    int		todo;
-    int		flags, aflags;
-    basicword_T	*bw, *bwf, *bw2 = NULL;
-    int		i;
+    FILE	*fd;
+    int		regionmask;
     int		round;
-    garray_T	bwga;
+    wordnode_T	*tree;
+    int		nodecount;
 
-    vim_memset(&wif, 0, sizeof(winfo_T));
-
-    wif.wif_fd = fopen((char *)fname, "w");
-    if (wif.wif_fd == NULL)
+    fd = fopen((char *)fname, "w");
+    if (fd == NULL)
     {
 	EMSG2(_(e_notopen), fname);
 	return;
@@ -4352,462 +2384,164 @@ write_vim_spell(fname, prefga, suffga, n
 
     /* <HEADER>: <fileID> <regioncnt> <regionname> ...
      *		 <charflagslen> <charflags> <fcharslen> <fchars> */
-    fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, wif.wif_fd); /* <fileID> */
+
+							    /* <fileID> */
+    if (fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd) != 1)
+	EMSG(_(e_write));
 
     /* write the region names if there is more than one */
     if (regcount > 1)
     {
-	putc(regcount, wif.wif_fd);	    /* <regioncnt> <regionname> ... */
-	fwrite(regchars, (size_t)(regcount * 2), (size_t)1, wif.wif_fd);
-	wif.wif_regionmask = (1 << regcount) - 1;
+	putc(regcount, fd);	    /* <regioncnt> <regionname> ... */
+	fwrite(regchars, (size_t)(regcount * 2), (size_t)1, fd);
+	regionmask = (1 << regcount) - 1;
     }
     else
     {
-	putc(0, wif.wif_fd);
-	wif.wif_regionmask = 0;
+	putc(0, fd);
+	regionmask = 0;
     }
 
     /* Write the table with character flags and table for case folding.
      * <charflagslen> <charflags>  <fcharlen> <fchars>
      * Skip this for ASCII, the table may conflict with the one used for
      * 'encoding'. */
-    if (ascii)
+    if (spin->si_ascii)
     {
-	putc(0, wif.wif_fd);
-	putc(0, wif.wif_fd);
-	putc(0, wif.wif_fd);
+	putc(0, fd);
+	putc(0, fd);
+	putc(0, fd);
     }
     else
-	write_spell_chartab(wif.wif_fd);
+	write_spell_chartab(fd);
 
-    /* <PREFIXLIST>: <affcount> <affix> ...
-     * <SUFFIXLIST>: <affcount> <affix> ... */
-    for (round = 1; round <= 2; ++round)
-    {
-	gap = round == 1 ? prefga : suffga;
-	put_bytes(wif.wif_fd, (long_u)gap->ga_len, 2);	    /* <affcount> */
-
-	for (i = 0; i < gap->ga_len; ++i)
-	    write_affix(wif.wif_fd, (affheader_T *)gap->ga_data + i);
-    }
-
-    /* Number of bytes used for affix NR depends on affix count. */
-    wif.wif_prefm = (prefga->ga_len > 256) ? 2 : 1;
-    wif.wif_suffm = (suffga->ga_len > 256) ? 2 : 1;
 
     /* <SUGGEST> : <suggestlen> <more> ...
      *  TODO.  Only write a zero length for now. */
-    put_bytes(wif.wif_fd, 0L, 4);			    /* <suggestlen> */
-
-    /*
-     * <WORDLIST>: <wordcount> <worditem> ...
-     */
-
-    /* number of basic words in 4 bytes */
-    put_bytes(wif.wif_fd, newwords->ht_used, 4);	    /* <wordcount> */
+    put_bytes(fd, 0L, 4);			/* <suggestlen> */
 
     /*
-     * Sort the word list, so that we can copy as many bytes as possible from
-     * the previous word.
+     * <LWORDTREE>  <KWORDTREE>
      */
-    wtab = (char_u **)alloc((unsigned)(sizeof(char_u *) * newwords->ht_used));
-    if (wtab != NULL)
+    for (round = 1; round <= 2; ++round)
     {
-	/* Make a table with pointers to each word. */
-	todo = newwords->ht_used;
-	for (hi = newwords->ht_array; todo > 0; ++hi)
-	    if (!HASHITEM_EMPTY(hi))
-		wtab[--todo] = hi->hi_key;
-
-	/* Sort. */
-	sort_strings(wtab, (int)newwords->ht_used);
-
-	/* Now write each basic word to the spell file. */
-	ga_init2(&bwga, sizeof(basicword_T *), 10);
-	for (todo = 0; (long_u)todo < newwords->ht_used; ++todo)
-	{
-	    bwf = KEY2BW(wtab[todo]);
-
-	    /*
-	     * Reorder the list of basicword_T words: make a list for words
-	     * with the same case-folded word.  Put them together for same
-	     * caps (ONECAP, ALLCAP and various KEEPCAP words) and same
-	     * affixes.  Each list will then be put as a basic word with
-	     * additions.
-	     * This won't take much space, since the basic word is the same
-	     * every time, only its length is written.
-	     */
-	    bwga.ga_len = 0;
-	    for (bw = bwf; bw != NULL; bw = bw->bw_next)
-	    {
-		flags = bw->bw_flags & (BWF_ONECAP | BWF_KEEPCAP | BWF_ALLCAP);
+	tree = (round == 1) ? spin->si_foldroot : spin->si_keeproot;
 
-		/* Go through the lists we found so far.  Break when the case
-		 * matches. */
-		for (i = 0; i < bwga.ga_len; ++i)
-		{
-		    bw2 = ((basicword_T **)bwga.ga_data)[i];
-		    aflags = bw2->bw_flags & (BWF_ONECAP | BWF_KEEPCAP
-								| BWF_ALLCAP);
-		    if (flags == aflags
-			    && ((flags & BWF_KEEPCAP) == 0
-				|| bw->bw_caseword == NULL
-				|| bw2->bw_caseword == NULL
-				|| STRCMP(bw->bw_caseword,
-						       bw2->bw_caseword) == 0)
-			    && same_affixes(bw, bw2))
-			break;
-		}
-		if (i == bwga.ga_len)
-		{
-		    /* No word with similar caps, make a new list. */
-		    if (ga_grow(&bwga, 1) == FAIL)
-			break;
-		    ((basicword_T **)bwga.ga_data)[i] = bw;
-		    bw->bw_cnext = NULL;
-		    ++bwga.ga_len;
-		}
-		else
-		{
-		    /* Add to list of words with similar caps. */
-		    bw->bw_cnext = bw2->bw_cnext;
-		    bw2->bw_cnext = bw;
-		}
-	    }
+	/* Count the number of nodes.  Needed to be able to allocate the
+	 * memory when reading the nodes.  Also fills in the index for shared
+	 * nodes. */
+	nodecount = put_tree(NULL, tree, 0, regionmask);
 
-	    /* Prefer the word with no caps to use as the first basic word.
-	     * At least one without KEEPCAP. */
-	    bw = NULL;
-	    for (i = 0; i < bwga.ga_len; ++i)
-	    {
-		bw2 = ((basicword_T **)bwga.ga_data)[i];
-		if (bw == NULL
-			|| (bw2->bw_flags & (BWF_ONECAP | BWF_KEEPCAP
-							  | BWF_ALLCAP)) == 0
-			|| (bw->bw_flags & BWF_KEEPCAP))
-		    bw = bw2;
-	    }
+	/* number of nodes in 4 bytes */
+	put_bytes(fd, (long_u)nodecount, 4);	/* <nodecount> */
 
-	    /* Write first basic word.  If it's KEEPCAP then we need a word
-	     * without VALID flag first (makes it easier to read the list back
-	     * in). */
-	    if (bw->bw_flags & BWF_KEEPCAP)
-		write_bword(&wif, bw, TRUE);
-	    write_bword(&wif, bw, FALSE);
-
-	    /* Write other basic words, with different caps. */
-	    for (i = 0; i < bwga.ga_len; ++i)
-	    {
-		bw2 = ((basicword_T **)bwga.ga_data)[i];
-		if (bw2 != bw)
-		    write_bword(&wif, bw2, FALSE);
-	    }
-	}
-
-	ga_clear(&bwga);
-	vim_free(wtab);
+	/* Write the nodes. */
+	(void)put_tree(fd, tree, 0, regionmask);
     }
 
-    fclose(wif.wif_fd);
-
-    /* Print a few statistics. */
-    if (wif.wif_addmaxw == NULL)
-	wif.wif_addmaxw = (char_u *)"";
-    smsg((char_u *)_("Maximum number of adds on a word: %ld (%s)"),
-					     wif.wif_addmax, wif.wif_addmaxw);
-    smsg((char_u *)_("Average number of adds on a word: %f"),
-			       (float)wif.wif_acount / (float)wif.wif_wcount);
-}
-
-/*
- * Compare two basic words for their <addstring>.
- */
-static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
-bw_compare __ARGS((const void *s1, const void *s2));
-
-    static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
-bw_compare(s1, s2)
-    const void	*s1;
-    const void	*s2;
-{
-    basicword_T *bw1 = *(basicword_T **)s1;
-    basicword_T *bw2 = *(basicword_T **)s2;
-    int		i = 0;
-
-    /* compare the leadstrings */
-    if (bw1->bw_leadstring == NULL)
-    {
-	if (bw2->bw_leadstring != NULL)
-	    return 1;
-    }
-    else if (bw2->bw_leadstring == NULL)
-	return -1;
-    else
-	i = STRCMP(bw1->bw_leadstring, bw2->bw_leadstring);
-
-    if (i == 0)
-    {
-	/* leadstrings are identical, compare the addstrings */
-	if (bw1->bw_addstring == NULL)
-	{
-	    if (bw2->bw_addstring != NULL)
-		return 1;
-	}
-	else if (bw2->bw_addstring == NULL)
-	    return -1;
-	else
-	    i = STRCMP(bw1->bw_addstring, bw2->bw_addstring);
-    }
-    return i;
+    fclose(fd);
 }
 
 /*
- * Write basic word, followed by any additions.
+ * Dump a word tree at node "node".
+ *
+ * This first writes the list of possible bytes (siblings).  Then for each
+ * byte recursively write the children.
+ *
+ * NOTE: The code here must match the code in read_tree(), since assumptions
+ * are made about the indexes (so that we don't have to write them in the
+ * file).
  *
- * <worditem>: <nr> <string> <flags> [<flags2>]
- *			  [<caselen> <caseword>]
- *			  [<affixcnt> <affixNR> ...]    (prefixes)
- *			  [<affixcnt> <affixNR> ...]	(suffixes)
- *			  [<region>]
- *			  [<addcnt> <add> ...]
+ * Returns the number of nodes used.
  */
-    static void
-write_bword(wif, bwf, lowcap)
-    winfo_T	*wif;		/* info for writing */
-    basicword_T	*bwf;
-    int		lowcap;		/* write KEEPKAP word as not-valid */
+    static int
+put_tree(fd, node, index, regionmask)
+    FILE	*fd;	    /* NULL when only counting */
+    wordnode_T	*node;
+    int		index;
+    int		regionmask;
 {
-    FILE	*fd = wif->wif_fd;
+    int		newindex = index;
+    int		siblingcount = 0;
+    wordnode_T	*np;
     int		flags;
-    int		aflags;
-    int		len;
-    int		leadlen, addlen;
-    int		copylen;
-    int		clen;
-    int		adds = 0;
-    int		i;
-    int		idx;
-    basicword_T *bw, *bw2;
-    basicword_T **wtab;
-    int		count;
-    int		l;
+
+    /* If "node" is zero the tree is empty. */
+    if (node == NULL)
+	return 0;
+
+    /* Store the index where this node is written. */
+    node->wn_index = index;
 
-    /* Check how many bytes can be copied from the previous word. */
-    len = STRLEN(bwf->bw_word);
-    if (wif->wif_prevbw == NULL)
-	clen = 0;
-    else
-	for (clen = 0; clen < len
-		&& wif->wif_prevbw->bw_word[clen] == bwf->bw_word[clen]; ++clen)
-	    ;
-    putc(clen, fd);				/* <nr> */
-    wif->wif_prevbw = bwf;
-						/* <string> */
-    if (len > clen)
-	fwrite(bwf->bw_word + clen, (size_t)(len - clen), (size_t)1, fd);
+    /* Count the number of siblings. */
+    for (np = node; np != NULL; np = np->wn_sibling)
+	++siblingcount;
 
-    /* Try to find a word without additions to use first. */
-    bw = bwf;
-    for (bw2 = bwf; bw2 != NULL; bw2 = bw2->bw_cnext)
-    {
-	if (bw2->bw_addstring != NULL || bw2->bw_leadstring != NULL)
-	    ++adds;
-	else
-	    bw = bw2;
-    }
+    /* Write the sibling count. */
+    if (fd != NULL)
+	putc(siblingcount, fd);				/* <siblingcount> */
 
-    /* Flags: If there is no leadstring and no addstring the basic word is
-     * valid, may have prefixes, suffixes and region. */
-    flags = bw->bw_flags;
-    if (bw->bw_addstring == NULL && bw->bw_leadstring == NULL)
+    /* Write each sibling byte and optionally extra info. */
+    for (np = node; np != NULL; np = np->wn_sibling)
     {
-	flags |= BWF_VALID;
-
-	/* Flags: add the region byte if the word isn't valid in all
-	 * regions. */
-	if (wif->wif_regionmask != 0 && (bw->bw_region & wif->wif_regionmask)
-						       != wif->wif_regionmask)
-	    flags |= BWF_REGION;
-    }
-    /* Add the prefix/suffix list if there are prefixes/suffixes. */
-    if (bw->bw_leadstring == NULL && bw->bw_prefix.ga_len > 0)
-	flags |= BWF_PREFIX;
-    if (bw->bw_addstring == NULL && bw->bw_suffix.ga_len > 0)
-	flags |= BWF_SUFFIX;
-
-    /* Flags: may have additions. */
-    if (adds > 0)
-    {
-	flags |= BWF_ADDS;
-	if (adds >= 256)
-	    flags |= BWF_ADDS_M;
-    }
+	if (np->wn_byte == 0)
+	{
+	    if (fd != NULL)
+	    {
+		/* For a NUL byte (end of word) instead of the byte itself
+		 * we write the flag/region items. */
+		flags = np->wn_flags;
+		if (regionmask != 0 && np->wn_region != regionmask)
+		    flags |= WF_REGION;
+		if (flags == 0)
+		{
+		    /* word without flags or region */
+		    putc(BY_NOFLAGS, fd);		/* <byte> */
+		}
+		else
+		{
+		    putc(BY_FLAGS, fd);		/* <byte> */
+		    putc(flags, fd);		/* <flags> */
+		    if (flags & WF_REGION)
+			putc(np->wn_region, fd);	/* <regionmask> */
+		}
+	    }
+	}
+	else
+	{
+	    if (np->wn_child->wn_index != 0 && np->wn_child->wn_wnode != node)
+	    {
+		/* The child is written elsewhere, write the reference. */
+		if (fd != NULL)
+		{
+		    putc(BY_INDEX, fd);			/* <byte> */
+							/* <nodeidx> */
+		    put_bytes(fd, (long_u)np->wn_child->wn_index, 3);
+		}
+	    }
+	    else if (np->wn_child->wn_wnode == NULL)
+		/* We will write the child below and give it an index. */
+		np->wn_child->wn_wnode = node;
 
-    /* The dummy word before a KEEPCAP word doesn't have any flags, they are
-     * in the actual word that follows. */
-    if (lowcap)
-	flags = 0;
-
-    /* Flags: when the upper byte is not used we only write one flags
-     * byte, if it's used then set an extra flag in the first byte and
-     * also write the second byte. */
-    if ((flags & 0xff00) == 0)
-	putc(flags, fd);			/* <flags> */
-    else
-    {
-	putc(flags | BWF_SECOND, fd);		/* <flags> */
-	putc((int)((unsigned)flags >> 8), fd);	/* <flags2> */
-    }
-
-    /* First dummy word doesn't need anything but flags. */
-    if (lowcap)
-	return;
-
-    if ((flags & BWF_KEEPCAP) && bw->bw_caseword != NULL)
-    {
-	len = STRLEN(bw->bw_caseword);
-	putc(len, fd);			/* <caselen> */
-	for (i = 0; i < len; ++i)
-	    putc(bw->bw_caseword[i], fd);	/* <caseword> */
+	    if (fd != NULL)
+		if (putc(np->wn_byte, fd) == EOF) /* <byte> or <xbyte> */
+		{
+		    EMSG(_(e_write));
+		    return 0;
+		}
+	}
     }
 
-    /* write prefix and suffix lists: <affixcnt> <affixNR> ... */
-    if (flags & BWF_PREFIX)
-	write_affixlist(fd, &bw->bw_prefix, wif->wif_prefm);
-    if (flags & BWF_SUFFIX)
-	write_affixlist(fd, &bw->bw_suffix, wif->wif_suffm);
-
-    if (flags & BWF_REGION)
-	putc(bw->bw_region, fd);		/* <region> */
-
-    ++wif->wif_wcount;
-
-    /*
-     * Additions.
-     */
-    if (adds > 0)
-    {
-	if (adds >= 256)
-	    put_bytes(fd, (long_u)adds, 2);	/* 2 byte <addcnt> */
-	else
-	    putc(adds, fd);			/* 1 byte <addcnt> */
-
-	/* statistics */
-	wif->wif_acount += adds;
-	if (wif->wif_addmax < adds)
-	{
-	    wif->wif_addmax = adds;
-	    wif->wif_addmaxw = bw->bw_word;
-	}
-
-	/*
-	 * Sort the list of additions, so that we can copy as many bytes as
-	 * possible from the previous addstring.
-	 */
-
-	/* Make a table with pointers to each basic word that has additions. */
-	wtab = (basicword_T **)alloc((unsigned)(sizeof(basicword_T *) * adds));
-	if (wtab == NULL)
-	    return;
-	count = 0;
-	for (bw = bwf; bw != NULL; bw = bw->bw_cnext)
-	    if (bw->bw_leadstring != NULL || bw->bw_addstring != NULL)
-		wtab[count++] = bw;
-
-	/* Sort. */
-	qsort((void *)wtab, (size_t)count, sizeof(basicword_T *), bw_compare);
-
-	/* Now write each basic word to the spell file.  Copy bytes from the
-	 * previous leadstring/addstring if possible. */
-	bw2 = NULL;
-	for (idx = 0; idx < count; ++idx)
-	{
-	    bw = wtab[idx];
+    /* Space used in the array when reading: one for each sibling and one for
+     * the count. */
+    newindex += siblingcount + 1;
 
-	    /* <add>: <addflags> <addlen> [<leadlen>] [<copylen>]
-	     *				[<addstring>] [<region>] */
-	    copylen = 0;
-	    if (bw->bw_leadstring == NULL)
-		leadlen = 0;
-	    else
-	    {
-		leadlen = STRLEN(bw->bw_leadstring);
-		if (bw2 != NULL && bw2->bw_leadstring != NULL)
-		    for ( ; copylen < leadlen; ++copylen)
-			if (bw->bw_leadstring[copylen]
-					   != bw2->bw_leadstring[copylen])
-			    break;
-	    }
-	    if (bw->bw_addstring == NULL)
-		addlen = 0;
-	    else
-	    {
-		addlen = STRLEN(bw->bw_addstring);
-		if (bw2 != NULL && copylen == leadlen
-					     && bw2->bw_addstring != NULL)
-		{
-		    for (i = 0; i < addlen; ++i)
-			if (bw->bw_addstring[i] != bw2->bw_addstring[i])
-			    break;
-		    copylen += i;
-		}
-	    }
-
-	    aflags = 0;
-	    /* Only copy bytes when it's more than one, the length itself
-	     * takes an extra byte. */
-	    if (copylen > 1)
-		aflags |= ADD_COPYLEN;
-	    else
-		copylen = 0;
+    /* Recursively dump the children of each sibling. */
+    for (np = node; np != NULL; np = np->wn_sibling)
+	if (np->wn_byte != 0 && np->wn_child->wn_wnode == node)
+	    newindex = put_tree(fd, np->wn_child, newindex, regionmask);
 
-	    if (bw->bw_flags & BWF_ONECAP)
-		aflags |= ADD_ONECAP;
-	    if (bw->bw_flags & BWF_ALLCAP)
-		aflags |= ADD_ALLCAP;
-	    if (bw->bw_flags & BWF_KEEPCAP)
-		aflags |= ADD_KEEPCAP;
-	    if (wif->wif_regionmask != 0 && (bw->bw_region
-			    & wif->wif_regionmask) != wif->wif_regionmask)
-		aflags |= ADD_REGION;
-	    if (leadlen > 0)
-		aflags |= ADD_LEADLEN;
-	    putc(aflags, fd);		    /* <addflags> */
-
-	    putc(leadlen + addlen, fd);			/* <addlen> */
-	    if (aflags & ADD_LEADLEN)
-		putc(leadlen, fd);			/* <leadlen> */
-	    if (aflags & ADD_COPYLEN)
-		putc(copylen, fd);			/* <copylen> */
-
-							/* <addstring> */
-	    if (leadlen > copylen && bw->bw_leadstring != NULL)
-		fwrite(bw->bw_leadstring + copylen,
-				  (size_t)(leadlen - copylen), (size_t)1, fd);
-	    if (leadlen + addlen > copylen && bw->bw_addstring != NULL)
-	    {
-		if (copylen >= leadlen)
-		    l = copylen - leadlen;
-		else
-		    l = 0;
-		fwrite(bw->bw_addstring + l,
-					 (size_t)(addlen - l), (size_t)1, fd);
-	    }
-
-	    if (aflags & ADD_REGION)
-		putc(bw->bw_region, fd);		/* <region> */
-
-	    bw2 = bw;
-	}
-
-	vim_free(wtab);
-    }
+    return newindex;
 }
 
 
@@ -4823,20 +2557,19 @@ ex_mkspell(eap)
     char_u	fname[MAXPATHL];
     char_u	wfname[MAXPATHL];
     afffile_T	*(afile[8]);
-    hashtab_T	dfile[8];
     int		i;
     int		len;
     char_u	region_name[16];
     struct stat	st;
-    int		round;
-    vimconv_T	conv;
-    int		ascii = FALSE;
     char_u	*arg = eap->arg;
     int		error = FALSE;
+    spellinfo_T spin;
+
+    vim_memset(&spin, 0, sizeof(spin));
 
     if (STRNCMP(arg, "-ascii", 6) == 0)
     {
-	ascii = TRUE;
+	spin.si_ascii = TRUE;
 	arg = skipwhite(arg + 6);
     }
 
@@ -4852,7 +2585,7 @@ ex_mkspell(eap)
 	/* Check for overwriting before doing things that may take a lot of
 	 * time. */
 	vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
-					   ascii ? (char_u *)"ascii" : p_enc);
+				   spin.si_ascii ? (char_u *)"ascii" : p_enc);
 	if (!eap->forceit && mch_stat((char *)wfname, &st) >= 0)
 	{
 	    EMSG(_(e_exists));
@@ -4871,7 +2604,7 @@ ex_mkspell(eap)
 	for (i = 1; i < fcount; ++i)
 	{
 	    afile[i - 1] = NULL;
-	    hash_init(&dfile[i - 1]);
+
 	    if (fcount > 2)
 	    {
 		len = STRLEN(fnames[i]);
@@ -4893,192 +2626,96 @@ ex_mkspell(eap)
 	 * used spell properties. */
 	init_spell_chartab();
 
+	spin.si_foldroot = wordtree_alloc(&spin.si_blocks);
+	spin.si_keeproot = wordtree_alloc(&spin.si_blocks);
+	if (spin.si_foldroot == NULL || spin.si_keeproot == NULL)
+	{
+	    error = TRUE;
+	    goto theend;
+	}
+
 	/*
 	 * Read all the .aff and .dic files.
 	 * Text is converted to 'encoding'.
+	 * Words are stored in the case-folded and keep-case trees.
 	 */
-	for (i = 1; i < fcount; ++i)
+	for (i = 1; i < fcount && !error; ++i)
 	{
-	    /* Read the .aff file.  Will init "conv" based on the "SET" line. */
-	    conv.vc_type = CONV_NONE;
+	    spin.si_conv.vc_type = CONV_NONE;
+	    spin.si_region = 1 << (i - 1);
+
 	    vim_snprintf((char *)fname, sizeof(fname), "%s.aff", fnames[i]);
-	    if ((afile[i - 1] = spell_read_aff(fname, &conv, ascii)) == NULL)
-		break;
-
-	    /* Read the .dic file. */
-	    vim_snprintf((char *)fname, sizeof(fname), "%s.dic", fnames[i]);
-	    if (spell_read_dic(&dfile[i - 1], fname, &conv, ascii) == FAIL)
-		break;
+	    if (mch_stat((char *)fname, &st) >= 0)
+	    {
+		/* Read the .aff file.  Will init "spin->si_conv" based on the
+		 * "SET" line. */
+		afile[i - 1] = spell_read_aff(fname, &spin);
+		if (afile[i - 1] == NULL)
+		    error = TRUE;
+		else
+		{
+		    /* Read the .dic file and store the words in the trees. */
+		    vim_snprintf((char *)fname, sizeof(fname), "%s.dic",
+								   fnames[i]);
+		    if (spell_read_dic(fname, &spin, afile[i - 1]) == FAIL)
+			error = TRUE;
+		}
+	    }
+	    else
+	    {
+		/* No .aff file, try reading the file as a word list.  Store
+		 * the words in the trees. */
+		if (spell_read_wordfile(fnames[i], &spin) == FAIL)
+		    error = TRUE;
+	    }
 
 	    /* Free any conversion stuff. */
-	    convert_setup(&conv, NULL, NULL);
+	    convert_setup(&spin.si_conv, NULL, NULL);
 	}
 
-	/* Process the data when all the files could be read. */
-	if (i == fcount)
+	if (!error)
 	{
-	    garray_T	prefga;
-	    garray_T	suffga;
-	    garray_T	*gap;
-	    hashtab_T	newwords;
-
 	    /*
-	     * Combine all the affixes into one new affix list.  This is done
-	     * for prefixes and suffixes separately.
-	     * We need to do this for each region, try to re-use the same
-	     * affixes.
-	     * Since we number the new affix entries, a growarray will do.  In
-	     * the affheader_T the ah_key is unused.
+	     * Remove the dummy NUL from the start of the tree root.
 	     */
-	    MSG(_("Combining affixes..."));
-	    out_flush();
-	    for (round = 1; round <= 2; ++round)
-	    {
-		gap = round == 1 ? &prefga : &suffga;
-		ga_init2(gap, sizeof(affheader_T), 50);
-		for (i = 1; i < fcount; ++i)
-		    get_new_aff(round == 1 ? &afile[i - 1]->af_pref
-					   : &afile[i - 1]->af_suff,
-					   gap, round == 1);
-	    }
+	    spin.si_foldroot = spin.si_foldroot->wn_sibling;
+	    spin.si_keeproot = spin.si_keeproot->wn_sibling;
 
 	    /*
-	     * Go over all words and:
-	     * - change the old affix names to the new affix numbers
-	     * - check the conditions
-	     * - fold case
-	     * - extract the basic word and additions.
-	     * Do this for each region.
+	     * Combine tails in the tree.
 	     */
-	    MSG(_("Building word list..."));
+	    MSG(_("Compressing word tree..."));
 	    out_flush();
-	    hash_init(&newwords);
-
-	    for (i = 1; i < fcount; ++i)
-		build_wordlist(&newwords, &dfile[i - 1], afile[i - 1],
-								1 << (i - 1));
-
-	    if (fcount > 2)
-	    {
-		/* Combine words for the different regions into one. */
-		MSG(_("Combining regions..."));
-		out_flush();
-		combine_regions(&newwords);
-	    }
-
-	    /*
-	     * Affixes on a word with additions are clumsy, would require
-	     * inefficient searching.  Turn the affixes into additions and/or
-	     * the expanded word.
-	     */
-	    MSG(_("Processing words..."));
-	    out_flush();
-	    error = expand_affixes(&newwords, &prefga, &suffga) == FAIL;
-
-	    if (!error)
-	    {
-		/* Write the info in the spell file. */
-		smsg((char_u *)_("Writing spell file %s..."), wfname);
-		out_flush();
-		write_vim_spell(wfname, &prefga, &suffga, &newwords,
-					      fcount - 1, region_name, ascii);
-		MSG(_("Done!"));
-		out_flush();
-	    }
-
-	    /* Free the allocated stuff. */
-	    free_wordtable(&newwords);
-	    for (round = 1; round <= 2; ++round)
-	    {
-		gap = round == 1 ? &prefga: &suffga;
-		for (i = 0; i < gap->ga_len; ++i)
-		    free_affixentries(((affheader_T *)gap->ga_data + i)
-								  ->ah_first);
-		ga_clear(gap);
-	    }
+	    wordtree_compress(spin.si_foldroot);
+	    wordtree_compress(spin.si_keeproot);
 	}
 
-	/* Free the .aff and .dic file structures. */
+	if (!error)
+	{
+	    /*
+	     * Write the info in the spell file.
+	     */
+	    smsg((char_u *)_("Writing spell file %s..."), wfname);
+	    out_flush();
+	    write_vim_spell(wfname, &spin, fcount - 1, region_name);
+	    MSG(_("Done!"));
+	    out_flush();
+	}
+
+	/* Free the allocated memory. */
+	free_blocks(spin.si_blocks);
+
+	/* Free the .aff file structures. */
 	for (i = 1; i < fcount; ++i)
-	{
 	    if (afile[i - 1] != NULL)
 		spell_free_aff(afile[i - 1]);
-	    spell_free_dic(&dfile[i - 1]);
-	}
     }
 
 theend:
     FreeWild(fcount, fnames);
 }
 
-    static void
-free_wordtable(ht)
-    hashtab_T	*ht;
-{
-    int		todo;
-    basicword_T	*bw, *nbw;
-    hashitem_T	*hi;
-
-    todo = ht->ht_used;
-    for (hi = ht->ht_array; todo > 0; ++hi)
-    {
-	if (!HASHITEM_EMPTY(hi))
-	{
-	    --todo;
-	    for (bw = HI2BW(hi); bw != NULL; bw = nbw)
-	    {
-		nbw = bw->bw_next;
-		free_basicword(bw);
-	    }
-	}
-    }
-}
-
-/*
- * Free a basicword_T and what it contains.
- */
-    static void
-free_basicword(bw)
-    basicword_T	*bw;
-{
-    ga_clear(&bw->bw_prefix);
-    ga_clear(&bw->bw_suffix);
-    vim_free(bw->bw_caseword);
-    vim_free(bw->bw_leadstring);
-    vim_free(bw->bw_addstring);
-    vim_free(bw);
-}
-
-/*
- * Free a list of affentry_T and what they contain.
- */
-    static void
-free_affixentries(first)
-    affentry_T	*first;
-{
-    affentry_T	*ap, *an;
-
-    for (ap = first; ap != NULL; ap = an)
-    {
-	an = ap->ae_next;
-	free_affix_entry(ap);
-    }
-}
-
-/*
- * Free one affentry_T and what it contains.
- */
-    static void
-free_affix_entry(ap)
-    affentry_T *ap;
-{
-    vim_free(ap->ae_chop);
-    vim_free(ap->ae_add);
-    vim_free(ap->ae_cond);
-    vim_free(ap->ae_prog);
-    vim_free(ap);
-}
-
 #endif  /* FEAT_MBYTE */
 
+
 #endif  /* FEAT_SYN_HL */