summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.343
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.343')
-rw-r--r--source/ap/vim/patches/7.3.343252
1 files changed, 252 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.343 b/source/ap/vim/patches/7.3.343
new file mode 100644
index 000000000..db62264d0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.343
@@ -0,0 +1,252 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.343
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.343
+Problem: No mouse support for urxvt.
+Solution: Implement urxvt mouse support, also for > 252 columns. (Yiding
+ Jia)
+Files: src/feature.h, src/keymap.h, src/option.h, src/os_unix.c,
+ src/term.c, src/version.c
+
+
+*** ../vim-7.3.342/src/feature.h 2011-05-19 13:40:47.000000000 +0200
+--- src/feature.h 2011-10-20 21:02:15.000000000 +0200
+***************
+*** 1053,1058 ****
+--- 1053,1061 ----
+ # ifdef FEAT_BIG
+ # define FEAT_MOUSE_DEC
+ # endif
++ # ifdef FEAT_BIG
++ # define FEAT_MOUSE_URXVT
++ # endif
+ # if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
+ # define DOS_MOUSE
+ # endif
+***************
+*** 1068,1080 ****
+ #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
+ # define FEAT_SYSMOUSE
+ #endif
+ /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
+ #if !defined(FEAT_MOUSE_TTY) \
+ && (defined(FEAT_MOUSE_XTERM) \
+! || defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
+! || defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
+! || defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
+! || defined(FEAT_SYSMOUSE))
+ # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
+ #endif
+ #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+--- 1071,1093 ----
+ #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
+ # define FEAT_SYSMOUSE
+ #endif
++
++ /* urxvt is a small variation of mouse_xterm, and shares its code */
++ #if defined(FEAT_MOUSE_URXVT) && !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) \
+! || defined(FEAT_MOUSE_NET) \
+! || defined(FEAT_MOUSE_DEC) \
+! || defined(DOS_MOUSE) \
+! || defined(FEAT_MOUSE_GPM) \
+! || defined(FEAT_MOUSE_JSB) \
+! || defined(FEAT_MOUSE_PTERM) \
+! || defined(FEAT_SYSMOUSE) \
+! || 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))
+*** ../vim-7.3.342/src/keymap.h 2010-08-15 21:57:32.000000000 +0200
+--- src/keymap.h 2011-10-20 21:00:37.000000000 +0200
+***************
+*** 92,104 ****
+ */
+ #define KS_TEAROFF 244
+
+! /* used for JSB term mouse */
+ #define KS_JSBTERM_MOUSE 243
+
+! /* used a termcap entry that produces a normal character */
+ #define KS_KEY 242
+
+! /* Used for the qnx pterm mouse */
+ #define KS_PTERM_MOUSE 241
+
+ /* Used for click in a tab pages label. */
+--- 92,104 ----
+ */
+ #define KS_TEAROFF 244
+
+! /* Used for JSB term mouse. */
+ #define KS_JSBTERM_MOUSE 243
+
+! /* Used a termcap entry that produces a normal character. */
+ #define KS_KEY 242
+
+! /* Used for the qnx pterm mouse. */
+ #define KS_PTERM_MOUSE 241
+
+ /* Used for click in a tab pages label. */
+***************
+*** 107,112 ****
+--- 107,115 ----
+ /* Used for menu in a tab pages line. */
+ #define KS_TABMENU 239
+
++ /* Used for the urxvt mouse. */
++ #define KS_URXVT_MOUSE 238
++
+ /*
+ * Filler used after KS_SPECIAL and others
+ */
+*** ../vim-7.3.342/src/option.h 2011-09-30 14:44:49.000000000 +0200
+--- src/option.h 2011-10-20 19:38:59.000000000 +0200
+***************
+*** 819,825 ****
+ EXTERN char_u *p_ttym; /* 'ttymouse' */
+ EXTERN unsigned ttym_flags;
+ # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", NULL};
+ # endif
+ # define TTYM_XTERM 0x01
+ # define TTYM_XTERM2 0x02
+--- 819,825 ----
+ EXTERN char_u *p_ttym; /* 'ttymouse' */
+ EXTERN unsigned ttym_flags;
+ # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
+ # endif
+ # define TTYM_XTERM 0x01
+ # define TTYM_XTERM2 0x02
+***************
+*** 827,832 ****
+--- 827,833 ----
+ # define TTYM_NETTERM 0x08
+ # define TTYM_JSBTERM 0x10
+ # define TTYM_PTERM 0x20
++ # define TTYM_URXVT 0x40
+ #endif
+ EXTERN char_u *p_udir; /* 'undodir' */
+ EXTERN long p_ul; /* 'undolevels' */
+*** ../vim-7.3.342/src/os_unix.c 2011-10-12 21:04:15.000000000 +0200
+--- src/os_unix.c 2011-10-20 21:02:00.000000000 +0200
+***************
+*** 2158,2167 ****
+--- 2158,2170 ----
+ * Return non-zero when using an xterm mouse, according to 'ttymouse'.
+ * Return 1 for "xterm".
+ * Return 2 for "xterm2".
++ * Return 3 for "urxvt".
+ */
+ int
+ use_xterm_mouse()
+ {
++ if (ttym_flags == TTYM_URXVT)
++ return 3;
+ if (ttym_flags == TTYM_XTERM2)
+ return 2;
+ if (ttym_flags == TTYM_XTERM)
+***************
+*** 3318,3323 ****
+--- 3321,3337 ----
+ return;
+
+ xterm_mouse_vers = use_xterm_mouse();
++
++ # ifdef FEAT_MOUSE_URXVT
++ if (ttym_flags == TTYM_URXVT) {
++ out_str_nf((char_u *)
++ (on
++ ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
++ : IF_EB("\033[?1015l", ESC_STR "[?1015l")));
++ ison = on;
++ }
++ # endif
++
+ if (xterm_mouse_vers > 0)
+ {
+ if (on) /* enable mouse events, use mouse tracking if available */
+***************
+*** 3434,3439 ****
+--- 3448,3456 ----
+ {
+ # ifdef FEAT_MOUSE_XTERM
+ if (use_xterm_mouse()
++ # ifdef FEAT_MOUSE_URXVT
++ && use_xterm_mouse() != 3
++ # endif
+ # ifdef FEAT_GUI
+ && !gui.in_use
+ # endif
+***************
+*** 3523,3528 ****
+--- 3540,3566 ----
+ else
+ del_mouse_termcode(KS_PTERM_MOUSE);
+ # endif
++ # ifdef FEAT_MOUSE_URXVT
++ /* same as the dec mouse */
++ if (use_xterm_mouse() == 3
++ # ifdef FEAT_GUI
++ && !gui.in_use
++ # endif
++ )
++ {
++ set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
++ ? IF_EB("\233", CSI_STR)
++ : IF_EB("\033[", ESC_STR "[")));
++
++ if (*p_mouse != NUL)
++ {
++ mch_setmouse(FALSE);
++ setmouse();
++ }
++ }
++ else
++ del_mouse_termcode(KS_URXVT_MOUSE);
++ # endif
+ }
+ #endif
+
+*** ../vim-7.3.342/src/version.c 2011-10-20 18:24:16.000000000 +0200
+--- src/version.c 2011-10-20 19:40:48.000000000 +0200
+***************
+*** 380,383 ****
+--- 380,388 ----
+ "-mouse_xterm",
+ # endif
++ # ifdef FEAT_MOUSE_URXVT
++ "+mouse_urxvt",
++ # else
++ "-mouse_urxvt",
++ # endif
+ #endif
+ #ifdef __QNX__
+***************
+*** 711,712 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 343,
+ /**/
+
+--
+Warning label on a superhero Halloween costume:
+"Caution: Cape does not enable user to fly."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///