Blob Blame History Raw
To: vim_dev@googlegroups.com
Subject: Patch 7.4.710
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.4.710
Problem:    It is not possible to make spaces visibible in list mode.
Solution:   Add the "space" item to 'listchars'. (David Bürgin, issue 350)
Files:      runtime/doc/options.txt, src/globals.h, src/message.h,
            src/screen.c, src/testdir/test_listchars.in,
            src/testdir/test_listchars.ok, src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile


*** ../vim-7.4.709/runtime/doc/options.txt	2015-03-31 18:27:30.317104255 +0200
--- runtime/doc/options.txt	2015-04-21 18:21:13.142538865 +0200
***************
*** 4714,4744 ****
  			{not in Vi}
  	Strings to use in 'list' mode and for the |:list| command.  It is a
  	comma separated list of string settings.
! 	  						*lcs-eol*
  	  eol:c		Character to show at the end of each line.  When
  			omitted, there is no extra character at the end of the
  			line.
! 	  						*lcs-tab*
  	  tab:xy	Two characters to be used to show a tab.  The first
  			char is used once.  The second char is repeated to
  			fill the space that the tab normally occupies.
  			"tab:>-" will show a tab that takes four spaces as
  			">---".  When omitted, a tab is show as ^I.
! 	  						*lcs-trail*
  	  trail:c	Character to show for trailing spaces.  When omitted,
! 			trailing spaces are blank.
! 	  						*lcs-extends*
  	  extends:c	Character to show in the last column, when 'wrap' is
  			off and the line continues beyond the right of the
  			screen.
! 	  						*lcs-precedes*
  	  precedes:c	Character to show in the first column, when 'wrap'
  			is off and there is text preceding the character
  			visible in the first column.
! 	  						*lcs-conceal*
  	  conceal:c	Character to show in place of concealed text, when
  			'conceallevel' is set to 1.
! 	  						*lcs-nbsp*
  	  nbsp:c	Character to show for a non-breakable space (character
  			0xA0, 160).  Left blank when omitted.
  
--- 4717,4751 ----
  			{not in Vi}
  	Strings to use in 'list' mode and for the |:list| command.  It is a
  	comma separated list of string settings.
! 							*lcs-eol*
  	  eol:c		Character to show at the end of each line.  When
  			omitted, there is no extra character at the end of the
  			line.
! 							*lcs-tab*
  	  tab:xy	Two characters to be used to show a tab.  The first
  			char is used once.  The second char is repeated to
  			fill the space that the tab normally occupies.
  			"tab:>-" will show a tab that takes four spaces as
  			">---".  When omitted, a tab is show as ^I.
! 							*lcs-space*
! 	  space:c	Character to show for a space.  When omitted, spaces
! 			are left blank.
! 							*lcs-trail*
  	  trail:c	Character to show for trailing spaces.  When omitted,
! 			trailing spaces are blank.  Overrides the "space"
! 			setting for trailing spaces.
! 							*lcs-extends*
  	  extends:c	Character to show in the last column, when 'wrap' is
  			off and the line continues beyond the right of the
  			screen.
! 							*lcs-precedes*
  	  precedes:c	Character to show in the first column, when 'wrap'
  			is off and there is text preceding the character
  			visible in the first column.
! 							*lcs-conceal*
  	  conceal:c	Character to show in place of concealed text, when
  			'conceallevel' is set to 1.
! 							*lcs-nbsp*
  	  nbsp:c	Character to show for a non-breakable space (character
  			0xA0, 160).  Left blank when omitted.
  
***************
*** 4751,4757 ****
  	    :set lcs=tab:>-,eol:<,nbsp:%
  	    :set lcs=extends:>,precedes:<
  <	The "NonText" highlighting will be used for "eol", "extends" and
! 	"precedes".  "SpecialKey" for "nbsp", "tab" and "trail".
  	|hl-NonText| |hl-SpecialKey|
  
  			*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
--- 4758,4764 ----
  	    :set lcs=tab:>-,eol:<,nbsp:%
  	    :set lcs=extends:>,precedes:<
  <	The "NonText" highlighting will be used for "eol", "extends" and
