Skip to content

Commit

Permalink
patch 8.1.1034: too many #ifdefs
Browse files Browse the repository at this point in the history
Problem:    Too many #ifdefs.
Solution:   Merge FEAT_MOUSE_SGR into FEAT_MOUSE_XTERM / FEAT_MOUSE_TTY.
  • Loading branch information
brammool committed Mar 22, 2019
1 parent ba64ba0 commit 2ace1bd
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 54 deletions.
2 changes: 1 addition & 1 deletion src/evalfunc.c
Expand Up @@ -6414,7 +6414,7 @@ f_has(typval_T *argvars, typval_T *rettv)
# ifdef FEAT_MOUSE_PTERM
"mouse_pterm",
# endif
# ifdef FEAT_MOUSE_SGR
# ifdef FEAT_MOUSE_XTERM
"mouse_sgr",
# endif
# ifdef FEAT_SYSMOUSE
Expand Down
11 changes: 1 addition & 10 deletions src/feature.h
Expand Up @@ -1026,9 +1026,6 @@
# ifdef FEAT_BIG
# define FEAT_MOUSE_URXVT
# endif
# ifdef FEAT_BIG
# define FEAT_MOUSE_SGR
# endif
# if defined(FEAT_NORMAL) && defined(MSWIN)
# define DOS_MOUSE
# endif
Expand Down Expand Up @@ -1057,11 +1054,6 @@
# define FEAT_MOUSE_XTERM
#endif

/* sgr is a small variation of mouse_xterm, and shares its code */
#if defined(FEAT_MOUSE_SGR) && !defined(FEAT_MOUSE_XTERM)
# define FEAT_MOUSE_XTERM
#endif

/* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
#if !defined(FEAT_MOUSE_TTY) \
&& (defined(FEAT_MOUSE_XTERM) \
Expand All @@ -1072,8 +1064,7 @@
|| defined(FEAT_MOUSE_JSB) \
|| defined(FEAT_MOUSE_PTERM) \
|| defined(FEAT_SYSMOUSE) \
|| defined(FEAT_MOUSE_URXVT) \
|| defined(FEAT_MOUSE_SGR))
|| defined(FEAT_MOUSE_URXVT))
# define FEAT_MOUSE_TTY /* include non-GUI mouse support */
#endif
#if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
Expand Down
2 changes: 0 additions & 2 deletions src/misc2.c
Expand Up @@ -2453,10 +2453,8 @@ static struct key_name_entry
#ifdef FEAT_MOUSE_URXVT
{K_URXVT_MOUSE, (char_u *)"UrxvtMouse"},
#endif
#ifdef FEAT_MOUSE_SGR
{K_SGR_MOUSE, (char_u *)"SgrMouse"},
{K_SGR_MOUSERELEASE, (char_u *)"SgrMouseRelelase"},
#endif
{K_LEFTMOUSE, (char_u *)"LeftMouse"},
{K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"},
{K_LEFTDRAG, (char_u *)"LeftDrag"},
Expand Down
8 changes: 2 additions & 6 deletions src/os_unix.c
Expand Up @@ -3596,7 +3596,6 @@ mch_setmouse(int on)
}
# endif

# ifdef FEAT_MOUSE_SGR
if (ttym_flags == TTYM_SGR)
{
/* SGR mode supports columns above 223 */
Expand All @@ -3606,7 +3605,6 @@ mch_setmouse(int on)
: IF_EB("\033[?1006l", ESC_STR "[?1006l")));
mouse_ison = on;
}
# endif

