home *** CD-ROM | disk | FTP | other *** search
- To: vim_dev@googlegroups.com
- Subject: Patch 7.3.353
- 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.353 (after 7.3.343)
- Problem: Missing part of the urxvt patch.
- Solution: Add the change in term.c
- Files: src/term.c
-
-
- *** ../vim-7.3.352/src/term.c 2011-09-14 14:43:21.000000000 +0200
- --- src/term.c 2011-10-26 23:48:01.000000000 +0200
- ***************
- *** 4008,4014 ****
- }
-
- #ifdef FEAT_TERMRESPONSE
- ! if (key_name[0] == NUL)
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
- --- 4008,4016 ----
- }
-
- #ifdef FEAT_TERMRESPONSE
- ! if (key_name[0] == NUL
- ! /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
- ! || key_name[0] == KS_URXVT_MOUSE)
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
- ***************
- *** 4047,4053 ****
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
- /* if xterm version >= 95 use mouse dragging */
- ! if (extra >= 95)
- set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
- /* if xterm version >= 141 try to get termcap codes */
- --- 4049,4055 ----
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
- /* if xterm version >= 95 use mouse dragging */
- ! if (extra >= 95 && ttym_flags != TTYM_URXVT)
- set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
- /* if xterm version >= 141 try to get termcap codes */
- ***************
- *** 4141,4146 ****
- --- 4143,4151 ----
- # ifdef FEAT_MOUSE_PTERM
- || key_name[0] == (int)KS_PTERM_MOUSE
- # endif
- + # ifdef FEAT_MOUSE_URXVT
- + || key_name[0] == (int)KS_URXVT_MOUSE
- + # endif
- )
- {
- is_click = is_drag = FALSE;
- ***************
- *** 4219,4225 ****
- --- 4224,4292 ----
- else
- break;
- }
- + }
- +
- + # ifdef FEAT_MOUSE_URXVT
- + if (key_name[0] == (int)KS_URXVT_MOUSE)
- + {
- + for (;;)
- + {
- + /* URXVT 1015 mouse reporting mode:
- + * Almost identical to xterm mouse mode, except the values
- + * are decimal instead of bytes.
- + *
- + * \033[%d;%d;%dM
- + * ^-- row
- + * ^----- column
- + * ^-------- code
- + */
- + p = tp + slen;
- +
- + mouse_code = getdigits(&p);
- + if (*p++ != ';')
- + return -1;
- +
- + mouse_col = getdigits(&p) - 1;
- + if (*p++ != ';')
- + return -1;
- +
- + mouse_row = getdigits(&p) - 1;
- + if (*p++ != 'M')
- + return -1;
- +
- + slen += (int)(p - (tp + slen));
- +
- + /* skip this one if next one has same code (like xterm
- + * case) */
- + j = termcodes[idx].len;
- + if (STRNCMP(tp, tp + slen, (size_t)j) == 0) {
- + /* check if the command is complete by looking for the
- + * M */
- + int slen2;
- + int cmd_complete = 0;
- + for (slen2 = slen; slen2 < len; slen2++) {
- + if (tp[slen2] == 'M') {
- + cmd_complete = 1;
- + break;
- + }
- + }
- + p += j;
- + if (cmd_complete && getdigits(&p) == mouse_code) {
- + slen += j; /* skip the \033[ */
- + continue;
- + }
- + }
- + break;
- + }
- + }
- + # endif
-
- + if (key_name[0] == (int)KS_MOUSE
- + #ifdef FEAT_MOUSE_URXVT
- + || key_name[0] == (int)KS_URXVT_MOUSE
- + #endif
- + )
- + {
- # if !defined(MSWIN) && !defined(MSDOS)
- /*
- * Handle mouse events.
- *** ../vim-7.3.352/src/version.c 2011-10-26 22:02:10.000000000 +0200
- --- src/version.c 2011-10-26 23:43:26.000000000 +0200
- ***************
- *** 716,717 ****
- --- 716,719 ----
- { /* Add new patch number below this line */
- + /**/
- + 353,
- /**/
-
- --
- hundred-and-one symptoms of being an internet addict:
- 99. The hum of a cooling fan and the click of keys is comforting to you.
-
- /// 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 ///
-