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(); 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 static void
out_char_nf(unsigned c) 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; out_buf[out_pos++] = c;
if (out_pos >= OUT_SIZE) if (out_pos >= OUT_SIZE)
@ -2564,9 +2557,9 @@ out_char_nf(unsigned c)
} }
/* /*
* A never-padding out_str. * A never-padding out_str().
* use this whenever you don't want to run the string through tputs. * Use this whenever you don't want to run the string through tputs().
* tputs above is harmless, but tputs from the termcap library * tputs() above is harmless, but tputs() from the termcap library
* is likely to strip off leading digits, that it mistakes for padding * is likely to strip off leading digits, that it mistakes for padding
* information, and "%i", "%d", etc. * information, and "%i", "%d", etc.
* This should only be used for writing terminal codes, not for outputting * 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. * 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 * This should only be used for writing terminal codes, not for outputting
* normal text (use functions like msg_puts() and screen_putchar() for that). * normal text (use functions like msg_puts() and screen_putchar() for that).
*/ */
@ -2943,10 +2936,10 @@ term_bg_rgb_color(guicolor_T rgb)
void void
term_settitle(char_u *title) term_settitle(char_u *title)
{ {
/* t_ts takes one argument: column in status line */ // t_ts takes one argument: column in status line
OUT_STR(tgoto((char *)T_TS, 0, 0)); /* set title start */ OUT_STR(tgoto((char *)T_TS, 0, 0)); // set title start
out_str_nf(title); out_str_nf(title);
out_str(T_FS); /* set title end */ out_str(T_FS); // set title end
out_flush(); out_flush();
} }
@ -3786,9 +3779,9 @@ term_cursor_color(char_u *color)
{ {
if (*T_CSC != NUL) 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_nf(color);
out_str(T_CEC); /* set cursor color end */ out_str(T_CEC); // set cursor color end
out_flush(); out_flush();
} }
} }

View File

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