changeset 422:169f2a51b527

updated for version 7.0110
author vimboss
date Tue, 19 Jul 2005 22:17:30 +0000
parents 99cfede6fe5e
children e40d32d8d4e7
files runtime/doc/motion.txt runtime/doc/tags src/proto/eval.pro src/screen.c src/structs.h src/version.h
diffstat 6 files changed, 47 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.0aa.  Last change: 2005 Apr 04
+*motion.txt*    For Vim version 7.0aa.  Last change: 2005 Jul 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -595,6 +595,20 @@ i<			"inner <> block", select [count] <>
 			'>', excluding the '<' and '>'.
 			When used in Visual mode it is made characterwise.
 
+						*v_at* *at*
+at			"a tag block", select [count] tag blocks, from the
+			[count]'th unmatched "<aaa>" backwards to the matching
+			"</aaa>", including the "<aaa>" and "</aaa>".
+			See |tag-blocks| about the details.
+			When used in Visual mode it is made characterwise.
+
+						*v_it* *it*
+it			"inner tag block", select [count] tag blocks, from the
+			[count]'th unmatched "<aaa>" backwards to the matching
+			"</aaa>", excluding the "<aaa>" and "</aaa>".
+			See |tag-blocks| about the details.
+			When used in Visual mode it is made characterwise.
+
 a}							*v_a}* *a}* *a{*
 a{							*v_aB* *v_a{* *aB*
 aB			"a Block", select [count] Blocks, from "[count] [{" to
@@ -679,6 +693,25 @@ where on the object the cursor is.  For 
 deletes from the cursor position to the start of the next word, "daw" deletes
 the word under the cursor and the space after or before it.
 
+
+Tag blocks						*tag-blocks*
+
+For the "it" and "at" text objects an attempt is done to select blocks between
+matching tags for HTML and XML.  But since these are not completely compatible
+there are a few restrictions.
+
+The normal method is to select a <tag> until the matching </tag>.  For "at"
+the tags are included, for "it" they are excluded.  But when "it" is repeated
+the tags will be included (otherwise nothing would change).
+
+"<aaa/>" items are skipped.  Case is ignored, also for XML where case does
+matter.
+
+In HTML it is possible to have a tag like <br> or <meta ...> without a
+matching end tag.  These are ignored.
+
+The text objects are tolerant about mistakes.  Stray end tags are ignored.
+
 ==============================================================================
 7. Marks					*mark-motions* *E20* *E78*
 
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4177,6 +4177,7 @@ asmh8300-syntax	syntax.txt	/*asmh8300-sy
 asmh8300.vim	syntax.txt	/*asmh8300.vim*
 aspperl-syntax	syntax.txt	/*aspperl-syntax*
 aspvbs-syntax	syntax.txt	/*aspvbs-syntax*
+at	motion.txt	/*at*
 athena-intellimouse	gui.txt	/*athena-intellimouse*
 attr-list	syntax.txt	/*attr-list*
 author	intro.txt	/*author*
@@ -5429,6 +5430,7 @@ iquote	motion.txt	/*iquote*
 is	motion.txt	/*is*
 isdirectory()	eval.txt	/*isdirectory()*
 islocked()	eval.txt	/*islocked()*
+it	motion.txt	/*it*
 italic	syntax.txt	/*italic*
 items()	eval.txt	/*items()*
 iw	motion.txt	/*iw*
@@ -6550,6 +6552,7 @@ tag	tagsrch.txt	/*tag*
 tag-!	tagsrch.txt	/*tag-!*
 tag-any-white	tagsrch.txt	/*tag-any-white*
 tag-binary-search	tagsrch.txt	/*tag-binary-search*
+tag-blocks	motion.txt	/*tag-blocks*
 tag-commands	tagsrch.txt	/*tag-commands*
 tag-details	tagsrch.txt	/*tag-details*
 tag-highlight	syntax.txt	/*tag-highlight*
@@ -6828,6 +6831,7 @@ v_ab	motion.txt	/*v_ab*
 v_ap	motion.txt	/*v_ap*
 v_aquote	motion.txt	/*v_aquote*
 v_as	motion.txt	/*v_as*
+v_at	motion.txt	/*v_at*
 v_aw	motion.txt	/*v_aw*
 v_a{	motion.txt	/*v_a{*
 v_a}	motion.txt	/*v_a}*
@@ -6871,6 +6875,7 @@ v_ib	motion.txt	/*v_ib*
 v_ip	motion.txt	/*v_ip*
 v_iquote	motion.txt	/*v_iquote*
 v_is	motion.txt	/*v_is*
+v_it	motion.txt	/*v_it*
 v_iw	motion.txt	/*v_iw*
 v_i{	motion.txt	/*v_i{*
 v_i}	motion.txt	/*v_i}*
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -49,6 +49,7 @@ char_u *get_dict_string __ARGS((dict_T *
 long get_dict_number __ARGS((dict_T *d, char_u *key));
 char_u *get_function_name __ARGS((expand_T *xp, int idx));
 char_u *get_expr_name __ARGS((expand_T *xp, int idx));
+long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags));
 void set_vim_var_nr __ARGS((int idx, long val));
 long get_vim_var_nr __ARGS((int idx));
 char_u *get_vim_var_str __ARGS((int idx));
--- a/src/screen.c
+++ b/src/screen.c
@@ -1253,7 +1253,8 @@ win_update(wp)
 			from = to;
 		}
 
-		if (VIsual.lnum != wp->w_old_visual_lnum)
+		if (VIsual.lnum != wp->w_old_visual_lnum
+					|| VIsual.col != wp->w_old_visual_col)
 		{
 		    if (wp->w_old_visual_lnum < from
 						&& wp->w_old_visual_lnum != 0)
@@ -1379,6 +1380,7 @@ win_update(wp)
 	wp->w_old_visual_mode = VIsual_mode;
 	wp->w_old_cursor_lnum = curwin->w_cursor.lnum;
 	wp->w_old_visual_lnum = VIsual.lnum;
+	wp->w_old_visual_col = VIsual.col;
 	wp->w_old_curswant = curwin->w_curswant;
     }
     else
@@ -1386,6 +1388,7 @@ win_update(wp)
 	wp->w_old_visual_mode = 0;
 	wp->w_old_cursor_lnum = 0;
 	wp->w_old_visual_lnum = 0;
+	wp->w_old_visual_col = 0;
     }
 #endif /* FEAT_VISUAL */
 
--- a/src/structs.h
+++ b/src/structs.h
@@ -1580,6 +1580,7 @@ struct window
     colnr_T	w_old_cursor_fcol;  /* first column for block visual part */
     colnr_T	w_old_cursor_lcol;  /* last column for block visual part */
     linenr_T	w_old_visual_lnum;  /* last known start of visual part */
+    colnr_T	w_old_visual_col;   /* last known start of visual part */
     colnr_T	w_old_curswant;	    /* last known value of Curswant */
 #endif
 
--- 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 Jul 18)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 18, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 19)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 19, compiled "