diff src/spellfile.c @ 15605:62b3805506b3 v8.1.0810

patch 8.1.0810: too many #ifdefs commit https://github.com/vim/vim/commit/264b74fa545edfb92c0d7d08a02c26331cc5b168 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 24 17:18:42 2019 +0100 patch 8.1.0810: too many #ifdefs Problem: Too many #ifdefs. Solution: Graduate FEAT_MBYTE, part 4.
author Bram Moolenaar <Bram@vim.org>
date Thu, 24 Jan 2019 17:30:08 +0100
parents dd725a8ab112
children 7e733046db1d
line wrap: on
line diff
--- a/src/spellfile.c
+++ b/src/spellfile.c
@@ -306,9 +306,7 @@ static int read_sofo_section(FILE *fd, s
 static int read_compound(FILE *fd, slang_T *slang, int len);
 static int set_sofo(slang_T *lp, char_u *from, char_u *to);
 static void set_sal_first(slang_T *lp);
-#ifdef FEAT_MBYTE
 static int *mb_str2wide(char_u *s);
-#endif
 static int spell_read_tree(FILE *fd, char_u **bytsp, idx_T **idxsp, int prefixtree, int prefixcnt);
 static idx_T read_tree_node(FILE *fd, char_u *byts, idx_T *idxs, int maxidx, idx_T startidx, int prefixtree, int maxprefcondnr);
 static void set_spell_charflags(char_u *flags, int cnt, char_u *upp);
@@ -1062,7 +1060,6 @@ read_sal_section(FILE *fd, slang_T *slan
 	    return ccnt;
 	}
 
-#ifdef FEAT_MBYTE
 	if (has_mbyte)
 	{
 	    /* convert the multi-byte strings to wide char strings */
@@ -1088,7 +1085,6 @@ read_sal_section(FILE *fd, slang_T *slan
 		return SP_OTHERERROR;
 	    }
 	}
-#endif
     }
 
     if (gap->ga_len > 0)
