Patch 9.0.1068
Problem: No information about whether requesting term codes has an effect.
Solution: Add ch_log() calls to report the effect of term code responses.
Avoid deleting an entry and then adding back the same one.
Files: src/term.c
*** ../vim-9.0.1067/src/term.c 2022-12-16 18:33:16.345960071 +0000
--- src/term.c 2022-12-17 13:41:36.224438676 +0000
***************
*** 4401,4406 ****
--- 4401,4409 ----
int i, j;
char_u *s;
int len;
+ #ifdef FEAT_EVAL
+ char *action = "Setting";
+ #endif
if (string == NULL || *string == NUL)
{
***************
*** 4493,4498 ****
--- 4496,4504 ----
== termcodes[i].code[termcodes[i].len - 1])
{
// They are equal but for the ";*": don't add it.
+ #ifdef FEAT_EVAL
+ ch_log(NULL, "Termcap entry %s did not change", name);
+ #endif
vim_free(s);
return;
}
***************
*** 4500,4505 ****
--- 4506,4515 ----
else
{
// Replace old code.
+ #ifdef FEAT_EVAL
+ ch_log(NULL, "Termcap entry %s was: %s",
+ name, termcodes[i].code);
+ #endif
vim_free(termcodes[i].code);
--tc_len;
break;
***************
*** 4509,4519 ****
--- 4519,4535 ----
/*
* Found alphabetical larger entry, move rest to insert new entry
*/
+ #ifdef FEAT_EVAL
+ action = "Adding";
+ #endif
for (j = tc_len; j > i; --j)
termcodes[j] = termcodes[j - 1];
break;
}
+ #ifdef FEAT_EVAL
+ ch_log(NULL, "%s termcap entry %s to %s", action, name, s);
+ #endif
termcodes[i].name[0] = name[0];
termcodes[i].name[1] = name[1];
termcodes[i].code = s;
***************
*** 6940,6954 ****
if (name[0] == 'C' && name[1] == 'o')
{
// Color count is not a key code.
! may_adjust_color_count(atoi((char *)str));
}
else
{
- // First delete any existing entry with the same code.
i = find_term_bykeys(str);
! if (i >= 0)
! del_termcode_idx(i);
! add_termcode(name, str, ATC_FROM_TERM);
}
}
}
--- 6956,7002 ----
if (name[0] == 'C' && name[1] == 'o')
{
// Color count is not a key code.
! int val = atoi((char *)str);
! #if defined(FEAT_EVAL)
! if (val == t_colors)
! ch_log(NULL, "got_code_from_term(Co): no change (%d)", val);
! else
! ch_log(NULL,
! "got_code_from_term(Co): changed from %d to %d",
! t_colors, val);
! #endif
! may_adjust_color_count(val);
}
else
{
i = find_term_bykeys(str);
! if (i >= 0 && name[0] == termcodes[i].name[0]
! && name[1] == termcodes[i].name[1])
! {
! // Existing entry with the same name and code - skip.
! #ifdef FEAT_EVAL
! ch_log(NULL, "got_code_from_term(): Entry %c%c did not change",
! name[0], name[1]);
! #endif
! }
! else
! {
! if (i >= 0)
! {
! // Delete an existing entry using the same code.
! #ifdef FEAT_EVAL
! ch_log(NULL, "got_code_from_term(): Deleting entry %c%c with matching keys %s",
! termcodes[i].name[0], termcodes[i].name[1], str);
! #endif
! del_termcode_idx(i);
! }
! #ifdef FEAT_EVAL
! else
! ch_log(NULL, "got_code_from_term(): Adding entry %c%c with keys %s",
! name[0], name[1], str);
! #endif
! add_termcode(name, str, ATC_FROM_TERM);
! }
}
}
}
*** ../vim-9.0.1067/src/version.c 2022-12-17 11:32:37.918855670 +0000
--- src/version.c 2022-12-17 12:57:48.996509873 +0000
***************
*** 697,698 ****
--- 697,700 ----
{ /* Add new patch number below this line */
+ /**/
+ 1068,
/**/
--
Proverb: A nightingale that forgets the lyrics is a hummingbird.
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///