changeset 504:35cde31bdcbd

updated for version 7.0141
author vimboss
date Mon, 05 Sep 2005 22:11:52 +0000
parents c9ec7077a195
children 7e6d264ec0a2
files runtime/doc/eval.txt runtime/doc/spell.txt runtime/doc/tags runtime/ftplugin/verilog.vim runtime/spell/ru/main.aap runtime/spell/ru/ru_RU.diff runtime/spell/ru/ru_YO.diff src/globals.h src/proto/normal.pro src/screen.c src/search.c src/version.h
diffstat 12 files changed, 217 insertions(+), 168 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Aug 31
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Sep 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1607,6 +1607,7 @@ repeat( {expr}, {count})	String	repeat {
 resolve( {filename})		String	get filename a shortcut points to
 reverse( {list})		List	reverse {list} in-place
 search( {pattern} [, {flags}])	Number	search for {pattern}
+searchdecl({name} [, {global}]) Number  search for variable declaration
 searchpair( {start}, {middle}, {end} [, {flags} [, {skip}]])
 				Number	search for other end of start/end pair
 server2client( {clientid}, {string})
@@ -1622,7 +1623,7 @@ simplify( {filename})		String	simplify f
 sort( {list} [, {func}])	List	sort {list}, using {func} to compare
 soundfold( {word})		String	sound-fold {word}
 spellbadword()			String	badly spelled word at cursor
-spellsuggest({word} [, {max}])	List	spelling suggestions
+spellsuggest( {word} [, {max}])	List	spelling suggestions
 split( {expr} [, {pat} [, {keepempty}]])
 				List	make List from {pat} separated {expr}
 strftime( {format}[, {time}])	String	time in specified format
@@ -3709,6 +3710,18 @@ search({pattern} [, {flags}])				*search
 		    :  let n = n + 1
 		    :endwhile
 <
+
+searchdecl({name} [, {global}])				*searchdecl()*
+		Search for the declaration of {name}.  Without {global} or
+		with a zero {global} argument this works like |gd|.  With a
+		non-zero {global} argument it works like |gD|.
+		Moves the cursor to the found match.
+		Returns zero for success, non-zero for failure.
+		Example: >
+			if searchdecl('myvar') == 0
+			   echo getline('.')
+			endif
+<
 							*searchpair()*
 searchpair({start}, {middle}, {end} [, {flags} [, {skip}]])
 		Search for the match of a nested start-end pair.  This can be
@@ -4668,7 +4681,8 @@ builtin functions.  To prevent from usin
 avoid obvious, short names.  A good habit is to start the function name with
 the name of the script, e.g., "HTMLcolor()".
 
-It's also possible to use curly braces, see |curly-braces-names|.
+It's also possible to use curly braces, see |curly-braces-names|.  And the
+|autoload| facility is useful to define a function only when it's called.
 
 							*local-function*
 A function local to a script must start with "s:".  A local script function
@@ -4684,6 +4698,10 @@ instead of "s:" when the mapping is expa
 			{name} can also be a Dictionary entry that is a
 			Funcref: >
 				:function dict.init
+
+:fu[nction] /{pattern}	List functions with a name matching {pattern}.
+			Example that lists all functions ending with "File": >
+				:function /File$
 <
 							*:function-verbose*
 When 'verbose' is non-zero, listing a function will also display where it was
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -218,6 +218,12 @@ Specific exception: For German these spe
 	de_at		Austria
 	de_ch		Switzerland
 
+							*spell-russian*
+Specific exception: For Russian these special regions are used:
+	ru		all Russian words accepted
+	ru_ru		"IE" letter spelling
+	ru_yo		"YO" letter spelling
+
 							*spell-yiddish*
 Yiddish requires using "utf-8" encoding, because of the special characters
 used.  If you are using latin1 Vim will use transliterated (romanized) Yiddish
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -5291,7 +5291,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*
@@ -6457,6 +6456,7 @@ spell-midword	spell.txt	/*spell-midword*
 spell-mkspell	spell.txt	/*spell-mkspell*
 spell-quickstart	spell.txt	/*spell-quickstart*
 spell-remarks	spell.txt	/*spell-remarks*
+spell-russian	spell.txt	/*spell-russian*
 spell-syntax	spell.txt	/*spell-syntax*
 spell-wordlist-format	spell.txt	/*spell-wordlist-format*
 spell-yiddish	spell.txt	/*spell-yiddish*
--- a/runtime/ftplugin/verilog.vim
+++ b/runtime/ftplugin/verilog.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Verilog HDL
 " Maintainer:	Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
-" Last Change:	Wed Oct 31 16:16:19 CST 2001
+" Last Change:	Mon Sep  5 11:05:54 CST 2005
 " URL:		http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
 
 " Only do this when not done yet for this buffer
@@ -12,6 +12,10 @@ endif
 " Don't load another plugin for this buffer
 let b:did_ftplugin = 1
 
+" Undo the plugin effect
+let b:undo_ftplugin = "setlocal fo< com< tw<"
+    \ . "| unlet b:browsefilter b:match_ignorecase b:match_words"
+
 " Set 'formatoptions' to break comment lines but not other lines,
 " and insert the comment leader when hitting <CR> or using "o".
 setlocal fo-=t fo+=croqlm1
@@ -20,7 +24,9 @@ setlocal fo-=t fo+=croqlm1
 setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
 
 " Format comments to be up to 78 characters long
-setlocal tw=75
+if &textwidth == 0 
+  setlocal tw=78
+endif
 
 set cpo-=C
 
--- a/runtime/spell/ru/main.aap
+++ b/runtime/spell/ru/main.aap
@@ -6,7 +6,7 @@
 @else:
     :progsearch VIM vim
 
-REGIONS = RU IE YO
+REGIONS = RU YO
 SPELLDIR = ..
 FILES    = ru_$*(REGIONS).aff ru_$*(REGIONS).dic
 
@@ -14,21 +14,18 @@ all: $SPELLDIR/ru.koi8-r.spl $SPELLDIR/r
         $SPELLDIR/ru.cp1251.spl ../README_ru.txt
 
 $SPELLDIR/ru.koi8-r.spl : $FILES
-        :sys env LANG=ru_RU.KOI8-R $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_IE ru_YO" -c q
+        :sys env LANG=ru_RU.KOI8-R $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_YO" -c q
 
 $SPELLDIR/ru.utf-8.spl : $FILES
-        :sys env LANG=ru_RU.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_IE ru_YO" -c q
+        :sys env LANG=ru_RU.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_YO" -c q
 
 $SPELLDIR/ru.cp1251.spl : $FILES
-        :sys env LANG=ru_RU.CP1251 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_IE ru_YO" -c q
+        :sys env LANG=ru_RU.CP1251 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_YO" -c q
 
 ../README_ru.txt: README_ru_$*(REGIONS).txt
         :print ru_RU >! $target
         :cat README_ru_RU.txt >> $target
         :print =================================================== >>$target
-        :print ru_IE >> $target
-        :cat README_ru_IE.txt >> $target
-        :print =================================================== >>$target
         :print ru_YO >> $target
         :cat README_ru_YO.txt >> $target
 
@@ -36,7 +33,7 @@ all: $SPELLDIR/ru.koi8-r.spl $SPELLDIR/r
 # Fetching the files from OpenOffice.org.
 #
 OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
-:attr {fetch = $OODIR/%file%} ru_RU.zip ru_RU_ye.zip ru_RU_yo.zip
+:attr {fetch = $OODIR/%file%} ru_RU.zip ru_RU_yo.zip
 
 # The files don't depend on the .zip file so that we can delete it.
 # Only download the zip file if the targets don't exist.
@@ -53,21 +50,6 @@ ru_RU.aff ru_RU.dic: {buildcheck=}
         @if os.path.exists('ru_RU.diff'):
             :sys patch <ru_RU.diff
 
-ru_IE.aff ru_IE.dic: {buildcheck=}
-        :assertpkg unzip
-        :fetch ru_RU_ye.zip
-        :sys unzip ru_RU_ye.zip
-        :delete ru_RU_ye.zip
-        :move ru_RU_ie.aff ru_IE.aff
-        :move ru_RU_ie.dic ru_IE.dic
-        :move README_ru_RU_ie.txt README_ru_IE.txt
-        @if not os.path.exists('ru_IE.orig.aff'):
-            :copy ru_IE.aff ru_IE.orig.aff
-        @if not os.path.exists('ru_IE.orig.dic'):
-            :copy ru_IE.dic ru_IE.orig.dic
-        @if os.path.exists('ru_IE.diff'):
-            :sys patch <ru_IE.diff
-
 ru_YO.aff ru_YO.dic: {buildcheck=}
         :assertpkg unzip
         :fetch ru_RU_yo.zip
@@ -91,8 +73,6 @@ diff:
         :assertpkg diff
         :sys {force} diff -a -C 1 ru_RU.orig.aff ru_RU.aff >ru_RU.diff
         :sys {force} diff -a -C 1 ru_RU.orig.dic ru_RU.dic >>ru_RU.diff
-        :sys {force} diff -a -C 1 ru_IE.orig.aff ru_IE.aff >ru_IE.diff
-        :sys {force} diff -a -C 1 ru_IE.orig.dic ru_IE.dic >>ru_IE.diff
         :sys {force} diff -a -C 1 ru_YO.orig.aff ru_YO.aff >ru_YO.diff
         :sys {force} diff -a -C 1 ru_YO.orig.dic ru_YO.dic >>ru_YO.diff
 
--- a/runtime/spell/ru/ru_RU.diff
+++ b/runtime/spell/ru/ru_RU.diff
@@ -1,5 +1,21 @@
-*** ru_RU.orig.dic	Sat Aug 27 22:54:55 2005
---- ru_RU.dic	Sun Aug 28 11:46:34 2005
+*** ru_RU.orig.aff	Sun Aug 28 21:12:27 2005
+--- ru_RU.aff	Sun Sep  4 17:21:40 2005
+***************
+*** 3,4 ****
+--- 3,13 ----
+  
++ FOL ÁÂ×ÇÄÅ£ÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝØÙßÜÀÑ
++ LOW ÁÂ×ÇÄÅ£ÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝØÙßÜÀÑ
++ UPP áâ÷çäå³öúéêëìíîïðòóôõæèãþûýøùÿüàñ
++ 
++ SOFOFROM ÁÂ×ÇÄÅ£ÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝØÙßÜÀÑáâ÷çäå³öúéêëìíîïðòóôõæèãþûýøùÿüàñ
++ SOFOTO   ÅÂ×ÇÄÅÅÖÚÅÊËÌÎÎÅÐÒÓÔÅÆÈÃÞÛÛØÅ'ÅÅÅåâ÷çäååöúåêëìîîåðòóôåæèãþûûøå'ååå
++ 
++ MIDWORD '-
++ 
+  SFX L Y 52
+*** ru_RU.orig.dic	Sun Aug 28 21:12:27 2005
+--- ru_RU.dic	Sun Sep  4 17:23:27 2005
 ***************
 *** 8767,8769 ****
   ÂÌÅËÌÏÓÔØ/F
@@ -13,11 +29,15 @@
   ÒÁÚÕÂÅÄÉ×ÛÉÊ/A
 --- 98085,98086 ----
 ***************
-*** 115007,115009 ****
-  ÔÏÌËÉ/B
-- ÔÏÌËÉ/O
+*** 115006,115009 ****
+  ÔÏÌËÁÀÝÉÊÓÑ/A
+! ÔÏÌËÉ/B
+! ÔÏÌËÉ/O
   ÔÏÌËÌÁ/L
---- 115005,115006 ----
+--- 115004,115006 ----
+  ÔÏÌËÁÀÝÉÊÓÑ/A
+! ÔÏÌËÉ/BO
+  ÔÏÌËÌÁ/L
 ***************
 *** 119209,119211 ****
   ÕÎÉÖÅÎÎÙÊ/ASX
--- a/runtime/spell/ru/ru_YO.diff
+++ b/runtime/spell/ru/ru_YO.diff
@@ -1,5 +1,21 @@
-*** ru_YO.orig.dic	Sat Aug 27 22:54:55 2005
---- ru_YO.dic	Sun Aug 28 11:46:58 2005
+*** ru_YO.orig.aff	Sun Aug 28 21:12:35 2005
+--- ru_YO.aff	Sun Sep  4 17:23:51 2005
+***************
+*** 3,4 ****
+--- 3,13 ----
+  
++ FOL ÁÂ×ÇÄÅ£ÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝØÙßÜÀÑ
++ LOW ÁÂ×ÇÄÅ£ÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝØÙßÜÀÑ
++ UPP áâ÷çäå³öúéêëìíîïðòóôõæèãþûýøùÿüàñ
++ 
++ SOFOFROM ÁÂ×ÇÄÅ£ÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝØÙßÜÀÑáâ÷çäå³öúéêëìíîïðòóôõæèãþûýøùÿüàñ
++ SOFOTO   ÅÂ×ÇÄÅÅÖÚÅÊËÌÎÎÅÐÒÓÔÅÆÈÃÞÛÛØÅ'ÅÅÅåâ÷çäååöúåêëìîîåðòóôåæèãþûûøå'ååå
++ 
++ MIDWORD '-
++ 
+  SFX L Y 56
+*** ru_YO.orig.dic	Sun Aug 28 21:12:35 2005
+--- ru_YO.dic	Sun Sep  4 17:24:26 2005
 ***************
 *** 86471,86473 ****
   ÐÏÞÔ£ÎÎÙÊ/AS
@@ -7,8 +23,12 @@
   ÐÏÞÔÉ/B
 --- 86471,86472 ----
 ***************
-*** 115246,115248 ****
-  ÔÏÌËÉ/B
-- ÔÏÌËÉ/O
+*** 115245,115248 ****
+  ÔÏÌËÁÀÝÉÊÓÑ/A
+! ÔÏÌËÉ/B
+! ÔÏÌËÉ/O
   ÔÏÌËÌÁ/L
---- 115245,115246 ----
+--- 115244,115246 ----
+  ÔÏÌËÁÀÝÉÊÓÑ/A
+! ÔÏÌËÉ/BO
+  ÔÏÌËÌÁ/L
--- a/src/globals.h
+++ b/src/globals.h
@@ -152,7 +152,7 @@ EXTERN int	info_message INIT(= FALSE); /
 #ifdef FEAT_EVAL
 EXTERN int	emsg_skip INIT(= 0);	    /* don't display errors for
 					       expression that is skipped */
-EXTERN int	emsg_severe INIT(=FALSE);   /* use message of next of several
+EXTERN int	emsg_severe INIT(= FALSE);   /* use message of next of several
 					       emsg() calls for throw */
 EXTERN int	did_endif INIT(= FALSE);    /* just had ":endif" */
 #endif
@@ -1242,187 +1242,190 @@ EXTERN int usingNetbeans INIT(= 0);	/* s
  * The error messages that can be shared are included here.
  * Excluded are errors that are only used once and debugging messages.
  */
-EXTERN char_u e_abort[]		INIT(=N_("E470: Command aborted"));
-EXTERN char_u e_argreq[]	INIT(=N_("E471: Argument required"));
-EXTERN char_u e_backslash[]	INIT(=N_("E10: \\ should be followed by /, ? or &"));
+EXTERN char_u e_abort[]		INIT(= N_("E470: Command aborted"));
+EXTERN char_u e_argreq[]	INIT(= N_("E471: Argument required"));
+EXTERN char_u e_backslash[]	INIT(= N_("E10: \\ should be followed by /, ? or &"));
 #ifdef FEAT_CMDWIN
-EXTERN char_u e_cmdwin[]	INIT(=N_("E11: Invalid in command-line window; <CR> executes, CTRL-C quits"));
+EXTERN char_u e_cmdwin[]	INIT(= N_("E11: Invalid in command-line window; <CR> executes, CTRL-C quits"));
 #endif
-EXTERN char_u e_curdir[]	INIT(=N_("E12: Command not allowed from exrc/vimrc in current dir or tag search"));
+EXTERN char_u e_curdir[]	INIT(= N_("E12: Command not allowed from exrc/vimrc in current dir or tag search"));
 #ifdef FEAT_EVAL
-EXTERN char_u e_endif[]		INIT(=N_("E171: Missing :endif"));
-EXTERN char_u e_endtry[]	INIT(=N_("E600: Missing :endtry"));
-EXTERN char_u e_endwhile[]	INIT(=N_("E170: Missing :endwhile"));
-EXTERN char_u e_endfor[]	INIT(=N_("E170: Missing :endfor"));
-EXTERN char_u e_while[]		INIT(=N_("E588: :endwhile without :while"));
-EXTERN char_u e_for[]		INIT(=N_("E588: :endfor without :for"));
+EXTERN char_u e_endif[]		INIT(= N_("E171: Missing :endif"));
+EXTERN char_u e_endtry[]	INIT(= N_("E600: Missing :endtry"));
+EXTERN char_u e_endwhile[]	INIT(= N_("E170: Missing :endwhile"));
+EXTERN char_u e_endfor[]	INIT(= N_("E170: Missing :endfor"));
+EXTERN char_u e_while[]		INIT(= N_("E588: :endwhile without :while"));
+EXTERN char_u e_for[]		INIT(= N_("E588: :endfor without :for"));
 #endif
-EXTERN char_u e_exists[]	INIT(=N_("E13: File exists (add ! to override)"));
-EXTERN char_u e_failed[]	INIT(=N_("E472: Command failed"));
+EXTERN char_u e_exists[]	INIT(= N_("E13: File exists (add ! to override)"));
+EXTERN char_u e_failed[]	INIT(= N_("E472: Command failed"));
 #if defined(FEAT_GUI) && defined(FEAT_XFONTSET)
-EXTERN char_u e_fontset[]	INIT(=N_("E234: Unknown fontset: %s"));
+EXTERN char_u e_fontset[]	INIT(= N_("E234: Unknown fontset: %s"));
 #endif
 #if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(MACOS) \
 	|| defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MSWIN)
