Patch 8.0.0611

65 views
Skip to first unread message

Bram Moolenaar

unread,
Jun 4, 2017, 9:46:08 AM6/4/17
to vim...@googlegroups.com

Patch 8.0.0611
Problem: When t_u7 is sent a few characters in the second screen line are
overwritten and not redrawn later. (Rastislav Barlik)
Solution: Move redrawing the screen to after overwriting the characters.
Files: src/main.c, src/term.c.


*** ../vim-8.0.0610/src/main.c 2017-04-18 18:51:30.063844106 +0200
--- src/main.c 2017-06-04 15:41:15.230362973 +0200
***************
*** 783,788 ****
--- 783,793 ----
if (params.n_commands > 0)
exe_commands(&params);

+ #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
+ /* Must be done before redrawing, puts a few characters on the screen. */
+ may_req_ambiguous_char_width();
+ #endif
+
RedrawingDisabled = 0;
redraw_all_later(NOT_VALID);
no_wait_return = FALSE;
***************
*** 796,804 ****
* argument doesn't make it appear in the shell Vim was started from. */
may_req_termresponse();

- # if defined(FEAT_MBYTE)
- may_req_ambiguous_char_width();
- # endif
may_req_bg_color();
#endif

--- 801,806 ----
*** ../vim-8.0.0610/src/term.c 2017-06-04 15:37:42.179841016 +0200
--- src/term.c 2017-06-04 15:43:08.493576778 +0200
***************
*** 3333,3341 ****
--- 3333,3345 ----
out_str(T_U7);
u7_status = U7_SENT;
out_flush();
+
+ /* This overwrites a few characters on the screen, a redraw is needed
+ * after this. Clear them out for now. */
term_windgoto(1, 0);
out_str((char_u *)" ");
term_windgoto(0, 0);
+
/* check for the characters now, otherwise they might be eaten by
* get_keystroke() */
out_flush();
*** ../vim-8.0.0610/src/version.c 2017-06-04 15:37:42.179841016 +0200
--- src/version.c 2017-06-04 15:43:19.377501214 +0200
***************
*** 766,767 ****
--- 766,769 ----
{ /* Add new patch number below this line */
+ /**/
+ 611,
/**/

--
If someone questions your market projections, simply point out that your
target market is "People who are nuts" and "People who will buy any damn
thing". Nobody is going to tell you there aren't enough of those people
to go around.
(Scott Adams - The Dilbert principle)

/// Bram Moolenaar -- Br...@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 ///

h_east

unread,
Jun 8, 2017, 8:38:32 PM6/8/17
to vim_dev
Hi Bram,

2017-6-4(Sun) 22:46:08 UTC+9 Bram Moolenaar:

The following problem has recurred with this patch.
https://groups.google.com/forum/#!msg/vim_dev/A4ZXSrkjyh0/yYkaQdpKFwAJ

It was corrected once at patch 8.0.0567, but it occurred again at patch 8.0.0611.
(I checked on Vim 8.0.0628)

patch 8.0.0567: call for requesting color and ambiwidth is too early
https://github.com/vim/vim/commit/fc8f1118e7ccd65b0537e47e6323c93a1df6a61a

--
Best regards,
Hirohito Higashi (h_east)

Bram Moolenaar

unread,
Jun 9, 2017, 2:24:14 PM6/9/17
to vim...@googlegroups.com, h_east

Hirohito Higashi wrote:

> 2017-6-4(Sun) 22:46:08 UTC+9 Bram Moolenaar:
> > Patch 8.0.0611
> > Problem: When t_u7 is sent a few characters in the second screen line are
> > overwritten and not redrawn later. (Rastislav Barlik)
> > Solution: Move redrawing the screen to after overwriting the characters.
> > Files: src/main.c, src/term.c.
> >
> >
> > *** ../vim-8.0.0610/src/main.c 2017-04-18 18:51:30.063844106 +0200
> > --- src/main.c 2017-06-04 15:41:15.230362973 +0200
> > ***************
> > *** 783,788 ****
> > --- 783,793 ----
> > if (params.n_commands > 0)
> > exe_commands(&params);
> >
> > + #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
> > + /* Must be done before redrawing, puts a few characters on the screen. */
> > + may_req_ambiguous_char_width();
> > + #endif
> > +
> > RedrawingDisabled = 0;
> > redraw_all_later(NOT_VALID);
> > no_wait_return = FALSE;

[...]

> The following problem has recurred with this patch.
> https://groups.google.com/forum/#!msg/vim_dev/A4ZXSrkjyh0/yYkaQdpKFwAJ
>
> It was corrected once at patch 8.0.0567, but it occurred again at patch 8.0.0611.
> (I checked on Vim 8.0.0628)
>
> patch 8.0.0567: call for requesting color and ambiwidth is too early
> https://github.com/vim/vim/commit/fc8f1118e7ccd65b0537e47e6323c93a1df6a61a

I forgot to move the line that resets "starting" to before the request.
I think it's safe to do this now.


--
Far back in the mists of ancient time, in the great and glorious days of the
former Galactic Empire, life was wild, rich and largely tax free.
Mighty starships plied their way between exotic suns, seeking adventure and
reward among the furthest reaches of Galactic space. In those days, spirits
were brave, the stakes were high, men were real men, women were real women
and small furry creatures from Alpha Centauri were real small furry creatures
from Alpha Centauri. And all dared to brave unknown terrors, to do mighty
deeds, to boldly split infinitives that no man had split before -- and thus
was the Empire forged.
-- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
Reply all
Reply to author
Forward
0 new messages