0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.2209: LF in escape codes may be expanded to CR-LF

Problem:    LF in escape codes may be expanded to CR-LF.
Solution:   Do not expand LF in escape codes to CR-LF. (closes #5107)
This commit is contained in:
Bram Moolenaar 2019-10-24 17:49:27 +02:00
parent faf626e5d1
commit ec6f735012
2 changed files with 12 additions and 17 deletions

View File

@ -2544,19 +2544,12 @@ out_char(unsigned c)
out_flush();
}
static void out_char_nf(unsigned);
/*
* out_char_nf(c): like out_char(), but don't flush when p_wd is set
* Output "c" like out_char(), but don't flush when p_wd is set.
*/
static void
out_char_nf(unsigned c)
{
#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X)
if (c == '\n') /* turn LF into CR-LF (CRMOD doesn't seem to do this) */
out_char_nf('\r');
#endif
out_buf[out_pos++] = c;
if (out_pos >= OUT_SIZE)
@ -2564,9 +2557,9 @@ out_char_nf(unsigned c)
}
/*
* A never-padding out_str.
* use this whenever you don't want to run the string through tputs.
* tputs above is harmless, but tputs from the termcap library
* A never-padding out_str().
* Use this whenever you don't want to run the string through tputs().
* tputs() above is harmless, but tputs() from the termcap library
* is likely to strip off leading digits, that it mistakes for padding
* information, and "%i", "%d", etc.
* This should only be used for writing terminal codes, not for outputting
@ -2660,7 +2653,7 @@ out_str_cf(char_u *s)
/*
* out_str(s): Put a character string a byte at a time into the output buffer.
* If HAVE_TGETENT is defined use the termcap parser. (jw)
* If HAVE_TGETENT is defined use tputs(), the termcap parser. (jw)
* This should only be used for writing terminal codes, not for outputting
* normal text (use functions like msg_puts() and screen_putchar() for that).
*/
@ -2943,10 +2936,10 @@ term_bg_rgb_color(guicolor_T rgb)
void
term_settitle(char_u *title)
{
/* t_ts takes one argument: column in status line */
OUT_STR(tgoto((char *)T_TS, 0, 0)); /* set title start */
// t_ts takes one argument: column in status line
OUT_STR(tgoto((char *)T_TS, 0, 0)); // set title start
out_str_nf(title);
out_str(T_FS); /* set title end */
out_str(T_FS); // set title end
out_flush();
}
@ -3786,9 +3779,9 @@ term_cursor_color(char_u *color)
{
if (*T_CSC != NUL)
{
out_str(T_CSC); /* set cursor color start */
out_str(T_CSC); // set cursor color start
out_str_nf(color);
out_str(T_CEC); /* set cursor color end */
out_str(T_CEC); // set cursor color end
out_flush();
}
}

View File

@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2209,
/**/
2208,
/**/