diff options
-rw-r--r-- | src/nvim/buffer.c | 6 | ||||
-rw-r--r-- | src/nvim/ex_docmd.c | 5 | ||||
-rw-r--r-- | src/nvim/macros.h | 6 | ||||
-rw-r--r-- | src/nvim/move.c | 8 | ||||
-rw-r--r-- | src/nvim/normal.c | 8 | ||||
-rw-r--r-- | src/nvim/ops.c | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_arabic.vim | 48 | ||||
-rw-r--r-- | src/nvim/testdir/test_normal.vim | 15 | ||||
-rw-r--r-- | src/nvim/testdir/test_registers.vim | 9 | ||||
-rw-r--r-- | src/nvim/undo.c | 13 | ||||
-rw-r--r-- | test/functional/eval/system_spec.lua | 4 | ||||
-rw-r--r-- | test/functional/ui/cmdline_highlight_spec.lua | 2 | ||||
-rw-r--r-- | test/functional/ui/messages_spec.lua | 4 |
13 files changed, 66 insertions, 66 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 34fe52c10e..89f1e33a86 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -5171,18 +5171,21 @@ chk_modeline( // Return true if "buf" is a help buffer. bool bt_help(const buf_T *const buf) + FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { return buf != NULL && buf->b_help; } // Return true if "buf" is the quickfix buffer. bool bt_quickfix(const buf_T *const buf) + FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { return buf != NULL && buf->b_p_bt[0] == 'q'; } // Return true if "buf" is a terminal buffer. bool bt_terminal(const buf_T *const buf) + FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { return buf != NULL && buf->b_p_bt[0] == 't'; } @@ -5190,6 +5193,7 @@ bool bt_terminal(const buf_T *const buf) // Return true if "buf" is a "nofile", "acwrite" or "terminal" buffer. // This means the buffer name is not a file name. bool bt_nofile(const buf_T *const buf) + FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f') || buf->b_p_bt[0] == 'a' || buf->terminal); @@ -5197,11 +5201,13 @@ bool bt_nofile(const buf_T *const buf) // Return true if "buf" is a "nowrite", "nofile" or "terminal" buffer. bool bt_dontwrite(const buf_T *const buf) + FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { return buf != NULL && (buf->b_p_bt[0] == 'n' || buf->terminal); } bool bt_dontwrite_msg(const buf_T *const buf) + FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { if (bt_dontwrite(buf)) { EMSG(_("E382: Cannot write, 'buftype' option is set")); diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 5365270e0b..0db148690f 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -6761,8 +6761,9 @@ void ex_splitview(exarg_T *eap) if (*eap->arg != NUL ) { RESET_BINDING(curwin); - } else - do_check_scrollbind(FALSE); + } else { + do_check_scrollbind(false); + } do_exedit(eap, old_curwin); } diff --git a/src/nvim/macros.h b/src/nvim/macros.h index f2ba91335d..018985fad2 100644 --- a/src/nvim/macros.h +++ b/src/nvim/macros.h @@ -127,7 +127,11 @@ # define MB_CHAR2LEN(c) mb_char2len(c) # define PTR2CHAR(p) utf_ptr2char(p) -# define RESET_BINDING(wp) (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE +# define RESET_BINDING(wp) \ + do { \ + (wp)->w_p_scb = false; \ + (wp)->w_p_crb = false; \ + } while (0) /// Calculate the length of a C array /// diff --git a/src/nvim/move.c b/src/nvim/move.c index b9c4196251..4a87f82eb7 100644 --- a/src/nvim/move.c +++ b/src/nvim/move.c @@ -1245,12 +1245,12 @@ static void botline_forw(lineoff_T *lp) } else { ++lp->lnum; lp->fill = 0; - if (lp->lnum > curbuf->b_ml.ml_line_count) + if (lp->lnum > curbuf->b_ml.ml_line_count) { lp->height = MAXCOL; - else if (hasFolding(lp->lnum, NULL, &lp->lnum)) - /* Add a closed fold */ + } else if (hasFolding(lp->lnum, NULL, &lp->lnum)) { + // Add a closed fold lp->height = 1; - else { + } else { lp->height = plines_nofill(lp->lnum); } } diff --git a/src/nvim/normal.c b/src/nvim/normal.c index c3b4f4e376..eeb41a5d13 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -7467,8 +7467,12 @@ static void nv_esc(cmdarg_T *cap) && cmdwin_type == 0 && !VIsual_active && no_reason) { - MSG(_("Type :qa! and press <Enter> to abandon all changes" - " and exit Nvim")); + if (anyBufIsChanged()) { + MSG(_("Type :qa! and press <Enter> to abandon all changes" + " and exit Nvim")); + } else { + MSG(_("Type :qa and press <Enter> to exit Nvim")); + } } /* Don't reset "restart_edit" when 'insertmode' is set, it won't be diff --git a/src/nvim/ops.c b/src/nvim/ops.c index 6709e52679..35ab9c4d84 100644 --- a/src/nvim/ops.c +++ b/src/nvim/ops.c @@ -2519,9 +2519,9 @@ static void op_yank_reg(oparg_T *oap, bool message, yankreg_T *reg, bool append) endcol = (colnr_T)STRLEN(p); if (startcol > endcol || is_oneChar - ) + ) { bd.textlen = 0; - else { + } else { bd.textlen = endcol - startcol + oap->inclusive; } bd.textstart = p + startcol; diff --git a/src/nvim/testdir/test_arabic.vim b/src/nvim/testdir/test_arabic.vim index 17e925ee7f..d67f875f97 100644 --- a/src/nvim/testdir/test_arabic.vim +++ b/src/nvim/testdir/test_arabic.vim @@ -524,54 +524,6 @@ func Test_shape_final() bwipe! endfunc -func Test_shape_final_to_medial() - new - set arabicshape - - " Shaping arabic {testchar} arabic Tests chg_c_f2m(). - " This does not test much... - " pair[0] = testchar, pair[1] = current-result - for pair in [[s:a_f_YEH_HAMZA, s:a_f_BEH], - \[s:a_f_WAW_HAMZA, s:a_s_BEH], - \[s:a_f_ALEF, s:a_s_BEH], - \[s:a_f_TEH_MARBUTA, s:a_s_BEH], - \[s:a_f_DAL, s:a_s_BEH], - \[s:a_f_THAL, s:a_s_BEH], - \[s:a_f_REH, s:a_s_BEH], - \[s:a_f_ZAIN, s:a_s_BEH], - \[s:a_f_WAW, s:a_s_BEH], - \[s:a_f_ALEF_MAKSURA, s:a_s_BEH], - \[s:a_f_BEH, s:a_f_BEH], - \[s:a_f_TEH, s:a_f_BEH], - \[s:a_f_THEH, s:a_f_BEH], - \[s:a_f_JEEM, s:a_f_BEH], - \[s:a_f_HAH, s:a_f_BEH], - \[s:a_f_KHAH, s:a_f_BEH], - \[s:a_f_SEEN, s:a_f_BEH], - \[s:a_f_SHEEN, s:a_f_BEH], - \[s:a_f_SAD, s:a_f_BEH], - \[s:a_f_DAD, s:a_f_BEH], - \[s:a_f_TAH, s:a_f_BEH], - \[s:a_f_ZAH, s:a_f_BEH], - \[s:a_f_AIN, s:a_f_BEH], - \[s:a_f_GHAIN, s:a_f_BEH], - \[s:a_f_FEH, s:a_f_BEH], - \[s:a_f_QAF, s:a_f_BEH], - \[s:a_f_KAF, s:a_f_BEH], - \[s:a_f_LAM, s:a_f_BEH], - \[s:a_f_MEEM, s:a_f_BEH], - \[s:a_f_NOON, s:a_f_BEH], - \[s:a_f_HEH, s:a_f_BEH], - \[s:a_f_YEH, s:a_f_BEH], - \ ] - call setline(1, ' ' . s:a_BEH . pair[0]) - call assert_equal([' ' . pair[1] . pair[0]], ScreenLines(1, 3)) - endfor - - set arabicshape& - bwipe! -endfunc - func Test_shape_combination_final() new set arabicshape diff --git a/src/nvim/testdir/test_normal.vim b/src/nvim/testdir/test_normal.vim index ef17209f74..945cd5a617 100644 --- a/src/nvim/testdir/test_normal.vim +++ b/src/nvim/testdir/test_normal.vim @@ -2552,6 +2552,21 @@ func Test_delete_until_paragraph() bwipe! endfunc +func Test_message_when_using_ctrl_c() + " Make sure no buffers are changed. + %bwipe! + + exe "normal \<C-C>" + call assert_match("Type :qa and press <Enter> to exit Nvim", Screenline(&lines)) + + new + cal setline(1, 'hi!') + exe "normal \<C-C>" + call assert_match("Type :qa! and press <Enter> to abandon all changes and exit Nvim", Screenline(&lines)) + + bwipe! +endfunc + " Test for '[m', ']m', '[M' and ']M' " Jumping to beginning and end of methods in Java-like languages func Test_java_motion() diff --git a/src/nvim/testdir/test_registers.vim b/src/nvim/testdir/test_registers.vim index 414244768a..298268a994 100644 --- a/src/nvim/testdir/test_registers.vim +++ b/src/nvim/testdir/test_registers.vim @@ -68,12 +68,17 @@ endfunc " characters as an escape sequence. func Test_recording_esc_sequence() new - let save_F2 = &t_F2 + try + let save_F2 = &t_F2 + catch + endtry let t_F2 = "\<Esc>OQ" call feedkeys("qqiTest\<Esc>", "xt") call feedkeys("OQuirk\<Esc>q", "xt") call feedkeys("Go\<Esc>@q", "xt") call assert_equal(['Quirk', 'Test', 'Quirk', 'Test'], getline(1, 4)) bwipe! - let t_F2 = save_F2 + if exists('save_F2') + let &t_F2 = save_F2 + endif endfunc diff --git a/src/nvim/undo.c b/src/nvim/undo.c index c9b0d96866..1305e013ad 100644 --- a/src/nvim/undo.c +++ b/src/nvim/undo.c @@ -2961,10 +2961,23 @@ static char_u *u_save_line(linenr_T lnum) /// /// @return true if the buffer has changed bool bufIsChanged(buf_T *buf) + FUNC_ATTR_WARN_UNUSED_RESULT { return !bt_dontwrite(buf) && (buf->b_changed || file_ff_differs(buf, true)); } +// Return true if any buffer has changes. Also buffers that are not written. +bool anyBufIsChanged(void) + FUNC_ATTR_WARN_UNUSED_RESULT +{ + FOR_ALL_BUFFERS(buf) { + if (bufIsChanged(buf)) { + return true; + } + } + return false; +} + /// Check if the 'modified' flag is set, or 'ff' has changed (only need to /// check the first character, because it can only be "dos", "unix" or "mac"). /// "nofile" and "scratch" type buffers are considered to always be unchanged. diff --git a/test/functional/eval/system_spec.lua b/test/functional/eval/system_spec.lua index 865a890acf..13134bc6e7 100644 --- a/test/functional/eval/system_spec.lua +++ b/test/functional/eval/system_spec.lua @@ -275,7 +275,7 @@ describe('system()', function() ~ | ~ | ~ | - Type :qa! and press <E...all changes and exit Nvim | + Type :qa and press <Enter> to exit Nvim | ]]) end) end) @@ -481,7 +481,7 @@ describe('systemlist()', function() ~ | ~ | ~ | - Type :qa! and press <E...all changes and exit Nvim | + Type :qa and press <Enter> to exit Nvim | ]]) end) end) diff --git a/test/functional/ui/cmdline_highlight_spec.lua b/test/functional/ui/cmdline_highlight_spec.lua index 45808b3b1b..052414a43d 100644 --- a/test/functional/ui/cmdline_highlight_spec.lua +++ b/test/functional/ui/cmdline_highlight_spec.lua @@ -494,7 +494,7 @@ describe('Command-line coloring', function() {EOB:~ }| {EOB:~ }| {EOB:~ }| - Type :qa! and pr...nges and exit Nvim | + Type :qa and pre...nter> to exit Nvim | ]]) end) it('works fine with NUL, NL, CR', function() diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua index 2857c2fe1e..9a1a0f66a2 100644 --- a/test/functional/ui/messages_spec.lua +++ b/test/functional/ui/messages_spec.lua @@ -631,7 +631,7 @@ describe('ui/ext_messages', function() {1:~ }| {1:~ }| ]], messages={{ - content = {{ "Type :qa! and press <Enter> to abandon all changes and exit Nvim" }}, + content = {{ "Type :qa and press <Enter> to exit Nvim" }}, kind = ""} }} @@ -678,7 +678,7 @@ describe('ui/ext_messages', function() {1:~ }| ]], messages={ {kind="echomsg", content={{"howdy"}}}, - {kind="", content={{"Type :qa! and press <Enter> to abandon all changes and exit Nvim"}}}, + {kind="", content={{"Type :qa and press <Enter> to exit Nvim"}}}, {kind="echoerr", content={{"bork", 2}}}, {kind="emsg", content={{"E117: Unknown function: nosuchfunction", 2}}} }} |