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 ///