summaryrefslogtreecommitdiff
path: root/src/term.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-10-24 17:49:27 +0200
committerBram Moolenaar <Bram@vim.org>2019-10-24 17:49:27 +0200
commitec6f7350129f8c7809fd061f58a9eb6790c445a8 (patch)
tree5e2a84cf5b390e7ad6fce6693c0027c3e27ad714 /src/term.c
parentfaf626e5d1ca128e4bf943c4e505f08d428ed77e (diff)
downloadvim-git-ec6f7350129f8c7809fd061f58a9eb6790c445a8.tar.gz
patch 8.1.2209: LF in escape codes may be expanded to CR-LFv8.1.2209
Problem: LF in escape codes may be expanded to CR-LF. Solution: Do not expand LF in escape codes to CR-LF. (closes #5107)
Diffstat (limited to 'src/term.c')
-rw-r--r--src/term.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/term.c b/src/term.c
index afdd482e3..94552a631 100644
--- a/src/term.c
+++ b/src/term.c
@@ -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();
}
}