@@ -1104,7 +1100,6 @@ read_sal_section(FILE *fd, slang_T *slan
 	smp->sm_oneof = NULL;
 	smp->sm_rules = p;
 	smp->sm_to = NULL;
-#ifdef FEAT_MBYTE
 	if (has_mbyte)
 	{
 	    smp->sm_lead_w = mb_str2wide(smp->sm_lead);
@@ -1112,7 +1107,6 @@ read_sal_section(FILE *fd, slang_T *slan
 	    smp->sm_oneof_w = NULL;
 	    smp->sm_to_w = NULL;
 	}
-#endif
 	++gap->ga_len;
     }
 
@@ -1268,10 +1262,8 @@ read_compound(FILE *fd, slang_T *slang, 
      * Inserting backslashes may double the length, "^\(\)$<Nul>" is 7 bytes.
      * Conversion to utf-8 may double the size. */
     c = todo * 2 + 7;
-#ifdef FEAT_MBYTE
     if (enc_utf8)
 	c += todo * 2;
-#endif
     pat = alloc((unsigned)c);
     if (pat == NULL)
 	return SP_OTHERERROR;
@@ -1367,11 +1359,9 @@ read_compound(FILE *fd, slang_T *slang, 
 	{
 	    if (c == '?' || c == '+' || c == '~')
 		*pp++ = '\\';	    /* "a?" becomes "a\?", "a+" becomes "a\+" */
-#ifdef FEAT_MBYTE
 	    if (enc_utf8)
 		pp += mb_char2bytes(c, pp);
 	    else
-#endif
 		*pp++ = c;
 	}
     }
@@ -1401,7 +1391,6 @@ set_sofo(slang_T *lp, char_u *from, char
 {
     int		i;
 
-#ifdef FEAT_MBYTE
     garray_T	*gap;
     char_u	*s;
     char_u	*p;
@@ -1468,7 +1457,6 @@ set_sofo(slang_T *lp, char_u *from, char
 	}
     }
     else
-#endif
     {
 	/* mapping bytes to bytes is done in sl_sal_first[] */
 	if (STRLEN(from) != STRLEN(to))
@@ -1500,19 +1488,16 @@ set_sal_first(slang_T *lp)
     smp = (salitem_T *)gap->ga_data;
     for (i = 0; i < gap->ga_len; ++i)
     {
-#ifdef FEAT_MBYTE
 	if (has_mbyte)
 	    /* Use the lowest byte of the first character.  For latin1 it's
 	     * the character, for other encodings it should differ for most
 	     * characters. */
 	    c = *smp[i].sm_lead_w & 0xff;
 	else
-#endif
 	    c = *smp[i].sm_lead;
 	if (sfirst[c] == -1)
 	{
 	    sfirst[c] = i;
-#ifdef FEAT_MBYTE
 	    if (has_mbyte)
 	    {
 		int		n;
@@ -1540,12 +1525,10 @@ set_sal_first(slang_T *lp)
 			smp[i] = tsal;
 		    }
 	    }
-#endif
 	}
     }
 }
 
-#ifdef FEAT_MBYTE
 /*
  * Turn a multi-byte string into a wide character string.
  * Return it in allocated memory (NULL for out-of-memory)
@@ -1566,7 +1549,6 @@ mb_str2wide(char_u *s)
     }
     return res;
 }
-#endif
 
 /*
  * Read a tree from the .spl or .sug file.
@@ -1820,11 +1802,7 @@ struct affentry_S
     char	ae_comppermit;	/* COMPOUNDPERMITFLAG found */
 };
 
-#ifdef FEAT_MBYTE
-# define AH_KEY_LEN 17		/* 2 x 8 bytes + NUL */
-#else
-# define AH_KEY_LEN 7		/* 6 digits + NUL */
-#endif
+#define AH_KEY_LEN 17		/* 2 x 8 bytes + NUL */
 
 /* Affix header from ".aff" file.  Used for af_pref and af_suff. */
 typedef struct affheader_S
@@ -2271,7 +2249,6 @@ spell_read_aff(spellinfo_T *spin, char_u
 
 	/* Convert from "SET" to 'encoding' when needed. */
 	vim_free(pc);
-#ifdef FEAT_MBYTE
 	if (spin->si_conv.vc_type != CONV_NONE)
 	{
 	    pc = string_convert(&spin->si_conv, rline, NULL);
@@ -2284,7 +2261,6 @@ spell_read_aff(spellinfo_T *spin, char_u
 	    line = pc;
 	}
 	else
-#endif
 	{
 	    pc = NULL;
 	    line = rline;
@@ -2319,7 +2295,6 @@ spell_read_aff(spellinfo_T *spin, char_u
 	{
 	    if (is_aff_rule(items, itemcnt, "SET", 2) && aff->af_enc == NULL)
 	    {
-#ifdef FEAT_MBYTE
 		/* Setup for conversion from "ENC" to 'encoding'. */
 		aff->af_enc = enc_canonize(items[1]);
 		if (aff->af_enc != NULL && !spin->si_ascii
@@ -2328,9 +2303,6 @@ spell_read_aff(spellinfo_T *spin, char_u
 		    smsg(_("Conversion in %s not supported: from %s to %s"),
 					       fname, aff->af_enc, p_enc);
 		spin->si_conv.vc_fail = TRUE;
-#else
-		    smsg(_("Conversion in %s not supported"), fname);
-#endif
 	    }
 	    else if (is_aff_rule(items, itemcnt, "FLAG", 2)
 					      && aff->af_flagtype == AFT_CHAR)
@@ -2772,13 +2744,8 @@ spell_read_aff(spellinfo_T *spin, char_u
 			 * be empty or start with the same letter. */
 			if (aff_entry->ae_chop != NULL
 				&& aff_entry->ae_add != NULL
-#ifdef FEAT_MBYTE
 				&& aff_entry->ae_chop[(*mb_ptr2len)(
-						   aff_entry->ae_chop)] == NUL
-#else
-				&& aff_entry->ae_chop[1] == NUL
-#endif
-				)
+						   aff_entry->ae_chop)] == NUL)
 			{
 			    int		c, c_up;
 
@@ -2803,7 +2770,7 @@ spell_read_aff(spellinfo_T *spin, char_u
 				    if (aff_entry->ae_cond != NULL)
 				    {
 					char_u	buf[MAXLINELEN];
-#ifdef FEAT_MBYTE
+
 					if (has_mbyte)
 					{
 					    onecap_copy(items[4], buf, TRUE);
@@ -2811,7 +2778,6 @@ spell_read_aff(spellinfo_T *spin, char_u
 								   spin, buf);
 					}
 					else
-#endif
 					    *aff_entry->ae_cond = c_up;
 					if (aff_entry->ae_cond != NULL)
 					{
@@ -2947,11 +2913,7 @@ spell_read_aff(spellinfo_T *spin, char_u
 		    /* Check that every character appears only once. */
 		    for (p = items[1]; *p != NUL; )
 		    {
-#ifdef FEAT_MBYTE
 			c = mb_ptr2char_adv(&p);
-#else
-			c = *p++;
-#endif
 			if ((spin->si_map.ga_len > 0
 				    && vim_strchr(spin->si_map.ga_data, c)
 								      != NULL)
@@ -3034,11 +2996,7 @@ spell_read_aff(spellinfo_T *spin, char_u
 	 * Don't write one for utf-8 either, we use utf_*() and
 	 * mb_get_class(), the list of chars in the file will be incomplete.
 	 */
-	if (!spin->si_ascii
-#ifdef FEAT_MBYTE
-		&& !enc_utf8
-#endif
-		)
+	if (!spin->si_ascii && !enc_utf8)
 	{
 	    if (fol == NULL || low == NULL || upp == NULL)
 		smsg(_("Missing FOL/LOW/UPP line in %s"), fname);
@@ -3243,21 +3201,13 @@ get_affitem(int flagtype, char_u **pp)
     }
     else
     {
-#ifdef FEAT_MBYTE
 	res = mb_ptr2char_adv(pp);
-#else
-	res = *(*pp)++;
-#endif
 	if (flagtype == AFT_LONG || (flagtype == AFT_CAPLONG
 						 && res >= 'A' && res <= 'Z'))
 	{
 	    if (**pp == NUL)
 		return 0;
-#ifdef FEAT_MBYTE
 	    res = mb_ptr2char_adv(pp) + (res << 16);
-#else
-	    res = *(*pp)++ + (res << 16);
-#endif
 	}
     }
     return res;
@@ -3381,18 +3331,10 @@ flag_in_afflist(int flagtype, char_u *af
 	case AFT_LONG:
 	    for (p = afflist; *p != NUL; )
 	    {
-#ifdef FEAT_MBYTE
 		n = mb_ptr2char_adv(&p);
-#else
-		n = *p++;
-#endif
 		if ((flagtype == AFT_LONG || (n >= 'A' && n <= 'Z'))
 								 && *p != NUL)
-#ifdef FEAT_MBYTE
 		    n = mb_ptr2char_adv(&p) + (n << 16);
-#else
-		    n = *p++ + (n << 16);
-#endif
 		if (n == flag)
 		    return TRUE;
 	    }
@@ -3589,7 +3531,6 @@ spell_read_dic(spellinfo_T *spin, char_u
 	    continue;	/* empty line */
 	line[l] = NUL;
 
-#ifdef FEAT_MBYTE
 	/* Convert from "SET" to 'encoding' when needed. */
 	if (spin->si_conv.vc_type != CONV_NONE)
 	{
@@ -3603,7 +3544,6 @@ spell_read_dic(spellinfo_T *spin, char_u
 	    w = pc;
 	}
 	else
-#endif
 	{
 	    pc = NULL;
 	    w = line;
@@ -3930,7 +3870,6 @@ store_aff_word(
 			    if (ae->ae_chop != NULL)
 			    {
 				/* Skip chop string. */
-#ifdef FEAT_MBYTE
 				if (has_mbyte)
 				{
 				    i = mb_charlen(ae->ae_chop);
@@ -3938,7 +3877,6 @@ store_aff_word(
 					MB_PTR_ADV(p);
 				}
 				else
-#endif
 				    p += STRLEN(ae->ae_chop);
 			    }
 			    STRCAT(newword, p);
@@ -4162,7 +4100,6 @@ spell_read_wordfile(spellinfo_T *spin, c
 
 	/* Convert from "/encoding={encoding}" to 'encoding' when needed. */
 	vim_free(pc);
-#ifdef FEAT_MBYTE
 	if (spin->si_conv.vc_type != CONV_NONE)
 	{
 	    pc = string_convert(&spin->si_conv, rline, NULL);
@@ -4175,7 +4112,6 @@ spell_read_wordfile(spellinfo_T *spin, c
 	    line = pc;
 	}
 	else
-#endif
 	{
 	    pc = NULL;
 	    line = rline;
@@ -4194,7 +4130,6 @@ spell_read_wordfile(spellinfo_T *spin, c
 						       fname, lnum, line - 1);
 		else
 		{
-#ifdef FEAT_MBYTE
 		    char_u	*enc;
 
 		    /* Setup for conversion to 'encoding'. */
@@ -4207,9 +4142,6 @@ spell_read_wordfile(spellinfo_T *spin, c
 							  fname, line, p_enc);
 		    vim_free(enc);
 		    spin->si_conv.vc_fail = TRUE;
-#else
-		    smsg(_("Conversion in %s not supported"), fname);
-#endif
 		}
 		continue;
 	    }
@@ -4981,11 +4913,9 @@ write_vim_spell(spellinfo_T *spin, char_
 	l = 0;
 	for (i = 128; i < 256; ++i)
 	{
-#ifdef FEAT_MBYTE
 	    if (has_mbyte)
 		l += mb_char2bytes(spelltab.st_fold[i], folchars + l);
 	    else
-#endif
 		folchars[l++] = spelltab.st_fold[i];
 	}
 	put_bytes(fd, (long_u)(1 + 128 + 2 + l), 4);	/* <sectionlen> */
@@ -6112,10 +6042,8 @@ mkspell(
 		    error = TRUE;
 	    }
 
-#ifdef FEAT_MBYTE
 	    /* Free any conversion stuff. */
 	    convert_setup(&spin.si_conv, NULL, NULL);
-#endif
 	}
 
 	if (spin.si_compflags != NULL && spin.si_nobreak)
@@ -6488,15 +6416,10 @@ set_spell_chartab(char_u *fol, char_u *l
 	    emsg(_(e_affform));
 	    return FAIL;
 	}
-#ifdef FEAT_MBYTE
 	f = mb_ptr2char_adv(&pf);
 	l = mb_ptr2char_adv(&pl);
 	u = mb_ptr2char_adv(&pu);
-#else
-	f = *pf++;
-	l = *pl++;
-	u = *pu++;
-#endif
+
 	/* Every character that appears is a word character. */
 	if (f < 256)
 	    new_st.st_isw[f] = TRUE;
@@ -6570,11 +6493,7 @@ set_spell_charflags(
 
 	if (*p != NUL)
 	{
-#ifdef FEAT_MBYTE
 	    c = mb_ptr2char_adv(&p);
-#else
-	    c = *p++;
-#endif
 	    new_st.st_fold[i + 128] = c;
 	    if (i + 128 != c && new_st.st_isu[i + 128] && c < 256)
 		new_st.st_upper[c] = i + 128;
@@ -6675,9 +6594,7 @@ set_map_str(slang_T *lp, char_u *map)
     /* Init the array and hash tables empty. */
     for (i = 0; i < 256; ++i)
 	lp->sl_map_array[i] = 0;
-#ifdef FEAT_MBYTE
     hash_init(&lp->sl_map_hash);
-#endif
 
     /*
      * The similar characters are stored separated with slashes:
@@ -6686,11 +6603,7 @@ set_map_str(slang_T *lp, char_u *map)
      */
     for (p = map; *p != NUL; )
     {
-#ifdef FEAT_MBYTE
 	c = mb_cptr2char_adv(&p);
-#else
-	c = *p++;
-#endif
 	if (c == '/')
 	    headc = 0;
 	else
@@ -6698,7 +6611,6 @@ set_map_str(slang_T *lp, char_u *map)
 	    if (headc == 0)
 		 headc = c;
 
-#ifdef FEAT_MBYTE
 	    /* Characters above 255 don't fit in sl_map_array[], put them in
 	     * the hash table.  Each entry is the char, a NUL the headchar and
 	     * a NUL. */
@@ -6730,7 +6642,6 @@ set_map_str(slang_T *lp, char_u *map)
 		}
 	    }
 	    else
-#endif
 		lp->sl_map_array[c] = headc;
 	}
     }