! 	"precedes".  "SpecialKey" for "nbsp", "space", "tab" and "trail".
  	|hl-NonText| |hl-SpecialKey|
  
  			*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
*** ../vim-7.4.709/src/globals.h	2015-02-17 11:11:42.244891247 +0100
--- src/globals.h	2015-04-21 18:21:13.146538823 +0200
***************
*** 1163,1168 ****
--- 1163,1169 ----
  EXTERN int	lcs_ext INIT(= NUL);
  EXTERN int	lcs_prec INIT(= NUL);
  EXTERN int	lcs_nbsp INIT(= NUL);
+ EXTERN int	lcs_space INIT(= NUL);
  EXTERN int	lcs_tab1 INIT(= NUL);
  EXTERN int	lcs_tab2 INIT(= NUL);
  EXTERN int	lcs_trail INIT(= NUL);
*** ../vim-7.4.709/src/screen.c	2015-03-24 18:22:36.078072565 +0100
--- src/screen.c	2015-04-21 18:21:13.150538781 +0200
***************
*** 4334,4347 ****
  #endif
  	    ++ptr;
  
! 	    /* 'list' : change char 160 to lcs_nbsp. */
! 	    if (wp->w_p_list && (c == 160
  #ifdef FEAT_MBYTE
! 			|| (mb_utf8 && mb_c == 160)
  #endif
! 			) && lcs_nbsp)
  	    {
! 		c = lcs_nbsp;
  		if (area_attr == 0 && search_attr == 0)
  		{
  		    n_attr = 1;
--- 4334,4349 ----
  #endif
  	    ++ptr;
  
! 	    /* 'list': change char 160 to lcs_nbsp and space to lcs_space. */
! 	    if (wp->w_p_list
! 		    && (((c == 160
  #ifdef FEAT_MBYTE
! 			  || (mb_utf8 && mb_c == 160)
  #endif
! 			 ) && lcs_nbsp)
! 			|| (c == ' ' && lcs_space && ptr <= line + trailcol)))
  	    {
! 		c = (c == ' ') ? lcs_space : lcs_nbsp;
  		if (area_attr == 0 && search_attr == 0)
  		{
  		    n_attr = 1;
*** ../vim-7.4.709/src/testdir/test_listchars.in	2015-04-21 18:32:19.951463048 +0200
--- src/testdir/test_listchars.in	2015-04-21 18:21:13.150538781 +0200
***************
*** 0 ****
--- 1,53 ----
+ Tests for 'listchars' display with 'list' and :list
+ 
+ STARTTEST
+ :so small.vim
+ :let g:lines = []
+ :function GetScreenCharsForLine(lnum)
+ :  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '')
+ :endfunction
+ :nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"
+ :set listchars+=tab:>-,space:.,trail:<
+ :set list
+ :
+ /^start:/
+ :normal! jzt
+ GG
+ GG
+ GG
+ GG
+ GGH:
+ :set listchars-=trail:<
+ GG
+ GG
+ GG
+ GG
+ GG:
+ :put =g:lines
+ :'[,']w! test.out
+ ENDTEST
+ 
+ start:
+ 	aa	
+   bb	  
+    cccc	 
+ dd        ee  	
+  
+ 
+ 
+ STARTTEST
+ :set listchars+=trail:<
+ :set nolist
+ :
+ /^start:/
+ :redir! >> test.out
+ :+1,$list
+ :redir END
+ :q!
+ ENDTEST
+ 
+ start:
+   fff	  
+ 	gg	
+      h	
+ iii    	  
*** ../vim-7.4.709/src/testdir/test_listchars.ok	2015-04-21 18:32:19.955463005 +0200
--- src/testdir/test_listchars.ok	2015-04-21 18:21:13.150538781 +0200
***************
*** 0 ****
--- 1,16 ----
+ >-------aa>-----$
+ ..bb>---<<$
+ ...cccc><$
+ dd........ee<<>-$
+ <$
+ >-------aa>-----$
+ ..bb>---..$
+ ...cccc>.$
+ dd........ee..>-$
+ .$
+ 
+ 
+ ..fff>--<<$
+ >-------gg>-----$
+ .....h>-$
+ iii<<<<><<$
*** ../vim-7.4.709/src/testdir/Make_amiga.mak	2015-03-24 17:49:39.607748647 +0100
--- src/testdir/Make_amiga.mak	2015-04-21 18:22:06.541972861 +0200
***************
*** 46,51 ****
--- 46,52 ----
  		test_erasebackword.out \
  		test_eval.out \
  		test_insertcount.out \
+ 		test_listchars.out \
  		test_listlbr.out \
  		test_listlbr_utf8.out \
  		test_mapping.out \
***************
*** 189,194 ****
--- 190,196 ----
  test_erasebackword.out: test_erasebackword.in
  test_eval.out: test_eval.in
  test_insertcount.out: test_insertcount.in
+ test_listchars.out: test_listchars.in
  test_listlbr.out: test_listlbr.in
  test_listlbr_utf8.out: test_listlbr_utf8.in
  test_mapping.out: test_mapping.in
*** ../vim-7.4.709/src/testdir/Make_dos.mak	2015-03-24 17:49:39.607748647 +0100
--- src/testdir/Make_dos.mak	2015-04-21 18:22:15.457878362 +0200
***************
*** 45,50 ****
--- 45,51 ----
  		test_erasebackword.out \
  		test_eval.out \
  		test_insertcount.out \
+ 		test_listchars.out \
  		test_listlbr.out \
  		test_listlbr_utf8.out \
  		test_mapping.out \
*** ../vim-7.4.709/src/testdir/Make_ming.mak	2015-03-24 17:49:39.607748647 +0100
--- src/testdir/Make_ming.mak	2015-04-21 18:22:22.197806926 +0200
***************
*** 67,72 ****
--- 67,73 ----
  		test_erasebackword.out \
  		test_eval.out \
  		test_insertcount.out \
+ 		test_listchars.out \
  		test_listlbr.out \
  		test_listlbr_utf8.out \
  		test_mapping.out \
*** ../vim-7.4.709/src/testdir/Make_os2.mak	2015-03-24 17:49:39.607748647 +0100
--- src/testdir/Make_os2.mak	2015-04-21 18:22:28.777737187 +0200
***************
*** 47,52 ****
--- 47,53 ----
  		test_erasebackword.out \
  		test_eval.out \
  		test_insertcount.out \
+ 		test_listchars.out \
  		test_listlbr.out \
  		test_listlbr_utf8.out \
  		test_mapping.out \
*** ../vim-7.4.709/src/testdir/Make_vms.mms	2015-03-24 17:49:39.607748647 +0100
--- src/testdir/Make_vms.mms	2015-04-21 18:22:34.801673339 +0200
***************
*** 4,10 ****
  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
  #
! # Last change:  2015 Mar 24
  #
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
  # Edit the lines in the Configuration section below to select.
--- 4,10 ----
  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
  #
! # Last change:  2015 Apr 21
  #
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
  # Edit the lines in the Configuration section below to select.
***************
*** 106,111 ****
--- 106,112 ----
  	 test_erasebackword.out \
  	 test_eval.out \
  	 test_insertcount.out \
+ 	 test_listchars.out \
  	 test_listlbr.out \
  	 test_listlbr_utf8.out \
  	 test_mapping.out \
*** ../vim-7.4.709/src/testdir/Makefile	2015-03-24 17:49:39.611748618 +0100
--- src/testdir/Makefile	2015-04-21 18:21:13.150538781 +0200
***************
*** 43,48 ****
--- 43,49 ----
  		test_erasebackword.out \
  		test_eval.out \
  		test_insertcount.out \
+ 		test_listchars.out \
  		test_listlbr.out \
  		test_listlbr_utf8.out \
  		test_mapping.out \
*** ../vim-7.4.709/src/version.c	2015-04-21 18:08:21.842719055 +0200
--- src/version.c	2015-04-21 18:20:13.067175680 +0200
***************
*** 743,744 ****
--- 743,746 ----
  {   /* Add new patch number below this line */
+ /**/
+     710,
  /**/

-- 
I have read and understood the above. X________________

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///