mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.3731: "set! termcap" shows codes in one column, but not keys
Problem: "set! termcap" shows codes in one column, but not keys. Solution: Also use one column for keys. (closes #9258)
This commit is contained in:
parent
800b01b0c8
commit
15a24f0898
13
src/option.c
13
src/option.c
@ -1218,11 +1218,12 @@ ex_set(exarg_T *eap)
|
|||||||
* does not need to be expanded with option_expand().
|
* does not need to be expanded with option_expand().
|
||||||
* "opt_flags":
|
* "opt_flags":
|
||||||
* 0 for ":set"
|
* 0 for ":set"
|
||||||
* OPT_GLOBAL for ":setglobal"
|
* OPT_GLOBAL for ":setglobal"
|
||||||
* OPT_LOCAL for ":setlocal" and a modeline
|
* OPT_LOCAL for ":setlocal" and a modeline
|
||||||
* OPT_MODELINE for a modeline
|
* OPT_MODELINE for a modeline
|
||||||
* OPT_WINONLY to only set window-local options
|
* OPT_WINONLY to only set window-local options
|
||||||
* OPT_NOWIN to skip setting window-local options
|
* OPT_NOWIN to skip setting window-local options
|
||||||
|
* OPT_ONECOLUMN do not use multiple columns
|
||||||
*
|
*
|
||||||
* returns FAIL if an error is detected, OK otherwise
|
* returns FAIL if an error is detected, OK otherwise
|
||||||
*/
|
*/
|
||||||
@ -1290,7 +1291,7 @@ do_set(
|
|||||||
else if (STRNCMP(arg, "termcap", 7) == 0 && !(opt_flags & OPT_MODELINE))
|
else if (STRNCMP(arg, "termcap", 7) == 0 && !(opt_flags & OPT_MODELINE))
|
||||||
{
|
{
|
||||||
showoptions(2, opt_flags);
|
showoptions(2, opt_flags);
|
||||||
show_termcodes();
|
show_termcodes(opt_flags);
|
||||||
did_show = TRUE;
|
did_show = TRUE;
|
||||||
arg += 7;
|
arg += 7;
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ int check_termcode(int max_offset, char_u *buf, int bufsize, int *buflen);
|
|||||||
void term_get_fg_color(char_u *r, char_u *g, char_u *b);
|
void term_get_fg_color(char_u *r, char_u *g, char_u *b);
|
||||||
void term_get_bg_color(char_u *r, char_u *g, char_u *b);
|
void term_get_bg_color(char_u *r, char_u *g, char_u *b);
|
||||||
char_u *replace_termcodes(char_u *from, char_u **bufp, int flags, int *did_simplify);
|
char_u *replace_termcodes(char_u *from, char_u **bufp, int flags, int *did_simplify);
|
||||||
void show_termcodes(void);
|
void show_termcodes(int flags);
|
||||||
int show_one_termcode(char_u *name, char_u *code, int printit);
|
int show_one_termcode(char_u *name, char_u *code, int printit);
|
||||||
void update_tcap(int attr);
|
void update_tcap(int attr);
|
||||||
void swap_tcap(void);
|
void swap_tcap(void);
|
||||||
|
13
src/term.c
13
src/term.c
@ -6217,9 +6217,10 @@ gather_termleader(void)
|
|||||||
/*
|
/*
|
||||||
* Show all termcodes (for ":set termcap")
|
* Show all termcodes (for ":set termcap")
|
||||||
* This code looks a lot like showoptions(), but is different.
|
* This code looks a lot like showoptions(), but is different.
|
||||||
|
* "flags" can have OPT_ONECOLUMN.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
show_termcodes(void)
|
show_termcodes(int flags)
|
||||||
{
|
{
|
||||||
int col;
|
int col;
|
||||||
int *items;
|
int *items;
|
||||||
@ -6244,12 +6245,13 @@ show_termcodes(void)
|
|||||||
msg_puts_title(_("\n--- Terminal keys ---"));
|
msg_puts_title(_("\n--- Terminal keys ---"));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do the loop two times:
|
* Do the loop three times:
|
||||||
* 1. display the short items (non-strings and short strings)
|
* 1. display the short items (non-strings and short strings)
|
||||||
* 2. display the medium items (medium length strings)
|
* 2. display the medium items (medium length strings)
|
||||||
* 3. display the long items (remaining strings)
|
* 3. display the long items (remaining strings)
|
||||||
|
* When "flags" has OPT_ONECOLUMN do everything in 3.
|
||||||
*/
|
*/
|
||||||
for (run = 1; run <= 3 && !got_int; ++run)
|
for (run = (flags & OPT_ONECOLUMN) ? 3 : 1; run <= 3 && !got_int; ++run)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* collect the items in items[]
|
* collect the items in items[]
|
||||||
@ -6259,9 +6261,10 @@ show_termcodes(void)
|
|||||||
{
|
{
|
||||||
len = show_one_termcode(termcodes[i].name,
|
len = show_one_termcode(termcodes[i].name,
|
||||||
termcodes[i].code, FALSE);
|
termcodes[i].code, FALSE);
|
||||||
if (len <= INC3 - GAP ? run == 1
|
if ((flags & OPT_ONECOLUMN) ||
|
||||||
|
(len <= INC3 - GAP ? run == 1
|
||||||
: len <= INC2 - GAP ? run == 2
|
: len <= INC2 - GAP ? run == 2
|
||||||
: run == 3)
|
: run == 3))
|
||||||
items[item_count++] = i;
|
items[item_count++] = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
" Tests for the :set command
|
" Tests for the :set command
|
||||||
|
|
||||||
|
source check.vim
|
||||||
|
|
||||||
function Test_set_backslash()
|
function Test_set_backslash()
|
||||||
let isk_save = &isk
|
let isk_save = &isk
|
||||||
|
|
||||||
@ -45,4 +47,32 @@ func Test_set_no_arg()
|
|||||||
setglobal textwidth&
|
setglobal textwidth&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_set_termcap()
|
||||||
|
CheckNotGui
|
||||||
|
|
||||||
|
let lines = split(execute('set termcap'), "\n")
|
||||||
|
call assert_match('--- Terminal codes ---', lines[0])
|
||||||
|
" four columns
|
||||||
|
call assert_match('t_..=.*t_..=.*t_..=.*t_..=', lines[1])
|
||||||
|
|
||||||
|
for keys_idx in range(len(lines))
|
||||||
|
if lines[keys_idx] =~ '--- Terminal keys ---'
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call assert_true(keys_idx < len(lines))
|
||||||
|
" three columns
|
||||||
|
call assert_match('t_.. .*t_.. .*t_.. ', lines[keys_idx + 1])
|
||||||
|
|
||||||
|
let more_lines = split(execute('set! termcap'), "\n")
|
||||||
|
for i in range(len(more_lines))
|
||||||
|
if more_lines[i] =~ '--- Terminal keys ---'
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call assert_true(i < len(more_lines))
|
||||||
|
call assert_true(i > keys_idx)
|
||||||
|
call assert_true(len(more_lines) - i > len(lines) - keys_idx)
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -753,6 +753,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
3731,
|
||||||
/**/
|
/**/
|
||||||
3730,
|
3730,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user