Patch 9.0.0007

12 views
Skip to first unread message

Bram Moolenaar

unread,
Jun 29, 2022, 1:56:54 PM6/29/22
to vim...@googlegroups.com

Patch 9.0.0007
Problem: No support for double, dotted and dashed underlines.
Solution: Add the termcap entries and highlight modes. (closes #9553)
Files: runtime/doc/term.txt, runtime/doc/options.txt,
runtime/doc/syntax.txt, src/termdefs.h, src/term.c, src/screen.c,
src/vim.h, src/evalfunc.c, src/gui.c, src/hardcopy.c,
src/highlight.c, src/optiondefs.h, src/testdir/test_highlight.vim,
src/testdir/test_syn_attr.vim, src/testdir/test_options.vim


*** ../vim-9.0.0006/runtime/doc/term.txt 2022-06-28 11:21:06.000000000 +0100
--- runtime/doc/term.txt 2022-06-29 16:36:35.913787749 +0100
***************
*** 372,379 ****

Added by Vim (there are no standard codes for these):
t_AU set underline color (ANSI) *t_AU* *'t_AU'*
! t_Ce undercurl end *t_Ce* *'t_Ce'*
! t_Cs undercurl mode *t_Cs* *'t_Cs'*
t_Te strikethrough end *t_Te* *'t_Te'*
t_Ts strikethrough mode *t_Ts* *'t_Ts'*
t_IS set icon text start *t_IS* *'t_IS'*
--- 372,382 ----

Added by Vim (there are no standard codes for these):
t_AU set underline color (ANSI) *t_AU* *'t_AU'*
! t_Ce undercurl and underline end *t_Ce* *'t_Ce'*
! t_Cs undercurl (curly underline) mode *t_Cs* *'t_Cs'*
! t_Us double underline mode *t_Us* *'t_Us'*
! t_ds dotted underline mode *t_ds* *'t_ds'*
! t_Ds dashed underline mode *t_Ds* *'t_Ds'*
t_Te strikethrough end *t_Te* *'t_Te'*
t_Ts strikethrough mode *t_Ts* *'t_Ts'*
t_IS set icon text start *t_IS* *'t_IS'*
*** ../vim-9.0.0006/runtime/doc/options.txt 2022-06-28 11:21:06.000000000 +0100
--- runtime/doc/options.txt 2022-06-29 15:57:31.788849807 +0100
***************
*** 4211,4217 ****
b bold (termcap entry "md" and "me")
s standout (termcap entry "so" and "se")
u underline (termcap entry "us" and "ue")
! c undercurl (termcap entry "Cs" and "Ce")
t strikethrough (termcap entry "Ts" and "Te")
n no highlighting
- no highlighting
--- 4211,4220 ----
b bold (termcap entry "md" and "me")
s standout (termcap entry "so" and "se")
u underline (termcap entry "us" and "ue")
! c undercurl (termcap entry "Us" and "Ce")
! 2 double underline (termcap entry "Ds" and "Ce")
! d dotted underline (termcap entry "ds" and "Ce")
! = dashed underline (termcap entry "Ds" and "Ce")
t strikethrough (termcap entry "Ts" and "Te")
n no highlighting
- no highlighting
*** ../vim-9.0.0006/runtime/doc/syntax.txt 2022-06-28 11:21:06.000000000 +0100
--- runtime/doc/syntax.txt 2022-06-29 16:40:14.909521609 +0100
***************
*** 5002,5015 ****
1. highlight arguments for normal terminals

*bold* *underline* *undercurl*
! *inverse* *italic* *standout*
! *nocombine* *strikethrough*
term={attr-list} *attr-list* *highlight-term* *E418*
attr-list is a comma-separated list (without spaces) of the
following items (in any order):
bold
underline
undercurl not always available
strikethrough not always available
reverse
inverse same as reverse
--- 5017,5034 ----
1. highlight arguments for normal terminals

*bold* *underline* *undercurl*
! *underdouble* *underdotted*
! *underdashed* *inverse* *italic*
! *standout* *nocombine* *strikethrough*
term={attr-list} *attr-list* *highlight-term* *E418*
attr-list is a comma-separated list (without spaces) of the
following items (in any order):
bold
underline
undercurl not always available
+ underdouble not always available
+ underdotted not always available
+ underdashed not always available
strikethrough not always available
reverse
inverse same as reverse
***************
*** 5020,5025 ****
--- 5039,5045 ----

Note that "bold" can be used here and by using a bold font. They
have the same effect.
+ *underline-codes*
"undercurl" is a curly underline. When "undercurl" is not possible
then "underline" is used. In general "undercurl" and "strikethrough"
are only available in the GUI and some terminals. The color is set
***************
*** 5028,5033 ****
--- 5048,5064 ----
let &t_Cs = "\e[4:3m"
let &t_Ce = "\e[4:0m"

+ < "underdouble" is a double underline, "underdotted" is a dotted
+ underline and "underdashed" is a dashed underline. These are only
+ supported by some terminals. If your terminal supports them you may
+ have to specify the codes like this: >
+ let &t_Us = "\e[4:2m"
+ let &t_ds = "\e[4:4m"
+ let &t_Ds = "\e[4:5m"
+ < They are reset with |t_Ce|, the same as curly underline (undercurl).
+ When t_Us, t_ds or t_Ds is not set then underline will be used as a
+ fallback.
+

start={term-list} *highlight-start* *E422*
stop={term-list} *term-list* *highlight-stop*
*** ../vim-9.0.0006/src/termdefs.h 2021-01-14 16:20:23.000000000 +0000
--- src/termdefs.h 2022-06-29 16:06:09.208199944 +0100
***************
*** 55,60 ****
--- 55,63 ----
KS_US, // underscore (underline) mode
KS_UCE, // exit undercurl mode
KS_UCS, // undercurl mode
+ KS_USS, // double underline mode
+ KS_DS, // dotted underline mode
+ KS_CDS, // dashed underline mode
KS_STE, // exit strikethrough mode
KS_STS, // strikethrough mode
KS_MS, // save to move cur in reverse mode
***************
*** 160,165 ****
--- 163,171 ----
#define T_US (TERM_STR(KS_US)) // underscore (underline) mode
#define T_UCE (TERM_STR(KS_UCE)) // exit undercurl mode
#define T_UCS (TERM_STR(KS_UCS)) // undercurl mode
+ #define T_USS (TERM_STR(KS_USS)) // double underline mode
+ #define T_DS (TERM_STR(KS_DS)) // dotted underline mode
+ #define T_CDS (TERM_STR(KS_CDS)) // dashed underline mode
#define T_STE (TERM_STR(KS_STE)) // exit strikethrough mode
#define T_STS (TERM_STR(KS_STS)) // strikethrough mode
#define T_MS (TERM_STR(KS_MS)) // save to move cur in reverse mode
*** ../vim-9.0.0006/src/term.c 2022-06-26 11:15:01.000000000 +0100
--- src/term.c 2022-06-29 15:43:24.138250165 +0100
***************
*** 1187,1192 ****
--- 1187,1195 ----
{(int)KS_US, "[US]"},
{(int)KS_UCE, "[UCE]"},
{(int)KS_UCS, "[UCS]"},
+ {(int)KS_USS, "[USS]"},
+ {(int)KS_DS, "[DS]"},
+ {(int)KS_CDS, "[CDS]"},
{(int)KS_STE, "[STE]"},
{(int)KS_STS, "[STS]"},
{(int)KS_MS, "[MS]"},
***************
*** 1669,1674 ****
--- 1672,1678 ----
{KS_MD, "md"}, {KS_SE, "se"}, {KS_SO, "so"},
{KS_CZH,"ZH"}, {KS_CZR,"ZR"}, {KS_UE, "ue"},
{KS_US, "us"}, {KS_UCE, "Ce"}, {KS_UCS, "Cs"},
+ {KS_USS, "Us"}, {KS_DS, "ds"}, {KS_CDS, "Ds"},
{KS_STE,"Te"}, {KS_STS,"Ts"},
{KS_CM, "cm"}, {KS_SR, "sr"},
{KS_CRI,"RI"}, {KS_VB, "vb"}, {KS_KS, "ks"},
*** ../vim-9.0.0006/src/screen.c 2022-06-26 11:29:15.000000000 +0100
--- src/screen.c 2022-06-29 16:09:19.535997095 +0100
***************
*** 1855,1862 ****
out_str(T_SO);
if ((attr & HL_UNDERCURL) && *T_UCS != NUL) // undercurl
out_str(T_UCS);
! if (((attr & HL_UNDERLINE) // underline or undercurl
! || ((attr & HL_UNDERCURL) && *T_UCS == NUL))
&& *T_US != NUL)
out_str(T_US);
if ((attr & HL_ITALIC) && *T_CZH != NUL) // italic
--- 1855,1871 ----
out_str(T_SO);
if ((attr & HL_UNDERCURL) && *T_UCS != NUL) // undercurl
out_str(T_UCS);
! if ((attr & HL_UNDERDOUBLE) && *T_USS != NUL) // double underline
! out_str(T_USS);
! if ((attr & HL_UNDERDOTTED) && *T_DS != NUL) // dotted underline
! out_str(T_DS);
! if ((attr & HL_UNDERDASHED) && *T_CDS != NUL) // dashed underline
! out_str(T_CDS);
! if (((attr & HL_UNDERLINE) // underline or undercurl, etc.
! || ((attr & HL_UNDERCURL) && *T_UCS == NUL)
! || ((attr & HL_UNDERDOUBLE) && *T_USS == NUL)
! || ((attr & HL_UNDERDOTTED) && *T_DS == NUL)
! || ((attr & HL_UNDERDASHED) && *T_CDS == NUL))
&& *T_US != NUL)
out_str(T_US);
if ((attr & HL_ITALIC) && *T_CZH != NUL) // italic
***************
*** 1951,1956 ****
--- 1960,1967 ----
else
#endif
{
+ int is_under;
+
if (screen_attr > HL_ALL) // special HL attr.
{
attrentry_T *aep;
***************
*** 2030,2044 ****
else
out_str(T_SE);
}
! if ((screen_attr & HL_UNDERCURL) && *T_UCE != NUL)
{
if (STRCMP(T_UCE, T_ME) == 0)
do_ME = TRUE;
else
out_str(T_UCE);
}
! if ((screen_attr & HL_UNDERLINE)
! || ((screen_attr & HL_UNDERCURL) && *T_UCE == NUL))
{
if (STRCMP(T_UE, T_ME) == 0)
do_ME = TRUE;
--- 2041,2056 ----
else
out_str(T_SE);
}
! is_under = (screen_attr & (HL_UNDERCURL
! | HL_UNDERDOUBLE | HL_UNDERDOTTED | HL_UNDERDASHED));
! if (is_under && *T_UCE != NUL)
{
if (STRCMP(T_UCE, T_ME) == 0)
do_ME = TRUE;
else
out_str(T_UCE);
}
! if ((screen_attr & HL_UNDERLINE) || (is_under && *T_UCE == NUL))
{
if (STRCMP(T_UE, T_ME) == 0)
do_ME = TRUE;
*** ../vim-9.0.0006/src/vim.h 2022-06-24 16:14:07.000000000 +0100
--- src/vim.h 2022-06-29 15:44:34.994222545 +0100
***************
*** 659,668 ****
#define HL_ITALIC 0x04
#define HL_UNDERLINE 0x08
#define HL_UNDERCURL 0x10
! #define HL_STANDOUT 0x20
! #define HL_NOCOMBINE 0x40
! #define HL_STRIKETHROUGH 0x80
! #define HL_ALL 0xff

// special attribute addition: Put message in history
#define MSG_HIST 0x1000
--- 659,671 ----
#define HL_ITALIC 0x04
#define HL_UNDERLINE 0x08
#define HL_UNDERCURL 0x10
! #define HL_UNDERDOUBLE 0x20
! #define HL_UNDERDOTTED 0x40
! #define HL_UNDERDASHED 0x80
! #define HL_STANDOUT 0x100
! #define HL_NOCOMBINE 0x200
! #define HL_STRIKETHROUGH 0x400
! #define HL_ALL 0x7ff

// special attribute addition: Put message in history
#define MSG_HIST 0x1000
*** ../vim-9.0.0006/src/evalfunc.c 2022-06-29 10:37:14.938302547 +0100
--- src/evalfunc.c 2022-06-29 17:16:15.971744869 +0100
***************
*** 10104,10117 ****
break;

case 'u':
! if (TOLOWER_ASC(what[1]) == 'l') // ul
! p = highlight_color(id, what, modec);
! else if (STRLEN(what) <= 5 || TOLOWER_ASC(what[5]) != 'c')
// underline
! p = highlight_has_attr(id, HL_UNDERLINE, modec);
! else
// undercurl
! p = highlight_has_attr(id, HL_UNDERCURL, modec);
break;
}

--- 10104,10130 ----
break;

case 'u':
! if (STRLEN(what) >= 9)
! {
! if (TOLOWER_ASC(what[5]) == 'l')
// underline
! p = highlight_has_attr(id, HL_UNDERLINE, modec);
! else if (TOLOWER_ASC(what[5]) != 'd')
// undercurl
! p = highlight_has_attr(id, HL_UNDERCURL, modec);
! else if (TOLOWER_ASC(what[6]) != 'o')
! // underdashed
! p = highlight_has_attr(id, HL_UNDERDASHED, modec);
! else if (TOLOWER_ASC(what[7]) == 'u')
! // underdouble
! p = highlight_has_attr(id, HL_UNDERDOUBLE, modec);
! else
! // underdotted
! p = highlight_has_attr(id, HL_UNDERDOTTED, modec);
! }
! else
! // ul
! p = highlight_color(id, what, modec);
break;
}

*** ../vim-9.0.0006/src/gui.c 2022-06-29 12:54:48.064572066 +0100
--- src/gui.c 2022-06-29 15:51:35.009468311 +0100
***************
*** 2501,2506 ****
--- 2501,2508 ----
if (hl_mask_todo & HL_UNDERCURL)
draw_flags |= DRAW_UNDERC;

+ // TODO: HL_UNDERDOUBLE, HL_UNDERDOTTED, HL_UNDERDASHED
+
// Do we strikethrough the text?
if (hl_mask_todo & HL_STRIKETHROUGH)
draw_flags |= DRAW_STRIKE;
*** ../vim-9.0.0006/src/hardcopy.c 2022-01-31 14:36:43.000000000 +0000
--- src/hardcopy.c 2022-06-29 15:52:02.125413226 +0100
***************
*** 293,298 ****
--- 293,299 ----
pattr->italic = (highlight_has_attr(hl_id, HL_ITALIC, modec) != NULL);
pattr->underline = (highlight_has_attr(hl_id, HL_UNDERLINE, modec) != NULL);
pattr->undercurl = (highlight_has_attr(hl_id, HL_UNDERCURL, modec) != NULL);
+ // TODO: HL_UNDERDOUBLE, HL_UNDERDOTTED, HL_UNDERDASHED

# if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
if (USE_24BIT)
*** ../vim-9.0.0006/src/highlight.c 2022-06-29 12:54:48.064572066 +0100
--- src/highlight.c 2022-06-29 17:02:27.732372625 +0100
***************
*** 25,34 ****
* following names, separated by commas (but no spaces!).
*/
static char *(hl_name_table[]) =
! {"bold", "standout", "underline", "undercurl",
! "italic", "reverse", "inverse", "nocombine", "strikethrough", "NONE"};
static int hl_attr_table[] =
! {HL_BOLD, HL_STANDOUT, HL_UNDERLINE, HL_UNDERCURL, HL_ITALIC, HL_INVERSE, HL_INVERSE, HL_NOCOMBINE, HL_STRIKETHROUGH, 0};
#define ATTR_COMBINE(attr_a, attr_b) ((((attr_b) & HL_NOCOMBINE) ? (attr_b) : (attr_a)) | (attr_b))

/*
--- 25,40 ----
* following names, separated by commas (but no spaces!).
*/
static char *(hl_name_table[]) =
! {"bold", "standout", "underline",
! "undercurl", "underdouble", "underdotted", "underdashed",
! "italic", "reverse", "inverse", "nocombine", "strikethrough", "NONE"};
static int hl_attr_table[] =
! {HL_BOLD, HL_STANDOUT, HL_UNDERLINE,
! HL_UNDERCURL, HL_UNDERDOUBLE, HL_UNDERDOTTED, HL_UNDERDASHED,
! HL_ITALIC, HL_INVERSE, HL_INVERSE, HL_NOCOMBINE, HL_STRIKETHROUGH, 0};
! // length of all attribute names, plus commas, together (and a bit more)
! #define MAX_ATTR_LEN 120
!
#define ATTR_COMBINE(attr_a, attr_b) ((((attr_b) & HL_NOCOMBINE) ? (attr_b) : (attr_a)) | (attr_b))

/*
***************
*** 2963,2969 ****
char_u *sarg,
char *name)
{
! char_u buf[100];
char_u *ts;
int i;

--- 2969,2975 ----
char_u *sarg,
char *name)
{
! char_u buf[MAX_ATTR_LEN];
char_u *ts;
int i;

***************
*** 2984,2991 ****
if (iarg & hl_attr_table[i])
{
if (buf[0] != NUL)
! vim_strcat(buf, (char_u *)",", 100);
! vim_strcat(buf, (char_u *)hl_name_table[i], 100);
iarg &= ~hl_attr_table[i]; // don't want "inverse"
}
}
--- 2990,2997 ----
if (iarg & hl_attr_table[i])
{
if (buf[0] != NUL)
! vim_strcat(buf, (char_u *)",", MAX_ATTR_LEN);
! vim_strcat(buf, (char_u *)hl_name_table[i], MAX_ATTR_LEN);
iarg &= ~hl_attr_table[i]; // don't want "inverse"
}
}
***************
*** 3287,3293 ****
at_en.ae_u.cterm.bg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_bg);
// Only use the underline/undercurl color when used, it may clear the
// background color if not supported.
! if (sgp->sg_cterm & (HL_UNDERLINE | HL_UNDERCURL))
at_en.ae_u.cterm.ul_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_sp);
else
at_en.ae_u.cterm.ul_rgb = INVALCOLOR;
--- 3293,3300 ----
at_en.ae_u.cterm.bg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_bg);
// Only use the underline/undercurl color when used, it may clear the
// background color if not supported.
! if (sgp->sg_cterm & (HL_UNDERLINE | HL_UNDERCURL
! | HL_UNDERDOUBLE | HL_UNDERDOTTED | HL_UNDERDASHED))
at_en.ae_u.cterm.ul_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_sp);
else
at_en.ae_u.cterm.ul_rgb = INVALCOLOR;
***************
*** 3801,3806 ****
--- 3808,3819 ----
break;
case 'c': attr |= HL_UNDERCURL;
break;
+ case '2': attr |= HL_UNDERDOUBLE;
+ break;
+ case 'd': attr |= HL_UNDERDOTTED;
+ break;
+ case '=': attr |= HL_UNDERDASHED;
+ break;
case 't': attr |= HL_STRIKETHROUGH;
break;
case ':': ++p; // highlight group name
***************
*** 4362,4370 ****
{
char_u *name;
int error;
! char_u term_attr[80];
! char_u cterm_attr[80];
! char_u gui_attr[80];
char_u *start;
char_u *stop;
char_u *ctermfg;
--- 4375,4383 ----
{
char_u *name;
int error;
! char_u term_attr[MAX_ATTR_LEN];
! char_u cterm_attr[MAX_ATTR_LEN];
! char_u gui_attr[MAX_ATTR_LEN];
char_u *start;
char_u *stop;
char_u *ctermfg;
*** ../vim-9.0.0006/src/optiondefs.h 2022-05-21 19:40:39.000000000 +0100
--- src/optiondefs.h 2022-06-29 16:05:23.180251073 +0100
***************
*** 2893,2901 ****
p_term("t_BD", T_BD)
p_term("t_cd", T_CD)
p_term("t_ce", T_CE)
p_term("t_cl", T_CL)
p_term("t_cm", T_CM)
- p_term("t_Ce", T_UCE)
p_term("t_Co", T_CCO)
p_term("t_CS", T_CCS)
p_term("t_Cs", T_UCS)
--- 2893,2901 ----
p_term("t_BD", T_BD)
p_term("t_cd", T_CD)
p_term("t_ce", T_CE)
+ p_term("t_Ce", T_UCE)
p_term("t_cl", T_CL)
p_term("t_cm", T_CM)
p_term("t_Co", T_CCO)
p_term("t_CS", T_CCS)
p_term("t_Cs", T_UCS)
***************
*** 2905,2910 ****
--- 2905,2912 ----
p_term("t_db", T_DB)
p_term("t_DL", T_CDL)
p_term("t_dl", T_DL)
+ p_term("t_ds", T_DS)
+ p_term("t_Ds", T_CDS)
p_term("t_EC", T_CEC)
p_term("t_EI", T_CEI)
p_term("t_fs", T_FS)
***************
*** 2952,2957 ****
--- 2954,2960 ----
p_term("t_u7", T_U7)
p_term("t_ue", T_UE)
p_term("t_us", T_US)
+ p_term("t_Us", T_USS)
p_term("t_ut", T_UT)
p_term("t_vb", T_VB)
p_term("t_ve", T_VE)
*** ../vim-9.0.0006/src/testdir/test_highlight.vim 2022-04-07 15:01:40.000000000 +0100
--- src/testdir/test_highlight.vim 2022-06-29 16:43:10.549317655 +0100
***************
*** 888,895 ****

" Test for setting various 'term' attributes
func Test_highlight_term_attr()
! hi HlGrp3 term=bold,underline,undercurl,strikethrough,reverse,italic,standout
! call assert_equal('hi HlGrp3 term=bold,standout,underline,undercurl,italic,reverse,strikethrough', HighlightArgs('HlGrp3'))
hi HlGrp3 term=NONE
call assert_equal('hi HlGrp3 cleared', HighlightArgs('HlGrp3'))
hi clear
--- 888,895 ----

" Test for setting various 'term' attributes
func Test_highlight_term_attr()
! hi HlGrp3 term=bold,underline,undercurl,underdouble,underdotted,underdashed,strikethrough,reverse,italic,standout
! call assert_equal('hi HlGrp3 term=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,strikethrough', HighlightArgs('HlGrp3'))
hi HlGrp3 term=NONE
call assert_equal('hi HlGrp3 cleared', HighlightArgs('HlGrp3'))
hi clear
***************
*** 1174,1185 ****
" Test for setting all the 'term', 'cterm' and 'gui' attributes of a
" highlight group
let lines =<< trim END
! VAR attr = {'bold': v:true, 'underline': v:true, 'undercurl': v:true,
\ 'strikethrough': v:true, 'reverse': v:true, 'italic': v:true,
\ 'standout': v:true, 'nocombine': v:true}
call hlset([{'name': 'myhlg2', 'term': attr, 'cterm': attr, 'gui': attr}])
VAR id2 = hlID('myhlg2')
! VAR expected = "myhlg2 xxx term=bold,standout,underline,undercurl,italic,reverse,nocombine,strikethrough cterm=bold,standout,underline,undercurl,italic,reverse,nocombine,strikethrough gui=bold,standout,underline,undercurl,italic,reverse,nocombine,strikethrough"
VAR output = execute('highlight myhlg2')
LET output = output->split("\n")->join()->substitute('\s\+', ' ', 'g')
call assert_equal(expected, output)
--- 1174,1187 ----
" Test for setting all the 'term', 'cterm' and 'gui' attributes of a
" highlight group
let lines =<< trim END
! VAR attr = {'bold': v:true, 'underline': v:true,
! \ 'undercurl': v:true, 'underdouble': v:true,
! \ 'underdotted': v:true, 'underdashed': v:true,
\ 'strikethrough': v:true, 'reverse': v:true, 'italic': v:true,
\ 'standout': v:true, 'nocombine': v:true}
call hlset([{'name': 'myhlg2', 'term': attr, 'cterm': attr, 'gui': attr}])
VAR id2 = hlID('myhlg2')
! VAR expected = "myhlg2 xxx term=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,nocombine,strikethrough cterm=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,nocombine,strikethrough gui=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,nocombine,strikethrough"
VAR output = execute('highlight myhlg2')
LET output = output->split("\n")->join()->substitute('\s\+', ' ', 'g')
call assert_equal(expected, output)
*** ../vim-9.0.0006/src/testdir/test_syn_attr.vim 2020-03-25 21:12:13.000000000 +0000
--- src/testdir/test_syn_attr.vim 2022-06-29 17:06:16.788225133 +0100
***************
*** 11,20 ****
--- 11,27 ----
hi Mine term=reverse cterm=inverse
call assert_equal('1', synIDattr(hlID("Mine"), "reverse", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "inverse", 'cterm'))
+
hi Mine term=underline cterm=standout gui=undercurl
call assert_equal('1', synIDattr(hlID("Mine"), "underline", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "standout", 'cterm'))
call assert_equal('1', synIDattr("Mine"->hlID(), "undercurl", 'gui'))
+
+ hi Mine term=underdouble cterm=underdotted gui=underdashed
+ call assert_equal('1', synIDattr(hlID("Mine"), "underdouble", 'term'))
+ call assert_equal('1', synIDattr(hlID("Mine"), "underdotted", 'cterm'))
+ call assert_equal('1', synIDattr("Mine"->hlID(), "underdashed", 'gui'))
+
hi Mine gui=strikethrough
call assert_equal('1', synIDattr(hlID("Mine"), "strikethrough", 'gui'))
hi Mine term=NONE cterm=NONE gui=NONE
*** ../vim-9.0.0006/src/testdir/test_options.vim 2022-05-12 17:40:54.000000000 +0100
--- src/testdir/test_options.vim 2022-06-29 18:29:30.689147930 +0100
***************
*** 955,960 ****
--- 955,972 ----
set <F9>=xyz
call assert_equal('xyz', &t_k9)
set <t_k9>&
+
+ " should we test all of them?
+ set t_Ce=testCe
+ set t_Cs=testCs
+ set t_Us=testUs
+ set t_ds=testds
+ set t_Ds=testDs
+ call assert_equal('testCe', &t_Ce)
+ call assert_equal('testCs', &t_Cs)
+ call assert_equal('testUs', &t_Us)
+ call assert_equal('testds', &t_ds)
+ call assert_equal('testDs', &t_Ds)
endfunc

" Test for changing options in a sandbox
*** ../vim-9.0.0006/src/version.c 2022-06-29 14:39:07.909560028 +0100
--- src/version.c 2022-06-29 17:07:14.684183555 +0100
***************
*** 737,738 ****
--- 737,740 ----
{ /* Add new patch number below this line */
+ /**/
+ 7,
/**/

--
How To Keep A Healthy Level Of Insanity:
14. Put mosquito netting around your work area. Play a tape of jungle
sounds all day.

/// 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 ///
Reply all
Reply to author
Forward
0 new messages