-EXTERN char_u e_font[]		INIT(=N_("E235: Unknown font: %s"));
+EXTERN char_u e_font[]		INIT(= N_("E235: Unknown font: %s"));
 #endif
 #if (defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK)) && !defined(HAVE_GTK2)
-EXTERN char_u e_fontwidth[]	INIT(=N_("E236: Font \"%s\" is not fixed-width"));
+EXTERN char_u e_fontwidth[]	INIT(= N_("E236: Font \"%s\" is not fixed-width"));
 #endif
-EXTERN char_u e_internal[]	INIT(=N_("E473: Internal error"));
-EXTERN char_u e_interr[]	INIT(=N_("Interrupted"));
-EXTERN char_u e_invaddr[]	INIT(=N_("E14: Invalid address"));
-EXTERN char_u e_invarg[]	INIT(=N_("E474: Invalid argument"));
-EXTERN char_u e_invarg2[]	INIT(=N_("E475: Invalid argument: %s"));
+EXTERN char_u e_internal[]	INIT(= N_("E473: Internal error"));
+EXTERN char_u e_interr[]	INIT(= N_("Interrupted"));
+EXTERN char_u e_invaddr[]	INIT(= N_("E14: Invalid address"));
+EXTERN char_u e_invarg[]	INIT(= N_("E474: Invalid argument"));
+EXTERN char_u e_invarg2[]	INIT(= N_("E475: Invalid argument: %s"));
 #ifdef FEAT_EVAL
