changeset 491:21c3634c2113 v7.0134

updated for version 7.0134
author vimboss
date Mon, 22 Aug 2005 22:59:46 +0000
parents 4321aae7e769
children 81c06952fb1d
files runtime/doc/spell.txt runtime/doc/tags runtime/doc/todo.txt src/Makefile src/eval.c src/testdir/test58.in src/testdir/test58.ok src/version.h
diffstat 8 files changed, 90 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- 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:
--- 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*
--- 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.
--- 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
--- 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;
--- 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
 
--- 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']
--- 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 "