Patch 8.0.1038
Problem: Strike-through text not supported.
Solution: Add support for the "strikethrough" attribute. (Christian
Brabandt, Ken Takata)
Files: runtime/doc/eval.txt, runtime/doc/options.txt,
runtime/doc/syntax.txt, runtime/doc/term.txt, src/evalfunc.c,
src/gui.c, src/gui.h, src/gui_gtk_x11.c, src/gui_mac.c,
src/gui_w32.c, src/gui_x11.c, src/option.c, src/screen.c,
src/syntax.c, src/term.c, src/term.h, src/terminal.c, src/vim.h
*** ../vim-8.0.1037/runtime/doc/eval.txt 2017-09-02 16:28:32.998776571
+0200
--- runtime/doc/eval.txt 2017-09-02 18:12:41.173778444 +0200
***************
*** 7721,7726 ****
--- 7723,7729 ----
"standout" "1" if standout
"underline" "1" if underlined
"undercurl" "1" if undercurled
+ "strike" "1" if strikethrough
Example (echoes the color of the syntax item under the
cursor): >
*** ../vim-8.0.1037/runtime/doc/options.txt 2017-08-30 22:00:16.366112653
+0200
--- runtime/doc/options.txt 2017-09-02 18:12:41.173778444 +0200
***************
*** 4021,4026 ****
--- 4117,4123 ----
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
: use a highlight group
*** ../vim-8.0.1037/runtime/doc/syntax.txt 2017-08-12 15:12:26.531991936
+0200
--- runtime/doc/syntax.txt 2017-09-02 18:12:41.177778418 +0200
***************
*** 4660,4672 ****
*bold* *underline* *undercurl*
*inverse* *italic* *standout*
! *nocombine*
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
reverse
inverse same as reverse
italic
--- 4699,4712 ----
*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
italic
***************
*** 4677,4684 ****
Note that "bold" can be used here and by using a bold font. They
have the same effect.
"undercurl" is a curly underline. When "undercurl" is not possible
! then "underline" is used. In general "undercurl" is only available in
! the GUI. The color is set with |highlight-guisp|.
start={term-list} *highlight-start* *E422*
stop={term-list} *term-list* *highlight-stop*
--- 4717,4724 ----
Note that "bold" can be used here and by using a bold font. They
have the same effect.
"undercurl" is a curly underline. When "undercurl" is not possible
! then "underline" is used. In general "undercurl" and "strikethrough"
! is only available in the GUI. The color is set with |highlight-guisp|.
start={term-list} *highlight-start* *E422*
stop={term-list} *term-list* *highlight-stop*
***************
*** 4785,4794 ****
Example: >
:highlight Normal ctermfg=grey ctermbg=darkblue
< When setting the "ctermbg" color for the Normal group, the
! 'background' option will be adjusted automatically. This causes the
! highlight groups that depend on 'background' to change! This means
! you should set the colors for Normal first, before setting other
! colors.
When a colorscheme is being used, changing 'background' causes it to
be reloaded, which may reset all colors (including Normal). First
delete the "g:colors_name" variable when you don't want this.
--- 4825,4835 ----
Example: >
:highlight Normal ctermfg=grey ctermbg=darkblue
< When setting the "ctermbg" color for the Normal group, the
! 'background' option will be adjusted automatically, under the
! condition that the color is recognized and 'background' was not set
! explicitly. This causes the highlight groups that depend on
! 'background' to change! This means you should set the colors for
! Normal first, before setting other colors.
When a colorscheme is being used, changing 'background' causes it to
be reloaded, which may reset all colors (including Normal). First
delete the "g:colors_name" variable when you don't want this.
***************
*** 4842,4848 ****
guibg={color-name} *highlight-guibg*
guisp={color-name} *highlight-guisp*
These give the foreground (guifg), background (guibg) and special
! (guisp) color to use in the GUI. "guisp" is used for undercurl.
There are a few special names:
NONE no color (transparent)
bg use normal background color
--- 4883,4890 ----
guibg={color-name} *highlight-guibg*
guisp={color-name} *highlight-guisp*
These give the foreground (guifg), background (guibg) and special
! (guisp) color to use in the GUI. "guisp" is used for undercurl and
! strikethrough.
There are a few special names:
NONE no color (transparent)
bg use normal background color
*** ../vim-8.0.1037/runtime/doc/term.txt 2017-02-02 22:20:49.279397163
+0100
--- runtime/doc/term.txt 2017-09-02 18:12:41.177778418 +0200
***************
*** 252,258 ****
that the flag is not set. 't_CS' works like this too, but it isn't a termcap
flag.
! OUTPUT CODES
option meaning ~
t_AB set background color (ANSI) *t_AB* *'t_AB'*
--- 252,258 ----
that the flag is not set. 't_CS' works like this too, but it isn't a termcap
flag.
! OUTPUT CODES *terminal-output-codes*
option meaning ~
t_AB set background color (ANSI) *t_AB* *'t_AB'*
***************
*** 295,307 ****
t_ts set window title start (to status line) *t_ts* *'t_ts'*
t_ue underline end *t_ue* *'t_ue'*
t_us underline mode *t_us* *'t_us'*
- t_Ce undercurl end *t_Ce* *'t_Ce'*
- t_Cs undercurl mode *t_Cs* *'t_Cs'*
t_ut clearing uses the current background color *t_ut* *'t_ut'*
t_vb visual bell *t_vb* *'t_vb'*
t_ve cursor visible *t_ve* *'t_ve'*
t_vi cursor invisible *t_vi* *'t_vi'*
! t_vs cursor very visible *t_vs* *'t_vs'*
*t_xs* *'t_xs'*
t_xs if non-empty, standout not erased by overwriting (hpterm)
*t_xn* *'t_xn'*
--- 295,305 ----
t_ts set window title start (to status line) *t_ts* *'t_ts'*
t_ue underline end *t_ue* *'t_ue'*
t_us underline mode *t_us* *'t_us'*
t_ut clearing uses the current background color *t_ut* *'t_ut'*
t_vb visual bell *t_vb* *'t_vb'*
t_ve cursor visible *t_ve* *'t_ve'*
t_vi cursor invisible *t_vi* *'t_vi'*
! t_vs cursor very visible (blink) *t_vs* *'t_vs'*
*t_xs* *'t_xs'*
t_xs if non-empty, standout not erased by overwriting (hpterm)
*t_xn* *'t_xn'*
***************
*** 311,320 ****
t_ZR italics end *t_ZR* *'t_ZR'*
Added by Vim (there are no standard codes for these):
t_IS set icon text start *t_IS* *'t_IS'*
t_IE set icon text end *t_IE* *'t_IE'*
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
! t_WS set window size (height, width) in characters *t_WS* *'t_WS'*
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
--- 309,324 ----
t_ZR italics end *t_ZR* *'t_ZR'*
Added by Vim (there are no standard codes for these):
+ 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'*
t_IE set icon text end *t_IE* *'t_IE'*
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
! t_GP get window position (Y, X) in pixels *t_GP* *'t_GP'*
! t_WS set window size (height, width in cells) *t_WS* *'t_WS'*
! t_VS cursor normally visible (no blink) *t_VS* *'t_VS'*
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
***************
*** 332,339 ****
|xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|xterm-bracketed-paste|
! KEY CODES
Note: Use the <> form if possible
option name meaning ~
--- 336,366 ----
|xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|xterm-bracketed-paste|
+ t_SC set cursor color start *t_SC* *'t_SC'*
+ t_EC set cursor color end *t_EC* *'t_EC'*
+ t_SH set cursor shape *t_SH* *'t_SH'*
+ t_RC request terminal cursor blinking *t_RC* *'t_RC'*
+ t_RS request terminal cursor style *t_RS* *'t_RS'*
+
+ Some codes have a start, middle and end part. The start and end are defined
+ by the termcap option, the middle part is text.
+ set title text: t_ts {title text} t_fs
+ set icon text: t_IS {icon text} t_IE
+ set cursor color: t_SC {color name} t_EC
+
+ t_SH must take one argument:
+ 0, 1 or none blinking block cursor
+ 2 block cursor
+ 3 blinking underline cursor
+ 4 underline cursor
+ 5 blinking vertical bar cursor
+ 6 vertical bar cursor
+
+ t_RS is sent only if the response to t_RV has been received. It is not used
+ on Mac OS when Terminal.app could be recognized from the termresponse.
+
! KEY CODES *terminal-key-codes*
Note: Use the <> form if possible
option name meaning ~
***************
*** 424,431 ****
t_KK <k8> keypad 8 *<k8>* *t_KK* *'t_KK'*
t_KL <k9> keypad 9 *<k9>* *t_KL* *'t_KL'*
<Mouse> leader of mouse code *<Mouse>*
! t_PS start of bracketed paste |xterm-bracketed-paste| *t_PS* 't_PS'
! t_PE end of bracketed paste |xterm-bracketed-paste| *t_PE* 't_PE'
Note about t_so and t_mr: When the termcap entry "so" is not present the
entry for "mr" is used. And vice versa. The same is done for "se" and "me".
--- 451,459 ----
t_KK <k8> keypad 8 *<k8>* *t_KK* *'t_KK'*
t_KL <k9> keypad 9 *<k9>* *t_KL* *'t_KL'*
<Mouse> leader of mouse code *<Mouse>*
! *t_PS* *'t_PS'*
! t_PS start of bracketed paste |xterm-bracketed-paste|
! t_PE end of bracketed paste |xterm-bracketed-paste| *t_PE* *'t_PE'*
Note about t_so and t_mr: When the termcap entry "so" is not present the
entry for "mr" is used. And vice versa. The same is done for "se" and "me".
*** ../vim-8.0.1037/src/evalfunc.c 2017-08-27 15:23:37.512977267 +0200
--- src/evalfunc.c 2017-09-02 18:12:41.177778418 +0200
***************
*** 11843,11848 ****
--- 11843,11852 ----
case 's':
if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */
p = highlight_color(id, what, modec);
+ /* strikeout */
+ else if (TOLOWER_ASC(what[1]) == 't' &&
+ TOLOWER_ASC(what[2]) == 'r')
+ p = highlight_has_attr(id, HL_STRIKETHROUGH, modec);
else /* standout */
p = highlight_has_attr(id, HL_STANDOUT, modec);
break;
*** ../vim-8.0.1037/src/gui.c 2017-08-16 22:45:57.681684043 +0200
--- src/gui.c 2017-09-02 18:12:41.181778393 +0200
***************
*** 2396,2401 ****
--- 2396,2402 ----
/* Do we underline the text? */
if (hl_mask_todo & HL_UNDERLINE)
draw_flags |= DRAW_UNDERL;
+
#else
/* Do we underline the text? */
if ((hl_mask_todo & HL_UNDERLINE) || (hl_mask_todo & HL_ITALIC))
***************
*** 2405,2410 ****
--- 2406,2415 ----
if (hl_mask_todo & HL_UNDERCURL)
draw_flags |= DRAW_UNDERC;
+ /* Do we strikethrough the text? */
+ if (hl_mask_todo & HL_STRIKETHROUGH)
+ draw_flags |= DRAW_STRIKE;
+
/* Do we draw transparently? */
if (flags & GUI_MON_TRS_CURSOR)
draw_flags |= DRAW_TRANSP;
*** ../vim-8.0.1037/src/gui.h 2016-09-09 22:00:25.000000000 +0200
--- src/gui.h 2017-09-02 18:12:41.181778393 +0200
***************
*** 142,147 ****
--- 142,148 ----
# define DRAW_ITALIC 0x10 /* draw italic text */
#endif
#define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
+ #define DRAW_STRIKE 0x40 /* strikethrough */
/* For our own tearoff menu item */
#define TEAR_STRING "-->Detach"
*** ../vim-8.0.1037/src/gui_gtk_x11.c 2017-08-27 14:50:43.233759875 +0200
--- src/gui_gtk_x11.c 2017-09-02 18:12:41.181778393 +0200
***************
*** 5908,5913 ****
--- 5908,5934 ----
#endif
}
+ /* Draw a strikethrough line */
+ if (flags & DRAW_STRIKE)
+ {
+ #if GTK_CHECK_VERSION(3,0,0)
+ cairo_set_line_width(cr, 1.0);
+ cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
+ cairo_set_source_rgba(cr,
+ gui.spcolor->red, gui.spcolor->green, gui.spcolor->blue,
+ gui.spcolor->alpha);
+ cairo_move_to(cr, FILL_X(col), y + 1 - gui.char_height/2 + 0.5);
+ cairo_line_to(cr, FILL_X(col + cells), y + 1 - gui.char_height/2 + 0.5);
+ cairo_stroke(cr);
+ #else
+ gdk_gc_set_foreground(gui.text_gc, gui.spcolor);
+ gdk_draw_line(gui.drawarea->window, gui.text_gc,
+ FILL_X(col), y + 1 - gui.char_height/2,
+ FILL_X(col + cells), y + 1 - gui.char_height/2);
+ gdk_gc_set_foreground(gui.text_gc, gui.fgcolor);
+ #endif
+ }
+
/* Underline: draw a line at the bottom of the character cell. */
if (flags & DRAW_UNDERL)
{
***************
*** 5916,5931 ****
if (p_linespace > 1)
y -= p_linespace - 1;
#if GTK_CHECK_VERSION(3,0,0)
! {
! cairo_set_line_width(cr, 1.0);
! cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
! cairo_set_source_rgba(cr,
! gui.fgcolor->red, gui.fgcolor->green, gui.fgcolor->blue,
! gui.fgcolor->alpha);
! cairo_move_to(cr, FILL_X(col), y + 0.5);
! cairo_line_to(cr, FILL_X(col + cells), y + 0.5);
! cairo_stroke(cr);
! }
#else
gdk_draw_line(gui.drawarea->window, gui.text_gc,
FILL_X(col), y,
--- 5937,5950 ----
if (p_linespace > 1)
y -= p_linespace - 1;
#if GTK_CHECK_VERSION(3,0,0)
! cairo_set_line_width(cr, 1.0);
! cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
! cairo_set_source_rgba(cr,
! gui.fgcolor->red, gui.fgcolor->green, gui.fgcolor->blue,
! gui.fgcolor->alpha);
! cairo_move_to(cr, FILL_X(col), y + 0.5);
! cairo_line_to(cr, FILL_X(col + cells), y + 0.5);
! cairo_stroke(cr);
#else
gdk_draw_line(gui.drawarea->window, gui.text_gc,
FILL_X(col), y,
*** ../vim-8.0.1037/src/gui_mac.c 2017-07-23 16:45:05.673761155 +0200
--- src/gui_mac.c 2017-09-02 18:12:41.181778393 +0200
***************
*** 3899,3904 ****
--- 3899,3909 ----
MoveTo(FILL_X(col), FILL_Y(row + 1) - 1);
LineTo(FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
}
+ if (flags & DRAW_STRIKE)
+ {
+ MoveTo(FILL_X(col), FILL_Y(row + 1) - gui.char_height/2);
+ LineTo(FILL_X(col + len) - 1, FILL_Y(row + 1) - gui.char_height/2);
+ }
}
if (flags & DRAW_UNDERC)
*** ../vim-8.0.1037/src/gui_w32.c 2017-08-13 15:37:53.289473878 +0200
--- src/gui_w32.c 2017-09-02 18:12:41.181778393 +0200
***************
*** 6427,6432 ****
--- 6427,6444 ----
DeleteObject(SelectObject(s_hdc, old_pen));
}
+ /* Strikethrough */
+ if (flags & DRAW_STRIKE)
+ {
+ hpen = CreatePen(PS_SOLID, 1, gui.currSpColor);
+ old_pen = SelectObject(s_hdc, hpen);
+ y = FILL_Y(row + 1) - gui.char_height/2;
+ MoveToEx(s_hdc, FILL_X(col), y, NULL);
+ /* Note: LineTo() excludes the last pixel in the line. */
+ LineTo(s_hdc, FILL_X(col + len), y);
+ DeleteObject(SelectObject(s_hdc, old_pen));
+ }
+
/* Undercurl */
if (flags & DRAW_UNDERC)
{
*** ../vim-8.0.1037/src/gui_x11.c 2017-08-27 17:38:23.744775277 +0200
--- src/gui_x11.c 2017-09-02 18:12:41.181778393 +0200
***************
*** 2542,2547 ****
--- 2542,2557 ----
y, FILL_X(col + cells) - 1, y);
}
+ if (flags & DRAW_STRIKE)
+ {
+ int y = FILL_Y(row + 1) - gui.char_height/2;
+
+ XSetForeground(gui.dpy, gui.text_gc, prev_sp_color);
+ XDrawLine(gui.dpy, gui.wid, gui.text_gc, FILL_X(col),
+ y, FILL_X(col + cells) - 1, y);
+ XSetForeground(gui.dpy, gui.text_gc, prev_fg_color);
+ }
+
#ifdef FEAT_XFONTSET
if (current_fontset != NULL)
XSetClipMask(gui.dpy, gui.text_gc, None);
*** ../vim-8.0.1037/src/option.c 2017-08-30 22:00:16.374112596 +0200
--- src/option.c 2017-09-02 18:12:41.185778366 +0200
***************
*** 3216,3223 ****
--- 3216,3225 ----
p_term("t_so", T_SO)
p_term("t_SR", T_CSR)
p_term("t_sr", T_SR)
+ p_term("t_Te", T_STE)
p_term("t_te", T_TE)
p_term("t_ti", T_TI)
+ p_term("t_Ts", T_STS)
p_term("t_ts", T_TS)
p_term("t_u7", T_U7)
p_term("t_ue", T_UE)
*** ../vim-8.0.1037/src/screen.c 2017-08-30 22:00:16.374112596 +0200
--- src/screen.c 2017-09-02 18:12:41.185778366 +0200
***************
*** 235,241 ****
else
#endif
/* Use attributes that is very unlikely to appear in text. */
! screen_attr = HL_BOLD | HL_UNDERLINE | HL_INVERSE;
}
/*
--- 235,241 ----
else
#endif
/* Use attributes that is very unlikely to appear in text. */
! screen_attr = HL_BOLD | HL_UNDERLINE | HL_INVERSE | HL_STRIKETHROUGH;
}
/*
***************
*** 8086,8091 ****
--- 8086,8093 ----
out_str(T_CZH);
if ((attr & HL_INVERSE) && T_MR != NULL) /* inverse (reverse) */
out_str(T_MR);
+ if ((attr & HL_STRIKETHROUGH) && T_STS != NULL) /* strike */
+ out_str(T_STS);
/*
* Output the color or start string after bold etc., in case the
***************
*** 8210,8215 ****
--- 8212,8224 ----
else
out_str(T_CZR);
}
+ if (screen_attr & HL_STRIKETHROUGH)
+ {
+ if (STRCMP(T_STE, T_ME) == 0)
+ do_ME = TRUE;
+ else
+ out_str(T_STE);
+ }
if (do_ME || (screen_attr & (HL_BOLD | HL_INVERSE)))
out_str(T_ME);
*** ../vim-8.0.1037/src/syntax.c 2017-08-19 21:35:30.946569153 +0200
--- src/syntax.c 2017-09-02 18:12:41.185778366 +0200
***************
*** 86,94 ****
*/
static char *(hl_name_table[]) =
{"bold", "standout", "underline", "undercurl",
! "italic", "reverse", "inverse", "nocombine", "NONE"};
static int hl_attr_table[] =
! {HL_BOLD, HL_STANDOUT, HL_UNDERLINE, HL_UNDERCURL, HL_ITALIC, HL_INVERSE,
HL_INVERSE, HL_NOCOMBINE, 0};
#define ATTR_COMBINE(attr_a, attr_b) ((((attr_b) & HL_NOCOMBINE) ? attr_b :
(attr_a)) | (attr_b))
static int get_attr_entry(garray_T *table, attrentry_T *aep);
--- 86,94 ----
*/
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))
static int get_attr_entry(garray_T *table, attrentry_T *aep);
***************
*** 9951,9956 ****
--- 9951,9958 ----
break;
case 'c': attr |= HL_UNDERCURL;
break;
+ case 't': attr |= HL_STRIKETHROUGH;
+ break;
case ':': ++p; /* highlight group name */
if (attr || *p == NUL) /* no combinations */
return FAIL;
*** ../vim-8.0.1037/src/term.c 2017-09-01 20:23:58.756539582 +0200
--- src/term.c 2017-09-02 18:12:41.185778366 +0200
***************
*** 217,222 ****
--- 217,224 ----
{(int)KS_US, IF_EB("\033|8h", ESC_STR "|8h")}, /* HL_UNDERLINE */
{(int)KS_UCE, IF_EB("\033|8C", ESC_STR "|8C")}, /* HL_UNDERCURL */
{(int)KS_UCS, IF_EB("\033|8c", ESC_STR "|8c")}, /* HL_UNDERCURL */
+ {(int)KS_STE, IF_EB("\033|4C", ESC_STR "|4C")}, /* HL_STRIKETHROUGH
*/
+ {(int)KS_STS, IF_EB("\033|4c", ESC_STR "|4c")}, /* HL_STRIKETHROUGH
*/
{(int)KS_CZR, IF_EB("\033|4H", ESC_STR "|4H")}, /* HL_ITALIC */
{(int)KS_CZH, IF_EB("\033|4h", ESC_STR "|4h")}, /* HL_ITALIC */
{(int)KS_VB, IF_EB("\033|f", ESC_STR "|f")},
***************
*** 831,836 ****
--- 833,840 ----
{(int)KS_MD, IF_EB("\033[1m", ESC_STR "[1m")},
{(int)KS_UE, IF_EB("\033[m", ESC_STR "[m")},
{(int)KS_US, IF_EB("\033[4m", ESC_STR "[4m")},
+ {(int)KS_STE, IF_EB("\033[29m", ESC_STR "[29m")},
+ {(int)KS_STS, IF_EB("\033[9m", ESC_STR "[9m")},
{(int)KS_MS, "y"},
{(int)KS_UT, "y"},
{(int)KS_LE, "\b"},
***************
*** 1151,1156 ****
--- 1155,1162 ----
{(int)KS_US, "[US]"},
{(int)KS_UCE, "[UCE]"},
{(int)KS_UCS, "[UCS]"},
+ {(int)KS_STE, "[STE]"},
+ {(int)KS_STS, "[STS]"},
{(int)KS_MS, "[MS]"},
{(int)KS_UT, "[UT]"},
{(int)KS_XN, "[XN]"},
***************
*** 1595,1600 ****
--- 1601,1607 ----
{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_STE,"Te"}, {KS_STS,"Ts"},
{KS_CM, "cm"}, {KS_SR, "sr"},
{KS_CRI,"RI"}, {KS_VB, "vb"}, {KS_KS, "ks"},
{KS_KE, "ke"}, {KS_TI, "ti"}, {KS_TE, "te"},
*** ../vim-8.0.1037/src/term.h 2017-08-28 22:43:00.774266657 +0200
--- src/term.h 2017-09-02 18:12:41.185778366 +0200
***************
*** 55,60 ****
--- 55,62 ----
KS_US, /* underscore (underline) mode */
KS_UCE, /* exit undercurl mode */
KS_UCS, /* undercurl mode */
+ KS_STE, /* exit strikethrough mode */
+ KS_STS, /* strikethrough mode */
KS_MS, /* save to move cur in reverse mode */
KS_CM, /* cursor motion */
KS_SR, /* scroll reverse (backward) */
***************
*** 149,154 ****
--- 151,158 ----
#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_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 */
#define T_CM (TERM_STR(KS_CM)) /* cursor motion */
#define T_SR (TERM_STR(KS_SR)) /* scroll reverse (backward) */
*** ../vim-8.0.1037/src/terminal.c 2017-09-02 17:18:31.226946592 +0200
--- src/terminal.c 2017-09-02 18:12:41.185778366 +0200
***************
*** 1735,1741 ****
if (cellattrs.italic)
attr |= HL_ITALIC;
if (cellattrs.strike)
! attr |= HL_STANDOUT;
if (cellattrs.reverse)
attr |= HL_INVERSE;
--- 1735,1741 ----
if (cellattrs.italic)
attr |= HL_ITALIC;
if (cellattrs.strike)
! attr |= HL_STRIKETHROUGH;
if (cellattrs.reverse)
attr |= HL_INVERSE;
***************
*** 2451,2457 ****
{"bold", HL_BOLD},
{"italic", HL_ITALIC},
{"underline", HL_UNDERLINE},
! {"strike", HL_STANDOUT},
{"reverse", HL_INVERSE},
};
--- 2451,2457 ----
{"bold", HL_BOLD},
{"italic", HL_ITALIC},
{"underline", HL_UNDERLINE},
! {"strike", HL_STRIKETHROUGH},
{"reverse", HL_INVERSE},
};
*** ../vim-8.0.1037/src/vim.h 2017-08-30 14:53:02.807426564 +0200
--- src/vim.h 2017-09-02 18:12:41.189778341 +0200
***************
*** 681,687 ****
#define HL_UNDERCURL 0x10
#define HL_STANDOUT 0x20
#define HL_NOCOMBINE 0x40
! #define HL_ALL 0x7f
/* special attribute addition: Put message in history */
#define MSG_HIST 0x1000
--- 681,688 ----
#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
*** ../vim-8.0.1037/src/version.c 2017-09-02 18:01:46.422018216 +0200
--- src/version.c 2017-09-02 18:13:51.077329898 +0200
***************
*** 771,772 ****
--- 771,774 ----
{ /* Add new patch number below this line */
+ /**/
+ 1038,
/**/
--
Never go to the toilet in a paperless office.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.