-EXTERN char_u e_invexpr2[]	INIT(=N_("E15: Invalid expression: %s"));
+EXTERN char_u e_invexpr2[]	INIT(= N_("E15: Invalid expression: %s"));
 #endif
-EXTERN char_u e_invrange[]	INIT(=N_("E16: Invalid range"));
-EXTERN char_u e_invcmd[]	INIT(=N_("E476: Invalid command"));
+EXTERN char_u e_invrange[]	INIT(= N_("E16: Invalid range"));
+EXTERN char_u e_invcmd[]	INIT(= N_("E476: Invalid command"));
 #if defined(UNIX) || (defined(FEAT_SYN_HL) && defined(FEAT_MBYTE))
-EXTERN char_u e_isadir2[]	INIT(=N_("E17: \"%s\" is a directory"));
+EXTERN char_u e_isadir2[]	INIT(= N_("E17: \"%s\" is a directory"));
 #endif
 #ifdef FEAT_LIBCALL
-EXTERN char_u e_libcall[]	INIT(=N_("E364: Library call failed for \"%s()\""));
+EXTERN char_u e_libcall[]	INIT(= N_("E364: Library call failed for \"%s()\""));
 #endif
 #if defined(DYNAMIC_PERL) || defined(DYNAMIC_PYTHON) || defined(DYNAMIC_RUBY) \
 	|| defined(DYNAMIC_TCL) || defined(DYNAMIC_ICONV) \
 	|| defined(DYNAMIC_GETTEXT) || defined(DYNAMIC_MZSCHEME)
