Merge commit 'c8d55a4ffc9503371b9738188e056eba33134f47' into f18
Conflicts: README.patches vim.spec
This commit is contained in:
commit
77fc86d85a
92
7.3.623
Normal file
92
7.3.623
Normal file
@ -0,0 +1,92 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.623
|
||||
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.623
|
||||
Problem: Perl 5.14 commands crash Vim on MS-Windows.
|
||||
Solution: Use perl_get_sv() instead of GvSV(). (Raymond Ko)
|
||||
Files: src/if_perl.xs
|
||||
|
||||
|
||||
*** ../vim-7.3.622/src/if_perl.xs 2012-03-16 19:34:43.000000000 +0100
|
||||
--- src/if_perl.xs 2012-08-08 13:15:29.000000000 +0200
|
||||
***************
|
||||
*** 76,81 ****
|
||||
--- 76,87 ----
|
||||
# define EXTERN_C
|
||||
#endif
|
||||
|
||||
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) && defined(_MSC_VER)
|
||||
+ /* Using PL_errgv to get the error message after perl_eval_sv() causes a crash
|
||||
+ * with MSVC and Perl version 5.14. */
|
||||
+ # define AVOID_PL_ERRGV
|
||||
+ #endif
|
||||
+
|
||||
/* Compatibility hacks over */
|
||||
|
||||
static PerlInterpreter *perl_interp = NULL;
|
||||
***************
|
||||
*** 796,802 ****
|
||||
--- 802,812 ----
|
||||
|
||||
SvREFCNT_dec(sv);
|
||||
|
||||
+ #ifdef AVOID_PL_ERRGV
|
||||
+ err = SvPV(perl_get_sv("@", GV_ADD), length);
|
||||
+ #else
|
||||
err = SvPV(GvSV(PL_errgv), length);
|
||||
+ #endif
|
||||
|
||||
FREETMPS;
|
||||
LEAVE;
|
||||
***************
|
||||
*** 866,872 ****
|
||||
--- 876,886 ----
|
||||
sv_catpvn(sv, "}", 1);
|
||||
perl_eval_sv(sv, G_DISCARD | G_NOARGS);
|
||||
SvREFCNT_dec(sv);
|
||||
+ #ifdef AVOID_PL_ERRGV
|
||||
+ str = SvPV(perl_get_sv("@", GV_ADD), length);
|
||||
+ #else
|
||||
str = SvPV(GvSV(PL_errgv), length);
|
||||
+ #endif
|
||||
if (length)
|
||||
goto err;
|
||||
|
||||
***************
|
||||
*** 880,886 ****
|
||||
--- 894,904 ----
|
||||
sv_setpv(GvSV(PL_defgv), (char *)ml_get(i));
|
||||
PUSHMARK(sp);
|
||||
perl_call_pv("VIM::perldo", G_SCALAR | G_EVAL);
|
||||
+ #ifdef AVOID_PL_ERRGV
|
||||
+ str = SvPV(perl_get_sv("@", GV_ADD), length);
|
||||
+ #else
|
||||
str = SvPV(GvSV(PL_errgv), length);
|
||||
+ #endif
|
||||
if (length)
|
||||
break;
|
||||
SPAGAIN;
|
||||
*** ../vim-7.3.622/src/version.c 2012-08-02 21:48:20.000000000 +0200
|
||||
--- src/version.c 2012-08-08 13:08:10.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 623,
|
||||
/**/
|
||||
|
||||
--
|
||||
Don't be humble ... you're not that great.
|
||||
-- Golda Meir
|
||||
|
||||
/// 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 ///
|
52
7.3.624
Normal file
52
7.3.624
Normal file
@ -0,0 +1,52 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.624
|
||||
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.624
|
||||
Problem: When cancelling input() it returns the third argument. That should
|
||||
only happen for inputdialog().
|
||||
Solution: Check if inputdialog() was used. (Hirohito Higashi)
|
||||
Files: src/eval.c
|
||||
|
||||
|
||||
*** ../vim-7.3.623/src/eval.c 2012-07-25 16:46:59.000000000 +0200
|
||||
--- src/eval.c 2012-08-08 14:31:48.000000000 +0200
|
||||
***************
|
||||
*** 12966,12972 ****
|
||||
rettv->vval.v_string =
|
||||
getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
|
||||
xp_type, xp_arg);
|
||||
! if (rettv->vval.v_string == NULL
|
||||
&& argvars[1].v_type != VAR_UNKNOWN
|
||||
&& argvars[2].v_type != VAR_UNKNOWN)
|
||||
rettv->vval.v_string = vim_strsave(get_tv_string_buf(
|
||||
--- 12966,12972 ----
|
||||
rettv->vval.v_string =
|
||||
getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
|
||||
xp_type, xp_arg);
|
||||
! if (inputdialog && rettv->vval.v_string == NULL
|
||||
&& argvars[1].v_type != VAR_UNKNOWN
|
||||
&& argvars[2].v_type != VAR_UNKNOWN)
|
||||
rettv->vval.v_string = vim_strsave(get_tv_string_buf(
|
||||
*** ../vim-7.3.623/src/version.c 2012-08-08 13:17:26.000000000 +0200
|
||||
--- src/version.c 2012-08-08 14:28:46.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 624,
|
||||
/**/
|
||||
|
||||
--
|
||||
Your fault: core dumped
|
||||
|
||||
/// 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 ///
|
140
7.3.625
Normal file
140
7.3.625
Normal file
@ -0,0 +1,140 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.625
|
||||
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.625
|
||||
Problem: "gn" does not handle zero-width matches correctly.
|
||||
Solution: Handle zero-width patterns specially. (Christian Brabandt)
|
||||
Files: src/search.c
|
||||
|
||||
|
||||
*** ../vim-7.3.624/src/search.c 2012-08-02 21:24:38.000000000 +0200
|
||||
--- src/search.c 2012-08-08 15:25:12.000000000 +0200
|
||||
***************
|
||||
*** 4546,4551 ****
|
||||
--- 4546,4554 ----
|
||||
int visual_active = FALSE;
|
||||
int flags = 0;
|
||||
pos_T save_VIsual;
|
||||
+ regmmatch_T regmatch;
|
||||
+ int nmatched = 0;
|
||||
+ int zerowidth = FALSE;
|
||||
|
||||
|
||||
/* wrapping should not occur */
|
||||
***************
|
||||
*** 4581,4603 ****
|
||||
orig_pos = pos = start_pos = curwin->w_cursor;
|
||||
|
||||
/*
|
||||
* The trick is to first search backwards and then search forward again,
|
||||
* so that a match at the current cursor position will be correctly
|
||||
* captured.
|
||||
*/
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
- if (i && count == 1)
|
||||
- flags = SEARCH_START;
|
||||
-
|
||||
if (forward)
|
||||
dir = i;
|
||||
else
|
||||
dir = !i;
|
||||
result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
|
||||
spats[last_idx].pat, (long) (i ? count : 1),
|
||||
! SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
|
||||
! RE_SEARCH, 0, NULL);
|
||||
|
||||
/* First search may fail, but then start searching from the
|
||||
* beginning of the file (cursor might be on the search match)
|
||||
--- 4584,4625 ----
|
||||
orig_pos = pos = start_pos = curwin->w_cursor;
|
||||
|
||||
/*
|
||||
+ * Check for zero-width pattern.
|
||||
+ */
|
||||
+ if (search_regcomp(spats[last_idx].pat, RE_SEARCH, RE_SEARCH,
|
||||
+ ((SEARCH_HIS + SEARCH_KEEP)), ®match) == FAIL)
|
||||
+ return FAIL;
|
||||
+
|
||||
+ /* Zero-width pattern should match somewhere, then we can check if start
|
||||
+ * and end are in the same position. */
|
||||
+ nmatched = vim_regexec_multi(®match, curwin, curbuf,
|
||||
+ curwin->w_cursor.lnum, (colnr_T)0, NULL);
|
||||
+ if (called_emsg)
|
||||
+ return FAIL;
|
||||
+ if (nmatched && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
|
||||
+ && regmatch.endpos[0].col == regmatch.startpos[0].col)
|
||||
+ zerowidth = TRUE;
|
||||
+ vim_free(regmatch.regprog);
|
||||
+
|
||||
+ /*
|
||||
* The trick is to first search backwards and then search forward again,
|
||||
* so that a match at the current cursor position will be correctly
|
||||
* captured.
|
||||
*/
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (forward)
|
||||
dir = i;
|
||||
else
|
||||
dir = !i;
|
||||
+
|
||||
+ flags = 0;
|
||||
+ if (!dir && !zerowidth)
|
||||
+ flags = SEARCH_END;
|
||||
+
|
||||
result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
|
||||
spats[last_idx].pat, (long) (i ? count : 1),
|
||||
! SEARCH_KEEP | flags, RE_SEARCH, 0, NULL);
|
||||
|
||||
/* First search may fail, but then start searching from the
|
||||
* beginning of the file (cursor might be on the search match)
|
||||
***************
|
||||
*** 4629,4638 ****
|
||||
}
|
||||
|
||||
start_pos = pos;
|
||||
! flags = (forward ? SEARCH_END : 0);
|
||||
|
||||
! /* move to match */
|
||||
! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
|
||||
spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
|
||||
|
||||
if (!VIsual_active)
|
||||
--- 4651,4662 ----
|
||||
}
|
||||
|
||||
start_pos = pos;
|
||||
! flags = forward ? SEARCH_END : 0;
|
||||
|
||||
! /* move to match, except for zero-width matches, in which case, we are
|
||||
! * already on the next match */
|
||||
! if (!zerowidth)
|
||||
! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
|
||||
spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
|
||||
|
||||
if (!VIsual_active)
|
||||
*** ../vim-7.3.624/src/version.c 2012-08-08 14:33:16.000000000 +0200
|
||||
--- src/version.c 2012-08-08 15:21:53.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 625,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
222. You send more than 20 personal e-mails a day.
|
||||
|
||||
/// 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 ///
|
49
7.3.626
Normal file
49
7.3.626
Normal file
@ -0,0 +1,49 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.626
|
||||
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.626
|
||||
Problem: Python interface doesn't build with Python 2.4 or older.
|
||||
Solution: Define Py_ssize_t. (Benjamin Bannier)
|
||||
Files: src/if_py_both.h
|
||||
|
||||
|
||||
*** ../vim-7.3.625/src/if_py_both.h 2012-07-25 15:36:00.000000000 +0200
|
||||
--- src/if_py_both.h 2012-08-08 15:53:24.000000000 +0200
|
||||
***************
|
||||
*** 12,17 ****
|
||||
--- 12,21 ----
|
||||
* Common code for if_python.c and if_python3.c.
|
||||
*/
|
||||
|
||||
+ #if PY_VERSION_HEX < 0x02050000
|
||||
+ typedef int Py_ssize_t; /* Python 2.4 and earlier don't have this type. */
|
||||
+ #endif
|
||||
+
|
||||
#ifdef FEAT_MBYTE
|
||||
# define ENC_OPT p_enc
|
||||
#else
|
||||
*** ../vim-7.3.625/src/version.c 2012-08-08 15:27:54.000000000 +0200
|
||||
--- src/version.c 2012-08-08 15:52:07.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 626,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
224. You set up your own Web page. You set up a Web page for each
|
||||
of your kids... and your pets.
|
||||
|
||||
/// 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 ///
|
102
7.3.627
Normal file
102
7.3.627
Normal file
@ -0,0 +1,102 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.627
|
||||
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.627
|
||||
Problem: When using the "n" flag with the ":s" command a \= substitution
|
||||
will not be evaluated.
|
||||
Solution: Do perform the evaluation, so that a function can be invoked at
|
||||
every matching position without changing the text. (Christian
|
||||
Brabandt)
|
||||
Files: src/ex_cmds.c
|
||||
|
||||
|
||||
*** ../vim-7.3.626/src/ex_cmds.c 2012-07-10 15:18:18.000000000 +0200
|
||||
--- src/ex_cmds.c 2012-08-08 16:44:16.000000000 +0200
|
||||
***************
|
||||
*** 4264,4269 ****
|
||||
--- 4264,4272 ----
|
||||
int endcolumn = FALSE; /* cursor in last column when done */
|
||||
pos_T old_cursor = curwin->w_cursor;
|
||||
int start_nsubs;
|
||||
+ #ifdef FEAT_EVAL
|
||||
+ int save_ma = 0;
|
||||
+ #endif
|
||||
|
||||
cmd = eap->arg;
|
||||
if (!global_busy)
|
||||
***************
|
||||
*** 4668,4674 ****
|
||||
}
|
||||
sub_nsubs++;
|
||||
did_sub = TRUE;
|
||||
! goto skip;
|
||||
}
|
||||
|
||||
if (do_ask)
|
||||
--- 4671,4682 ----
|
||||
}
|
||||
sub_nsubs++;
|
||||
did_sub = TRUE;
|
||||
! #ifdef FEAT_EVAL
|
||||
! /* Skip the substitution, unless an expression is used,
|
||||
! * then it is evaluated in the sandbox. */
|
||||
! if (!(sub[0] == '\\' && sub[1] == '='))
|
||||
! #endif
|
||||
! goto skip;
|
||||
}
|
||||
|
||||
if (do_ask)
|
||||
***************
|
||||
*** 4840,4849 ****
|
||||
--- 4848,4874 ----
|
||||
/*
|
||||
* 3. substitute the string.
|
||||
*/
|
||||
+ #ifdef FEAT_EVAL
|
||||
+ if (do_count)
|
||||
+ {
|
||||
+ /* prevent accidently changing the buffer by a function */
|
||||
+ save_ma = curbuf->b_p_ma;
|
||||
+ curbuf->b_p_ma = FALSE;
|
||||
+ sandbox++;
|
||||
+ }
|
||||
+ #endif
|
||||
/* get length of substitution part */
|
||||
sublen = vim_regsub_multi(®match,
|
||||
sub_firstlnum - regmatch.startpos[0].lnum,
|
||||
sub, sub_firstline, FALSE, p_magic, TRUE);
|
||||
+ #ifdef FEAT_EVAL
|
||||
+ if (do_count)
|
||||
+ {
|
||||
+ curbuf->b_p_ma = save_ma;
|
||||
+ sandbox--;
|
||||
+ goto skip;
|
||||
+ }
|
||||
+ #endif
|
||||
|
||||
/* When the match included the "$" of the last line it may
|
||||
* go beyond the last line of the buffer. */
|
||||
*** ../vim-7.3.626/src/version.c 2012-08-08 16:05:03.000000000 +0200
|
||||
--- src/version.c 2012-08-08 16:48:45.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 627,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
225. You sign up for free subscriptions for all the computer magazines
|
||||
|
||||
/// 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 ///
|
54
7.3.628
Normal file
54
7.3.628
Normal file
@ -0,0 +1,54 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.628
|
||||
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.628
|
||||
Problem: ":open" does not allow for a !, which results in a confusing error
|
||||
message. (Shawn Wilson)
|
||||
Solution: Allow ! on ":open". (Christian Brabandt)
|
||||
Files: src/ex_cmds.h
|
||||
|
||||
|
||||
*** ../vim-7.3.627/src/ex_cmds.h 2012-07-06 18:27:34.000000000 +0200
|
||||
--- src/ex_cmds.h 2012-08-08 17:15:45.000000000 +0200
|
||||
***************
|
||||
*** 662,668 ****
|
||||
EX(CMD_nunmenu, "nunmenu", ex_menu,
|
||||
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
|
||||
EX(CMD_open, "open", ex_open,
|
||||
! RANGE|EXTRA),
|
||||
EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
|
||||
BANG|TRLBAR|SBOXOK|CMDWIN),
|
||||
EX(CMD_omap, "omap", ex_map,
|
||||
--- 662,668 ----
|
||||
EX(CMD_nunmenu, "nunmenu", ex_menu,
|
||||
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
|
||||
EX(CMD_open, "open", ex_open,
|
||||
! RANGE|BANG|EXTRA),
|
||||
EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
|
||||
BANG|TRLBAR|SBOXOK|CMDWIN),
|
||||
EX(CMD_omap, "omap", ex_map,
|
||||
*** ../vim-7.3.627/src/version.c 2012-08-08 16:50:40.000000000 +0200
|
||||
--- src/version.c 2012-08-08 17:30:14.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 628,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
226. You sit down at the computer right after dinner and your spouse
|
||||
says "See you in the morning."
|
||||
|
||||
/// 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 ///
|
437
7.3.629
Normal file
437
7.3.629
Normal file
@ -0,0 +1,437 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.629
|
||||
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.629
|
||||
Problem: There is no way to make 'shiftwidth' follow 'tabstop'.
|
||||
Solution: When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
|
||||
Brabandt)
|
||||
Files: src/edit.c, src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
|
||||
src/option.c, src/proto/option.pro
|
||||
|
||||
|
||||
*** ../vim-7.3.628/src/edit.c 2012-07-25 16:46:59.000000000 +0200
|
||||
--- src/edit.c 2012-08-08 17:55:37.000000000 +0200
|
||||
***************
|
||||
*** 8899,8907 ****
|
||||
|
||||
*inserted_space_p = FALSE;
|
||||
if (p_sta && in_indent)
|
||||
! ts = curbuf->b_p_sw;
|
||||
else
|
||||
! ts = curbuf->b_p_sts;
|
||||
/* Compute the virtual column where we want to be. Since
|
||||
* 'showbreak' may get in the way, need to get the last column of
|
||||
* the previous character. */
|
||||
--- 8899,8907 ----
|
||||
|
||||
*inserted_space_p = FALSE;
|
||||
if (p_sta && in_indent)
|
||||
! ts = (int)get_sw_value();
|
||||
else
|
||||
! ts = (int)curbuf->b_p_sts;
|
||||
/* Compute the virtual column where we want to be. Since
|
||||
* 'showbreak' may get in the way, need to get the last column of
|
||||
* the previous character. */
|
||||
***************
|
||||
*** 9589,9595 ****
|
||||
* When nothing special, insert TAB like a normal character
|
||||
*/
|
||||
if (!curbuf->b_p_et
|
||||
! && !(p_sta && ind && curbuf->b_p_ts != curbuf->b_p_sw)
|
||||
&& curbuf->b_p_sts == 0)
|
||||
return TRUE;
|
||||
|
||||
--- 9589,9595 ----
|
||||
* When nothing special, insert TAB like a normal character
|
||||
*/
|
||||
if (!curbuf->b_p_et
|
||||
! && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
|
||||
&& curbuf->b_p_sts == 0)
|
||||
return TRUE;
|
||||
|
||||
***************
|
||||
*** 9605,9611 ****
|
||||
AppendToRedobuff((char_u *)"\t");
|
||||
|
||||
if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
|
||||
! temp = (int)curbuf->b_p_sw;
|
||||
else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
|
||||
temp = (int)curbuf->b_p_sts;
|
||||
else /* otherwise use 'tabstop' */
|
||||
--- 9605,9611 ----
|
||||
AppendToRedobuff((char_u *)"\t");
|
||||
|
||||
if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
|
||||
! temp = (int)get_sw_value();
|
||||
else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
|
||||
temp = (int)curbuf->b_p_sts;
|
||||
else /* otherwise use 'tabstop' */
|
||||
*** ../vim-7.3.628/src/ex_getln.c 2012-06-29 13:44:37.000000000 +0200
|
||||
--- src/ex_getln.c 2012-08-08 17:39:40.000000000 +0200
|
||||
***************
|
||||
*** 2268,2277 ****
|
||||
|
||||
if (c1 == Ctrl_T)
|
||||
{
|
||||
p = (char_u *)line_ga.ga_data;
|
||||
p[line_ga.ga_len] = NUL;
|
||||
indent = get_indent_str(p, 8);
|
||||
! indent += curbuf->b_p_sw - indent % curbuf->b_p_sw;
|
||||
add_indent:
|
||||
while (get_indent_str(p, 8) < indent)
|
||||
{
|
||||
--- 2268,2279 ----
|
||||
|
||||
if (c1 == Ctrl_T)
|
||||
{
|
||||
+ long sw = get_sw_value();
|
||||
+
|
||||
p = (char_u *)line_ga.ga_data;
|
||||
p[line_ga.ga_len] = NUL;
|
||||
indent = get_indent_str(p, 8);
|
||||
! indent += sw - indent % sw;
|
||||
add_indent:
|
||||
while (get_indent_str(p, 8) < indent)
|
||||
{
|
||||
***************
|
||||
*** 2323,2329 ****
|
||||
p[line_ga.ga_len] = NUL;
|
||||
indent = get_indent_str(p, 8);
|
||||
--indent;
|
||||
! indent -= indent % curbuf->b_p_sw;
|
||||
}
|
||||
while (get_indent_str(p, 8) > indent)
|
||||
{
|
||||
--- 2325,2331 ----
|
||||
p[line_ga.ga_len] = NUL;
|
||||
indent = get_indent_str(p, 8);
|
||||
--indent;
|
||||
! indent -= indent % get_sw_value();
|
||||
}
|
||||
while (get_indent_str(p, 8) > indent)
|
||||
{
|
||||
*** ../vim-7.3.628/src/fold.c 2012-02-29 19:19:57.000000000 +0100
|
||||
--- src/fold.c 2012-08-08 17:40:11.000000000 +0200
|
||||
***************
|
||||
*** 3025,3031 ****
|
||||
flp->lvl = -1;
|
||||
}
|
||||
else
|
||||
! flp->lvl = get_indent_buf(buf, lnum) / buf->b_p_sw;
|
||||
if (flp->lvl > flp->wp->w_p_fdn)
|
||||
{
|
||||
flp->lvl = flp->wp->w_p_fdn;
|
||||
--- 3025,3031 ----
|
||||
flp->lvl = -1;
|
||||
}
|
||||
else
|
||||
! flp->lvl = get_indent_buf(buf, lnum) / get_sw_value();
|
||||
if (flp->lvl > flp->wp->w_p_fdn)
|
||||
{
|
||||
flp->lvl = flp->wp->w_p_fdn;
|
||||
*** ../vim-7.3.628/src/misc1.c 2012-07-25 16:09:59.000000000 +0200
|
||||
--- src/misc1.c 2012-08-08 17:43:07.000000000 +0200
|
||||
***************
|
||||
*** 1389,1397 ****
|
||||
#ifdef FEAT_SMARTINDENT
|
||||
if (did_si)
|
||||
{
|
||||
if (p_sr)
|
||||
! newindent -= newindent % (int)curbuf->b_p_sw;
|
||||
! newindent += (int)curbuf->b_p_sw;
|
||||
}
|
||||
#endif
|
||||
/* Copy the indent */
|
||||
--- 1389,1399 ----
|
||||
#ifdef FEAT_SMARTINDENT
|
||||
if (did_si)
|
||||
{
|
||||
+ int sw = (int)get_sw_value();
|
||||
+
|
||||
if (p_sr)
|
||||
! newindent -= newindent % sw;
|
||||
! newindent += sw;
|
||||
}
|
||||
#endif
|
||||
/* Copy the indent */
|
||||
***************
|
||||
*** 6461,6471 ****
|
||||
int
|
||||
get_c_indent()
|
||||
{
|
||||
/*
|
||||
* spaces from a block's opening brace the prevailing indent for that
|
||||
* block should be
|
||||
*/
|
||||
! int ind_level = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* spaces from the edge of the line an open brace that's at the end of a
|
||||
--- 6463,6476 ----
|
||||
int
|
||||
get_c_indent()
|
||||
{
|
||||
+ int sw = (int)get_sw_value();
|
||||
+
|
||||
/*
|
||||
* spaces from a block's opening brace the prevailing indent for that
|
||||
* block should be
|
||||
*/
|
||||
!
|
||||
! int ind_level = sw;
|
||||
|
||||
/*
|
||||
* spaces from the edge of the line an open brace that's at the end of a
|
||||
***************
|
||||
*** 6512,6523 ****
|
||||
/*
|
||||
* spaces from the switch() indent a "case xx" label should be located
|
||||
*/
|
||||
! int ind_case = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* spaces from the "case xx:" code after a switch() should be located
|
||||
*/
|
||||
! int ind_case_code = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* lineup break at end of case in switch() with case label
|
||||
--- 6517,6528 ----
|
||||
/*
|
||||
* spaces from the switch() indent a "case xx" label should be located
|
||||
*/
|
||||
! int ind_case = sw;
|
||||
|
||||
/*
|
||||
* spaces from the "case xx:" code after a switch() should be located
|
||||
*/
|
||||
! int ind_case_code = sw;
|
||||
|
||||
/*
|
||||
* lineup break at end of case in switch() with case label
|
||||
***************
|
||||
*** 6528,6572 ****
|
||||
* spaces from the class declaration indent a scope declaration label
|
||||
* should be located
|
||||
*/
|
||||
! int ind_scopedecl = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* spaces from the scope declaration label code should be located
|
||||
*/
|
||||
! int ind_scopedecl_code = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* amount K&R-style parameters should be indented
|
||||
*/
|
||||
! int ind_param = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* amount a function type spec should be indented
|
||||
*/
|
||||
! int ind_func_type = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* amount a cpp base class declaration or constructor initialization
|
||||
* should be indented
|
||||
*/
|
||||
! int ind_cpp_baseclass = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* additional spaces beyond the prevailing indent a continuation line
|
||||
* should be located
|
||||
*/
|
||||
! int ind_continuation = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* spaces from the indent of the line with an unclosed parentheses
|
||||
*/
|
||||
! int ind_unclosed = curbuf->b_p_sw * 2;
|
||||
|
||||
/*
|
||||
* spaces from the indent of the line with an unclosed parentheses, which
|
||||
* itself is also unclosed
|
||||
*/
|
||||
! int ind_unclosed2 = curbuf->b_p_sw;
|
||||
|
||||
/*
|
||||
* suppress ignoring spaces from the indent of a line starting with an
|
||||
--- 6533,6577 ----
|
||||
* spaces from the class declaration indent a scope declaration label
|
||||
* should be located
|
||||
*/
|
||||
! int ind_scopedecl = sw;
|
||||
|
||||
/*
|
||||
* spaces from the scope declaration label code should be located
|
||||
*/
|
||||
! int ind_scopedecl_code = sw;
|
||||
|
||||
/*
|
||||
* amount K&R-style parameters should be indented
|
||||
*/
|
||||
! int ind_param = sw;
|
||||
|
||||
/*
|
||||
* amount a function type spec should be indented
|
||||
*/
|
||||
! int ind_func_type = sw;
|
||||
|
||||
/*
|
||||
* amount a cpp base class declaration or constructor initialization
|
||||
* should be indented
|
||||
*/
|
||||
! int ind_cpp_baseclass = sw;
|
||||
|
||||
/*
|
||||
* additional spaces beyond the prevailing indent a continuation line
|
||||
* should be located
|
||||
*/
|
||||
! int ind_continuation = sw;
|
||||
|
||||
/*
|
||||
* spaces from the indent of the line with an unclosed parentheses
|
||||
*/
|
||||
! int ind_unclosed = sw * 2;
|
||||
|
||||
/*
|
||||
* spaces from the indent of the line with an unclosed parentheses, which
|
||||
* itself is also unclosed
|
||||
*/
|
||||
! int ind_unclosed2 = sw;
|
||||
|
||||
/*
|
||||
* suppress ignoring spaces from the indent of a line starting with an
|
||||
***************
|
||||
*** 6719,6730 ****
|
||||
if (*options == 's') /* "2s" means two times 'shiftwidth' */
|
||||
{
|
||||
if (options == digits)
|
||||
! n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
|
||||
else
|
||||
{
|
||||
! n *= curbuf->b_p_sw;
|
||||
if (divider)
|
||||
! n += (curbuf->b_p_sw * fraction + divider / 2) / divider;
|
||||
}
|
||||
++options;
|
||||
}
|
||||
--- 6724,6735 ----
|
||||
if (*options == 's') /* "2s" means two times 'shiftwidth' */
|
||||
{
|
||||
if (options == digits)
|
||||
! n = sw; /* just "s" is one 'shiftwidth' */
|
||||
else
|
||||
{
|
||||
! n *= sw;
|
||||
if (divider)
|
||||
! n += (sw * fraction + divider / 2) / divider;
|
||||
}
|
||||
++options;
|
||||
}
|
||||
*** ../vim-7.3.628/src/ops.c 2012-07-10 16:49:08.000000000 +0200
|
||||
--- src/ops.c 2012-08-08 17:34:28.000000000 +0200
|
||||
***************
|
||||
*** 332,338 ****
|
||||
{
|
||||
int count;
|
||||
int i, j;
|
||||
! int p_sw = (int)curbuf->b_p_sw;
|
||||
|
||||
count = get_indent(); /* get current indent */
|
||||
|
||||
--- 332,338 ----
|
||||
{
|
||||
int count;
|
||||
int i, j;
|
||||
! int p_sw = (int)get_sw_value();
|
||||
|
||||
count = get_indent(); /* get current indent */
|
||||
|
||||
***************
|
||||
*** 388,394 ****
|
||||
int total;
|
||||
char_u *newp, *oldp;
|
||||
int oldcol = curwin->w_cursor.col;
|
||||
! int p_sw = (int)curbuf->b_p_sw;
|
||||
int p_ts = (int)curbuf->b_p_ts;
|
||||
struct block_def bd;
|
||||
int incr;
|
||||
--- 388,394 ----
|
||||
int total;
|
||||
char_u *newp, *oldp;
|
||||
int oldcol = curwin->w_cursor.col;
|
||||
! int p_sw = (int)get_sw_value();
|
||||
int p_ts = (int)curbuf->b_p_ts;
|
||||
struct block_def bd;
|
||||
int incr;
|
||||
*** ../vim-7.3.628/src/option.c 2012-07-10 18:31:49.000000000 +0200
|
||||
--- src/option.c 2012-08-08 17:45:01.000000000 +0200
|
||||
***************
|
||||
*** 8125,8131 ****
|
||||
need_mouse_correct = TRUE;
|
||||
#endif
|
||||
|
||||
! if (curbuf->b_p_sw <= 0)
|
||||
{
|
||||
errmsg = e_positive;
|
||||
curbuf->b_p_sw = curbuf->b_p_ts;
|
||||
--- 8125,8131 ----
|
||||
need_mouse_correct = TRUE;
|
||||
#endif
|
||||
|
||||
! if (curbuf->b_p_sw < 0)
|
||||
{
|
||||
errmsg = e_positive;
|
||||
curbuf->b_p_sw = curbuf->b_p_ts;
|
||||
***************
|
||||
*** 11419,11421 ****
|
||||
--- 11419,11431 ----
|
||||
{
|
||||
return check_opt_strings(p, p_ff_values, FALSE);
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * Return the effective shiftwidth value for current buffer, using the
|
||||
+ * 'tabstop' value when 'shiftwidth' is zero.
|
||||
+ */
|
||||
+ long
|
||||
+ get_sw_value()
|
||||
+ {
|
||||
+ return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts;
|
||||
+ }
|
||||
*** ../vim-7.3.628/src/proto/option.pro 2011-01-22 00:11:42.000000000 +0100
|
||||
--- src/proto/option.pro 2012-08-08 17:34:33.000000000 +0200
|
||||
***************
|
||||
*** 56,59 ****
|
||||
--- 56,60 ----
|
||||
void save_file_ff __ARGS((buf_T *buf));
|
||||
int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
|
||||
int check_ff_value __ARGS((char_u *p));
|
||||
+ long get_sw_value __ARGS((void));
|
||||
/* vim: set ft=c : */
|
||||
*** ../vim-7.3.628/src/version.c 2012-08-08 17:31:36.000000000 +0200
|
||||
--- src/version.c 2012-08-08 17:57:48.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 629,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
228. You spend Saturday night making the counter on your home page
|
||||
pass that 2000 mark.
|
||||
|
||||
/// 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 ///
|
48
7.3.630
Normal file
48
7.3.630
Normal file
@ -0,0 +1,48 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.630
|
||||
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.630
|
||||
Problem: "|" does not behave correctly when 'virtualedit' is set.
|
||||
Solution: Call validate_virtcol(). (David Bürgin)
|
||||
Files: src/normal.c
|
||||
|
||||
|
||||
*** ../vim-7.3.629/src/normal.c 2012-07-29 12:55:21.000000000 +0200
|
||||
--- src/normal.c 2012-08-15 13:20:13.000000000 +0200
|
||||
***************
|
||||
*** 7786,7792 ****
|
||||
--- 7786,7795 ----
|
||||
* virtualedit. Recalculate curwin->w_cursor to avoid bad hilighting.
|
||||
*/
|
||||
if (c == Ctrl_V && (ve_flags & VE_BLOCK) && gchar_cursor() == TAB)
|
||||
+ {
|
||||
+ validate_virtcol();
|
||||
coladvance(curwin->w_virtcol);
|
||||
+ }
|
||||
#endif
|
||||
VIsual = curwin->w_cursor;
|
||||
|
||||
*** ../vim-7.3.629/src/version.c 2012-08-08 18:01:00.000000000 +0200
|
||||
--- src/version.c 2012-08-15 13:30:30.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 630,
|
||||
/**/
|
||||
|
||||
--
|
||||
"Marriage is when a man and woman become as one; the trouble starts
|
||||
when they try to decide which one"
|
||||
|
||||
/// 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 ///
|
322
7.3.631
Normal file
322
7.3.631
Normal file
@ -0,0 +1,322 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.631
|
||||
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.631
|
||||
Problem: Cannot complete user names.
|
||||
Solution: Add user name completion. (Dominique Pelle)
|
||||
Files: runtime/doc/map.txt, src/auto/configure, src/config.h.in,
|
||||
src/configure.in, src/ex_docmd.c, src/ex_getln.c,
|
||||
src/misc1.c, src/misc2.c, src/proto/misc1.pro, src/vim.h
|
||||
|
||||
|
||||
*** ../vim-7.3.630/runtime/doc/map.txt 2012-04-30 18:48:38.000000000 +0200
|
||||
--- runtime/doc/map.txt 2012-08-15 13:46:34.000000000 +0200
|
||||
***************
|
||||
*** 1227,1232 ****
|
||||
--- 1244,1250 ----
|
||||
-complete=syntax syntax file names |'syntax'|
|
||||
-complete=tag tags
|
||||
-complete=tag_listfiles tags, file names are shown when CTRL-D is hit
|
||||
+ -complete=user user names
|
||||
-complete=var user variables
|
||||
-complete=custom,{func} custom completion, defined via {func}
|
||||
-complete=customlist,{func} custom completion, defined via {func}
|
||||
*** ../vim-7.3.630/src/auto/configure 2012-07-25 16:32:03.000000000 +0200
|
||||
--- src/auto/configure 2012-08-15 13:48:06.000000000 +0200
|
||||
***************
|
||||
*** 10631,10637 ****
|
||||
fi
|
||||
|
||||
for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
|
||||
! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
|
||||
memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
|
||||
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
--- 10631,10637 ----
|
||||
fi
|
||||
|
||||
for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
|
||||
! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
|
||||
memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
|
||||
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
*** ../vim-7.3.630/src/config.h.in 2012-02-05 22:51:27.000000000 +0100
|
||||
--- src/config.h.in 2012-08-15 13:46:35.000000000 +0200
|
||||
***************
|
||||
*** 161,166 ****
|
||||
--- 161,167 ----
|
||||
#undef HAVE_FSYNC
|
||||
#undef HAVE_GETCWD
|
||||
#undef HAVE_GETPSEUDOTTY
|
||||
+ #undef HAVE_GETPWENT
|
||||
#undef HAVE_GETPWNAM
|
||||
#undef HAVE_GETPWUID
|
||||
#undef HAVE_GETRLIMIT
|
||||
*** ../vim-7.3.630/src/configure.in 2012-07-25 16:32:03.000000000 +0200
|
||||
--- src/configure.in 2012-08-15 13:46:35.000000000 +0200
|
||||
***************
|
||||
*** 2994,3000 ****
|
||||
dnl Check for functions in one big call, to reduce the size of configure.
|
||||
dnl Can only be used for functions that do not require any include.
|
||||
AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
|
||||
! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
|
||||
memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
|
||||
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
--- 2994,3000 ----
|
||||
dnl Check for functions in one big call, to reduce the size of configure.
|
||||
dnl Can only be used for functions that do not require any include.
|
||||
AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
|
||||
! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
|
||||
memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
|
||||
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
*** ../vim-7.3.630/src/ex_docmd.c 2012-08-02 21:24:38.000000000 +0200
|
||||
--- src/ex_docmd.c 2012-08-15 13:54:29.000000000 +0200
|
||||
***************
|
||||
*** 3515,3520 ****
|
||||
--- 3515,3537 ----
|
||||
#endif
|
||||
}
|
||||
}
|
||||
+ #if defined(FEAT_CMDL_COMPL)
|
||||
+ /* Check for user names */
|
||||
+ if (*xp->xp_pattern == '~')
|
||||
+ {
|
||||
+ for (p = xp->xp_pattern + 1; *p != NUL && *p != '/'; ++p)
|
||||
+ ;
|
||||
+ /* Complete ~user only if it partially matches a user name.
|
||||
+ * A full match ~user<Tab> will be replaced by user's home
|
||||
+ * directory i.e. something like ~user<Tab> -> /home/user/ */
|
||||
+ if (*p == NUL && p > xp->xp_pattern + 1
|
||||
+ && match_user(xp->xp_pattern + 1) == 1)
|
||||
+ {
|
||||
+ xp->xp_context = EXPAND_USER;
|
||||
+ ++xp->xp_pattern;
|
||||
+ }
|
||||
+ }
|
||||
+ #endif
|
||||
}
|
||||
|
||||
/*
|
||||
***************
|
||||
*** 5396,5401 ****
|
||||
--- 5413,5419 ----
|
||||
#endif
|
||||
{EXPAND_TAGS, "tag"},
|
||||
{EXPAND_TAGS_LISTFILES, "tag_listfiles"},
|
||||
+ {EXPAND_USER, "user"},
|
||||
{EXPAND_USER_VARS, "var"},
|
||||
{0, NULL}
|
||||
};
|
||||
*** ../vim-7.3.630/src/ex_getln.c 2012-08-08 18:01:00.000000000 +0200
|
||||
--- src/ex_getln.c 2012-08-15 13:46:35.000000000 +0200
|
||||
***************
|
||||
*** 4336,4341 ****
|
||||
--- 4336,4342 ----
|
||||
* EXPAND_EXPRESSION Complete internal or user defined function/variable
|
||||
* names in expressions, eg :while s^I
|
||||
* EXPAND_ENV_VARS Complete environment variable names
|
||||
+ * EXPAND_USER Complete user names
|
||||
*/
|
||||
static void
|
||||
set_expand_context(xp)
|
||||
***************
|
||||
*** 4681,4686 ****
|
||||
--- 4682,4688 ----
|
||||
{EXPAND_LOCALES, get_locales, TRUE, FALSE},
|
||||
#endif
|
||||
{EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
|
||||
+ {EXPAND_USER, get_users, TRUE, FALSE},
|
||||
};
|
||||
int i;
|
||||
|
||||
*** ../vim-7.3.630/src/misc1.c 2012-08-08 18:01:00.000000000 +0200
|
||||
--- src/misc1.c 2012-08-15 13:57:53.000000000 +0200
|
||||
***************
|
||||
*** 18,23 ****
|
||||
--- 18,28 ----
|
||||
static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name));
|
||||
static int copy_indent __ARGS((int size, char_u *src));
|
||||
|
||||
+ /* All user names (for ~user completion as done by shell). */
|
||||
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
|
||||
+ static garray_T ga_users;
|
||||
+ #endif
|
||||
+
|
||||
/*
|
||||
* Count the size (in window cells) of the indent in the current line.
|
||||
*/
|
||||
***************
|
||||
*** 3782,3787 ****
|
||||
--- 3787,3800 ----
|
||||
{
|
||||
vim_free(homedir);
|
||||
}
|
||||
+
|
||||
+ # ifdef FEAT_CMDL_COMPL
|
||||
+ void
|
||||
+ free_users()
|
||||
+ {
|
||||
+ ga_clear_strings(&ga_users);
|
||||
+ }
|
||||
+ # endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
***************
|
||||
*** 4451,4456 ****
|
||||
--- 4464,4543 ----
|
||||
return name;
|
||||
# endif
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * Find all user names for user completion.
|
||||
+ * Done only once and then cached.
|
||||
+ */
|
||||
+ static void
|
||||
+ init_users() {
|
||||
+ static int lazy_init_done = FALSE;
|
||||
+
|
||||
+ if (lazy_init_done)
|
||||
+ return;
|
||||
+
|
||||
+ lazy_init_done = TRUE;
|
||||
+ ga_init2(&ga_users, sizeof(char_u *), 20);
|
||||
+
|
||||
+ # if defined(HAVE_GETPWENT) && defined(HAVE_PWD_H)
|
||||
+ {
|
||||
+ char_u* user;
|
||||
+ struct passwd* pw;
|
||||
+
|
||||
+ setpwent();
|
||||
+ while ((pw = getpwent()) != NULL)
|
||||
+ /* pw->pw_name shouldn't be NULL but just in case... */
|
||||
+ if (pw->pw_name != NULL)
|
||||
+ {
|
||||
+ if (ga_grow(&ga_users, 1) == FAIL)
|
||||
+ break;
|
||||
+ user = vim_strsave((char_u*)pw->pw_name);
|
||||
+ if (user == NULL)
|
||||
+ break;
|
||||
+ ((char_u **)(ga_users.ga_data))[ga_users.ga_len++] = user;
|
||||
+ }
|
||||
+ endpwent();
|
||||
+ }
|
||||
+ # endif
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Function given to ExpandGeneric() to obtain an user names.
|
||||
+ */
|
||||
+ char_u*
|
||||
+ get_users(xp, idx)
|
||||
+ expand_T *xp UNUSED;
|
||||
+ int idx;
|
||||
+ {
|
||||
+ init_users();
|
||||
+ if (idx < ga_users.ga_len)
|
||||
+ return ((char_u **)ga_users.ga_data)[idx];
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Check whether name matches a user name. Return:
|
||||
+ * 0 if name does not match any user name.
|
||||
+ * 1 if name partially matches the beginning of a user name.
|
||||
+ * 2 is name fully matches a user name.
|
||||
+ */
|
||||
+ int match_user(name)
|
||||
+ char_u* name;
|
||||
+ {
|
||||
+ int i;
|
||||
+ int n = (int)STRLEN(name);
|
||||
+ int result = 0;
|
||||
+
|
||||
+ init_users();
|
||||
+ for (i = 0; i < ga_users.ga_len; i++)
|
||||
+ {
|
||||
+ if (STRCMP(((char_u **)ga_users.ga_data)[i], name) == 0)
|
||||
+ return 2; /* full match */
|
||||
+ if (STRNCMP(((char_u **)ga_users.ga_data)[i], name, n) == 0)
|
||||
+ result = 1; /* partial match */
|
||||
+ }
|
||||
+ return result;
|
||||
+ }
|
||||
#endif
|
||||
|
||||
/*
|
||||
*** ../vim-7.3.630/src/misc2.c 2012-06-29 15:51:26.000000000 +0200
|
||||
--- src/misc2.c 2012-08-15 13:46:35.000000000 +0200
|
||||
***************
|
||||
*** 1110,1115 ****
|
||||
--- 1110,1118 ----
|
||||
free_all_marks();
|
||||
alist_clear(&global_alist);
|
||||
free_homedir();
|
||||
+ # if defined(FEAT_CMDL_COMPL)
|
||||
+ free_users();
|
||||
+ # endif
|
||||
free_search_patterns();
|
||||
free_old_sub();
|
||||
free_last_insert();
|
||||
*** ../vim-7.3.630/src/proto/misc1.pro 2012-06-06 16:12:54.000000000 +0200
|
||||
--- src/proto/misc1.pro 2012-08-15 13:46:35.000000000 +0200
|
||||
***************
|
||||
*** 50,55 ****
|
||||
--- 50,56 ----
|
||||
void vim_beep __ARGS((void));
|
||||
void init_homedir __ARGS((void));
|
||||
void free_homedir __ARGS((void));
|
||||
+ void free_users __ARGS((void));
|
||||
char_u *expand_env_save __ARGS((char_u *src));
|
||||
char_u *expand_env_save_opt __ARGS((char_u *src, int one));
|
||||
void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
|
||||
***************
|
||||
*** 57,62 ****
|
||||
--- 58,65 ----
|
||||
char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
|
||||
void vim_setenv __ARGS((char_u *name, char_u *val));
|
||||
char_u *get_env_name __ARGS((expand_T *xp, int idx));
|
||||
+ char_u *get_users __ARGS((expand_T *xp, int idx));
|
||||
+ int match_user __ARGS((char_u* name));
|
||||
void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
|
||||
char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
|
||||
int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
|
||||
*** ../vim-7.3.630/src/vim.h 2012-07-10 17:14:50.000000000 +0200
|
||||
--- src/vim.h 2012-08-15 13:46:35.000000000 +0200
|
||||
***************
|
||||
*** 782,787 ****
|
||||
--- 782,788 ----
|
||||
#define EXPAND_OWNSYNTAX 39
|
||||
#define EXPAND_LOCALES 40
|
||||
#define EXPAND_HISTORY 41
|
||||
+ #define EXPAND_USER 42
|
||||
|
||||
/* Values for exmode_active (0 is no exmode) */
|
||||
#define EXMODE_NORMAL 1
|
||||
*** ../vim-7.3.630/src/version.c 2012-08-15 13:30:55.000000000 +0200
|
||||
--- src/version.c 2012-08-15 14:01:12.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 716,719 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 631,
|
||||
/**/
|
||||
|
||||
--
|
||||
"Marriage is the process of finding out what kind of man your wife
|
||||
would have preferred"
|
||||
|
||||
/// 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 ///
|
537
7.3.632
Normal file
537
7.3.632
Normal file
@ -0,0 +1,537 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.632
|
||||
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.632
|
||||
Problem: Cannot select beyond 222 columns with the mouse in xterm.
|
||||
Solution: Add support for SGR mouse tracking. (Hayaki Saito)
|
||||
Files: runtime/doc/options.txt, src/feature.h, src/keymap.h, src/misc2.c,
|
||||
src/option.h, src/os_unix.c, src/term.c, src/version.c
|
||||
|
||||
|
||||
*** ../vim-7.3.631/runtime/doc/options.txt 2012-07-10 16:49:08.000000000 +0200
|
||||
--- runtime/doc/options.txt 2012-08-15 16:04:26.000000000 +0200
|
||||
***************
|
||||
*** 7383,7388 ****
|
||||
--- 7424,7435 ----
|
||||
jsbterm JSB term mouse handling.
|
||||
*pterm-mouse*
|
||||
pterm QNX pterm mouse handling.
|
||||
+ *urxvt-mouse*
|
||||
+ urxvt Mouse handling for the urxvt (rxvt-unicode) terminal.
|
||||
+ *sgr-mouse*
|
||||
+ sgr Mouse handling for the terminal that emits SGR-styled
|
||||
+ mouse reporting. Works with xterm version 277 or
|
||||
+ later.
|
||||
|
||||
The mouse handling must be enabled at compile time |+mouse_xterm|
|
||||
|+mouse_dec| |+mouse_netterm|.
|
||||
***************
|
||||
*** 7395,7400 ****
|
||||
--- 7442,7448 ----
|
||||
or "xterm2" already. The main use of this option is to set it to
|
||||
"xterm", when the terminal name doesn't start with "xterm", but it can
|
||||
handle xterm mouse codes.
|
||||
+ The "sgr" value will be set if the xterm version is 277 or later.
|
||||
The "xterm2" value will be set if the xterm version is reported to be
|
||||
95 or higher. This only works when compiled with the |+termresponse|
|
||||
feature and if |t_RV| is set to the escape sequence to request the
|
||||
*** ../vim-7.3.631/src/feature.h 2012-04-25 16:50:44.000000000 +0200
|
||||
--- src/feature.h 2012-08-15 15:46:07.000000000 +0200
|
||||
***************
|
||||
*** 1056,1061 ****
|
||||
--- 1056,1064 ----
|
||||
# ifdef FEAT_BIG
|
||||
# define FEAT_MOUSE_URXVT
|
||||
# endif
|
||||
+ # ifdef FEAT_BIG
|
||||
+ # define FEAT_MOUSE_SGR
|
||||
+ # endif
|
||||
# if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
|
||||
# define DOS_MOUSE
|
||||
# endif
|
||||
***************
|
||||
*** 1077,1082 ****
|
||||
--- 1080,1090 ----
|
||||
# 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) \
|
||||
***************
|
||||
*** 1087,1093 ****
|
||||
|| 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))
|
||||
--- 1095,1102 ----
|
||||
|| defined(FEAT_MOUSE_JSB) \
|
||||
|| defined(FEAT_MOUSE_PTERM) \
|
||||
|| defined(FEAT_SYSMOUSE) \
|
||||
! || defined(FEAT_MOUSE_URXVT) \
|
||||
! || defined(FEAT_MOUSE_SGR))
|
||||
# define FEAT_MOUSE_TTY /* include non-GUI mouse support */
|
||||
#endif
|
||||
#if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
|
||||
*** ../vim-7.3.631/src/keymap.h 2012-01-20 17:15:47.000000000 +0100
|
||||
--- src/keymap.h 2012-08-15 15:46:07.000000000 +0200
|
||||
***************
|
||||
*** 110,115 ****
|
||||
--- 110,118 ----
|
||||
/* Used for the urxvt mouse. */
|
||||
#define KS_URXVT_MOUSE 238
|
||||
|
||||
+ /* Used for the sgr mouse. */
|
||||
+ #define KS_SGR_MOUSE 237
|
||||
+
|
||||
/*
|
||||
* Filler used after KS_SPECIAL and others
|
||||
*/
|
||||
***************
|
||||
*** 412,417 ****
|
||||
--- 415,421 ----
|
||||
#define K_JSBTERM_MOUSE TERMCAP2KEY(KS_JSBTERM_MOUSE, KE_FILLER)
|
||||
#define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
|
||||
#define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
|
||||
+ #define K_SGR_MOUSE TERMCAP2KEY(KS_SGR_MOUSE, KE_FILLER)
|
||||
|
||||
#define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER)
|
||||
#define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
|
||||
*** ../vim-7.3.631/src/misc2.c 2012-08-15 14:04:50.000000000 +0200
|
||||
--- src/misc2.c 2012-08-15 15:46:07.000000000 +0200
|
||||
***************
|
||||
*** 2433,2438 ****
|
||||
--- 2433,2441 ----
|
||||
#ifdef FEAT_MOUSE_URXVT
|
||||
{K_URXVT_MOUSE, (char_u *)"UrxvtMouse"},
|
||||
#endif
|
||||
+ #ifdef FEAT_MOUSE_SGR
|
||||
+ {K_SGR_MOUSE, (char_u *)"SgrMouse"},
|
||||
+ #endif
|
||||
{K_LEFTMOUSE, (char_u *)"LeftMouse"},
|
||||
{K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"},
|
||||
{K_LEFTDRAG, (char_u *)"LeftDrag"},
|
||||
*** ../vim-7.3.631/src/option.h 2012-07-10 16:49:08.000000000 +0200
|
||||
--- src/option.h 2012-08-15 15:46:07.000000000 +0200
|
||||
***************
|
||||
*** 822,828 ****
|
||||
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
|
||||
--- 822,828 ----
|
||||
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", "sgr", NULL};
|
||||
# endif
|
||||
# define TTYM_XTERM 0x01
|
||||
# define TTYM_XTERM2 0x02
|
||||
***************
|
||||
*** 831,836 ****
|
||||
--- 831,837 ----
|
||||
# define TTYM_JSBTERM 0x10
|
||||
# define TTYM_PTERM 0x20
|
||||
# define TTYM_URXVT 0x40
|
||||
+ # define TTYM_SGR 0x80
|
||||
#endif
|
||||
EXTERN char_u *p_udir; /* 'undodir' */
|
||||
EXTERN long p_ul; /* 'undolevels' */
|
||||
*** ../vim-7.3.631/src/os_unix.c 2012-04-20 15:55:10.000000000 +0200
|
||||
--- src/os_unix.c 2012-08-15 16:06:54.000000000 +0200
|
||||
***************
|
||||
*** 2159,2168 ****
|
||||
--- 2159,2171 ----
|
||||
* Return 1 for "xterm".
|
||||
* Return 2 for "xterm2".
|
||||
* Return 3 for "urxvt".
|
||||
+ * Return 4 for "sgr".
|
||||
*/
|
||||
int
|
||||
use_xterm_mouse()
|
||||
{
|
||||
+ if (ttym_flags == TTYM_SGR)
|
||||
+ return 4;
|
||||
if (ttym_flags == TTYM_URXVT)
|
||||
return 3;
|
||||
if (ttym_flags == TTYM_XTERM2)
|
||||
***************
|
||||
*** 3339,3345 ****
|
||||
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")
|
||||
--- 3342,3349 ----
|
||||
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")
|
||||
***************
|
||||
*** 3348,3353 ****
|
||||
--- 3352,3368 ----
|
||||
}
|
||||
# endif
|
||||
|
||||
+ # ifdef FEAT_MOUSE_SGR
|
||||
+ if (ttym_flags == TTYM_SGR)
|
||||
+ {
|
||||
+ out_str_nf((char_u *)
|
||||
+ (on
|
||||
+ ? IF_EB("\033[?1006h", ESC_STR "[?1006h")
|
||||
+ : IF_EB("\033[?1006l", ESC_STR "[?1006l")));
|
||||
+ ison = on;
|
||||
+ }
|
||||
+ # endif
|
||||
+
|
||||
if (xterm_mouse_vers > 0)
|
||||
{
|
||||
if (on) /* enable mouse events, use mouse tracking if available */
|
||||
***************
|
||||
*** 3577,3582 ****
|
||||
--- 3592,3618 ----
|
||||
else
|
||||
del_mouse_termcode(KS_URXVT_MOUSE);
|
||||
# endif
|
||||
+ # ifdef FEAT_MOUSE_SGR
|
||||
+ /* same as the dec mouse */
|
||||
+ if (use_xterm_mouse() == 4
|
||||
+ # ifdef FEAT_GUI
|
||||
+ && !gui.in_use
|
||||
+ # endif
|
||||
+ )
|
||||
+ {
|
||||
+ set_mouse_termcode(KS_SGR_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_SGR_MOUSE);
|
||||
+ # endif
|
||||
}
|
||||
#endif
|
||||
|
||||
*** ../vim-7.3.631/src/term.c 2012-02-05 22:05:44.000000000 +0100
|
||||
--- src/term.c 2012-08-15 16:14:09.000000000 +0200
|
||||
***************
|
||||
*** 1997,2002 ****
|
||||
--- 1997,2003 ----
|
||||
# define HMT_JSBTERM 8
|
||||
# define HMT_PTERM 16
|
||||
# define HMT_URXVT 32
|
||||
+ # define HMT_SGR 64
|
||||
static int has_mouse_termcode = 0;
|
||||
# endif
|
||||
|
||||
***************
|
||||
*** 2037,2042 ****
|
||||
--- 2038,2048 ----
|
||||
has_mouse_termcode |= HMT_URXVT;
|
||||
else
|
||||
# endif
|
||||
+ # ifdef FEAT_MOUSE_SGR
|
||||
+ if (n == KS_SGR_MOUSE)
|
||||
+ has_mouse_termcode |= HMT_SGR;
|
||||
+ else
|
||||
+ # endif
|
||||
has_mouse_termcode |= HMT_NORMAL;
|
||||
# endif
|
||||
}
|
||||
***************
|
||||
*** 2079,2084 ****
|
||||
--- 2085,2095 ----
|
||||
has_mouse_termcode &= ~HMT_URXVT;
|
||||
else
|
||||
# endif
|
||||
+ # ifdef FEAT_MOUSE_SGR
|
||||
+ if (n == KS_SGR_MOUSE)
|
||||
+ has_mouse_termcode &= ~HMT_SGR;
|
||||
+ else
|
||||
+ # endif
|
||||
has_mouse_termcode &= ~HMT_NORMAL;
|
||||
# endif
|
||||
}
|
||||
***************
|
||||
*** 4023,4029 ****
|
||||
#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
|
||||
--- 4034,4041 ----
|
||||
#ifdef FEAT_TERMRESPONSE
|
||||
if (key_name[0] == NUL
|
||||
/* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
|
||||
! || key_name[0] == KS_URXVT_MOUSE
|
||||
! || key_name[0] == KS_SGR_MOUSE)
|
||||
{
|
||||
/* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
|
||||
* eat other possible responses to t_RV, rxvt returns
|
||||
***************
|
||||
*** 4061,4066 ****
|
||||
--- 4073,4088 ----
|
||||
|
||||
if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
|
||||
{
|
||||
+ # ifdef TTYM_SGR
|
||||
+ if (extra >= 277
|
||||
+ # ifdef TTYM_URXVT
|
||||
+ && ttym_flags != TTYM_URXVT
|
||||
+ # endif
|
||||
+ )
|
||||
+ set_option_value((char_u *)"ttym", 0L,
|
||||
+ (char_u *)"sgr", 0);
|
||||
+ else
|
||||
+ # endif
|
||||
/* if xterm version >= 95 use mouse dragging */
|
||||
if (extra >= 95
|
||||
# ifdef TTYM_URXVT
|
||||
***************
|
||||
*** 4147,4167 ****
|
||||
/*
|
||||
* If it is a mouse click, get the coordinates.
|
||||
*/
|
||||
! if (key_name[0] == (int)KS_MOUSE
|
||||
# ifdef FEAT_MOUSE_JSB
|
||||
! || key_name[0] == (int)KS_JSBTERM_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_NET
|
||||
! || key_name[0] == (int)KS_NETTERM_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_DEC
|
||||
! || key_name[0] == (int)KS_DEC_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_PTERM
|
||||
! || key_name[0] == (int)KS_PTERM_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_URXVT
|
||||
! || key_name[0] == (int)KS_URXVT_MOUSE
|
||||
# endif
|
||||
)
|
||||
{
|
||||
--- 4169,4192 ----
|
||||
/*
|
||||
* If it is a mouse click, get the coordinates.
|
||||
*/
|
||||
! if (key_name[0] == KS_MOUSE
|
||||
# ifdef FEAT_MOUSE_JSB
|
||||
! || key_name[0] == KS_JSBTERM_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_NET
|
||||
! || key_name[0] == KS_NETTERM_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_DEC
|
||||
! || key_name[0] == KS_DEC_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_PTERM
|
||||
! || key_name[0] == KS_PTERM_MOUSE
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_URXVT
|
||||
! || key_name[0] == KS_URXVT_MOUSE
|
||||
! # endif
|
||||
! # ifdef FEAT_MOUSE_SGR
|
||||
! || key_name[0] == KS_SGR_MOUSE
|
||||
# endif
|
||||
)
|
||||
{
|
||||
***************
|
||||
*** 4243,4250 ****
|
||||
}
|
||||
}
|
||||
|
||||
! # ifdef FEAT_MOUSE_URXVT
|
||||
! if (key_name[0] == (int)KS_URXVT_MOUSE)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
--- 4268,4276 ----
|
||||
}
|
||||
}
|
||||
|
||||
! # if defined(FEAT_MOUSE_URXVT) || defined(FEAT_MOUSE_SGR)
|
||||
! if (key_name[0] == KS_URXVT_MOUSE
|
||||
! || key_name[0] == KS_SGR_MOUSE)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
***************
|
||||
*** 4256,4261 ****
|
||||
--- 4282,4301 ----
|
||||
* ^-- row
|
||||
* ^----- column
|
||||
* ^-------- code
|
||||
+ *
|
||||
+ * SGR 1006 mouse reporting mode:
|
||||
+ * Almost identical to xterm mouse mode, except the values
|
||||
+ * are decimal instead of bytes.
|
||||
+ *
|
||||
+ * \033[<%d;%d;%dM
|
||||
+ * ^-- row
|
||||
+ * ^----- column
|
||||
+ * ^-------- code
|
||||
+ *
|
||||
+ * \033[<%d;%d;%dm : mouse release event
|
||||
+ * ^-- row
|
||||
+ * ^----- column
|
||||
+ * ^-------- code
|
||||
*/
|
||||
p = tp + slen;
|
||||
|
||||
***************
|
||||
*** 4263,4294 ****
|
||||
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;
|
||||
}
|
||||
--- 4303,4348 ----
|
||||
if (*p++ != ';')
|
||||
return -1;
|
||||
|
||||
+ /* when mouse reporting is SGR, add 32 to mouse code */
|
||||
+ if (key_name[0] == KS_SGR_MOUSE)
|
||||
+ mouse_code += 32;
|
||||
+
|
||||
mouse_col = getdigits(&p) - 1;
|
||||
if (*p++ != ';')
|
||||
return -1;
|
||||
|
||||
mouse_row = getdigits(&p) - 1;
|
||||
! if (key_name[0] == KS_SGR_MOUSE && *p == 'm')
|
||||
! mouse_code |= MOUSE_RELEASE;
|
||||
! else if (*p != 'M')
|
||||
return -1;
|
||||
+ p++;
|
||||
|
||||
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)
|
||||
! {
|
||||
int slen2;
|
||||
int cmd_complete = 0;
|
||||
!
|
||||
! /* check if the command is complete by looking for the
|
||||
! * 'M' */
|
||||
! for (slen2 = slen; slen2 < len; slen2++)
|
||||
! {
|
||||
! if (tp[slen2] == 'M'
|
||||
! || (key_name[0] == KS_SGR_MOUSE
|
||||
! && tp[slen2] == 'm'))
|
||||
! {
|
||||
cmd_complete = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
p += j;
|
||||
! if (cmd_complete && getdigits(&p) == mouse_code)
|
||||
! {
|
||||
slen += j; /* skip the \033[ */
|
||||
continue;
|
||||
}
|
||||
***************
|
||||
*** 4302,4307 ****
|
||||
--- 4356,4364 ----
|
||||
#ifdef FEAT_MOUSE_URXVT
|
||||
|| key_name[0] == (int)KS_URXVT_MOUSE
|
||||
#endif
|
||||
+ #ifdef FEAT_MOUSE_SGR
|
||||
+ || key_name[0] == KS_SGR_MOUSE
|
||||
+ #endif
|
||||
)
|
||||
{
|
||||
# if !defined(MSWIN) && !defined(MSDOS)
|
||||
*** ../vim-7.3.631/src/version.c 2012-08-15 14:04:50.000000000 +0200
|
||||
--- src/version.c 2012-08-15 15:47:30.000000000 +0200
|
||||
***************
|
||||
*** 384,389 ****
|
||||
--- 384,394 ----
|
||||
# else
|
||||
"-mouse_urxvt",
|
||||
# endif
|
||||
+ # ifdef FEAT_MOUSE_SGR
|
||||
+ "+mouse_sgr",
|
||||
+ # else
|
||||
+ "-mouse_sgr",
|
||||
+ # endif
|
||||
#endif
|
||||
#ifdef __QNX__
|
||||
# ifdef FEAT_MOUSE_PTERM
|
||||
*** ../vim-7.3.631/src/version.c 2012-08-15 14:04:50.000000000 +0200
|
||||
--- src/version.c 2012-08-15 15:47:30.000000000 +0200
|
||||
***************
|
||||
*** 716,717 ****
|
||||
--- 721,724 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 632,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
243. You unsuccessfully try to download a pizza from www.dominos.com.
|
||||
|
||||
/// 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 ///
|
81
7.3.633
Normal file
81
7.3.633
Normal file
@ -0,0 +1,81 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.633
|
||||
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.633
|
||||
Problem: Selection remains displayed as selected after selecting another
|
||||
text.
|
||||
Solution: Call xterm_update() before select(). (Andrew Pimlott)
|
||||
Files: src/os_unix.c
|
||||
|
||||
|
||||
*** ../vim-7.3.632/src/os_unix.c 2012-08-15 16:20:59.000000000 +0200
|
||||
--- src/os_unix.c 2012-08-15 17:15:58.000000000 +0200
|
||||
***************
|
||||
*** 5196,5201 ****
|
||||
--- 5196,5205 ----
|
||||
FD_SET(ConnectionNumber(xterm_dpy), &rfds);
|
||||
if (maxfd < ConnectionNumber(xterm_dpy))
|
||||
maxfd = ConnectionNumber(xterm_dpy);
|
||||
+
|
||||
+ /* An event may have already been read but not handled. In
|
||||
+ * particulary, XFlush may cause this. */
|
||||
+ xterm_update();
|
||||
}
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_GPM
|
||||
***************
|
||||
*** 5216,5229 ****
|
||||
maxfd = xsmp_icefd;
|
||||
}
|
||||
# endif
|
||||
! #ifdef FEAT_NETBEANS_INTG
|
||||
if (nb_fd != -1)
|
||||
{
|
||||
FD_SET(nb_fd, &rfds);
|
||||
if (maxfd < nb_fd)
|
||||
maxfd = nb_fd;
|
||||
}
|
||||
! #endif
|
||||
|
||||
# ifdef OLD_VMS
|
||||
/* Old VMS as v6.2 and older have broken select(). It waits more than
|
||||
--- 5220,5233 ----
|
||||
maxfd = xsmp_icefd;
|
||||
}
|
||||
# endif
|
||||
! # ifdef FEAT_NETBEANS_INTG
|
||||
if (nb_fd != -1)
|
||||
{
|
||||
FD_SET(nb_fd, &rfds);
|
||||
if (maxfd < nb_fd)
|
||||
maxfd = nb_fd;
|
||||
}
|
||||
! # endif
|
||||
|
||||
# ifdef OLD_VMS
|
||||
/* Old VMS as v6.2 and older have broken select(). It waits more than
|
||||
*** ../vim-7.3.632/src/version.c 2012-08-15 16:20:59.000000000 +0200
|
||||
--- src/version.c 2012-08-15 17:22:17.000000000 +0200
|
||||
***************
|
||||
*** 721,722 ****
|
||||
--- 721,724 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 633,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
245. You use Real Audio to listen to a radio station from a distant
|
||||
city rather than turn on your stereo system.
|
||||
|
||||
/// 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 ///
|
57
7.3.634
Normal file
57
7.3.634
Normal file
@ -0,0 +1,57 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.634
|
||||
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.634
|
||||
Problem: Month/Day format for undo is confusing. (Marcin Szamotulski)
|
||||
Solution: Always use Year/Month/Day, should work for everybody.
|
||||
Files: src/undo.c
|
||||
|
||||
|
||||
*** ../vim-7.3.633/src/undo.c 2012-06-01 13:46:06.000000000 +0200
|
||||
--- src/undo.c 2012-08-23 12:43:24.000000000 +0200
|
||||
***************
|
||||
*** 2880,2890 ****
|
||||
if (time(NULL) - tt < (60L * 60L * 12L))
|
||||
/* within 12 hours */
|
||||
(void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
|
||||
- else if (time(NULL) - tt < (60L * 60L * 24L * 180L))
|
||||
- /* within 6 months */
|
||||
- (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime);
|
||||
else
|
||||
! /* long ago */
|
||||
(void)strftime((char *)buf, buflen, "%Y/%m/%d %H:%M:%S", curtime);
|
||||
}
|
||||
else
|
||||
--- 2880,2887 ----
|
||||
if (time(NULL) - tt < (60L * 60L * 12L))
|
||||
/* within 12 hours */
|
||||
(void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
|
||||
else
|
||||
! /* longer ago */
|
||||
(void)strftime((char *)buf, buflen, "%Y/%m/%d %H:%M:%S", curtime);
|
||||
}
|
||||
else
|
||||
*** ../vim-7.3.633/src/version.c 2012-08-15 17:26:53.000000000 +0200
|
||||
--- src/version.c 2012-08-23 12:58:36.000000000 +0200
|
||||
***************
|
||||
*** 721,722 ****
|
||||
--- 721,724 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 634,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
10E. You start counting in hex.
|
||||
|
||||
/// 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 ///
|
50
7.3.635
Normal file
50
7.3.635
Normal file
@ -0,0 +1,50 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.635
|
||||
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.635
|
||||
Problem: Issue 21: System call during startup sets 'lines' to a wrong
|
||||
value. (Karl Yngve)
|
||||
Solution: Don't set the shell size while the GUI is still starting up.
|
||||
(Christian Brabandt)
|
||||
Files: src/ui.c
|
||||
|
||||
|
||||
*** ../vim-7.3.634/src/ui.c 2012-07-10 16:49:08.000000000 +0200
|
||||
--- src/ui.c 2012-08-23 13:25:26.000000000 +0200
|
||||
***************
|
||||
*** 298,303 ****
|
||||
--- 298,306 ----
|
||||
int retval;
|
||||
|
||||
#ifdef FEAT_GUI
|
||||
+ if (gui.starting)
|
||||
+ /* possibly a system call during startup, check later */
|
||||
+ return OK;
|
||||
if (gui.in_use)
|
||||
retval = gui_get_shellsize();
|
||||
else
|
||||
*** ../vim-7.3.634/src/version.c 2012-08-23 12:58:56.000000000 +0200
|
||||
--- src/version.c 2012-08-23 13:27:00.000000000 +0200
|
||||
***************
|
||||
*** 721,722 ****
|
||||
--- 721,724 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 635,
|
||||
/**/
|
||||
|
||||
--
|
||||
ARTHUR: This new learning amazes me, Sir Bedevere. Explain again how sheep's
|
||||
bladders may be employed to prevent earthquakes.
|
||||
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
|
||||
|
||||
/// 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 ///
|
148
7.3.636
Normal file
148
7.3.636
Normal file
@ -0,0 +1,148 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.636
|
||||
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.636 (after 7.3.625)
|
||||
Problem: Not all zero-width matches handled correctly for "gn".
|
||||
Solution: Move zero-width detection to a separate function. (Christian
|
||||
Brabandt)
|
||||
Files: src/search.c
|
||||
|
||||
|
||||
*** ../vim-7.3.635/src/search.c 2012-08-08 15:27:54.000000000 +0200
|
||||
--- src/search.c 2012-08-23 15:52:50.000000000 +0200
|
||||
***************
|
||||
*** 4526,4531 ****
|
||||
--- 4526,4533 ----
|
||||
#endif /* FEAT_TEXTOBJ */
|
||||
|
||||
#if defined(FEAT_VISUAL) || defined(PROTO)
|
||||
+ static int is_zerowidth __ARGS((char_u *pattern));
|
||||
+
|
||||
/*
|
||||
* Find next search match under cursor, cursor at end.
|
||||
* Used while an operator is pending, and in Visual mode.
|
||||
***************
|
||||
*** 4546,4556 ****
|
||||
int visual_active = FALSE;
|
||||
int flags = 0;
|
||||
pos_T save_VIsual;
|
||||
- regmmatch_T regmatch;
|
||||
- int nmatched = 0;
|
||||
int zerowidth = FALSE;
|
||||
|
||||
-
|
||||
/* wrapping should not occur */
|
||||
p_ws = FALSE;
|
||||
|
||||
--- 4548,4555 ----
|
||||
***************
|
||||
*** 4583,4606 ****
|
||||
else
|
||||
orig_pos = pos = start_pos = curwin->w_cursor;
|
||||
|
||||
! /*
|
||||
! * Check for zero-width pattern.
|
||||
! */
|
||||
! if (search_regcomp(spats[last_idx].pat, RE_SEARCH, RE_SEARCH,
|
||||
! ((SEARCH_HIS + SEARCH_KEEP)), ®match) == FAIL)
|
||||
return FAIL;
|
||||
|
||||
- /* Zero-width pattern should match somewhere, then we can check if start
|
||||
- * and end are in the same position. */
|
||||
- nmatched = vim_regexec_multi(®match, curwin, curbuf,
|
||||
- curwin->w_cursor.lnum, (colnr_T)0, NULL);
|
||||
- if (called_emsg)
|
||||
- return FAIL;
|
||||
- if (nmatched && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
|
||||
- && regmatch.endpos[0].col == regmatch.startpos[0].col)
|
||||
- zerowidth = TRUE;
|
||||
- vim_free(regmatch.regprog);
|
||||
-
|
||||
/*
|
||||
* The trick is to first search backwards and then search forward again,
|
||||
* so that a match at the current cursor position will be correctly
|
||||
--- 4582,4592 ----
|
||||
else
|
||||
orig_pos = pos = start_pos = curwin->w_cursor;
|
||||
|
||||
! /* Is the pattern is zero-width? */
|
||||
! zerowidth = is_zerowidth(spats[last_idx].pat);
|
||||
! if (zerowidth == -1)
|
||||
return FAIL;
|
||||
|
||||
/*
|
||||
* The trick is to first search backwards and then search forward again,
|
||||
* so that a match at the current cursor position will be correctly
|
||||
***************
|
||||
*** 4693,4698 ****
|
||||
--- 4679,4721 ----
|
||||
|
||||
return OK;
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * Check if the pattern is zero-width.
|
||||
+ * Returns TRUE, FALSE or -1 for failure.
|
||||
+ */
|
||||
+ static int
|
||||
+ is_zerowidth(pattern)
|
||||
+ char_u *pattern;
|
||||
+ {
|
||||
+ regmmatch_T regmatch;
|
||||
+ int nmatched = 0;
|
||||
+ int result = -1;
|
||||
+ pos_T pos;
|
||||
+
|
||||
+ if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH,
|
||||
+ SEARCH_KEEP, ®match) == FAIL)
|
||||
+ return -1;
|
||||
+
|
||||
+ /* move to match */
|
||||
+ clearpos(&pos);
|
||||
+ if (searchit(curwin, curbuf, &pos, FORWARD, spats[last_idx].pat, 1,
|
||||
+ SEARCH_KEEP, RE_SEARCH, 0, NULL) != FAIL)
|
||||
+ {
|
||||
+ /* Zero-width pattern should match somewhere, then we can check if
|
||||
+ * start and end are in the same position. */
|
||||
+ nmatched = vim_regexec_multi(®match, curwin, curbuf,
|
||||
+ pos.lnum, (colnr_T)0, NULL);
|
||||
+
|
||||
+ if (!called_emsg)
|
||||
+ result = (nmatched != 0
|
||||
+ && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
|
||||
+ && regmatch.startpos[0].col == regmatch.endpos[0].col);
|
||||
+ }
|
||||
+
|
||||
+ vim_free(regmatch.regprog);
|
||||
+ return result;
|
||||
+ }
|
||||
#endif /* FEAT_VISUAL */
|
||||
|
||||
#if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \
|
||||
*** ../vim-7.3.635/src/version.c 2012-08-23 13:28:50.000000000 +0200
|
||||
--- src/version.c 2012-08-23 15:25:23.000000000 +0200
|
||||
***************
|
||||
*** 721,722 ****
|
||||
--- 721,724 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 636,
|
||||
/**/
|
||||
|
||||
--
|
||||
Edison's greatest achievement came in 1879, when he invented the
|
||||
electric company. Edison's design was a brilliant adaptation of the
|
||||
simple electrical circuit: the electric company sends electricity
|
||||
through a wire to a customer, then immediately gets the electricity
|
||||
back through another wire
|
||||
|
||||
/// 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 ///
|
94
7.3.637
Normal file
94
7.3.637
Normal file
@ -0,0 +1,94 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.637
|
||||
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.637
|
||||
Problem: Cannot catch the error caused by a foldopen when there is no fold.
|
||||
(ZyX, Issue 48)
|
||||
Solution: Do not break out of the loop early when inside try/catch.
|
||||
(Christian Brabandt) Except when there is a syntax error.
|
||||
Files: src/ex_docmd.c, src/globals.h
|
||||
|
||||
|
||||
*** ../vim-7.3.636/src/ex_docmd.c 2012-08-15 14:04:50.000000000 +0200
|
||||
--- src/ex_docmd.c 2012-08-23 18:39:08.000000000 +0200
|
||||
***************
|
||||
*** 1295,1301 ****
|
||||
&& cstack.cs_trylevel == 0
|
||||
#endif
|
||||
)
|
||||
! && !(did_emsg && used_getline
|
||||
&& (getline_equal(fgetline, cookie, getexmodeline)
|
||||
|| getline_equal(fgetline, cookie, getexline)))
|
||||
&& (next_cmdline != NULL
|
||||
--- 1295,1308 ----
|
||||
&& cstack.cs_trylevel == 0
|
||||
#endif
|
||||
)
|
||||
! && !(did_emsg
|
||||
! #ifdef FEAT_EVAL
|
||||
! /* Keep going when inside try/catch, so that the error can be
|
||||
! * dealth with, except when it is a syntax error, it may cause
|
||||
! * the :endtry to be missed. */
|
||||
! && (cstack.cs_trylevel == 0 || did_emsg_syntax)
|
||||
! #endif
|
||||
! && used_getline
|
||||
&& (getline_equal(fgetline, cookie, getexmodeline)
|
||||
|| getline_equal(fgetline, cookie, getexline)))
|
||||
&& (next_cmdline != NULL
|
||||
***************
|
||||
*** 1305,1310 ****
|
||||
--- 1312,1318 ----
|
||||
|| (flags & DOCMD_REPEAT)));
|
||||
|
||||
vim_free(cmdline_copy);
|
||||
+ did_emsg_syntax = FALSE;
|
||||
#ifdef FEAT_EVAL
|
||||
free_cmdlines(&lines_ga);
|
||||
ga_clear(&lines_ga);
|
||||
***************
|
||||
*** 2137,2142 ****
|
||||
--- 2145,2151 ----
|
||||
if (!sourcing)
|
||||
append_command(*cmdlinep);
|
||||
errormsg = IObuff;
|
||||
+ did_emsg_syntax = TRUE;
|
||||
}
|
||||
goto doend;
|
||||
}
|
||||
*** ../vim-7.3.636/src/globals.h 2012-07-10 16:49:08.000000000 +0200
|
||||
--- src/globals.h 2012-08-23 18:29:09.000000000 +0200
|
||||
***************
|
||||
*** 183,188 ****
|
||||
--- 183,190 ----
|
||||
#endif
|
||||
EXTERN int did_emsg; /* set by emsg() when the message
|
||||
is displayed or thrown */
|
||||
+ EXTERN int did_emsg_syntax; /* did_emsg set because of a
|
||||
+ syntax error */
|
||||
EXTERN int called_emsg; /* always set by emsg() */
|
||||
EXTERN int ex_exitval INIT(= 0); /* exit value for ex mode */
|
||||
EXTERN int emsg_on_display INIT(= FALSE); /* there is an error message */
|
||||
*** ../vim-7.3.636/src/version.c 2012-08-23 15:53:00.000000000 +0200
|
||||
--- src/version.c 2012-08-23 17:59:12.000000000 +0200
|
||||
***************
|
||||
*** 721,722 ****
|
||||
--- 721,724 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 637,
|
||||
/**/
|
||||
|
||||
--
|
||||
GOD: That is your purpose Arthur ... the Quest for the Holy Grail ...
|
||||
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
|
||||
|
||||
/// 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 ///
|
55
7.3.638
Normal file
55
7.3.638
Normal file
@ -0,0 +1,55 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.638
|
||||
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.638
|
||||
Problem: Unecessary redraw of the previous character.
|
||||
Solution: Check if the character is double-width. (Jon Long)
|
||||
Files: src/screen.c
|
||||
|
||||
|
||||
*** ../vim-7.3.637/src/screen.c 2012-07-10 16:49:08.000000000 +0200
|
||||
--- src/screen.c 2012-08-23 18:49:33.000000000 +0200
|
||||
***************
|
||||
*** 5332,5339 ****
|
||||
&& (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
|
||||
|| (ScreenLinesUC[off_from] != 0
|
||||
&& comp_char_differs(off_from, off_to))
|
||||
! || (cols > 1 && ScreenLines[off_from + 1]
|
||||
! != ScreenLines[off_to + 1])))
|
||||
#endif
|
||||
))
|
||||
return TRUE;
|
||||
--- 5332,5340 ----
|
||||
&& (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
|
||||
|| (ScreenLinesUC[off_from] != 0
|
||||
&& comp_char_differs(off_from, off_to))
|
||||
! || ((*mb_off2cells)(off_from, off_from + cols) > 1
|
||||
! && ScreenLines[off_from + 1]
|
||||
! != ScreenLines[off_to + 1])))
|
||||
#endif
|
||||
))
|
||||
return TRUE;
|
||||
*** ../vim-7.3.637/src/version.c 2012-08-23 18:43:06.000000000 +0200
|
||||
--- src/version.c 2012-08-23 18:47:11.000000000 +0200
|
||||
***************
|
||||
*** 721,722 ****
|
||||
--- 721,724 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 638,
|
||||
/**/
|
||||
|
||||
--
|
||||
There is a fine line between courage and foolishness.
|
||||
Unfortunately, it's not a fence.
|
||||
|
||||
/// 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 ///
|
@ -653,3 +653,22 @@ Individual patches for Vim 7.3:
|
||||
4897 7.3.620 building with recent Ruby on Win32 doesn't work
|
||||
2259 7.3.621 compiler warnings on 64 bit windows
|
||||
1867 7.3.622 XPM library for Win32 can't be found
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
2426 7.3.623 Perl 5.14 commands crash Vim on MS-Windows
|
||||
1800 7.3.624 when cancelling input() it returns the third argument
|
||||
4327 7.3.625 "gn" does not handle zero-width matches correctly
|
||||
1500 7.3.626 Python interface doesn't build with Python 2.4 or older
|
||||
2803 7.3.627 expression not evaluated when using "n" flag with ":s"
|
||||
1802 7.3.628 ":open!" results in a confusing error message
|
||||
12019 7.3.629 there is no way to make 'shiftwidth' follow 'tabstop'
|
||||
1487 7.3.630 "|" does not behave correctly when 'virtualedit' is set
|
||||
10100 7.3.631 cannot complete user names
|
||||
14770 7.3.632 cannot select beyond 222 columns with the mouse in xterm
|
||||
2238 7.3.633 selection remains highlighted after selecting another text
|
||||
1884 7.3.634 Month/Day format for undo is confusing
|
||||
1586 7.3.635 system call during startup sets 'lines' to a wrong value
|
||||
4539 7.3.636 (after 7.3.625) "gn" fails for some zero-width matches
|
||||
3117 7.3.637 cannot catch error caused by a foldopen when there is no fold
|
||||
1783 7.3.638 unecessary redraw of the previous character
|
||||
>>>>>>> c8d55a4ffc9503371b9738188e056eba33134f47
|
||||
|
21
vim-7.3-manpage-typo-668894-675480.patch
Normal file
21
vim-7.3-manpage-typo-668894-675480.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff -up vim73/runtime/doc/vim.1.668894 vim73/runtime/doc/vim.1
|
||||
--- vim73/runtime/doc/vim.1.668894 2010-05-15 13:04:00.000000000 +0200
|
||||
+++ vim73/runtime/doc/vim.1 2012-08-28 12:41:36.000000000 +0200
|
||||
@@ -73,7 +73,7 @@ To edit a file that starts with a dash,
|
||||
.TP
|
||||
\-
|
||||
The file to edit is read from stdin. Commands are read from stderr, which
|
||||
-should be a tty.
|
||||
+should be a TTY.
|
||||
.TP
|
||||
\-t {tag}
|
||||
The file to edit and the initial cursor position depends on a "tag", a sort
|
||||
@@ -321,7 +321,7 @@ When N is omitted, open one tab page for
|
||||
\-R
|
||||
Read-only mode.
|
||||
The 'readonly' option will be set.
|
||||
-You can still edit the buffer, but will be prevented from accidently
|
||||
+You can still edit the buffer, but will be prevented from accidentally
|
||||
overwriting a file.
|
||||
If you do want to overwrite a file, add an exclamation mark to the Ex command,
|
||||
as in ":w!".
|
65
vim.spec
65
vim.spec
@ -18,7 +18,7 @@
|
||||
#used for pre-releases:
|
||||
%define beta %{nil}
|
||||
%define vimdir vim73%{?beta}
|
||||
%define patchlevel 622
|
||||
%define patchlevel 638
|
||||
|
||||
Summary: The VIM editor
|
||||
URL: http://www.vim.org/
|
||||
@ -678,18 +678,35 @@ Patch619: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.619
|
||||
Patch620: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.620
|
||||
Patch621: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.621
|
||||
Patch622: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.622
|
||||
Patch623: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.623
|
||||
Patch624: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.624
|
||||
Patch625: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.625
|
||||
Patch626: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.626
|
||||
Patch627: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.627
|
||||
Patch628: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.628
|
||||
Patch629: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.629
|
||||
Patch630: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.630
|
||||
Patch631: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.631
|
||||
Patch632: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.632
|
||||
Patch633: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.633
|
||||
Patch634: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.634
|
||||
Patch635: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.635
|
||||
Patch636: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.636
|
||||
Patch637: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.637
|
||||
Patch638: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.638
|
||||
|
||||
Patch3000: vim-7.3-syntax.patch
|
||||
Patch3002: vim-7.1-nowarnings.patch
|
||||
Patch3003: vim-7.0-rclocation.patch
|
||||
Patch3004: vim-6.4-checkhl.patch
|
||||
Patch3005: vim-7.3-fstabsyntax.patch
|
||||
Patch3006: vim-7.0-warning.patch
|
||||
Patch3007: vim-7.0-syncolor.patch
|
||||
Patch3008: vim-7.0-specedit.patch
|
||||
Patch3009: vim72-rh514717.patch
|
||||
Patch3010: vim-7.3-bug816848.patch
|
||||
Patch3011: vim-7.3-spec-epoch.patch
|
||||
Patch3003: vim-6.1-rh3.patch
|
||||
Patch3004: vim-7.0-rclocation.patch
|
||||
Patch3006: vim-6.4-checkhl.patch
|
||||
Patch3007: vim-7.3-fstabsyntax.patch
|
||||
Patch3008: vim-7.0-warning.patch
|
||||
Patch3009: vim-7.0-syncolor.patch
|
||||
Patch3010: vim-7.0-specedit.patch
|
||||
Patch3011: vim72-rh514717.patch
|
||||
Patch3012: vim-7.3-bug816848.patch
|
||||
Patch3013: vim-7.3-manpage-typo-668894-675480.patch
|
||||
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: python-devel ncurses-devel gettext perl-devel
|
||||
@ -1446,6 +1463,22 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
|
||||
%patch620 -p0
|
||||
%patch621 -p0
|
||||
%patch622 -p0
|
||||
%patch623 -p0
|
||||
%patch624 -p0
|
||||
%patch625 -p0
|
||||
%patch626 -p0
|
||||
%patch627 -p0
|
||||
%patch628 -p0
|
||||
%patch629 -p0
|
||||
%patch630 -p0
|
||||
%patch631 -p0
|
||||
%patch632 -p0
|
||||
%patch633 -p0
|
||||
%patch634 -p0
|
||||
%patch635 -p0
|
||||
%patch636 -p0
|
||||
%patch637 -p0
|
||||
%patch638 -p0
|
||||
|
||||
|
||||
# install spell files
|
||||
@ -1464,6 +1497,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
|
||||
%patch3009 -p1
|
||||
%patch3010 -p1
|
||||
%patch3011 -p1
|
||||
%patch3012 -p1
|
||||
%patch3013 -p1
|
||||
|
||||
%build
|
||||
cp -f %{SOURCE5} .
|
||||
@ -1699,6 +1734,7 @@ done
|
||||
for i in rvim.1 gvim.1 gvimdiff.1; do
|
||||
echo ".so man1/vim.1" > $RPM_BUILD_ROOT/%{_mandir}/man1/$i
|
||||
done
|
||||
touch $RPM_BUILD_ROOT/%{_datadir}/%{name}/vimfiles/doc/tags
|
||||
|
||||
%post X11
|
||||
touch --no-create %{_datadir}/icons/hicolor
|
||||
@ -1871,6 +1907,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%dir %{_datadir}/%{name}/vimfiles/colors
|
||||
%dir %{_datadir}/%{name}/vimfiles/compiler
|
||||
%dir %{_datadir}/%{name}/vimfiles/doc
|
||||
%ghost %{_datadir}/%{name}/vimfiles/doc/tags
|
||||
%dir %{_datadir}/%{name}/vimfiles/ftdetect
|
||||
%dir %{_datadir}/%{name}/vimfiles/ftplugin
|
||||
%dir %{_datadir}/%{name}/vimfiles/indent
|
||||
@ -1901,6 +1938,14 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_datadir}/icons/hicolor/*/apps/*
|
||||
|
||||
%changelog
|
||||
* Tue Aug 28 2012 Karsten Hopp <karsten@redhat.com> 7.3.638-2
|
||||
- fix some man page typos (#668894, #675480)
|
||||
- own usr/share/vim/vimfiles/doc/tags (#845564)
|
||||
- add path to csope database (#844843)
|
||||
|
||||
* Tue Aug 28 2012 Karsten Hopp <karsten@redhat.com> 7.3.638-1
|
||||
- patchlevel 638
|
||||
|
||||
* Mon Aug 06 2012 Karsten Hopp <karsten@redhat.com> 2:7.3.622-2
|
||||
- add epoch to spec.vim and automatic changelog entries
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user