To: vim_dev@googlegroups.com Subject: Patch 9.0.1068 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@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 ///