Hi Bram, Ramel and developers,

2016-5-25(Wed) 23:16:51 UTC+9 h_east:
> Hi Ramel,
> 
> 2016-5-25(Wed) 22:02:46 UTC+9 Ramel Eshed:
> > Hi All,
> > 
> > Please check this:
> > 
> > vim -u NONE -N
> > :for i in range(1, 200) | echoerr 'mes ' . i | endfor
> > G " - go to the bottom of the list
> > 
> > Now, type k several times; instead of moving one line back each time, I get 
> > extra 'Press ENTER or type command to continue' messages.
> 
> I can reproduce it.
> This behavior is related to the following patch and thread.
> 
> Patch 7.4.1603
> https://groups.google.com/d/msg/vim_dev/ULVcOTWfV6k/pexQ-XSSGQAJ
> 
> Patch 7.4.1594 (I reported many wrong redraw behavior)
> https://groups.google.com/d/msg/vim_dev/MnIeBK-XLgc/eEuAUfaIGQAJ
> 
> 
> Perhaps, this if statement is causing this problem.
> https://github.com/vim/vim/blame/master/src/message.c#L2477-L2482
> 
> Thanks for reporting this.

I wrote a patch that fixes this issue.  It's ad hoc.
Please check this.

Ultimately, we must fix correctly, including output from the timer handler.

Sample 1:
$ cat sss.vim
let g:tt_cnt = 0
func MyHandler(timer)
        let g:tt_cnt += 1
        echo g:tt_cnt
endfunc
let timer = timer_start(500, 'MyHandler', {'repeat': -1})

$ vim -Nu NONE -S sss.vim
:!ls


Sample 2:
$ cat sss.vim
let g:tt_cnt = 0
func MyHandler(timer)
        let g:tt_cnt += 1
        echo g:tt_cnt
endfunc
let timer = timer_start(500, 'MyHandler', {'repeat': -1})

$ vim -Nu NONE -S sss.vim
:for i in range(1, 200) | echoerr 'mes ' . i | endfor
G


--
Best regards,
Hirohito Higashi (a.k.a. h_east)

-- 
-- 
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/d/optout.
diff --git a/src/message.c b/src/message.c
index d3572eb..921d91f 100644
--- a/src/message.c
+++ b/src/message.c
@@ -2477,7 +2477,7 @@ do_more_prompt(int typed_char)
     /* We get called recursively when a timer callback outputs a message. In
      * that case don't show another prompt. Also when at the hit-Enter prompt.
      */
-    if (entered || State == HITRETURN)
+    if (entered || (State == HITRETURN && typed_char == 0))
 	return FALSE;
     entered = TRUE;
 

Raspunde prin e-mail lui