changeset 2269:fb627e94e6c6 vim73

Couple of small fixes for conceal feature. (Dominique Pelle)
author Bram Moolenaar <bram@vim.org>
date Tue, 22 Jun 2010 05:16:38 +0200
parents aafed4a4866f
children 917fff7bc09d
files runtime/doc/syntax.txt runtime/doc/todo.txt src/option.c src/screen.c
diffstat 4 files changed, 19 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -3135,8 +3135,10 @@ These arguments can be used for all thre
 conceal						*conceal* *:syn-conceal*
 
 When the "conceal" argument is given, the item is marked as concealable.
-Whether or not it is actually concealed depends on the setting on the
-'conceallevel' option.
+Whether or not it is actually concealed depends on the value of the
+'conceallevel' option.  If 'modifiable' option is on, concealable items
+in the current line are always displayed unconcealed to be able to edit
+the line.
 
 concealends						*:syn-concealends*
 
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1088,11 +1088,8 @@ Vim 7.3:
 - using NSIS 2.46: install on Windows 7 works, but no "Edit with Vim" menu.
    Use register_shell_extension()? (George Reilly, 2010 May 26)
    Ron's version: http://dev.ronware.org/p/vim/finfo?name=gvim.nsi
-- Patch for conceal feature and 'foldcolumn'. (Dominique Pelle, 2010 Jun 10,
-  second patch)
-  Also patch from Vince, 2010 Jun 15.  And another June 16.
+- Patch for conceal from Vince, 2010 Jun 15.  And another June 16.
   However: more generic patch on the way.
-- patch for conceal feature and 'modifiable'. (Dominique Pelle, 2010 Jun 9)
 - undofile: keep markers where the file was written/read, so that it's easy to
   go back to a saved version of the file:  ":earlier 1f" (f for file)?
   Also add ":earlier 1d" (d for day).
--- a/src/option.c
+++ b/src/option.c
@@ -7334,12 +7334,21 @@ set_bool_option(opt_idx, varp, value, op
 #endif
     }
 
-#ifdef FEAT_TITLE
-    /* when 'modifiable' is changed, redraw the window title */
+#if defined(FEAT_TITLE) || defined(FEAT_CONCEAL)
+    /* when 'modifiable' is changed, redraw the window title and
+     * update current line for concealable items */
     else if ((int *)varp == &curbuf->b_p_ma)
     {
+# ifdef FEAT_TITLE
 	redraw_titles();
-    }
+# endif
+# ifdef FEAT_CONCEAL
+	if (curwin->w_p_conceal)
+	    update_single_line(curwin, curwin->w_cursor.lnum);
+# endif
+    }
+#endif
+#ifdef FEAT_TITLE
     /* when 'endofline' is changed, redraw the window title */
     else if ((int *)varp == &curbuf->b_p_eol)
     {
@@ -8443,7 +8452,7 @@ findoption(arg)
 get_option_value(name, numval, stringval, opt_flags)
     char_u	*name;
     long	*numval;
-    char_u	**stringval;	    /* NULL when only checking existance */
+    char_u	**stringval;	    /* NULL when only checking existence */
     int		opt_flags;
 {
     int		opt_idx;
--- a/src/screen.c
+++ b/src/screen.c
@@ -595,7 +595,7 @@ update_single_line(wp, lnum)
     int		j;
 
     if (lnum >= wp->w_topline && lnum < wp->w_botline
-					  && foldedCount(wp, lnum, NULL) == 0)
+				 && foldedCount(wp, lnum, &win_foldinfo) == 0)
     {
 # ifdef FEAT_GUI
 	/* Remove the cursor before starting to do anything, because scrolling