diff --git a/7.4.143 b/7.4.143 new file mode 100644 index 0000000..909a9e9 --- /dev/null +++ b/7.4.143 @@ -0,0 +1,214 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.143 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.143 +Problem: TextChangedI is not triggered. +Solution: Reverse check for "ready". (lilydjwg) +Files: src/edit.c + + +*** ../vim-7.4.142/src/edit.c 2013-11-06 04:01:31.000000000 +0100 +--- src/edit.c 2014-01-12 13:30:53.000000000 +0100 +*************** +*** 1556,1642 **** + int conceal_update_lines = FALSE; + #endif + +! if (!char_avail()) +! { + #if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL) +! /* Trigger CursorMoved if the cursor moved. Not when the popup menu is +! * visible, the command might delete it. */ +! if (ready && ( + # ifdef FEAT_AUTOCMD +! has_cursormovedI() + # endif + # if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL) +! || + # endif + # ifdef FEAT_CONCEAL +! curwin->w_p_cole > 0 + # endif +! ) +! && !equalpos(last_cursormoved, curwin->w_cursor) + # ifdef FEAT_INS_EXPAND +! && !pum_visible() + # endif +! ) +! { + # ifdef FEAT_SYN_HL +! /* Need to update the screen first, to make sure syntax +! * highlighting is correct after making a change (e.g., inserting +! * a "(". The autocommand may also require a redraw, so it's done +! * again below, unfortunately. */ +! if (syntax_present(curwin) && must_redraw) +! update_screen(0); + # endif + # ifdef FEAT_AUTOCMD +! if (has_cursormovedI()) +! apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf); + # endif + # ifdef FEAT_CONCEAL +! if (curwin->w_p_cole > 0) +! { +! conceal_old_cursor_line = last_cursormoved.lnum; +! conceal_new_cursor_line = curwin->w_cursor.lnum; +! conceal_update_lines = TRUE; +! } +! # endif +! last_cursormoved = curwin->w_cursor; + } + #endif + #ifdef FEAT_AUTOCMD +! /* Trigger TextChangedI if b_changedtick differs. */ +! if (!ready && has_textchangedI() +! && last_changedtick != curbuf->b_changedtick + # ifdef FEAT_INS_EXPAND +! && !pum_visible() + # endif +! ) +! { +! if (last_changedtick_buf == curbuf) +! apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf); +! last_changedtick_buf = curbuf; +! last_changedtick = curbuf->b_changedtick; +! } + #endif +! if (must_redraw) +! update_screen(0); +! else if (clear_cmdline || redraw_cmdline) +! showmode(); /* clear cmdline and show mode */ + # if defined(FEAT_CONCEAL) +! if ((conceal_update_lines +! && (conceal_old_cursor_line != conceal_new_cursor_line +! || conceal_cursor_line(curwin))) +! || need_cursor_line_redraw) +! { +! if (conceal_old_cursor_line != conceal_new_cursor_line) +! update_single_line(curwin, conceal_old_cursor_line); +! update_single_line(curwin, conceal_new_cursor_line == 0 +! ? curwin->w_cursor.lnum : conceal_new_cursor_line); +! curwin->w_valid &= ~VALID_CROW; +! } +! # endif +! showruler(FALSE); +! setcursor(); +! emsg_on_display = FALSE; /* may remove error message now */ + } + } + + /* +--- 1556,1644 ---- + int conceal_update_lines = FALSE; + #endif + +! if (char_avail()) +! return; +! + #if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL) +! /* Trigger CursorMoved if the cursor moved. Not when the popup menu is +! * visible, the command might delete it. */ +! if (ready && ( + # ifdef FEAT_AUTOCMD +! has_cursormovedI() + # endif + # if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL) +! || + # endif + # ifdef FEAT_CONCEAL +! curwin->w_p_cole > 0 + # endif +! ) +! && !equalpos(last_cursormoved, curwin->w_cursor) + # ifdef FEAT_INS_EXPAND +! && !pum_visible() + # endif +! ) +! { + # ifdef FEAT_SYN_HL +! /* Need to update the screen first, to make sure syntax +! * highlighting is correct after making a change (e.g., inserting +! * a "(". The autocommand may also require a redraw, so it's done +! * again below, unfortunately. */ +! if (syntax_present(curwin) && must_redraw) +! update_screen(0); + # endif + # ifdef FEAT_AUTOCMD +! if (has_cursormovedI()) +! apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf); + # endif + # ifdef FEAT_CONCEAL +! if (curwin->w_p_cole > 0) +! { +! conceal_old_cursor_line = last_cursormoved.lnum; +! conceal_new_cursor_line = curwin->w_cursor.lnum; +! conceal_update_lines = TRUE; + } ++ # endif ++ last_cursormoved = curwin->w_cursor; ++ } + #endif ++ + #ifdef FEAT_AUTOCMD +! /* Trigger TextChangedI if b_changedtick differs. */ +! if (ready && has_textchangedI() +! && last_changedtick != curbuf->b_changedtick + # ifdef FEAT_INS_EXPAND +! && !pum_visible() + # endif +! ) +! { +! if (last_changedtick_buf == curbuf) +! apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf); +! last_changedtick_buf = curbuf; +! last_changedtick = curbuf->b_changedtick; +! } + #endif +! +! if (must_redraw) +! update_screen(0); +! else if (clear_cmdline || redraw_cmdline) +! showmode(); /* clear cmdline and show mode */ + # if defined(FEAT_CONCEAL) +! if ((conceal_update_lines +! && (conceal_old_cursor_line != conceal_new_cursor_line +! || conceal_cursor_line(curwin))) +! || need_cursor_line_redraw) +! { +! if (conceal_old_cursor_line != conceal_new_cursor_line) +! update_single_line(curwin, conceal_old_cursor_line); +! update_single_line(curwin, conceal_new_cursor_line == 0 +! ? curwin->w_cursor.lnum : conceal_new_cursor_line); +! curwin->w_valid &= ~VALID_CROW; + } ++ # endif ++ showruler(FALSE); ++ setcursor(); ++ emsg_on_display = FALSE; /* may remove error message now */ + } + + /* +*** ../vim-7.4.142/src/version.c 2014-01-12 13:24:46.000000000 +0100 +--- src/version.c 2014-01-14 12:15:50.000000000 +0100 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 143, + /**/ + +-- +You are not really successful until someone claims he sat +beside you in school. + + /// 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 ///