Hi Christian,

Sorry, but there doesn't seem to be any difference.
And there is a compilation warning:
edit.c: In function ‘ins_complete’:
edit.c:5377:16: warning: ‘n’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
edit.c:4944:9: note: ‘n’ was declared here

Best regards,
Olivier

On Tue, Feb 26, 2013 at 11:10 PM, Christian Brabandt <[email protected]> wrote:
> Hi Olivier!
>
> On Mo, 25 Feb 2013, Olivier Teulière wrote:
>
>> Hi Christian,
>>
>> On Saturday, February 16, 2013 10:03:05 PM UTC+1, Christian Brabandt wrote:
>> > Check this patch:
>> > [...]
>>
>> Your patch solves the problem, but maybe not in the best way. Now, after 
>> typing 'f' to shrink the list, the selection is lost in the popup. This 
>> means that I cannot simply type Enter to insert the selected entry and close 
>> the popup at the same time, which was very practical.
>>
>> I think it would make more sense to keep the selection, and to return to one 
>> of the following states after <bs>:
>>  - foofoobar1 is selected (both visually and "internally"), because it was 
>> selected before typing <bs>
>>  - foobar is selected (both visually and "internally"), because it was 
>> selected before typing the letter erased by <bs>
>> Whichever is easier to implement :) Currently, it seems to be in the first 
>> state visually, and in the second one internally.
>
> The problem is, hitting backspace changes the leader and on the next
> invocation of ins_complete() compl_curr_match() will be set wrongly
> because ins_compl_next is called.
>
> This patch should work better:
>
> diff --git a/src/edit.c b/src/edit.c
> --- a/src/edit.c
> +++ b/src/edit.c
> @@ -93,6 +93,7 @@
>  static compl_T    *compl_first_match = NULL;
>  static compl_T    *compl_curr_match = NULL;
>  static compl_T    *compl_shown_match = NULL;
> +static int        did_bs = FALSE;
>
>  /* After using a cursor key <Enter> selects a match in the popup menu,
>   * otherwise it inserts a line break. */
> @@ -3380,6 +3381,7 @@
>      if (compl_leader != NULL)
>      {
>         ins_compl_new_leader();
> +       did_bs = TRUE;
>         return NUL;
>      }
>      return K_BS;
> @@ -5363,7 +5365,10 @@
>       * Find next match (and following matches).
>       */
>      save_w_wrow = curwin->w_wrow;
> -    n = ins_compl_next(TRUE, ins_compl_key2count(c), ins_compl_use_match(c));
> +    /* don't add completions, after hitting backspace and the leader changed 
> */
> +    if (!did_bs)
> +       n = ins_compl_next(TRUE, ins_compl_key2count(c), 
> ins_compl_use_match(c));
> +    did_bs = FALSE;
>
>      /* may undisplay the popup menu */
>      ins_compl_upd_pum();
>
>
> Mit freundlichen Grüßen
> Christian
> --
> Was man erfindet, tut man mit Liebe, was man gelernt hat, mit
> Sicherheit.
>                 -- Goethe, Maximen und Reflektionen, Nr. 1068
>
> --
> --
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups 
> "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



-- 
Olivier

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui