diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.319')
-rw-r--r-- | source/ap/vim/patches/7.3.319 | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/source/ap/vim/patches/7.3.319 b/source/ap/vim/patches/7.3.319 deleted file mode 100644 index 68448ab6..00000000 --- a/source/ap/vim/patches/7.3.319 +++ /dev/null @@ -1,154 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.319 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.3.319 (after 7.3.311) -Problem: Redobuff doesn't always include changes of the completion leader. -Solution: Insert backspaces as needed. (idea by Taro Muraoka) -Files: src/edit.c - - -*** ../vim-7.3.318/src/edit.c 2011-09-14 16:52:02.000000000 +0200 ---- src/edit.c 2011-09-21 17:59:10.000000000 +0200 -*************** -*** 163,168 **** ---- 163,169 ---- - static void ins_compl_set_original_text __ARGS((char_u *str)); - static void ins_compl_addfrommatch __ARGS((void)); - static int ins_compl_prep __ARGS((int c)); -+ static void ins_compl_fixRedoBufForLeader __ARGS((char_u *ptr_arg)); - static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag)); - #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL) - static void ins_compl_add_list __ARGS((list_T *list)); -*************** -*** 3713,3721 **** - * memory that was used, and make sure we can redo the insert. */ - if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E) - { -- char_u *p; -- int temp = 0; -- - /* - * If any of the original typed text has been changed, eg when - * ignorecase is set, we must add back-spaces to the redo ---- 3714,3719 ---- -*************** -*** 3726,3750 **** - */ - if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E) - ptr = compl_curr_match->cp_str; -- else if (compl_leader != NULL) -- ptr = compl_leader; - else -! ptr = compl_orig_text; -! if (compl_orig_text != NULL) -! { -! p = compl_orig_text; -! for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; -! ++temp) -! ; -! #ifdef FEAT_MBYTE -! if (temp > 0) -! temp -= (*mb_head_off)(compl_orig_text, p + temp); -! #endif -! for (p += temp; *p != NUL; mb_ptr_adv(p)) -! AppendCharToRedobuff(K_BS); -! } -! if (ptr != NULL) -! AppendToRedobuffLit(ptr + temp, -1); - } - - #ifdef FEAT_CINDENT ---- 3724,3732 ---- - */ - if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E) - ptr = compl_curr_match->cp_str; - else -! ptr = NULL; -! ins_compl_fixRedoBufForLeader(ptr); - } - - #ifdef FEAT_CINDENT -*************** -*** 3834,3839 **** ---- 3816,3859 ---- - } - - /* -+ * Fix the redo buffer for the completion leader replacing some of the typed -+ * text. This inserts backspaces and appends the changed text. -+ * "ptr" is the known leader text or NUL. -+ */ -+ static void -+ ins_compl_fixRedoBufForLeader(ptr_arg) -+ char_u *ptr_arg; -+ { -+ int len; -+ char_u *p; -+ char_u *ptr = ptr_arg; -+ -+ if (ptr == NULL) -+ { -+ if (compl_leader != NULL) -+ ptr = compl_leader; -+ else -+ return; /* nothing to do */ -+ } -+ if (compl_orig_text != NULL) -+ { -+ p = compl_orig_text; -+ for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len) -+ ; -+ #ifdef FEAT_MBYTE -+ if (len > 0) -+ len -= (*mb_head_off)(p, p + len); -+ #endif -+ for (p += len; *p != NUL; mb_ptr_adv(p)) -+ AppendCharToRedobuff(K_BS); -+ } -+ else -+ len = 0; -+ if (ptr != NULL) -+ AppendToRedobuffLit(ptr + len, -1); -+ } -+ -+ /* - * Loops through the list of windows, loaded-buffers or non-loaded-buffers - * (depending on flag) starting from buf and looking for a non-scanned - * buffer (other than curbuf). curbuf is special, if it is called with -*************** -*** 5241,5246 **** ---- 5261,5270 ---- - else - edit_submode = (char_u *)_(CTRL_X_MSG(ctrl_x_mode)); - -+ /* If any of the original typed text has been changed we need to fix -+ * the redo buffer. */ -+ ins_compl_fixRedoBufForLeader(NULL); -+ - /* Always add completion for the original text. */ - vim_free(compl_orig_text); - compl_orig_text = vim_strnsave(line + compl_col, compl_length); -*** ../vim-7.3.318/src/version.c 2011-09-21 17:33:49.000000000 +0200 ---- src/version.c 2011-09-21 18:21:07.000000000 +0200 -*************** -*** 711,712 **** ---- 711,714 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 319, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -27. You refer to your age as 3.x. - - /// 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 /// |