Skip to content

Commit ec6f735

Browse files
committed
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)
1 parent faf626e commit ec6f735

2 files changed

Lines changed: 12 additions & 17 deletions

File tree

src/term.c

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2544,29 +2544,22 @@ out_char(unsigned c)
25442544
out_flush();
25452545
}
25462546

2547-
static void out_char_nf(unsigned);
2548-
25492547
/*
2550-
* out_char_nf(c): like out_char(), but don't flush when p_wd is set
2548+
* Output "c" like out_char(), but don't flush when p_wd is set.
25512549
*/
25522550
static void
25532551
out_char_nf(unsigned c)
25542552
{
2555-
#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X)
2556-
if (c == '\n') /* turn LF into CR-LF (CRMOD doesn't seem to do this) */
2557-
out_char_nf('\r');
2558-
#endif
2559-
25602553
out_buf[out_pos++] = c;
25612554

25622555
if (out_pos >= OUT_SIZE)
25632556
out_flush();
25642557
}
25652558

25662559
/*
2567-
* A never-padding out_str.
2568-
* use this whenever you don't want to run the string through tputs.
2569-
* tputs above is harmless, but tputs from the termcap library
2560+
* A never-padding out_str().
2561+
* Use this whenever you don't want to run the string through tputs().
2562+
* tputs() above is harmless, but tputs() from the termcap library
25702563
* is likely to strip off leading digits, that it mistakes for padding
25712564
* information, and "%i", "%d", etc.
25722565
* This should only be used for writing terminal codes, not for outputting
@@ -2660,7 +2653,7 @@ out_str_cf(char_u *s)
26602653

26612654
/*
26622655
* out_str(s): Put a character string a byte at a time into the output buffer.
2663-
* If HAVE_TGETENT is defined use the termcap parser. (jw)
2656+
* If HAVE_TGETENT is defined use tputs(), the termcap parser. (jw)
26642657
* This should only be used for writing terminal codes, not for outputting
26652658
* normal text (use functions like msg_puts() and screen_putchar() for that).
26662659
*/
@@ -2943,10 +2936,10 @@ term_bg_rgb_color(guicolor_T rgb)
29432936
void
29442937
term_settitle(char_u *title)
29452938
{
2946-
/* t_ts takes one argument: column in status line */
2947-
OUT_STR(tgoto((char *)T_TS, 0, 0)); /* set title start */
2939+
// t_ts takes one argument: column in status line
2940+
OUT_STR(tgoto((char *)T_TS, 0, 0)); // set title start
29482941
out_str_nf(title);
2949-
out_str(T_FS); /* set title end */
2942+
out_str(T_FS); // set title end
29502943
out_flush();
29512944
}
29522945

@@ -3786,9 +3779,9 @@ term_cursor_color(char_u *color)
37863779
{
37873780
if (*T_CSC != NUL)
37883781
{
3789-
out_str(T_CSC); /* set cursor color start */
3782+
out_str(T_CSC); // set cursor color start
37903783
out_str_nf(color);
3791-
out_str(T_CEC); /* set cursor color end */
3784+
out_str(T_CEC); // set cursor color end
37923785
out_flush();
37933786
}
37943787
}

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,8 @@ static char *(features[]) =
741741

742742
static int included_patches[] =
743743
{ /* Add new patch number below this line */
744+
/**/
745+
2209,
744746
/**/
745747
2208,
746748
/**/

0 commit comments

Comments
 (0)