# ifdef FEAT_BEVAL_TERM
if (bevalterm_ison != (p_bevalterm && on))
Expand Down Expand Up @@ -3864,11 +3862,10 @@ check_mouse_termcode(void)
else
del_mouse_termcode(KS_URXVT_MOUSE);
# endif
# ifdef FEAT_MOUSE_SGR
if (use_xterm_mouse() == 4
# ifdef FEAT_GUI
# ifdef FEAT_GUI
&& !gui.in_use
# endif
# endif
)
{
set_mouse_termcode(KS_SGR_MOUSE, (char_u *)(term_is_8bit(T_NAME)
Expand All @@ -3890,7 +3887,6 @@ check_mouse_termcode(void)
del_mouse_termcode(KS_SGR_MOUSE);
del_mouse_termcode(KS_SGR_MOUSE_RELEASE);
}
# endif
}
#endif

Expand Down
46 changes: 12 additions & 34 deletions src/term.c
Expand Up @@ -2126,13 +2126,11 @@ set_mouse_termcode(
has_mouse_termcode |= HMT_URXVT;
else
# endif
# ifdef FEAT_MOUSE_SGR
if (n == KS_SGR_MOUSE)
has_mouse_termcode |= HMT_SGR;
else if (n == KS_SGR_MOUSE_RELEASE)
has_mouse_termcode |= HMT_SGR_REL;
else
# endif
has_mouse_termcode |= HMT_NORMAL;
# endif
}
Expand Down Expand Up @@ -2175,13 +2173,11 @@ del_mouse_termcode(
has_mouse_termcode &= ~HMT_URXVT;
else
# endif
# ifdef FEAT_MOUSE_SGR
if (n == KS_SGR_MOUSE)
has_mouse_termcode &= ~HMT_SGR;
else if (n == KS_SGR_MOUSE_RELEASE)
has_mouse_termcode &= ~HMT_SGR_REL;
else
# endif
has_mouse_termcode &= ~HMT_NORMAL;
# endif
}
Expand Down Expand Up @@ -4690,15 +4686,13 @@ check_termcode(
if (tp[1 + (tp[0] != CSI)] == '>' && semicols == 2)
{
int need_flush = FALSE;
# ifdef FEAT_MOUSE_SGR
int is_iterm2 = FALSE;
int is_mintty = FALSE;

// mintty 2.9.5 sends 77;20905;0c.
// (77 is ASCII 'M' for mintty.)
if (STRNCMP(tp + extra - 3, "77;", 3) == 0)
is_mintty = TRUE;
# endif

/* if xterm version >= 141 try to get termcap codes */
if (version >= 141)
Expand All @@ -4718,12 +4712,10 @@ check_termcode(
* 256, libvterm supports even more. */
if (mch_getenv((char_u *)"COLORS") == NULL)
may_adjust_color_count(256);
# ifdef FEAT_MOUSE_SGR
/* Libvterm can handle SGR mouse reporting. */
if (!option_was_set((char_u *)"ttym"))
set_option_value((char_u *)"ttym", 0L,
(char_u *)"sgr", 0);
# endif
}

if (version == 95)
Expand All @@ -4734,32 +4726,26 @@ check_termcode(
is_not_xterm = TRUE;
is_mac_terminal = TRUE;
}
# ifdef FEAT_MOUSE_SGR
// iTerm2 sends 0;95;0
if (STRNCMP(tp + extra - 2, "0;95;0c", 7) == 0)
is_iterm2 = TRUE;
else
# endif
// old iTerm2 sends 0;95;
if (STRNCMP(tp + extra - 2, "0;95;c", 6) == 0)
else if (STRNCMP(tp + extra - 2, "0;95;c", 6) == 0)
is_not_xterm = TRUE;
}

/* Only set 'ttymouse' automatically if it was not set
* by the user already. */
if (!option_was_set((char_u *)"ttym"))
{
# ifdef FEAT_MOUSE_SGR
/* Xterm version 277 supports SGR. Also support
* Terminal.app, iTerm2 and mintty. */
if (version >= 277 || is_iterm2 || is_mac_terminal
|| is_mintty)
set_option_value((char_u *)"ttym", 0L,
(char_u *)"sgr", 0);
else
# endif
/* if xterm version >= 95 use mouse dragging */
if (version >= 95)
else if (version >= 95)
set_option_value((char_u *)"ttym", 0L,
(char_u *)"xterm2", 0);
}
Expand Down Expand Up @@ -5127,11 +5113,8 @@ check_termcode(
# ifdef FEAT_MOUSE_URXVT
|| key_name[0] == KS_URXVT_MOUSE
# endif
# ifdef FEAT_MOUSE_SGR
|| key_name[0] == KS_SGR_MOUSE
|| key_name[0] == KS_SGR_MOUSE_RELEASE
# endif
)
|| key_name[0] == KS_SGR_MOUSE_RELEASE)
{
is_click = is_drag = FALSE;

Expand Down Expand Up @@ -5163,7 +5146,7 @@ check_termcode(
*/
for (;;)
{
#ifdef FEAT_GUI
# ifdef FEAT_GUI
if (gui.in_use)
{
/* GUI uses more bits for columns > 223 */
Expand All @@ -5177,7 +5160,7 @@ check_termcode(
+ bytes[4] - ' ' - 1;
}
else
#endif
# endif
{
num_bytes = get_bytes_from_buf(tp + slen, bytes, 3);
if (num_bytes == -1) /* not enough coordinates */
Expand All @@ -5191,29 +5174,28 @@ check_termcode(
/* If the following bytes is also a mouse code and it has
* the same code, dump this one and get the next. This
* makes dragging a whole lot faster. */
#ifdef FEAT_GUI
# ifdef FEAT_GUI
if (gui.in_use)
j = 3;
else
#endif
# endif
j = termcodes[idx].len;
if (STRNCMP(tp, tp + slen, (size_t)j) == 0
&& tp[slen + j] == mouse_code
&& tp[slen + j + 1] != NUL
&& tp[slen + j + 2] != NUL
#ifdef FEAT_GUI
# ifdef FEAT_GUI
&& (!gui.in_use
|| (tp[slen + j + 3] != NUL
&& tp[slen + j + 4] != NUL))
#endif
# endif
)
slen += j;
else
break;
}
}

# if defined(FEAT_MOUSE_URXVT) || defined(FEAT_MOUSE_SGR)
if (key_name[0] == KS_URXVT_MOUSE
|| key_name[0] == KS_SGR_MOUSE
|| key_name[0] == KS_SGR_MOUSE_RELEASE)
Expand Down Expand Up @@ -5267,17 +5249,13 @@ check_termcode(
* modifier keys (alt/shift/ctrl/meta) state. */
modifiers = 0;
}
# endif

if (key_name[0] == (int)KS_MOUSE
#ifdef FEAT_MOUSE_URXVT
# ifdef FEAT_MOUSE_URXVT
|| key_name[0] == (int)KS_URXVT_MOUSE
#endif
#ifdef FEAT_MOUSE_SGR
# endif
|| key_name[0] == KS_SGR_MOUSE
|| key_name[0] == KS_SGR_MOUSE_RELEASE
#endif
)
|| key_name[0] == KS_SGR_MOUSE_RELEASE)
{
# if !defined(MSWIN)
/*
Expand Down
4 changes: 3 additions & 1 deletion src/version.c
Expand Up @@ -426,7 +426,7 @@ static char *(features[]) =
#endif

#if defined(UNIX) || defined(VMS)
# ifdef FEAT_MOUSE_SGR
# ifdef FEAT_MOUSE_XTERM
"+mouse_sgr",
# else
"-mouse_sgr",
Expand Down Expand Up @@ -779,6 +779,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1034,
/**/
1033,
/**/
Expand Down

0 comments on commit 2ace1bd

Please sign in to comment.