# HG changeset patch # User vimboss # Date 1124751586 0 # Node ID 21c3634c211345ea79e90c4927513e7dc1381617 # Parent 4321aae7e769159e5b88a49a50a8866d9246bd3f updated for version 7.0134 diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt --- a/runtime/doc/spell.txt +++ b/runtime/doc/spell.txt @@ -1,4 +1,4 @@ -*spell.txt* For Vim version 7.0aa. Last change: 2005 Aug 21 +*spell.txt* For Vim version 7.0aa. Last change: 2005 Aug 22 VIM REFERENCE MANUAL by Bram Moolenaar @@ -927,6 +927,19 @@ examples with the sequence of word flags COMPOUNDFLAGS sm*e se sme smme smmme etc. COMPOUNDFLAGS s[xyz]*e se sxe sxye sxyxe sye syze sze szye szyxe etc. +A specific example: Allow a compound to be made of two words and a dash: + In the .aff file: + COMPOUNDFLAGS sde ~ + NEEDAFFIX x ~ + COMPOUNDMAX 3 ~ + COMPOUNDMIN 1 ~ + In the .dic file: + start/s ~ + end/e ~ + -/xd ~ + +This allows for the word "start-end", but not "startend". + *spell-COMPOUNDMIN* The minimal byte length of a word used for concatenation is specified with COMPOUNDMIN. Example: @@ -954,6 +967,10 @@ with COMPOUNDSYLMAX. Example: This has no effect if there is no SYLLABLE item. Without COMPOUNDSYLMAX there is no limit on the number of syllables. +If both COMPOUNDMAX and COMPOUNDSYLMAX are defined, a compound word is +accepted if it fits one of the criteria, thus is either made from up to +COMPOUNDMAX words or contains up to COMPOUNDSYLMAX syllables. + *spell-SYLLABLE* The SYLLABLE item defines characters or character sequences that are used to count the number of syllables in a word. Example: diff --git a/runtime/doc/tags b/runtime/doc/tags --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -5219,7 +5219,6 @@ hebrew hebrew.txt /*hebrew* hebrew.txt hebrew.txt /*hebrew.txt* help various.txt /*help* help-context help.txt /*help-context* -help-tags tags 1 help-translated various.txt /*help-translated* help-xterm-window various.txt /*help-xterm-window* help.txt help.txt /*help.txt* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.0aa. Last change: 2005 Aug 21 +*todo.txt* For Vim version 7.0aa. Last change: 2005 Aug 22 VIM REFERENCE MANUAL by Bram Moolenaar @@ -31,7 +31,54 @@ be worked on, but only if you sponsor Vi -------------------- Known bugs and current work ----------------------- Spelling: +- For Thai: Use longest matching word without checking that non-word character + is following. If there is no match, look for character at which there is a + match, the chars up to there are marked as bad. + +- ALLCAP: for German replace sharp s with SS. Can we do that always? + +- Compound word is accepted if nr of words is <= COMPOUNDMAX OR nr of + syllables <= COMPOUNDSYLMAX. Specify AND in the affix file? + +- Much of the spell-checking code is repeated in the suggestion code. Can + this be merged? + +- Do we need a flag for the rule that when compounding is done the following + word doesn't have a capital after a word character, even for Onecap words? + - New hunspell home page: http://hunspell.sourceforge.net/ +- Also see tklspell: http://tkltrans.sourceforge.net/ + +- Lots of code depends on LANG, that isn't right. Enable each mechanism + in the affix file separately. +- Make COMPOUNDMIN 3 characters instead of 3 bytes? +- Example with compounding dash is bad, gets in the way of setting + COMPOUNDMIN and COMPOUNDMAX to a reasonable value. +- COMPOUNDMAX -> COMPOUNDWORDMAX? +- PSEUDOROOT == NEEDAFFIX +- ONLYINCOMPOUND -> NEEDCOMPOUND (also used for affix? or use "needcomp" + after affix) +- Use "comp" flag on affix to allow compounding for word that uses this + affix. However, also need to define which compound flag to be used. + "comp/m"? Alternative: use flags after add string. +- CIRCUMFIX: when a word uses a prefix marked with the CIRCUMFIX flag, + then the word must also have a suffix marked with the CIRCUMFIX flag. + It's a bit primitive, since only one flag is used, which doesn't allow + matching specific prefixes with suffixes. + Alternative: + PSFX {flag} {pchop} {padd} {pcond} {schop} {sadd}[/flags] {scond} +- Support two suffixes by adding "/flags" to add part of suffix. +- When a suffix has more than one syllable, it may count as a word for + COMPOUNDMAX. +- Add flags to count extra syllables in a word. SYLLABLEADDONE + SYLLABLEADDTWO, etc.? Or make it possible to specify the syllable count + of a word directly, after another slash: /abc/3 +- MORPHO items ignores morphological items: after word and affix +- Support flags of two characters, numbers (comma separated) and HUH + flags: [^A-Z], A[^A-Z], ..., Z[^A-Z]? Problem: room in idxs[]! + FLAG long + FLAG num + FLAG mix - Implement multiple flags for compound words and CMP item? Await comments from other spell checking authors. diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -1844,8 +1844,8 @@ installtutor: $(DEST_VIM) $(DEST_RT) $(D # spell file is there. installspell: $(DEST_VIM) $(DEST_RT) $(DEST_SPELL) if test -f $(SPELLSOURCE)/en.latin1.spl; then \ - $(INSTALL_DATA) $(SPELLSOURCE)/*.spl *.vim $(DEST_SPELL); \ - chmod $(HELPMOD) $(DEST_SPELL)/*.spl *.vim; \ + $(INSTALL_DATA) $(SPELLSOURCE)/*.spl $(SPELLSOURCE)/*.vim $(DEST_SPELL); \ + chmod $(HELPMOD) $(DEST_SPELL)/*.spl $(DEST_SPELL)/*.vim; \ fi # install helper program xxd diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -11944,6 +11944,14 @@ f_prevnonblank(argvars, rettv) rettv->vval.v_number = lnum; } +#ifdef HAVE_STDARG_H +/* This dummy va_list is here because: + * - passing a NULL pointer doesn't work when va_list isn't a pointer + * - locally in the function results in a "used before set" warning + * - using va_start() to initialize it gives "function with fixed args" error */ +static va_list ap; +#endif + /* * "printf()" function */ @@ -11961,10 +11969,6 @@ f_printf(argvars, rettv) char_u *s; int saved_did_emsg = did_emsg; char *fmt; - va_list ap; /* dummy */ - - /* Avoid warning for "ap" used before set; it's unused. */ - va_start(ap, rettv); /* Get the required length, allocate the buffer and do it for real. */ did_emsg = FALSE; diff --git a/src/testdir/test58.in b/src/testdir/test58.in --- a/src/testdir/test58.in +++ b/src/testdir/test58.in @@ -120,7 +120,7 @@ gg:/^compdicstart/+1,/^compdicend/-1w! X 1GyG:q :$put /^comptest: -:for i in range(12) +:for i in range(11) normal ]smm let str = spellbadword() $put =str @@ -481,9 +481,11 @@ word util wordutil wordutils wordutilize pro pro-ok bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork +borkborkborkborkborkbork tomato tomatotomato tomatotomatotomato -startend endstart endend startstart +startend endstart endend startstart wordend startword startwordword wordstart startwordend startwordwordend +startwordwordwordend startwordwordwordwordend prebork preborkprebork preborkborkprebork preborkpreborkbork borkpreborkpreborkbork diff --git a/src/testdir/test58.ok b/src/testdir/test58.ok --- a/src/testdir/test58.ok +++ b/src/testdir/test58.ok @@ -87,23 +87,21 @@ wordutilize ['word utilize', 'wordutils', 'wordutil'] pro ['bork', 'end', 'word'] -borkborkborkbork -['borkbork borkbork', 'borkborkbork bork', 'bork borkborkbork'] -borkborkborkborkbork -['borkbork borkborkbork', 'borkborkbork borkbork', 'bork borkborkbork bork'] -tomatotomato -['tomatotomato', 'tomato tomato'] +borkborkborkborkborkbork +['borkbork borkborkborkbork', 'borkborkbork borkborkbork', 'borkborkborkborkbork bork'] tomatotomatotomato -['tomatotomatotomato', 'tomato tomatotomato', 'tomatotomato tomato'] +['tomato tomatotomato', 'tomatotomato tomato', 'tomato tomato tomato'] endstart ['end start', 'start'] endend ['end end', 'end'] startstart ['start start'] +wordend +['word end', 'wordword', 'word'] wordstart ['word start', 'bork start'] -startwordwordend -['startwordword end', 'startwordword', 'start wordword end'] +startwordwordwordwordend +['startwordwordwordword end', 'startwordwordwordword', 'start wordwordwordword end'] borkpreborkpreborkbork -['bork preborkpreborkbork', 'borkpreborkprebork bork', 'borkprebork preborkbork'] +['borkpreborkprebork bork', 'borkprebork preborkbork', 'bork preborkpreborkbork'] diff --git a/src/version.h b/src/version.h --- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 22)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 22, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 23)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 23, compiled "