patch 8.2.3864: cannot disable requesting key codes from xterm
Problem: Cannot disable requesting key codes from xterm.
Solution: Add the 'xtermcodes' option, default on.
diff --git a/src/option.h b/src/option.h
index 49d869b..a82258e 100644
--- a/src/option.h
+++ b/src/option.h
@@ -485,6 +485,7 @@
#ifdef FEAT_EVAL
EXTERN char_u *p_ccv; // 'charconvert'
#endif
+EXTERN int p_cdh; // 'cdhome'
EXTERN char_u *p_cino; // 'cinoptions'
#ifdef FEAT_CMDWIN
EXTERN char_u *p_cedit; // 'cedit'
@@ -1094,7 +1095,7 @@
EXTERN int p_wa; // 'writeany'
EXTERN int p_wb; // 'writebackup'
EXTERN long p_wd; // 'writedelay'
-EXTERN int p_cdh; // 'cdhome'
+EXTERN int p_xtermcodes; // 'xtermcodes'
/*
* "indir" values for buffer-local options.
diff --git a/src/optiondefs.h b/src/optiondefs.h
index c392442..cc4ad9e 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -2941,6 +2941,9 @@
{"writedelay", "wd", P_NUM|P_VI_DEF,
(char_u *)&p_wd, PV_NONE,
{(char_u *)0L, (char_u *)0L} SCTX_INIT},
+ {"xtermcodes", NULL, P_BOOL|P_VI_DEF,
+ (char_u *)&p_xtermcodes, PV_NONE,
+ {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
// terminal output codes
#define p_term(sss, vvv) {sss, NULL, P_STRING|P_VI_DEF|P_RALL|P_SECURE, \
diff --git a/src/term.c b/src/term.c
index f74b18a..e97ec2c 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4694,7 +4694,7 @@
// If xterm version >= 141 try to get termcap codes. For other
// terminals the request should be ignored.
- if (version >= 141)
+ if (version >= 141 && p_xtermcodes)
{
LOG_TR(("Enable checking for XT codes"));
check_for_codes = TRUE;
@@ -6446,8 +6446,7 @@
if (name[0] == 'C' && name[1] == 'o')
{
// Color count is not a key code.
- i = atoi((char *)str);
- may_adjust_color_count(i);
+ may_adjust_color_count(atoi((char *)str));
}
else
{
diff --git a/src/version.c b/src/version.c
index 586d2ec..bbb2157 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3864,
+/**/
3863,
/**/
3862,