-EXTERN char_u e_loadlib[]	INIT(=N_("E370: Could not load library %s"));
-EXTERN char_u e_loadfunc[]	INIT(=N_("E448: Could not load library function %s"));
+EXTERN char_u e_loadlib[]	INIT(= N_("E370: Could not load library %s"));
+EXTERN char_u e_loadfunc[]	INIT(= N_("E448: Could not load library function %s"));
 #endif
-EXTERN char_u e_markinval[]	INIT(=N_("E19: Mark has invalid line number"));
-EXTERN char_u e_marknotset[]	INIT(=N_("E20: Mark not set"));
-EXTERN char_u e_modifiable[]	INIT(=N_("E21: Cannot make changes, 'modifiable' is off"));
-EXTERN char_u e_nesting[]	INIT(=N_("E22: Scripts nested too deep"));
-EXTERN char_u e_noalt[]		INIT(=N_("E23: No alternate file"));
-EXTERN char_u e_noabbr[]	INIT(=N_("E24: No such abbreviation"));
-EXTERN char_u e_nobang[]	INIT(=N_("E477: No ! allowed"));
+EXTERN char_u e_markinval[]	INIT(= N_("E19: Mark has invalid line number"));
+EXTERN char_u e_marknotset[]	INIT(= N_("E20: Mark not set"));
+EXTERN char_u e_modifiable[]	INIT(= N_("E21: Cannot make changes, 'modifiable' is off"));
+EXTERN char_u e_nesting[]	INIT(= N_("E22: Scripts nested too deep"));
+EXTERN char_u e_noalt[]		INIT(= N_("E23: No alternate file"));
+EXTERN char_u e_noabbr[]	INIT(= N_("E24: No such abbreviation"));
+EXTERN char_u e_nobang[]	INIT(= N_("E477: No ! allowed"));
 #ifndef FEAT_GUI
