r728 - in /trunk/packages/vim: debian/README debian/changelog
upstream/patches/7.0.035
jamessan at users.alioth.debian.org
jamessan at users.alioth.debian.org
Mon Jul 3 05:35:25 UTC 2006
Author: jamessan
Date: Mon Jul 3 05:35:22 2006
New Revision: 728
URL: http://svn.debian.org/wsvn/pkg-vim/?sc=1&rev=728
Log:
Upstream patch 35
Added:
trunk/packages/vim/upstream/patches/7.0.035
Modified:
trunk/packages/vim/debian/README
trunk/packages/vim/debian/changelog
Modified: trunk/packages/vim/debian/README
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/debian/README?rev=728&op=diff
==============================================================================
--- trunk/packages/vim/debian/README (original)
+++ trunk/packages/vim/debian/README Mon Jul 3 05:35:22 2006
@@ -59,3 +59,4 @@
1424 7.0.032 (extra, after 7.0.027) missing semicolon
2431 7.0.033 pasting after autoindent removes the indent
2042 7.0.034 repeating completion was wrong after typing text or using BS
+ 5905 7.0.035 repeating Insert mode completion doesn't work properly
Modified: trunk/packages/vim/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/debian/changelog?rev=728&op=diff
==============================================================================
--- trunk/packages/vim/debian/changelog (original)
+++ trunk/packages/vim/debian/changelog Mon Jul 3 05:35:22 2006
@@ -1,7 +1,7 @@
-vim (1:7.0-034+1) unstable; urgency=low
+vim (1:7.0-035+1) unstable; urgency=low
[ Debian Vim Maintainers ]
- * New upstream patches (018 - 034), see README.gz for details.
+ * New upstream patches (018 - 035), see README.gz for details.
[ James Vega ]
* debian/control: Make Vim binNMUable.
@@ -13,7 +13,7 @@
[ Stefano Zacchiroli ]
* Removed patch edit.c.diff, no longer needed after upstream patch 023
- -- James Vega <jamessan at debian.org> Wed, 28 Jun 2006 10:56:41 -0400
+ -- James Vega <jamessan at debian.org> Mon, 3 Jul 2006 01:34:47 -0400
vim (1:7.0-017+8) unstable; urgency=medium
Added: trunk/packages/vim/upstream/patches/7.0.035
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.0.035?rev=728&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.0.035 (added)
+++ trunk/packages/vim/upstream/patches/7.0.035 Mon Jul 3 05:35:22 2006
@@ -1,0 +1,205 @@
+To: vim-dev at vim.org
+Subject: Patch 7.0.035
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.035
+Problem: Insert mode completion works when typed but not when replayed from
+ a register. (Hari Krishna Dara)
+ Also: Mappings for Insert mode completion don't always work.
+Solution: When finding a non-completion key in the input don't interrupt
+ completion when it wasn't typed.
+ Do use mappings when checking for typeahead while still finding
+ completions. Avoids that completion is interrupted too soon.
+ Use "compl_pending" in a different way.
+Files: src/edit.c
+
+
+*** ../vim-7.0.034/src/edit.c Fri Jun 23 17:59:26 2006
+--- src/edit.c Fri Jun 23 21:32:42 2006
+***************
+*** 4166,4173 ****
+ {
+ if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL)
+ {
+- if (compl_pending != 0)
+- --compl_pending;
+ compl_shown_match = compl_shown_match->cp_next;
+ found_end = (compl_first_match != NULL
+ && (compl_shown_match->cp_next == compl_first_match
+--- 4166,4171 ----
+***************
+*** 4176,4189 ****
+ else if (compl_shows_dir == BACKWARD
+ && compl_shown_match->cp_prev != NULL)
+ {
+- if (compl_pending != 0)
+- ++compl_pending;
+ found_end = (compl_shown_match == compl_first_match);
+ compl_shown_match = compl_shown_match->cp_prev;
+ found_end |= (compl_shown_match == compl_first_match);
+ }
+ else
+ {
+ if (advance)
+ {
+ if (compl_shows_dir == BACKWARD)
+--- 4174,4197 ----
+ else if (compl_shows_dir == BACKWARD
+ && compl_shown_match->cp_prev != NULL)
+ {
+ found_end = (compl_shown_match == compl_first_match);
+ compl_shown_match = compl_shown_match->cp_prev;
+ found_end |= (compl_shown_match == compl_first_match);
+ }
+ else
+ {
++ if (!allow_get_expansion)
++ {
++ if (advance)
++ {
++ if (compl_shows_dir == BACKWARD)
++ compl_pending -= todo + 1;
++ else
++ compl_pending += todo + 1;
++ }
++ return -1;
++ }
++
+ if (advance)
+ {
+ if (compl_shows_dir == BACKWARD)
+***************
+*** 4191,4204 ****
+ else
+ ++compl_pending;
+ }
+- if (!allow_get_expansion)
+- return -1;
+
+ /* Find matches. */
+ num_matches = ins_compl_get_exp(&compl_startpos);
+! if (compl_pending != 0 && compl_direction == compl_shows_dir
+ && advance)
+! compl_shown_match = compl_curr_match;
+ found_end = FALSE;
+ }
+ if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0
+--- 4199,4225 ----
+ else
+ ++compl_pending;
+ }
+
+ /* Find matches. */
+ num_matches = ins_compl_get_exp(&compl_startpos);
+!
+! /* handle any pending completions */
+! while (compl_pending != 0 && compl_direction == compl_shows_dir
+ && advance)
+! {
+! if (compl_pending > 0 && compl_shown_match->cp_next != NULL)
+! {
+! compl_shown_match = compl_shown_match->cp_next;
+! --compl_pending;
+! }
+! if (compl_pending < 0 && compl_shown_match->cp_prev != NULL)
+! {
+! compl_shown_match = compl_shown_match->cp_prev;
+! ++compl_pending;
+! }
+! else
+! break;
+! }
+ found_end = FALSE;
+ }
+ if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0
+***************
+*** 4307,4315 ****
+ return;
+ count = 0;
+
+! ++no_mapping;
+ c = vpeekc_any();
+- --no_mapping;
+ if (c != NUL)
+ {
+ if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R)
+--- 4328,4336 ----
+ return;
+ count = 0;
+
+! /* Check for a typed key. Do use mappings, otherwise vim_is_ctrl_x_key()
+! * can't do its work correctly. */
+ c = vpeekc_any();
+ if (c != NUL)
+ {
+ if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R)
+***************
+*** 4319,4330 ****
+ (void)ins_compl_next(FALSE, ins_compl_key2count(c),
+ c != K_UP && c != K_DOWN);
+ }
+! else if (c != Ctrl_R)
+! compl_interrupted = TRUE;
+ }
+ if (compl_pending != 0 && !got_int)
+! (void)ins_compl_next(FALSE, compl_pending > 0
+! ? compl_pending : -compl_pending, TRUE);
+ }
+
+ /*
+--- 4340,4366 ----
+ (void)ins_compl_next(FALSE, ins_compl_key2count(c),
+ c != K_UP && c != K_DOWN);
+ }
+! else
+! {
+! /* Need to get the character to have KeyTyped set. We'll put it
+! * back with vungetc() below. */
+! c = safe_vgetc();
+!
+! /* Don't interrupt completion when the character wasn't typed,
+! * e.g., when doing @q to replay keys. */
+! if (c != Ctrl_R && KeyTyped)
+! compl_interrupted = TRUE;
+!
+! vungetc(c);
+! }
+ }
+ if (compl_pending != 0 && !got_int)
+! {
+! int todo = compl_pending > 0 ? compl_pending : -compl_pending;
+!
+! compl_pending = 0;
+! (void)ins_compl_next(FALSE, todo, TRUE);
+! }
+ }
+
+ /*
+*** ../vim-7.0.034/src/version.c Fri Jun 23 17:59:26 2006
+--- src/version.c Fri Jun 23 21:35:39 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 35,
+ /**/
+
+--
+So when I saw the post to comp.editors, I rushed over to the FTP site to
+grab it. So I yank apart the tarball, light x candles, where x= the
+vim version multiplied by the md5sum of the source divided by the MAC of
+my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
+wave a dead chicken over the hard drive, and summon the power of GNU GCC
+with the magic words "make config ; make!".
+ [Jason Spence, compiling Vim 5.0]
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
More information about the pkg-vim-maintainers
mailing list