diff options
author | James McCoy <jamessan@jamessan.com> | 2020-05-15 10:36:32 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-15 10:36:32 -0400 |
commit | e2a33a6622193df383870903cd39a3080c890d4d (patch) | |
tree | d92783cac8745057428b5f0e27094acb60c49d53 | |
parent | da6f38ab3cd87615e212b83ff9bbb9d585e4768e (diff) | |
parent | 076b0949d045d19decb2625c04128200ce8a987f (diff) | |
download | rneovim-e2a33a6622193df383870903cd39a3080c890d4d.tar.gz rneovim-e2a33a6622193df383870903cd39a3080c890d4d.tar.bz2 rneovim-e2a33a6622193df383870903cd39a3080c890d4d.zip |
Merge pull request #12259 from janlazo/vim-8.1.1186
-rw-r--r-- | runtime/filetype.vim | 3 | ||||
-rw-r--r-- | runtime/indent/testdir/runtest.vim | 1 | ||||
-rw-r--r-- | src/nvim/buffer_defs.h | 7 | ||||
-rw-r--r-- | src/nvim/eval/funcs.c | 10 | ||||
-rw-r--r-- | src/nvim/indent.c | 10 | ||||
-rw-r--r-- | src/nvim/option.c | 6 | ||||
-rw-r--r-- | src/nvim/screen.c | 6 | ||||
-rw-r--r-- | src/nvim/testdir/test_breakindent.vim | 10 | ||||
-rw-r--r-- | src/nvim/testdir/test_filetype.vim | 1 |
9 files changed, 32 insertions, 22 deletions
diff --git a/runtime/filetype.vim b/runtime/filetype.vim index dc0bca2c60..0b5003dc44 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1129,6 +1129,9 @@ au BufNewFile,BufRead pf.conf setf pf " Pam conf au BufNewFile,BufRead */etc/pam.conf setf pamconf +" Pam environment +au BufNewFile,BufRead pam_env.conf,.pam_environment setf pamenv + " PApp au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp diff --git a/runtime/indent/testdir/runtest.vim b/runtime/indent/testdir/runtest.vim index 9502c42f3e..945c2753e9 100644 --- a/runtime/indent/testdir/runtest.vim +++ b/runtime/indent/testdir/runtest.vim @@ -10,6 +10,7 @@ filetype indent on syn on set nowrapscan set report=9999 +set modeline au! SwapExists * call HandleSwapExists() func HandleSwapExists() diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h index b87a2ba721..d696eedbb7 100644 --- a/src/nvim/buffer_defs.h +++ b/src/nvim/buffer_defs.h @@ -1330,12 +1330,13 @@ struct window_S { uint32_t w_p_fde_flags; // flags for 'foldexpr' uint32_t w_p_fdt_flags; // flags for 'foldtext' int *w_p_cc_cols; // array of columns to highlight or NULL - int w_p_brimin; // minimum width for breakindent - int w_p_brishift; // additional shift for breakindent - bool w_p_brisbr; // sbr in 'briopt' long w_p_siso; // 'sidescrolloff' local value long w_p_so; // 'scrolloff' local value + int w_briopt_min; // minimum width for breakindent + int w_briopt_shift; // additional shift for breakindent + bool w_briopt_sbr; // sbr in 'briopt' + // transform a pointer to a "onebuf" option into a "allbuf" option #define GLOBAL_WO(p) ((char *)p + sizeof(winopt_T)) diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index 217490ad10..c7df1d6753 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -6393,20 +6393,14 @@ static void f_readdir(typval_T *argvars, typval_T *rettv, FunPtr fptr) os_closedir(&dir); } - rettv->vval.v_list = tv_list_alloc(kListLenShouldKnow); - if (rettv->vval.v_list != NULL) { - tv_list_ref(rettv->vval.v_list); + if (rettv->vval.v_list != NULL && ga.ga_len > 0) { sort_strings((char_u **)ga.ga_data, ga.ga_len); for (int i = 0; i < ga.ga_len; i++) { path = ((const char **)ga.ga_data)[i]; tv_list_append_string(rettv->vval.v_list, path, -1); } } - for (int i = 0; i < ga.ga_len; i++) { - xfree(((uint8_t **)ga.ga_data)[i]); - } - - ga_clear(&ga); + ga_clear_strings(&ga); } /* diff --git a/src/nvim/indent.c b/src/nvim/indent.c index 7f17fb0035..fb277b25fd 100644 --- a/src/nvim/indent.c +++ b/src/nvim/indent.c @@ -398,10 +398,10 @@ int get_breakindent_win(win_T *wp, const char_u *line) prev_tick = buf_get_changedtick(wp->w_buffer); prev_indent = get_indent_str(line, (int)wp->w_buffer->b_p_ts, wp->w_p_list); } - bri = prev_indent + wp->w_p_brishift; + bri = prev_indent + wp->w_briopt_shift; // indent minus the length of the showbreak string - if (wp->w_p_brisbr) { + if (wp->w_briopt_sbr) { bri -= vim_strsize(p_sbr); } // Add offset for number column, if 'n' is in 'cpoptions' @@ -410,11 +410,11 @@ int get_breakindent_win(win_T *wp, const char_u *line) // never indent past left window margin if (bri < 0) { bri = 0; - } else if (bri > eff_wwidth - wp->w_p_brimin) { + } else if (bri > eff_wwidth - wp->w_briopt_min) { // always leave at least bri_min characters on the left, // if text width is sufficient - bri = (eff_wwidth - wp->w_p_brimin < 0) - ? 0 : eff_wwidth - wp->w_p_brimin; + bri = (eff_wwidth - wp->w_briopt_min < 0) + ? 0 : eff_wwidth - wp->w_briopt_min; } return bri; diff --git a/src/nvim/option.c b/src/nvim/option.c index 84ace55d91..96f8e1529a 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -7229,9 +7229,9 @@ static bool briopt_check(win_T *wp) } } - wp->w_p_brishift = bri_shift; - wp->w_p_brimin = bri_min; - wp->w_p_brisbr = bri_sbr; + wp->w_briopt_shift = bri_shift; + wp->w_briopt_min = bri_min; + wp->w_briopt_sbr = bri_sbr; return true; } diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 8f8bfee60c..9e958663aa 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -2966,11 +2966,11 @@ win_line ( } } - if (wp->w_p_brisbr && draw_state == WL_BRI - 1 + if (wp->w_briopt_sbr && draw_state == WL_BRI - 1 && n_extra == 0 && *p_sbr != NUL) { // draw indent after showbreak value draw_state = WL_BRI; - } else if (wp->w_p_brisbr && draw_state == WL_SBR && n_extra == 0) { + } else if (wp->w_briopt_sbr && draw_state == WL_SBR && n_extra == 0) { // after the showbreak, draw the breakindent draw_state = WL_BRI - 1; } @@ -2994,7 +2994,7 @@ win_line ( c_final = NUL; n_extra = get_breakindent_win(wp, ml_get_buf(wp->w_buffer, lnum, false)); - if (wp->w_skipcol > 0 && wp->w_p_wrap) { + if (wp->w_skipcol > 0 && wp->w_p_wrap && wp->w_briopt_sbr) { need_showbreak = false; } // Correct end of highlighted area for 'breakindent', diff --git a/src/nvim/testdir/test_breakindent.vim b/src/nvim/testdir/test_breakindent.vim index 6d88f1dc5a..5675bf74dd 100644 --- a/src/nvim/testdir/test_breakindent.vim +++ b/src/nvim/testdir/test_breakindent.vim @@ -361,5 +361,15 @@ func Test_breakindent19_sbr_nextpage() \ "> aaaaaaaaaaaaaaaaaa", \ ] call s:compare_lines(expect, lines) + + setl breakindent briopt=min:18 sbr=> + norm! 5gj + let lines = s:screen_lines(1, 20) + let expect = [ + \ ">aaaaaaaaaaaaaaaaaaa", + \ ">aaaaaaaaaaaaaaaaaaa", + \ ">aaaaaaaaaaaaaaaaaaa", + \ ] + call s:compare_lines(expect, lines) call s:close_windows('set breakindent& briopt& sbr&') endfunc diff --git a/src/nvim/testdir/test_filetype.vim b/src/nvim/testdir/test_filetype.vim index a9984acdd9..ace56a375f 100644 --- a/src/nvim/testdir/test_filetype.vim +++ b/src/nvim/testdir/test_filetype.vim @@ -321,6 +321,7 @@ let s:filename_checks = { \ 'openroad': ['file.or'], \ 'ora': ['file.ora'], \ 'pamconf': ['/etc/pam.conf'], + \ 'pamenv': ['/etc/security/pam_env.conf', '/home/user/.pam_environment'], \ 'papp': ['file.papp', 'file.pxml', 'file.pxsl'], \ 'pascal': ['file.pas', 'file.dpr'], \ 'passwd': ['any/etc/passwd', 'any/etc/passwd-', 'any/etc/passwd.edit', 'any/etc/shadow', 'any/etc/shadow-', 'any/etc/shadow.edit', 'any/var/backups/passwd.bak', 'any/var/backups/shadow.bak'], |