-EXTERN char_u e_nogvim[]	INIT(=N_("E25: GUI cannot be used: Not enabled at compile time"));
+EXTERN char_u e_nogvim[]	INIT(= N_("E25: GUI cannot be used: Not enabled at compile time"));
 #endif
 #ifndef FEAT_RIGHTLEFT
-EXTERN char_u e_nohebrew[]	INIT(=N_("E26: Hebrew cannot be used: Not enabled at compile time\n"));
+EXTERN char_u e_nohebrew[]	INIT(= N_("E26: Hebrew cannot be used: Not enabled at compile time\n"));
 #endif
 #ifndef FEAT_FKMAP
-EXTERN char_u e_nofarsi[]	INIT(=N_("E27: Farsi cannot be used: Not enabled at compile time\n"));
+EXTERN char_u e_nofarsi[]	INIT(= N_("E27: Farsi cannot be used: Not enabled at compile time\n"));
 #endif
 #ifndef FEAT_ARABIC
-EXTERN char_u e_noarabic[]	INIT(=N_("E800: Arabic cannot be used: Not enabled at compile time\n"));
+EXTERN char_u e_noarabic[]	INIT(= N_("E800: Arabic cannot be used: Not enabled at compile time\n"));
 #endif
 #if defined(FEAT_SEARCH_EXTRA) || defined(FEAT_SYN_HL)
-EXTERN char_u e_nogroup[]	INIT(=N_("E28: No such highlight group name: %s"));
+EXTERN char_u e_nogroup[]	INIT(= N_("E28: No such highlight group name: %s"));
 #endif
-EXTERN char_u e_noinstext[]	INIT(=N_("E29: No inserted text yet"));
-EXTERN char_u e_nolastcmd[]	INIT(=N_("E30: No previous command line"));
-EXTERN char_u e_nomap[]		INIT(=N_("E31: No such mapping"));
-EXTERN char_u e_nomatch[]	INIT(=N_("E479: No match"));
-EXTERN char_u e_nomatch2[]	INIT(=N_("E480: No match: %s"));
-EXTERN char_u e_noname[]	INIT(=N_("E32: No file name"));
-EXTERN char_u e_nopresub[]	INIT(=N_("E33: No previous substitute regular expression"));
-EXTERN char_u e_noprev[]	INIT(=N_("E34: No previous command"));
-EXTERN char_u e_noprevre[]	INIT(=N_("E35: No previous regular expression"));
-EXTERN char_u e_norange[]	INIT(=N_("E481: No range allowed"));
+EXTERN char_u e_noinstext[]	INIT(= N_("E29: No inserted text yet"));
+EXTERN char_u e_nolastcmd[]	INIT(= N_("E30: No previous command line"));
+EXTERN char_u e_nomap[]		INIT(= N_("E31: No such mapping"));
+EXTERN char_u e_nomatch[]	INIT(= N_("E479: No match"));
+EXTERN char_u e_nomatch2[]	INIT(= N_("E480: No match: %s"));
+EXTERN char_u e_noname[]	INIT(= N_("E32: No file name"));
+EXTERN char_u e_nopresub[]	INIT(= N_("E33: No previous substitute regular expression"));
+EXTERN char_u e_noprev[]	INIT(= N_("E34: No previous command"));
+EXTERN char_u e_noprevre[]	INIT(= N_("E35: No previous regular expression"));
+EXTERN char_u e_norange[]	INIT(= N_("E481: No range allowed"));
 #ifdef FEAT_WINDOWS
-EXTERN char_u e_noroom[]	INIT(=N_("E36: Not enough room"));
+EXTERN char_u e_noroom[]	INIT(= N_("E36: Not enough room"));
 #endif
 #ifdef FEAT_CLIENTSERVER
