From 8ff4f2f51a6cf07fc33742ce3bee81328896e49b Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Fri, 25 May 2018 23:29:36 +0000 Subject: Fri May 25 23:29:36 UTC 2018 patches/packages/glibc-zoneinfo-2018e-noarch-2_slack14.1.txz: Rebuilt. Handle removal of US/Pacific-New timezone. If we see that the machine is using this, it will be automatically switched to US/Pacific. --- patches/source/vim/patches/7.4.353 | 489 +++++++++++++++++++++++++++++++++++++ 1 file changed, 489 insertions(+) create mode 100644 patches/source/vim/patches/7.4.353 (limited to 'patches/source/vim/patches/7.4.353') diff --git a/patches/source/vim/patches/7.4.353 b/patches/source/vim/patches/7.4.353 new file mode 100644 index 000000000..c54465d96 --- /dev/null +++ b/patches/source/vim/patches/7.4.353 @@ -0,0 +1,489 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.353 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.353 +Problem: 'linebreak' doesn't work with the 'list' option. +Solution: Make it work. (Christian Brabandt) +Files: runtime/doc/options.txt, src/charset.c, src/screen.c, + 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, + src/testdir/test_listlbr.in, src/testdir/test_listlbr.ok + + +*** ../vim-7.4.352/runtime/doc/options.txt 2014-06-25 11:48:40.729960646 +0200 +--- runtime/doc/options.txt 2014-07-02 19:47:21.602363892 +0200 +*************** +*** 1200,1205 **** +--- 1200,1237 ---- + break if 'linebreak' is on. Only works for ASCII and also for 8-bit + characters when 'encoding' is an 8-bit encoding. + ++ *'breakindent'* *'bri'* ++ 'breakindent' 'bri' boolean (default off) ++ local to window ++ {not in Vi} ++ {not available when compiled without the |+linebreak| ++ feature} ++ Every wrapped line will continue visually indented (same amount of ++ space as the beginning of that line), thus preserving horizontal blocks ++ of text. ++ ++ *'breakindentopt'* *'briopt'* ++ 'breakindentopt' 'briopt' string (default empty) ++ local to window ++ {not in Vi} ++ {not available when compiled without the |+linebreak| ++ feature} ++ Settings for 'breakindent'. It can consist of the following optional ++ items and must be separated by a comma: ++ min:{n} Minimum text width that will be kept after ++ applying 'breakindent', even if the resulting ++ text should normally be narrower. This prevents ++ text indented almost to the right window border ++ occupying lot of vertical space when broken. ++ shift:{n} After applying 'breakindent', the wrapped line's ++ beginning will be shifted by the given number of ++ characters. It permits dynamic French paragraph ++ indentation (negative) or emphasizing the line ++ continuation (positive). ++ sbr Display the 'showbreak' value before applying the ++ additional indent. ++ The default value for min is 20 and shift is 0. ++ + *'browsedir'* *'bsdir'* + 'browsedir' 'bsdir' string (default: "last") + global +*** ../vim-7.4.352/src/charset.c 2014-07-02 19:37:38.462354956 +0200 +--- src/charset.c 2014-07-02 19:47:21.602363892 +0200 +*************** +*** 1120,1126 **** + if (wp->w_p_lbr + && vim_isbreak(c) + && !vim_isbreak(s[1]) +- && !wp->w_p_list + && wp->w_p_wrap + # ifdef FEAT_VERTSPLIT + && wp->w_width != 0 +--- 1120,1125 ---- +*** ../vim-7.4.352/src/screen.c 2014-07-02 17:16:51.330225522 +0200 +--- src/screen.c 2014-07-02 19:51:42.082367883 +0200 +*************** +*** 2843,2848 **** +--- 2843,2849 ---- + char_u extra[18]; /* "%ld" and 'fdc' must fit in here */ + int n_extra = 0; /* number of extra chars */ + char_u *p_extra = NULL; /* string of extra chars, plus NUL */ ++ char_u *p_extra_free = NULL; /* p_extra needs to be freed */ + int c_extra = NUL; /* extra chars, all the same */ + int extra_attr = 0; /* attributes when n_extra != 0 */ + static char_u *at_end_str = (char_u *)""; /* used for p_extra when +*************** +*** 4053,4058 **** +--- 4054,4064 ---- + } + else + { ++ if (p_extra_free != NULL) ++ { ++ vim_free(p_extra_free); ++ p_extra_free = NULL; ++ } + /* + * Get a character from the line itself. + */ +*************** +*** 4424,4431 **** + /* + * Found last space before word: check for line break. + */ +! if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr) +! && !wp->w_p_list) + { + char_u *p = ptr - ( + # ifdef FEAT_MBYTE +--- 4430,4436 ---- + /* + * Found last space before word: check for line break. + */ +! if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr)) + { + char_u *p = ptr - ( + # ifdef FEAT_MBYTE +*************** +*** 4433,4439 **** + # endif + 1); + /* TODO: is passing p for start of the line OK? */ +! n_extra = win_lbr_chartabsize(wp, p, p, (colnr_T)vcol, + NULL) - 1; + c_extra = ' '; + if (vim_iswhite(c)) +--- 4438,4444 ---- + # endif + 1); + /* TODO: is passing p for start of the line OK? */ +! n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol, + NULL) - 1; + c_extra = ' '; + if (vim_iswhite(c)) +*************** +*** 4443,4449 **** + /* See "Tab alignment" below. */ + FIX_FOR_BOGUSCOLS; + #endif +! c = ' '; + } + } + #endif +--- 4448,4455 ---- + /* See "Tab alignment" below. */ + FIX_FOR_BOGUSCOLS; + #endif +! if (!wp->w_p_list) +! c = ' '; + } + } + #endif +*************** +*** 4483,4491 **** + */ + if (c == TAB && (!wp->w_p_list || lcs_tab1)) + { + /* tab amount depends on current column */ +! n_extra = (int)wp->w_buffer->b_p_ts + - vcol % (int)wp->w_buffer->b_p_ts - 1; + #ifdef FEAT_CONCEAL + /* Tab alignment should be identical regardless of + * 'conceallevel' value. So tab compensates of all +--- 4489,4538 ---- + */ + if (c == TAB && (!wp->w_p_list || lcs_tab1)) + { ++ int tab_len = 0; + /* tab amount depends on current column */ +! tab_len = (int)wp->w_buffer->b_p_ts + - vcol % (int)wp->w_buffer->b_p_ts - 1; ++ #ifdef FEAT_LINEBREAK ++ if (!wp->w_p_lbr) ++ #endif ++ /* tab amount depends on current column */ ++ n_extra = tab_len; ++ #ifdef FEAT_LINEBREAK ++ else ++ { ++ char_u *p; ++ int len = n_extra; ++ int i; ++ int saved_nextra = n_extra; ++ ++ /* if n_extra > 0, it gives the number of chars, to ++ * use for a tab, else we need to calculate the width ++ * for a tab */ ++ #ifdef FEAT_MBYTE ++ len = (tab_len * mb_char2len(lcs_tab2)); ++ if (n_extra > 0) ++ len += n_extra - tab_len; ++ #endif ++ c = lcs_tab1; ++ p = alloc((unsigned)(len + 1)); ++ vim_memset(p, ' ', len); ++ p[len] = NUL; ++ p_extra_free = p; ++ for (i = 0; i < tab_len; i++) ++ { ++ #ifdef FEAT_MBYTE ++ mb_char2bytes(lcs_tab2, p); ++ p += mb_char2len(lcs_tab2); ++ n_extra += mb_char2len(lcs_tab2) ++ - (saved_nextra > 0 ? 1 : 0); ++ #else ++ p[i] = lcs_tab2; ++ #endif ++ } ++ p_extra = p_extra_free; ++ } ++ #endif + #ifdef FEAT_CONCEAL + /* Tab alignment should be identical regardless of + * 'conceallevel' value. So tab compensates of all +*************** +*** 4501,4508 **** + if (wp->w_p_list) + { + c = lcs_tab1; +! c_extra = lcs_tab2; +! n_attr = n_extra + 1; + extra_attr = hl_attr(HLF_8); + saved_attr2 = char_attr; /* save current attr */ + #ifdef FEAT_MBYTE +--- 4548,4560 ---- + if (wp->w_p_list) + { + c = lcs_tab1; +! #ifdef FEAT_LINEBREAK +! if (wp->w_p_lbr) +! c_extra = NUL; /* using p_extra from above */ +! else +! #endif +! c_extra = lcs_tab2; +! n_attr = tab_len + 1; + extra_attr = hl_attr(HLF_8); + saved_attr2 = char_attr; /* save current attr */ + #ifdef FEAT_MBYTE +*************** +*** 4598,4606 **** + if ((dy_flags & DY_UHEX) && wp->w_p_rl) + rl_mirror(p_extra); /* reverse "<12>" */ + #endif +- n_extra = byte2cells(c) - 1; + c_extra = NUL; +! c = *p_extra++; + if (!attr_pri) + { + n_attr = n_extra + 1; +--- 4650,4674 ---- + if ((dy_flags & DY_UHEX) && wp->w_p_rl) + rl_mirror(p_extra); /* reverse "<12>" */ + #endif + c_extra = NUL; +! #ifdef FEAT_LINEBREAK +! if (wp->w_p_lbr) +! { +! char_u *p; +! +! c = *p_extra; +! p = alloc((unsigned)n_extra + 1); +! vim_memset(p, ' ', n_extra); +! STRNCPY(p, p_extra + 1, STRLEN(p_extra) - 1); +! p[n_extra] = NUL; +! p_extra_free = p_extra = p; +! } +! else +! #endif +! { +! n_extra = byte2cells(c) - 1; +! c = *p_extra++; +! } + if (!attr_pri) + { + n_attr = n_extra + 1; +*** ../vim-7.4.352/src/testdir/Make_amiga.mak 2014-06-25 14:39:35.110348584 +0200 +--- src/testdir/Make_amiga.mak 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 38,43 **** +--- 38,44 ---- + test104.out test105.out test106.out test107.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_listlbr.out \ + test_eval.out \ + test_options.out + +*************** +*** 165,169 **** +--- 166,171 ---- + test107.out: test107.in + test_autoformat_join.out: test_autoformat_join.in + test_breakindent.out: test_breakindent.in ++ test_listlbr.out: test_listlbr.in + test_eval.out: test_eval.in + test_options.out: test_options.in +*** ../vim-7.4.352/src/testdir/Make_dos.mak 2014-06-25 14:39:35.110348584 +0200 +--- src/testdir/Make_dos.mak 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 37,42 **** +--- 37,43 ---- + test105.out test106.out test107.out\ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_listlbr \ + test_eval.out \ + test_options.out + +*** ../vim-7.4.352/src/testdir/Make_ming.mak 2014-06-25 14:39:35.110348584 +0200 +--- src/testdir/Make_ming.mak 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 57,62 **** +--- 57,63 ---- + test105.out test106.out test107.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_listlbr.out \ + test_eval.out \ + test_options.out + +*** ../vim-7.4.352/src/testdir/Make_os2.mak 2014-06-25 14:39:35.114348584 +0200 +--- src/testdir/Make_os2.mak 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 40,45 **** +--- 40,46 ---- + test_autoformat_join.out \ + test_eval.out \ + test_breakindent.out \ ++ test_listlbr.out \ + test_options.out + + .SUFFIXES: .in .out +*** ../vim-7.4.352/src/testdir/Make_vms.mms 2014-06-25 14:39:35.114348584 +0200 +--- src/testdir/Make_vms.mms 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 98,103 **** +--- 98,104 ---- + test105.out test106.out test107.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_listlbr.out \ + test_eval.out \ + test_options.out + +*** ../vim-7.4.352/src/testdir/Makefile 2014-06-25 14:39:35.114348584 +0200 +--- src/testdir/Makefile 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 35,40 **** +--- 35,41 ---- + test104.out test105.out test106.out test107.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_listlbr.out \ + test_eval.out \ + test_options.out + +*** ../vim-7.4.352/src/testdir/test_listlbr.in 2014-07-02 19:58:25.642374067 +0200 +--- src/testdir/test_listlbr.in 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 0 **** +--- 1,62 ---- ++ Test for linebreak and list option ++ ++ STARTTEST ++ :so small.vim ++ :if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif ++ :10new|:vsp|:vert resize 20 ++ :put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \" ++ :norm! zt ++ :set ts=4 sw=4 sts=4 linebreak sbr=+ wrap ++ :fu! ScreenChar(width) ++ : let c='' ++ : for j in range(1,4) ++ : for i in range(1,a:width) ++ : let c.=nr2char(screenchar(j, i)) ++ : endfor ++ : let c.="\n" ++ : endfor ++ : return c ++ :endfu ++ :fu! DoRecordScreen() ++ : wincmd l ++ : $put =printf(\"\n%s\", g:test) ++ : $put =g:line ++ : wincmd p ++ :endfu ++ :let g:test="Test 1: set linebreak" ++ :redraw! ++ :let line=ScreenChar(winwidth(0)) ++ :call DoRecordScreen() ++ :let g:test="Test 2: set linebreak + set list" ++ :set linebreak list listchars= ++ :redraw! ++ :let line=ScreenChar(winwidth(0)) ++ :call DoRecordScreen() ++ :let g:test ="Test 3: set linebreak + set list + fancy listchars" ++ :exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6" ++ :redraw! ++ :let line=ScreenChar(winwidth(0)) ++ :call DoRecordScreen() ++ :let g:test ="Test 4: set linebreak nolist" ++ :set nolist linebreak ++ :redraw! ++ :let line=ScreenChar(winwidth(0)) ++ :call DoRecordScreen() ++ :let g:test ="Test 5: set nolinebreak list" ++ :set list nolinebreak ++ :redraw! ++ :let line=ScreenChar(winwidth(0)) ++ :call DoRecordScreen() ++ :let g:test ="Test 6: set linebreak with tab and 1 line as long as screen: should break!" ++ :set nolist linebreak ts=8 ++ :let line="1\t".repeat('a', winwidth(0)-2) ++ :$put =line ++ :$ ++ :norm! zt ++ :redraw! ++ :let line=ScreenChar(winwidth(0)) ++ :call DoRecordScreen() ++ :%w! test.out ++ :qa! ++ ENDTEST ++ dummy text +*** ../vim-7.4.352/src/testdir/test_listlbr.ok 2014-07-02 19:58:25.646374067 +0200 +--- src/testdir/test_listlbr.ok 2014-07-02 19:47:21.610363892 +0200 +*************** +*** 0 **** +--- 1,39 ---- ++ ++ abcdef hijklmn pqrstuvwxyz 1060ABCDEFGHIJKLMNOP ++ ++ Test 1: set linebreak ++ abcdef ++ +hijklmn ++ +pqrstuvwxyz 1060ABC ++ +DEFGHIJKLMNOP ++ ++ Test 2: set linebreak + set list ++ ^Iabcdef hijklmn^I ++ +pqrstuvwxyz 1060ABC ++ +DEFGHIJKLMNOP ++ ++ ++ Test 3: set linebreak + set list + fancy listchars ++ ▕———abcdef ++ +hijklmn▕——— ++ +pqrstuvwxyz␣1060ABC ++ +DEFGHIJKLMNOPˑ¶ ++ ++ Test 4: set linebreak nolist ++ abcdef ++ +hijklmn ++ +pqrstuvwxyz 1060ABC ++ +DEFGHIJKLMNOP ++ ++ Test 5: set nolinebreak list ++ ▕———abcdef hijklmn▕— ++ +pqrstuvwxyz␣1060ABC ++ +DEFGHIJKLMNOPˑ¶ ++ ¶ ++ 1 aaaaaaaaaaaaaaaaaa ++ ++ Test 6: set linebreak with tab and 1 line as long as screen: should break! ++ 1 ++ +aaaaaaaaaaaaaaaaaa ++ ~ ++ ~ +*** ../vim-7.4.352/src/version.c 2014-07-02 19:37:38.462354956 +0200 +--- src/version.c 2014-07-02 19:57:44.066373430 +0200 +*************** +*** 736,737 **** +--- 736,739 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 353, + /**/ + +-- +FATHER: You only killed the bride's father - that's all - +LAUNCELOT: Oh dear, I didn't really mean to... +FATHER: Didn't mean to? You put your sword right through his head! +LAUNCELOT: Gosh - Is he all right? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// -- cgit v1.2.3