To: vim_dev@googlegroups.com Subject: Patch 7.4.710 Fcc: outbox From: Bram Moolenaar 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 GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\" + :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, # Sandor Kopanyi, # ! # 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, # Sandor Kopanyi, # ! # 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 ///