1
0
forked from aniani/vim

updated for version 7.0c10

This commit is contained in:
Bram Moolenaar
2006-04-05 20:41:53 +00:00
parent e2f98b95c8
commit 910f66f90c
128 changed files with 11811 additions and 2961 deletions

View File

@@ -256,6 +256,8 @@
* WF_NEEDCOMP >> 8 word only valid in compound
* WF_NOSUGGEST >> 8 word not used for suggestions
* WF_COMPROOT >> 8 word already a compound
* WF_NOCOMPBEF >> 8 no compounding before this word
* WF_NOCOMPAFT >> 8 no compounding after this word
*
* <pflags> 1 byte bitmask of:
* WFP_RARE rare prefix
@@ -345,6 +347,8 @@ typedef long idx_T;
#define WF_NEEDCOMP 0x0200 /* word only valid in compound */
#define WF_NOSUGGEST 0x0400 /* word not to be suggested */
#define WF_COMPROOT 0x0800 /* already compounded word, COMPOUNDROOT */
#define WF_NOCOMPBEF 0x1000 /* no compounding before this word */
#define WF_NOCOMPAFT 0x2000 /* no compounding after this word */
/* only used for su_badflags */
#define WF_MIXCAP 0x20 /* mix of upper and lower case: macaRONI */
@@ -1500,6 +1504,13 @@ find_word(mip, mode)
&& slang->sl_compsylmax == MAXWLEN)
continue;
/* Don't allow compounding on a side where an affix was added,
* unless COMPOUNDPERMITFLAG was used. */
if (mip->mi_complen > 0 && (flags & WF_NOCOMPBEF))
continue;
if (!word_ends && (flags & WF_NOCOMPAFT))
continue;
/* Quickly check if compounding is possible with this flag. */
if (!byte_in_str(mip->mi_complen == 0
? slang->sl_compstartflags
@@ -1634,12 +1645,16 @@ find_word(mip, mode)
mip->mi_compoff = wlen;
find_word(mip, FIND_KEEPCOMPOUND);
#if 0 /* Disabled, a prefix must not appear halfway a compound word,
unless the COMPOUNDPERMITFLAG is used and then it can't be a
postponed prefix. */
if (!slang->sl_nobreak || mip->mi_result == SP_BAD)
{
/* Check for following word with prefix. */
mip->mi_compoff = c;
find_prefix(mip, FIND_COMPOUND);
}
#endif
}
if (!slang->sl_nobreak)
@@ -6702,7 +6717,7 @@ store_aff_word(spin, word, afflist, affile, ht, xht, comb, flags,
else
use_flags = flags;
/* Obey a "COMPOUNDFORBID" flag of the affix: don't
/* Obey a "COMPOUNDFORBIDFLAG" of the affix: don't
* use the compound flags. */
use_pfxlist = pfxlist;
if (pfxlist != NULL
@@ -6730,13 +6745,29 @@ store_aff_word(spin, word, afflist, affile, ht, xht, comb, flags,
use_pfxlist += pfxlen;
}
/* When compounding is supported and there is no
* "COMPOUNDPERMITFLAG" then forbid compounding on the
* side where the affix is applied. */
if (spin->si_compflags != NULL
&& (affile->af_comppermit == 0
|| ae->ae_flags == NULL
|| !flag_in_afflist(
affile->af_flagtype, ae->ae_flags,
affile->af_comppermit)))
{
if (xht != NULL)
use_flags |= WF_NOCOMPAFT;
else
use_flags |= WF_NOCOMPBEF;
}
/* Store the modified word. */
if (store_word(spin, newword, use_flags,
spin->si_region, use_pfxlist, FALSE) == FAIL)
retval = FAIL;
/* When added a suffix and combining is allowed also
* try adding prefixes additionally. */
* try adding prefixes additionally. RECURSIVE! */
if (xht != NULL && ah->ah_combine)
if (store_aff_word(spin, newword, afflist, affile,
xht, NULL, TRUE,
@@ -9210,9 +9241,15 @@ init_spellfile()
vim_strncpy(buf, curbuf->b_p_spl, lend - curbuf->b_p_spl);
else
{
/* Create the "spell" directory if it doesn't exist yet. */
l = STRLEN(buf);
vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
if (!filewritable(buf) != 2)
vim_mkdir(buf, 0755);
l = STRLEN(buf);
vim_snprintf((char *)buf + l, MAXPATHL - l,
"/spell/%.*s", (int)(lend - lstart), lstart);
"/%.*s", (int)(lend - lstart), lstart);
}
l = STRLEN(buf);
fname = LANGP_ENTRY(curbuf->b_langp, 0)->lp_slang->sl_fname;
@@ -9947,7 +9984,6 @@ spell_suggest(count)
STRCAT(p, sug.su_badptr + stp->st_orglen);
ml_replace(curwin->w_cursor.lnum, p, FALSE);
curwin->w_cursor.col = c;
changed_bytes(curwin->w_cursor.lnum, c);
/* For redo we use a change-word command. */
ResetRedobuff();
@@ -9955,6 +9991,9 @@ spell_suggest(count)
AppendToRedobuffLit(p + c,
stp->st_wordlen + sug.su_badlen - stp->st_orglen);
AppendCharToRedobuff(ESC);
/* After this "p" may be invalid. */
changed_bytes(curwin->w_cursor.lnum, c);
}
}
else