-EXTERN char_u e_noserver[]	INIT(=N_("E247: no registered server named \"%s\""));
+EXTERN char_u e_noserver[]	INIT(= N_("E247: no registered server named \"%s\""));
 #endif
-EXTERN char_u e_notcreate[]	INIT(=N_("E482: Can't create file %s"));
-EXTERN char_u e_notmp[]		INIT(=N_("E483: Can't get temp file name"));
-EXTERN char_u e_notopen[]	INIT(=N_("E484: Can't open file %s"));
-EXTERN char_u e_notread[]	INIT(=N_("E485: Can't read file %s"));
-EXTERN char_u e_nowrtmsg[]	INIT(=N_("E37: No write since last change (add ! to override)"));
-EXTERN char_u e_null[]		INIT(=N_("E38: Null argument"));
+EXTERN char_u e_notcreate[]	INIT(= N_("E482: Can't create file %s"));
+EXTERN char_u e_notmp[]		INIT(= N_("E483: Can't get temp file name"));
+EXTERN char_u e_notopen[]	INIT(= N_("E484: Can't open file %s"));
+EXTERN char_u e_notread[]	INIT(= N_("E485: Can't read file %s"));
+EXTERN char_u e_nowrtmsg[]	INIT(= N_("E37: No write since last change (add ! to override)"));
+EXTERN char_u e_null[]		INIT(= N_("E38: Null argument"));
 #ifdef FEAT_DIGRAPHS
-EXTERN char_u e_number_exp[]	INIT(=N_("E39: Number expected"));
+EXTERN char_u e_number_exp[]	INIT(= N_("E39: Number expected"));
 #endif
 #ifdef FEAT_QUICKFIX
-EXTERN char_u e_openerrf[]	INIT(=N_("E40: Can't open errorfile %s"));
+EXTERN char_u e_openerrf[]	INIT(= N_("E40: Can't open errorfile %s"));
 #endif
 #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
-EXTERN char_u e_opendisp[]	INIT(=N_("E233: cannot open display"));
+EXTERN char_u e_opendisp[]	INIT(= N_("E233: cannot open display"));
 #endif
-EXTERN char_u e_outofmem[]	INIT(=N_("E41: Out of memory!"));
+EXTERN char_u e_outofmem[]	INIT(= N_("E41: Out of memory!"));
 #ifdef FEAT_INS_EXPAND
-EXTERN char_u e_patnotf[]	INIT(=N_("Pattern not found"));
+EXTERN char_u e_patnotf[]	INIT(= N_("Pattern not found"));
 #endif
-EXTERN char_u e_patnotf2[]	INIT(=N_("E486: Pattern not found: %s"));
-EXTERN char_u e_positive[]	INIT(=N_("E487: Argument must be positive"));
+EXTERN char_u e_patnotf2[]	INIT(= N_("E486: Pattern not found: %s"));
+EXTERN char_u e_positive[]	INIT(= N_("E487: Argument must be positive"));
 #if defined(UNIX) || defined(FEAT_SESSION)
-EXTERN char_u e_prev_dir[]	INIT(=N_("E459: Cannot go back to previous directory"));
+EXTERN char_u e_prev_dir[]	INIT(= N_("E459: Cannot go back to previous directory"));
 #endif
 
 #ifdef FEAT_QUICKFIX
-EXTERN char_u e_quickfix[]	INIT(=N_("E42: No Errors"));
+EXTERN char_u e_quickfix[]	INIT(= N_("E42: No Errors"));
 #endif
-EXTERN char_u e_re_damg[]	INIT(=N_("E43: Damaged match string"));
-EXTERN char_u e_re_corr[]	INIT(=N_("E44: Corrupted regexp program"));
-EXTERN char_u e_readonly[]	INIT(=N_("E45: 'readonly' option is set (add ! to override)"));
+EXTERN char_u e_re_damg[]	INIT(= N_("E43: Damaged match string"));
+EXTERN char_u e_re_corr[]	INIT(= N_("E44: Corrupted regexp program"));
+EXTERN char_u e_readonly[]	INIT(= N_("E45: 'readonly' option is set (add ! to override)"));
 #ifdef FEAT_EVAL
-EXTERN char_u e_readonlyvar[]	INIT(=N_("E46: Cannot change read-only variable \"%s\""));
-EXTERN char_u e_readonlysbx[]	INIT(=N_("E46: Cannot set variable in the sandbox: \"%s\""));
+EXTERN char_u e_readonlyvar[]	INIT(= N_("E46: Cannot change read-only variable \"%s\""));
+EXTERN char_u e_readonlysbx[]	INIT(= N_("E46: Cannot set variable in the sandbox: \"%s\""));
 #endif
 #ifdef FEAT_QUICKFIX
-EXTERN char_u e_readerrf[]	INIT(=N_("E47: Error while reading errorfile"));
+EXTERN char_u e_readerrf[]	INIT(= N_("E47: Error while reading errorfile"));
 #endif
 #ifdef HAVE_SANDBOX
-EXTERN char_u e_sandbox[]	INIT(=N_("E48: Not allowed in sandbox"));
+EXTERN char_u e_sandbox[]	INIT(= N_("E48: Not allowed in sandbox"));
 #endif
-EXTERN char_u e_secure[]	INIT(=N_("E523: Not allowed here"));
+EXTERN char_u e_secure[]	INIT(= N_("E523: Not allowed here"));
 #if defined(AMIGA) || defined(MACOS) || defined(MSWIN) || defined(RISCOS) \
 	|| defined(UNIX) || defined(VMS) || defined(OS2)
