diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2012-09-26 01:10:42 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-05-31 22:51:55 +0200 |
commit | 9664bee729d487bcc0a0bc35859f8e13d5421c75 (patch) | |
tree | b428a16618e36ed864a8d76ea3435e19a452bf90 /source/ap/vim/patches/7.3.319 | |
parent | 75a4a592e5ccda30715f93563d741b83e0dcf39e (diff) | |
download | current-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.gz |
Slackware 14.0slackware-14.0
Wed Sep 26 01:10:42 UTC 2012
Slackware 14.0 x86_64 stable is released!
We're perfectionists here at Slackware, so this release has been a long
time a-brewing. But we think you'll agree that it was worth the wait.
Slackware 14.0 combines modern components, ease of use, and flexible
configuration... our "KISS" philosophy demands it.
The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware
project by picking up a copy from store.slackware.com. We're taking
pre-orders now, and offer a discount if you sign up for a subscription.
Thanks to everyone who helped make this happen. The Slackware team, the
upstream developers, and (of course) the awesome Slackware user
community.
Have fun! :-)
Diffstat (limited to 'source/ap/vim/patches/7.3.319')
-rw-r--r-- | source/ap/vim/patches/7.3.319 | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.319 b/source/ap/vim/patches/7.3.319 new file mode 100644 index 00000000..68448ab6 --- /dev/null +++ b/source/ap/vim/patches/7.3.319 @@ -0,0 +1,154 @@ +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 /// |