Patch 8.1.1016
Problem: MS-Windows: No color in shell when using "!" in 'guioptions.
Solution: Don't stop termcap when using a terminal window for the shell.
(vim-jp, closes #4117)
Files: src/ex_cmds.c
*** ../vim-8.1.1015/src/ex_cmds.c 2019-02-20 22:18:59.990044254 +0100
--- src/ex_cmds.c 2019-03-17 16:56:37.691336310 +0100
***************
*** 1542,1547 ****
--- 1542,1548 ----
#endif
#ifdef MSWIN
int winstart = FALSE;
+ int keep_termcap = FALSE;
#endif
/*
***************
*** 1557,1604 ****
#ifdef MSWIN
/*
! * Check if ":!start" is used.
*/
if (cmd != NULL)
! winstart = (STRNICMP(cmd, "start ", 6) == 0);
#endif
/*
* For autocommands we want to get the output on the current screen, to
* avoid having to type return below.
*/
! msg_putchar('\r'); /* put cursor at start of line
*/
if (!autocmd_busy)
{
#ifdef MSWIN
! if (!winstart)
#endif
stoptermcap();
}
#ifdef MSWIN
if (!winstart)
#endif
! msg_putchar('\n'); /* may shift screen one line up */
! /* warning message before calling the shell */
if (p_warn && !autocmd_busy && msg_silent == 0)
FOR_ALL_BUFFERS(buf)
if (bufIsChangedNotTerm(buf))
{
#ifdef FEAT_GUI_MSWIN
! if (!winstart)
! starttermcap(); /* don't want a message box here */
#endif
msg_puts(_("[No write since last change]\n"));
#ifdef FEAT_GUI_MSWIN
! if (!winstart)
stoptermcap();
#endif
break;
}
! /* This windgoto is required for when the '\n' resulted in a "delete line
! * 1" command to the terminal. */
if (!swapping_screen())
windgoto(msg_row, msg_col);
cursor_on();
--- 1558,1611 ----
#ifdef MSWIN
/*
! * Check if ":!start" is used. This implies not stopping termcap mode.
*/
if (cmd != NULL)
! keep_termcap = winstart = (STRNICMP(cmd, "start ", 6) == 0);
!
! # if defined(FEAT_GUI) && defined(FEAT_TERMINAL)
! // Don't stop termcap mode when using a terminal window for the shell.
! if (gui.in_use && vim_strchr(p_go, GO_TERMINAL) != NULL)
! keep_termcap = TRUE;
! # endif
#endif
/*
* For autocommands we want to get the output on the current screen, to
* avoid having to type return below.
*/
! msg_putchar('\r'); // put cursor at start of line
if (!autocmd_busy)
{
#ifdef MSWIN
! if (!keep_termcap)
#endif
stoptermcap();
}
#ifdef MSWIN
if (!winstart)
#endif
! msg_putchar('\n'); // may shift screen one line up
! // warning message before calling the shell
if (p_warn && !autocmd_busy && msg_silent == 0)
FOR_ALL_BUFFERS(buf)
if (bufIsChangedNotTerm(buf))
{
#ifdef FEAT_GUI_MSWIN
! if (!keep_termcap)
! starttermcap(); // don't want a message box here
#endif
msg_puts(_("[No write since last change]\n"));
#ifdef FEAT_GUI_MSWIN
! if (!keep_termcap)
stoptermcap();
#endif
break;
}
! // This windgoto is required for when the '\n' resulted in a "delete line
! // 1" command to the terminal.
if (!swapping_screen())
windgoto(msg_row, msg_col);
cursor_on();
***************
*** 1632,1638 ****
#ifndef FEAT_GUI_MSWIN
if (cmd == NULL
# ifdef MSWIN
! || (winstart && !need_wait_return)
# endif
)
{
--- 1639,1645 ----
#ifndef FEAT_GUI_MSWIN
if (cmd == NULL
# ifdef MSWIN
! || (keep_termcap && !need_wait_return)
# endif
)
{
***************
*** 1659,1667 ****
#endif /* FEAT_GUI_MSWIN */
#ifdef MSWIN
! if (!winstart) /* if winstart==TRUE, never stopped termcap! */
#endif
! starttermcap(); /* start termcap if not done by wait_return() */
/*
* In an Amiga window redrawing is caused by asking the window size.
--- 1666,1674 ----
#endif /* FEAT_GUI_MSWIN */
#ifdef MSWIN
! if (!keep_termcap) // if keep_termcap is TRUE didn't stop termcap
#endif
! starttermcap(); // start termcap if not done by wait_return()
/*
* In an Amiga window redrawing is caused by asking the window size.
*** ../vim-8.1.1015/src/version.c 2019-03-17 16:39:01.566006172 +0100
--- src/version.c 2019-03-17 16:58:06.018782269 +0100
***************
*** 781,782 ****
--- 781,784 ----
{ /* Add new patch number below this line */
+ /**/
+ 1016,
/**/
--
hundred-and-one symptoms of being an internet addict:
80. At parties, you introduce your spouse as your "service provider."
/// Bram Moolenaar -- [email protected] -- 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 ///
--
--
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.