-EXTERN char_u e_screenmode[]	INIT(=N_("E359: Screen mode setting not supported"));
+EXTERN char_u e_screenmode[]	INIT(= N_("E359: Screen mode setting not supported"));
 #endif
-EXTERN char_u e_scroll[]	INIT(=N_("E49: Invalid scroll size"));
-EXTERN char_u e_shellempty[]	INIT(=N_("E91: 'shell' option is empty"));
+EXTERN char_u e_scroll[]	INIT(= N_("E49: Invalid scroll size"));
+EXTERN char_u e_shellempty[]	INIT(= N_("E91: 'shell' option is empty"));
 #if defined(FEAT_SIGN_ICONS) && !defined(HAVE_GTK2)
-EXTERN char_u e_signdata[]	INIT(=N_("E255: Couldn't read in sign data!"));
+EXTERN char_u e_signdata[]	INIT(= N_("E255: Couldn't read in sign data!"));
 #endif
-EXTERN char_u e_swapclose[]	INIT(=N_("E72: Close error on swap file"));
-EXTERN char_u e_tagstack[]	INIT(=N_("E73: tag stack empty"));
-EXTERN char_u e_toocompl[]	INIT(=N_("E74: Command too complex"));
-EXTERN char_u e_longname[]	INIT(=N_("E75: Name too long"));
-EXTERN char_u e_toomsbra[]	INIT(=N_("E76: Too many ["));
-EXTERN char_u e_toomany[]	INIT(=N_("E77: Too many file names"));
-EXTERN char_u e_trailing[]	INIT(=N_("E488: Trailing characters"));
-EXTERN char_u e_umark[]		INIT(=N_("E78: Unknown mark"));
-EXTERN char_u e_wildexpand[]	INIT(=N_("E79: Cannot expand wildcards"));
+EXTERN char_u e_swapclose[]	INIT(= N_("E72: Close error on swap file"));
+EXTERN char_u e_tagstack[]	INIT(= N_("E73: tag stack empty"));
+EXTERN char_u e_toocompl[]	INIT(= N_("E74: Command too complex"));
+EXTERN char_u e_longname[]	INIT(= N_("E75: Name too long"));
+EXTERN char_u e_toomsbra[]	INIT(= N_("E76: Too many ["));
+EXTERN char_u e_toomany[]	INIT(= N_("E77: Too many file names"));
+EXTERN char_u e_trailing[]	INIT(= N_("E488: Trailing characters"));
+EXTERN char_u e_umark[]		INIT(= N_("E78: Unknown mark"));
+EXTERN char_u e_wildexpand[]	INIT(= N_("E79: Cannot expand wildcards"));
 #ifdef FEAT_WINDOWS
-EXTERN char_u e_winheight[]	INIT(=N_("E591: 'winheight' cannot be smaller than 'winminheight'"));
+EXTERN char_u e_winheight[]	INIT(= N_("E591: 'winheight' cannot be smaller than 'winminheight'"));
 # ifdef FEAT_VERTSPLIT
-EXTERN char_u e_winwidth[]	INIT(=N_("E592: 'winwidth' cannot be smaller than 'winminwidth'"));
+EXTERN char_u e_winwidth[]	INIT(= N_("E592: 'winwidth' cannot be smaller than 'winminwidth'"));
 # endif
 #endif
-EXTERN char_u e_write[]		INIT(=N_("E80: Error while writing"));
-EXTERN char_u e_zerocount[]	INIT(=N_("Zero count"));
+EXTERN char_u e_write[]		INIT(= N_("E80: Error while writing"));
+EXTERN char_u e_zerocount[]	INIT(= N_("Zero count"));
 #ifdef FEAT_EVAL
-EXTERN char_u e_usingsid[]	INIT(=N_("E81: Using <SID> not in a script context"));
+EXTERN char_u e_usingsid[]	INIT(= N_("E81: Using <SID> not in a script context"));
 #endif
 #ifdef FEAT_CLIENTSERVER
-EXTERN char_u e_invexprmsg[]	INIT(=N_("E449: Invalid expression received"));
+EXTERN char_u e_invexprmsg[]	INIT(= N_("E449: Invalid expression received"));
 #endif
 #ifdef FEAT_NETBEANS_INTG
-EXTERN char_u e_guarded[]	INIT(=N_("E463: Region is guarded, cannot modify"));
-EXTERN char_u e_nbreadonly[]	INIT(=N_("E744: NetBeans does not allow changes in read-only files"));
+EXTERN char_u e_guarded[]	INIT(= N_("E463: Region is guarded, cannot modify"));
+EXTERN char_u e_nbreadonly[]	INIT(= N_("E744: NetBeans does not allow changes in read-only files"));
 #endif
 #if defined(FEAT_INS_EXPAND) || defined(FEAT_EVAL) || defined(FEAT_SYN_HL) \
 	    || defined(PROTO)
-EXTERN char_u e_intern2[]	INIT(=N_("E685: Internal error: %s"));
+EXTERN char_u e_intern2[]	INIT(= N_("E685: Internal error: %s"));
 #endif
-EXTERN char_u e_maxmempat[]	INIT(=N_("E363: pattern uses more memory than 'maxmempattern'"));
-EXTERN char_u e_emptybuf[]	INIT(=N_("E749: empty buffer"));
+EXTERN char_u e_maxmempat[]	INIT(= N_("E363: pattern uses more memory than 'maxmempattern'"));
+EXTERN char_u e_emptybuf[]	INIT(= N_("E749: empty buffer"));
 
 #ifdef FEAT_EX_EXTRA
-EXTERN char_u e_invalpat[]	INIT(=N_("E682: Invalid search pattern or delimiter"));
+EXTERN char_u e_invalpat[]	INIT(= N_("E682: Invalid search pattern or delimiter"));
 #endif
-EXTERN char_u e_bufloaded[]	INIT(=N_("E139: File is loaded in another buffer"));
+EXTERN char_u e_bufloaded[]	INIT(= N_("E139: File is loaded in another buffer"));
 
 #ifdef MACOS_X_UNIX
 EXTERN short disallow_gui	INIT(= FALSE);
 #endif
 
+EXTERN char top_bot_msg[] INIT(= N_("search hit TOP, continuing at BOTTOM"));
+EXTERN char bot_top_msg[] INIT(= N_("search hit BOTTOM, continuing at TOP"));
+
 /*
  * Comms. with the session manager (XSMP)
  */
--- a/src/proto/normal.pro
+++ b/src/proto/normal.pro
@@ -16,6 +16,7 @@ void push_showcmd __ARGS((void));
 void pop_showcmd __ARGS((void));
 void do_check_scrollbind __ARGS((int check));
 void check_scrollbind __ARGS((linenr_T topline_diff, long leftcol_diff));
+int find_decl __ARGS((char_u *ptr, int len, int locally, int searchflags));
 void scroll_redraw __ARGS((int up, long count));
 void do_nv_ident __ARGS((int c1, int c2));
 int get_visual_text __ARGS((cmdarg_T *cap, char_u **pp, int *lenp));
--- a/src/screen.c
+++ b/src/screen.c
@@ -3026,7 +3026,7 @@ win_line(wp, lnum, startrow, endrow)
     }
 #endif
 
-    off = (unsigned) (current_ScreenLine - ScreenLines);
+    off = (unsigned)(current_ScreenLine - ScreenLines);
     col = 0;
 #ifdef FEAT_RIGHTLEFT
     if (wp->w_p_rl)
@@ -3423,13 +3423,16 @@ win_line(wp, lnum, startrow, endrow)
 			else if (mb_l > 1)
 			    mb_c = (c << 8) + p_extra[1];
 		    }
+		    if (mb_l == 0)  /* at the NUL at end-of-line */
+			mb_l = 1;
+
 		    /* If a double-width char doesn't fit display a '>' in the
 		     * last column. */
-		    if (
+		    if ((
 # ifdef FEAT_RIGHTLEFT
 			    wp->w_p_rl ? (col <= 0) :
 # endif
-				    (col >= W_WIDTH(wp) - 1)
+				    (col >= W_WIDTH(wp) - 1))
 			    && (*mb_char2cells)(mb_c) == 2)
 		    {
 			c = '>';
--- a/src/search.c
+++ b/src/search.c
@@ -34,9 +34,6 @@ static void show_pat_in_path __ARGS((cha
 static void wvsp_one __ARGS((FILE *fp, int idx, char *s, int sc));
 #endif
 
-static char_u *top_bot_msg = (char_u *)N_("search hit TOP, continuing at BOTTOM");
-static char_u *bot_top_msg = (char_u *)N_("search hit BOTTOM, continuing at TOP");
-
 /*
  * This file contains various searching-related routines. These fall into
  * three groups:
@@ -854,17 +851,12 @@ searchit(win, buf, pos, dir, pat, count,
 	     * written.
 	     */
 	    if (dir == BACKWARD)    /* start second loop at the other end */
-	    {
 		lnum = buf->b_ml.ml_line_count;
-		if (!shortmess(SHM_SEARCH) && (options & SEARCH_MSG))
-		    give_warning((char_u *)_(top_bot_msg), TRUE);
-	    }
 	    else
-	    {
 		lnum = 1;
-		if (!shortmess(SHM_SEARCH) && (options & SEARCH_MSG))
-		    give_warning((char_u *)_(bot_top_msg), TRUE);
-	    }
+	    if (!shortmess(SHM_SEARCH) && (options & SEARCH_MSG))
+		give_warning((char_u *)_(dir == BACKWARD
+					  ? top_bot_msg : bot_top_msg), TRUE);
 	}
 	if (got_int || called_emsg || break_loop)
 	    break;
@@ -2519,12 +2511,12 @@ found:
  * Return TRUE if the next paragraph or section was found.
  */
     int
-findpar(oap, dir, count, what, both)
-    oparg_T	    *oap;
-    int		    dir;
-    long	    count;
-    int		    what;
-    int		    both;
+findpar(pincl, dir, count, what, both)
+    int		*pincl;	    /* Return: TRUE if last char is to be included */
+    int		dir;
+    long	count;
+    int		what;
+    int		both;
 {
     linenr_T	curr;
     int		did_skip;   /* TRUE after separating lines have been skipped */
@@ -2586,7 +2578,7 @@ findpar(oap, dir, count, what, both)
 	if ((curwin->w_cursor.col = (colnr_T)STRLEN(ml_get(curr))) != 0)
 	{
 	    --curwin->w_cursor.col;
-	    oap->inclusive = TRUE;
+	    *pincl = TRUE;
 	}
     }
     else
--- 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 Sep 1)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 1, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 5)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 5, compiled "