- patchlevel 242
This commit is contained in:
parent
c8ecddb235
commit
9c34900d48
210
7.1.234
Normal file
210
7.1.234
Normal file
@ -0,0 +1,210 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.234
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.234
|
||||
Problem: When diff'ing three files the third one isn't displayed correctly.
|
||||
(Gary Johnson)
|
||||
Solution: Compute the size of diff blocks correctly when merging blocks.
|
||||
Compute filler lines correctly when scrolling.
|
||||
Files: src/diff.c
|
||||
|
||||
|
||||
*** ../vim-7.1.233/src/diff.c Fri Oct 19 18:57:33 2007
|
||||
--- src/diff.c Fri Jan 18 17:32:31 2008
|
||||
***************
|
||||
*** 1299,1305 ****
|
||||
}
|
||||
else
|
||||
/* second overlap of new block with existing block */
|
||||
! dp->df_count[idx_new] += count_new - count_orig;
|
||||
|
||||
/* Adjust the size of the block to include all the lines to the
|
||||
* end of the existing block or the new diff, whatever ends last. */
|
||||
--- 1299,1307 ----
|
||||
}
|
||||
else
|
||||
/* second overlap of new block with existing block */
|
||||
! dp->df_count[idx_new] += count_new - count_orig
|
||||
! + dpl->df_lnum[idx_orig] + dpl->df_count[idx_orig]
|
||||
! - (dp->df_lnum[idx_orig] + dp->df_count[idx_orig]);
|
||||
|
||||
/* Adjust the size of the block to include all the lines to the
|
||||
* end of the existing block or the new diff, whatever ends last. */
|
||||
***************
|
||||
*** 1628,1641 ****
|
||||
win_T *fromwin;
|
||||
win_T *towin;
|
||||
{
|
||||
! buf_T *buf = fromwin->w_buffer;
|
||||
linenr_T lnum = fromwin->w_topline;
|
||||
! int idx;
|
||||
diff_T *dp;
|
||||
int i;
|
||||
|
||||
! idx = diff_buf_idx(buf);
|
||||
! if (idx == DB_COUNT)
|
||||
return; /* safety check */
|
||||
|
||||
if (curtab->tp_diff_invalid)
|
||||
--- 1630,1645 ----
|
||||
win_T *fromwin;
|
||||
win_T *towin;
|
||||
{
|
||||
! buf_T *frombuf = fromwin->w_buffer;
|
||||
linenr_T lnum = fromwin->w_topline;
|
||||
! int fromidx;
|
||||
! int toidx;
|
||||
diff_T *dp;
|
||||
+ int max_count;
|
||||
int i;
|
||||
|
||||
! fromidx = diff_buf_idx(frombuf);
|
||||
! if (fromidx == DB_COUNT)
|
||||
return; /* safety check */
|
||||
|
||||
if (curtab->tp_diff_invalid)
|
||||
***************
|
||||
*** 1645,1686 ****
|
||||
|
||||
/* search for a change that includes "lnum" in the list of diffblocks. */
|
||||
for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next)
|
||||
! if (lnum <= dp->df_lnum[idx] + dp->df_count[idx])
|
||||
break;
|
||||
if (dp == NULL)
|
||||
{
|
||||
/* After last change, compute topline relative to end of file; no
|
||||
* filler lines. */
|
||||
towin->w_topline = towin->w_buffer->b_ml.ml_line_count
|
||||
! - (buf->b_ml.ml_line_count - lnum);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Find index for "towin". */
|
||||
! i = diff_buf_idx(towin->w_buffer);
|
||||
! if (i == DB_COUNT)
|
||||
return; /* safety check */
|
||||
|
||||
! towin->w_topline = lnum + (dp->df_lnum[i] - dp->df_lnum[idx]);
|
||||
! if (lnum >= dp->df_lnum[idx])
|
||||
{
|
||||
! /* Inside a change: compute filler lines. */
|
||||
! if (dp->df_count[i] == dp->df_count[idx])
|
||||
towin->w_topfill = fromwin->w_topfill;
|
||||
! else if (dp->df_count[i] > dp->df_count[idx])
|
||||
{
|
||||
! if (lnum == dp->df_lnum[idx] + dp->df_count[idx])
|
||||
! towin->w_topline = dp->df_lnum[i] + dp->df_count[i]
|
||||
! - fromwin->w_topfill;
|
||||
}
|
||||
! else
|
||||
{
|
||||
! if (towin->w_topline >= dp->df_lnum[i] + dp->df_count[i])
|
||||
{
|
||||
! if (diff_flags & DIFF_FILLER)
|
||||
! towin->w_topfill = dp->df_lnum[idx]
|
||||
! + dp->df_count[idx] - lnum;
|
||||
! towin->w_topline = dp->df_lnum[i] + dp->df_count[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
--- 1649,1720 ----
|
||||
|
||||
/* search for a change that includes "lnum" in the list of diffblocks. */
|
||||
for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next)
|
||||
! if (lnum <= dp->df_lnum[fromidx] + dp->df_count[fromidx])
|
||||
break;
|
||||
if (dp == NULL)
|
||||
{
|
||||
/* After last change, compute topline relative to end of file; no
|
||||
* filler lines. */
|
||||
towin->w_topline = towin->w_buffer->b_ml.ml_line_count
|
||||
! - (frombuf->b_ml.ml_line_count - lnum);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Find index for "towin". */
|
||||
! toidx = diff_buf_idx(towin->w_buffer);
|
||||
! if (toidx == DB_COUNT)
|
||||
return; /* safety check */
|
||||
|
||||
! towin->w_topline = lnum + (dp->df_lnum[toidx] - dp->df_lnum[fromidx]);
|
||||
! if (lnum >= dp->df_lnum[fromidx])
|
||||
{
|
||||
! /* Inside a change: compute filler lines. With three or more
|
||||
! * buffers we need to know the largest count. */
|
||||
! max_count = 0;
|
||||
! for (i = 0; i < DB_COUNT; ++i)
|
||||
! if (curtab->tp_diffbuf[i] != NULL
|
||||
! && max_count < dp->df_count[i])
|
||||
! max_count = dp->df_count[i];
|
||||
!
|
||||
! if (dp->df_count[toidx] == dp->df_count[fromidx])
|
||||
! {
|
||||
! /* same number of lines: use same filler count */
|
||||
towin->w_topfill = fromwin->w_topfill;
|
||||
! }
|
||||
! else if (dp->df_count[toidx] > dp->df_count[fromidx])
|
||||
{
|
||||
! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx])
|
||||
! {
|
||||
! /* more lines in towin and fromwin doesn't show diff
|
||||
! * lines, only filler lines */
|
||||
! if (max_count - fromwin->w_topfill >= dp->df_count[toidx])
|
||||
! {
|
||||
! /* towin also only shows filler lines */
|
||||
! towin->w_topline = dp->df_lnum[toidx]
|
||||
! + dp->df_count[toidx];
|
||||
! towin->w_topfill = fromwin->w_topfill;
|
||||
! }
|
||||
! else
|
||||
! /* towin still has some diff lines to show */
|
||||
! towin->w_topline = dp->df_lnum[toidx]
|
||||
! + max_count - fromwin->w_topfill;
|
||||
! }
|
||||
}
|
||||
! else if (towin->w_topline >= dp->df_lnum[toidx]
|
||||
! + dp->df_count[toidx])
|
||||
{
|
||||
! /* less lines in towin and no diff lines to show: compute
|
||||
! * filler lines */
|
||||
! towin->w_topline = dp->df_lnum[toidx] + dp->df_count[toidx];
|
||||
! if (diff_flags & DIFF_FILLER)
|
||||
{
|
||||
! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx])
|
||||
! /* fromwin is also out of diff lines */
|
||||
! towin->w_topfill = fromwin->w_topfill;
|
||||
! else
|
||||
! /* fromwin has some diff lines */
|
||||
! towin->w_topfill = dp->df_lnum[fromidx]
|
||||
! + max_count - lnum;
|
||||
}
|
||||
}
|
||||
}
|
||||
*** ../vim-7.1.233/src/version.c Fri Jan 18 13:15:32 2008
|
||||
--- src/version.c Fri Jan 18 17:37:32 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 234,
|
||||
/**/
|
||||
|
||||
--
|
||||
ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY
|
||||
KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T
|
||||
HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR
|
||||
LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER),
|
||||
BROTHER MAYNARD
|
||||
"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/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
199
7.1.235
Normal file
199
7.1.235
Normal file
@ -0,0 +1,199 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.235
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.235
|
||||
Problem: Pattern matching is slow when using a lot of simple patterns.
|
||||
Solution: Avoid allocating memory by not freeing it when it's not so much.
|
||||
(Alexei Alexandrov)
|
||||
Files: src/regexp.c
|
||||
|
||||
|
||||
*** ../vim-7.1.234/src/regexp.c Wed Jan 2 15:34:48 2008
|
||||
--- src/regexp.c Fri Jan 18 20:35:21 2008
|
||||
***************
|
||||
*** 378,391 ****
|
||||
|
||||
static char_u *reg_prev_sub = NULL;
|
||||
|
||||
- #if defined(EXITFREE) || defined(PROTO)
|
||||
- void
|
||||
- free_regexp_stuff()
|
||||
- {
|
||||
- vim_free(reg_prev_sub);
|
||||
- }
|
||||
- #endif
|
||||
-
|
||||
/*
|
||||
* REGEXP_INRANGE contains all characters which are always special in a []
|
||||
* range after '\'.
|
||||
--- 378,383 ----
|
||||
***************
|
||||
*** 3206,3217 ****
|
||||
} backpos_T;
|
||||
|
||||
/*
|
||||
! * regstack and backpos are used by regmatch(). They are kept over calls to
|
||||
! * avoid invoking malloc() and free() often.
|
||||
*/
|
||||
! static garray_T regstack; /* stack with regitem_T items, sometimes
|
||||
! preceded by regstar_T or regbehind_T. */
|
||||
! static garray_T backpos; /* table with backpos_T for BACK */
|
||||
|
||||
/*
|
||||
* Get pointer to the line "lnum", which is relative to "reg_firstlnum".
|
||||
--- 3198,3236 ----
|
||||
} backpos_T;
|
||||
|
||||
/*
|
||||
! * "regstack" and "backpos" are used by regmatch(). They are kept over calls
|
||||
! * to avoid invoking malloc() and free() often.
|
||||
! * "regstack" is a stack with regitem_T items, sometimes preceded by regstar_T
|
||||
! * or regbehind_T.
|
||||
! * "backpos_T" is a table with backpos_T for BACK
|
||||
! */
|
||||
! static garray_T regstack = {0, 0, 0, 0, NULL};
|
||||
! static garray_T backpos = {0, 0, 0, 0, NULL};
|
||||
!
|
||||
! /*
|
||||
! * Both for regstack and backpos tables we use the following strategy of
|
||||
! * allocation (to reduce malloc/free calls):
|
||||
! * - Initial size is fairly small.
|
||||
! * - When needed, the tables are grown bigger (8 times at first, double after
|
||||
! * that).
|
||||
! * - After executing the match we free the memory only if the array has grown.
|
||||
! * Thus the memory is kept allocated when it's at the initial size.
|
||||
! * This makes it fast while not keeping a lot of memory allocated.
|
||||
! * A three times speed increase was observed when using many simple patterns.
|
||||
*/
|
||||
! #define REGSTACK_INITIAL 2048
|
||||
! #define BACKPOS_INITIAL 64
|
||||
!
|
||||
! #if defined(EXITFREE) || defined(PROTO)
|
||||
! void
|
||||
! free_regexp_stuff()
|
||||
! {
|
||||
! ga_clear(®stack);
|
||||
! ga_clear(&backpos);
|
||||
! vim_free(reg_tofree);
|
||||
! vim_free(reg_prev_sub);
|
||||
! }
|
||||
! #endif
|
||||
|
||||
/*
|
||||
* Get pointer to the line "lnum", which is relative to "reg_firstlnum".
|
||||
***************
|
||||
*** 3346,3360 ****
|
||||
char_u *s;
|
||||
long retval = 0L;
|
||||
|
||||
! reg_tofree = NULL;
|
||||
!
|
||||
! /* Init the regstack empty. Use an item size of 1 byte, since we push
|
||||
! * different things onto it. Use a large grow size to avoid reallocating
|
||||
! * it too often. */
|
||||
! ga_init2(®stack, 1, 10000);
|
||||
!
|
||||
! /* Init the backpos table empty. */
|
||||
! ga_init2(&backpos, sizeof(backpos_T), 10);
|
||||
|
||||
if (REG_MULTI)
|
||||
{
|
||||
--- 3365,3389 ----
|
||||
char_u *s;
|
||||
long retval = 0L;
|
||||
|
||||
! /* Create "regstack" and "backpos" if they are not allocated yet.
|
||||
! * We allocate *_INITIAL amount of bytes first and then set the grow size
|
||||
! * to much bigger value to avoid many malloc calls in case of deep regular
|
||||
! * expressions. */
|
||||
! if (regstack.ga_data == NULL)
|
||||
! {
|
||||
! /* Use an item size of 1 byte, since we push different things
|
||||
! * onto the regstack. */
|
||||
! ga_init2(®stack, 1, REGSTACK_INITIAL);
|
||||
! ga_grow(®stack, REGSTACK_INITIAL);
|
||||
! regstack.ga_growsize = REGSTACK_INITIAL * 8;
|
||||
! }
|
||||
!
|
||||
! if (backpos.ga_data == NULL)
|
||||
! {
|
||||
! ga_init2(&backpos, sizeof(backpos_T), BACKPOS_INITIAL);
|
||||
! ga_grow(&backpos, BACKPOS_INITIAL);
|
||||
! backpos.ga_growsize = BACKPOS_INITIAL * 8;
|
||||
! }
|
||||
|
||||
if (REG_MULTI)
|
||||
{
|
||||
***************
|
||||
*** 3525,3533 ****
|
||||
}
|
||||
|
||||
theend:
|
||||
! vim_free(reg_tofree);
|
||||
! ga_clear(®stack);
|
||||
! ga_clear(&backpos);
|
||||
|
||||
return retval;
|
||||
}
|
||||
--- 3554,3570 ----
|
||||
}
|
||||
|
||||
theend:
|
||||
! /* Free "reg_tofree" when it's a bit big.
|
||||
! * Free regstack and backpos if they are bigger than their initial size. */
|
||||
! if (reg_tofreelen > 400)
|
||||
! {
|
||||
! vim_free(reg_tofree);
|
||||
! reg_tofree = NULL;
|
||||
! }
|
||||
! if (regstack.ga_maxlen > REGSTACK_INITIAL)
|
||||
! ga_clear(®stack);
|
||||
! if (backpos.ga_maxlen > BACKPOS_INITIAL)
|
||||
! ga_clear(&backpos);
|
||||
|
||||
return retval;
|
||||
}
|
||||
***************
|
||||
*** 3717,3724 ****
|
||||
#define RA_MATCH 4 /* successful match */
|
||||
#define RA_NOMATCH 5 /* didn't match */
|
||||
|
||||
! /* Init the regstack and backpos table empty. They are initialized and
|
||||
! * freed in vim_regexec_both() to reduce malloc()/free() calls. */
|
||||
regstack.ga_len = 0;
|
||||
backpos.ga_len = 0;
|
||||
|
||||
--- 3754,3761 ----
|
||||
#define RA_MATCH 4 /* successful match */
|
||||
#define RA_NOMATCH 5 /* didn't match */
|
||||
|
||||
! /* Make "regstack" and "backpos" empty. They are allocated and freed in
|
||||
! * vim_regexec_both() to reduce malloc()/free() calls. */
|
||||
regstack.ga_len = 0;
|
||||
backpos.ga_len = 0;
|
||||
|
||||
*** ../vim-7.1.234/src/version.c Fri Jan 18 17:39:10 2008
|
||||
--- src/version.c Fri Jan 18 20:33:26 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 235,
|
||||
/**/
|
||||
|
||||
--
|
||||
NEIL INNES PLAYED: THE FIRST SELF-DESTRUCTIVE MONK, ROBIN'S LEAST FAVORITE
|
||||
MINSTREL, THE PAGE CRUSHED BY A RABBIT, THE OWNER OF A DUCK
|
||||
"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/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
920
7.1.236
Normal file
920
7.1.236
Normal file
@ -0,0 +1,920 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.236
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.236
|
||||
Problem: When using 'incsearch' and 'hlsearch' a complicated pattern may
|
||||
make Vim hang until CTRL-C is pressed.
|
||||
Solution: Add the 'redrawtime' option.
|
||||
Files: runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c,
|
||||
src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c,
|
||||
src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro,
|
||||
src/proto/search.pro, src/search.c, src/screen.c,
|
||||
src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c,
|
||||
src/vim.h
|
||||
|
||||
|
||||
*** ../vim-7.1.235/runtime/doc/options.txt Sun Aug 12 16:55:01 2007
|
||||
--- runtime/doc/options.txt Sat Jan 19 14:01:22 2008
|
||||
***************
|
||||
*** 3618,3623 ****
|
||||
--- 3636,3642 ----
|
||||
When you get bored looking at the highlighted matches, you can turn it
|
||||
off with |:nohlsearch|. As soon as you use a search command, the
|
||||
highlighting comes back.
|
||||
+ 'redrawtime' specifies the maximum time spend on finding matches.
|
||||
When the search pattern can match an end-of-line, Vim will try to
|
||||
highlight all of the matched text. However, this depends on where the
|
||||
search starts. This will be the first line in the window or the first
|
||||
***************
|
||||
*** 3851,3856 ****
|
||||
--- 3870,3879 ----
|
||||
original position when no match is found and when pressing <Esc>. You
|
||||
still need to finish the search command with <Enter> to move the
|
||||
cursor to the match.
|
||||
+ When compiled with the |+reltime| feature Vim only searches for about
|
||||
+ half a second. With a complicated pattern and/or a lot of text the
|
||||
+ match may not be found. This is to avoid that Vim hangs while you
|
||||
+ are typing the pattern.
|
||||
The highlighting can be set with the 'i' flag in 'highlight'.
|
||||
See also: 'hlsearch'.
|
||||
CTRL-L can be used to add one character from after the current match
|
||||
***************
|
||||
*** 5185,5190 ****
|
||||
--- 5210,5227 ----
|
||||
{not in Vi:} When using the ":view" command the 'readonly' option is
|
||||
set for the newly edited buffer.
|
||||
|
||||
+ *'redrawtime'* *'rdt'*
|
||||
+ 'redrawtime' 'rdt' number (default 2000)
|
||||
+ global
|
||||
+ {not in Vi}
|
||||
+ {only available when compiled with the |+reltime|
|
||||
+ feature}
|
||||
+ The time in milliseconds for redrawing the display. This applies to
|
||||
+ searching for patterns for 'hlsearch' and |:match| highlighting.
|
||||
+ When redrawing takes more than this many milliseconds no further
|
||||
+ matches will be highlighted. This is used to avoid that Vim hangs
|
||||
+ when using a very complicated pattern.
|
||||
+
|
||||
*'remap'* *'noremap'*
|
||||
'remap' boolean (default on)
|
||||
global
|
||||
*** ../vim-7.1.235/src/ex_cmds.c Sun Jan 13 13:30:34 2008
|
||||
--- src/ex_cmds.c Sat Jan 19 13:04:28 2008
|
||||
***************
|
||||
*** 4446,4452 ****
|
||||
#endif
|
||||
); ++lnum)
|
||||
{
|
||||
! nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0);
|
||||
if (nmatch)
|
||||
{
|
||||
colnr_T copycol;
|
||||
--- 4446,4453 ----
|
||||
#endif
|
||||
); ++lnum)
|
||||
{
|
||||
! nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum,
|
||||
! (colnr_T)0, NULL);
|
||||
if (nmatch)
|
||||
{
|
||||
colnr_T copycol;
|
||||
***************
|
||||
*** 4957,4963 ****
|
||||
|| (do_ask && !re_lookbehind(regmatch.regprog))
|
||||
|| nmatch_tl > 0
|
||||
|| (nmatch = vim_regexec_multi(®match, curwin,
|
||||
! curbuf, sub_firstlnum, matchcol)) == 0
|
||||
|| regmatch.startpos[0].lnum > 0)
|
||||
{
|
||||
if (new_start != NULL)
|
||||
--- 4958,4965 ----
|
||||
|| (do_ask && !re_lookbehind(regmatch.regprog))
|
||||
|| nmatch_tl > 0
|
||||
|| (nmatch = vim_regexec_multi(®match, curwin,
|
||||
! curbuf, sub_firstlnum,
|
||||
! matchcol, NULL)) == 0
|
||||
|| regmatch.startpos[0].lnum > 0)
|
||||
{
|
||||
if (new_start != NULL)
|
||||
***************
|
||||
*** 5022,5028 ****
|
||||
}
|
||||
if (nmatch == -1 && !lastone)
|
||||
nmatch = vim_regexec_multi(®match, curwin, curbuf,
|
||||
! sub_firstlnum, matchcol);
|
||||
|
||||
/*
|
||||
* 5. break if there isn't another match in this line
|
||||
--- 5024,5030 ----
|
||||
}
|
||||
if (nmatch == -1 && !lastone)
|
||||
nmatch = vim_regexec_multi(®match, curwin, curbuf,
|
||||
! sub_firstlnum, matchcol, NULL);
|
||||
|
||||
/*
|
||||
* 5. break if there isn't another match in this line
|
||||
***************
|
||||
*** 5252,5258 ****
|
||||
for (lnum = eap->line1; lnum <= eap->line2 && !got_int; ++lnum)
|
||||
{
|
||||
/* a match on this line? */
|
||||
! match = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0);
|
||||
if ((type == 'g' && match) || (type == 'v' && !match))
|
||||
{
|
||||
ml_setmarked(lnum);
|
||||
--- 5254,5261 ----
|
||||
for (lnum = eap->line1; lnum <= eap->line2 && !got_int; ++lnum)
|
||||
{
|
||||
/* a match on this line? */
|
||||
! match = vim_regexec_multi(®match, curwin, curbuf, lnum,
|
||||
! (colnr_T)0, NULL);
|
||||
if ((type == 'g' && match) || (type == 'v' && !match))
|
||||
{
|
||||
ml_setmarked(lnum);
|
||||
*** ../vim-7.1.235/src/ex_docmd.c Sun Jan 13 17:11:25 2008
|
||||
--- src/ex_docmd.c Fri Jan 18 21:01:16 2008
|
||||
***************
|
||||
*** 3931,3937 ****
|
||||
curwin->w_cursor.col = 0;
|
||||
searchcmdlen = 0;
|
||||
if (!do_search(NULL, c, cmd, 1L,
|
||||
! SEARCH_HIS + SEARCH_MSG + SEARCH_START))
|
||||
{
|
||||
curwin->w_cursor = pos;
|
||||
cmd = NULL;
|
||||
--- 3931,3938 ----
|
||||
curwin->w_cursor.col = 0;
|
||||
searchcmdlen = 0;
|
||||
if (!do_search(NULL, c, cmd, 1L,
|
||||
! SEARCH_HIS + SEARCH_MSG + SEARCH_START,
|
||||
! NULL))
|
||||
{
|
||||
curwin->w_cursor = pos;
|
||||
cmd = NULL;
|
||||
*** ../vim-7.1.235/src/ex_getln.c Fri Jan 18 13:15:32 2008
|
||||
--- src/ex_getln.c Fri Jan 18 21:34:42 2008
|
||||
***************
|
||||
*** 1709,1714 ****
|
||||
--- 1709,1717 ----
|
||||
if (p_is && !cmd_silent && (firstc == '/' || firstc == '?'))
|
||||
{
|
||||
pos_T end_pos;
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ proftime_T tm;
|
||||
+ #endif
|
||||
|
||||
/* if there is a character waiting, search and redraw later */
|
||||
if (char_avail())
|
||||
***************
|
||||
*** 1727,1734 ****
|
||||
cursor_off(); /* so the user knows we're busy */
|
||||
out_flush();
|
||||
++emsg_off; /* So it doesn't beep if bad expr */
|
||||
i = do_search(NULL, firstc, ccline.cmdbuff, count,
|
||||
! SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK);
|
||||
--emsg_off;
|
||||
/* if interrupted while searching, behave like it failed */
|
||||
if (got_int)
|
||||
--- 1730,1747 ----
|
||||
cursor_off(); /* so the user knows we're busy */
|
||||
out_flush();
|
||||
++emsg_off; /* So it doesn't beep if bad expr */
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ /* Set the time limit to half a second. */
|
||||
+ profile_setlimit(500L, &tm);
|
||||
+ #endif
|
||||
i = do_search(NULL, firstc, ccline.cmdbuff, count,
|
||||
! SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK,
|
||||
! #ifdef FEAT_RELTIME
|
||||
! &tm
|
||||
! #else
|
||||
! NULL
|
||||
! #endif
|
||||
! );
|
||||
--emsg_off;
|
||||
/* if interrupted while searching, behave like it failed */
|
||||
if (got_int)
|
||||
*** ../vim-7.1.235/src/gui.c Thu Jan 3 16:14:25 2008
|
||||
--- src/gui.c Fri Jan 18 21:01:36 2008
|
||||
***************
|
||||
*** 5052,5058 ****
|
||||
/* Search for the next match. */
|
||||
i = msg_scroll;
|
||||
do_search(NULL, down ? '/' : '?', ga.ga_data, 1L,
|
||||
! SEARCH_MSG + SEARCH_MARK);
|
||||
msg_scroll = i; /* don't let an error message set msg_scroll */
|
||||
}
|
||||
|
||||
--- 5052,5058 ----
|
||||
/* Search for the next match. */
|
||||
i = msg_scroll;
|
||||
do_search(NULL, down ? '/' : '?', ga.ga_data, 1L,
|
||||
! SEARCH_MSG + SEARCH_MARK, NULL);
|
||||
msg_scroll = i; /* don't let an error message set msg_scroll */
|
||||
}
|
||||
|
||||
*** ../vim-7.1.235/src/misc1.c Thu Jan 3 12:42:38 2008
|
||||
--- src/misc1.c Sat Jan 19 13:04:39 2008
|
||||
***************
|
||||
*** 437,443 ****
|
||||
{
|
||||
regmatch.rmm_ic = FALSE;
|
||||
regmatch.rmm_maxcol = 0;
|
||||
! if (vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0))
|
||||
{
|
||||
pos.lnum = regmatch.endpos[0].lnum + lnum;
|
||||
pos.col = regmatch.endpos[0].col;
|
||||
--- 437,444 ----
|
||||
{
|
||||
regmatch.rmm_ic = FALSE;
|
||||
regmatch.rmm_maxcol = 0;
|
||||
! if (vim_regexec_multi(®match, curwin, curbuf, lnum,
|
||||
! (colnr_T)0, NULL))
|
||||
{
|
||||
pos.lnum = regmatch.endpos[0].lnum + lnum;
|
||||
pos.col = regmatch.endpos[0].col;
|
||||
*** ../vim-7.1.235/src/normal.c Sat Jan 12 17:11:25 2008
|
||||
--- src/normal.c Fri Jan 18 21:01:47 2008
|
||||
***************
|
||||
*** 6093,6099 ****
|
||||
curwin->w_set_curswant = TRUE;
|
||||
|
||||
i = do_search(cap->oap, dir, pat, cap->count1,
|
||||
! opt | SEARCH_OPT | SEARCH_ECHO | SEARCH_MSG);
|
||||
if (i == 0)
|
||||
clearop(cap->oap);
|
||||
else
|
||||
--- 6093,6099 ----
|
||||
curwin->w_set_curswant = TRUE;
|
||||
|
||||
i = do_search(cap->oap, dir, pat, cap->count1,
|
||||
! opt | SEARCH_OPT | SEARCH_ECHO | SEARCH_MSG, NULL);
|
||||
if (i == 0)
|
||||
clearop(cap->oap);
|
||||
else
|
||||
*** ../vim-7.1.235/src/option.c Tue Oct 2 20:40:01 2007
|
||||
--- src/option.c Sat Jan 19 13:44:33 2008
|
||||
***************
|
||||
*** 1991,1996 ****
|
||||
--- 1991,2003 ----
|
||||
{"redraw", NULL, P_BOOL|P_VI_DEF,
|
||||
(char_u *)NULL, PV_NONE,
|
||||
{(char_u *)FALSE, (char_u *)0L}},
|
||||
+ {"redrawtime", "rdt", P_NUM|P_VI_DEF,
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ (char_u *)&p_rdt, PV_NONE,
|
||||
+ #else
|
||||
+ (char_u *)NULL, PV_NONE,
|
||||
+ #endif
|
||||
+ {(char_u *)2000L, (char_u *)0L}},
|
||||
{"remap", NULL, P_BOOL|P_VI_DEF,
|
||||
(char_u *)&p_remap, PV_NONE,
|
||||
{(char_u *)TRUE, (char_u *)0L}},
|
||||
*** ../vim-7.1.235/src/quickfix.c Sun Sep 30 14:00:41 2007
|
||||
--- src/quickfix.c Sat Jan 19 13:04:53 2008
|
||||
***************
|
||||
*** 1803,1809 ****
|
||||
/* Move the cursor to the first line in the buffer */
|
||||
save_cursor = curwin->w_cursor;
|
||||
curwin->w_cursor.lnum = 0;
|
||||
! if (!do_search(NULL, '/', qf_ptr->qf_pattern, (long)1, SEARCH_KEEP))
|
||||
curwin->w_cursor = save_cursor;
|
||||
}
|
||||
|
||||
--- 1803,1810 ----
|
||||
/* Move the cursor to the first line in the buffer */
|
||||
save_cursor = curwin->w_cursor;
|
||||
curwin->w_cursor.lnum = 0;
|
||||
! if (!do_search(NULL, '/', qf_ptr->qf_pattern, (long)1,
|
||||
! SEARCH_KEEP, NULL))
|
||||
curwin->w_cursor = save_cursor;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 3159,3165 ****
|
||||
{
|
||||
col = 0;
|
||||
while (vim_regexec_multi(®match, curwin, buf, lnum,
|
||||
! col) > 0)
|
||||
{
|
||||
;
|
||||
if (qf_add_entry(qi, &prevp,
|
||||
--- 3160,3166 ----
|
||||
{
|
||||
col = 0;
|
||||
while (vim_regexec_multi(®match, curwin, buf, lnum,
|
||||
! col, NULL) > 0)
|
||||
{
|
||||
;
|
||||
if (qf_add_entry(qi, &prevp,
|
||||
*** ../vim-7.1.235/src/regexp.c Fri Jan 18 20:36:40 2008
|
||||
--- src/regexp.c Sat Jan 19 15:18:12 2008
|
||||
***************
|
||||
*** 3040,3046 ****
|
||||
} save_se_T;
|
||||
|
||||
static char_u *reg_getline __ARGS((linenr_T lnum));
|
||||
! static long vim_regexec_both __ARGS((char_u *line, colnr_T col));
|
||||
static long regtry __ARGS((regprog_T *prog, colnr_T col));
|
||||
static void cleanup_subexpr __ARGS((void));
|
||||
#ifdef FEAT_SYN_HL
|
||||
--- 3040,3046 ----
|
||||
} save_se_T;
|
||||
|
||||
static char_u *reg_getline __ARGS((linenr_T lnum));
|
||||
! static long vim_regexec_both __ARGS((char_u *line, colnr_T col, proftime_T *tm));
|
||||
static long regtry __ARGS((regprog_T *prog, colnr_T col));
|
||||
static void cleanup_subexpr __ARGS((void));
|
||||
#ifdef FEAT_SYN_HL
|
||||
***************
|
||||
*** 3284,3290 ****
|
||||
ireg_icombine = FALSE;
|
||||
#endif
|
||||
ireg_maxcol = 0;
|
||||
! return (vim_regexec_both(line, col) != 0);
|
||||
}
|
||||
|
||||
#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \
|
||||
--- 3284,3290 ----
|
||||
ireg_icombine = FALSE;
|
||||
#endif
|
||||
ireg_maxcol = 0;
|
||||
! return (vim_regexec_both(line, col, NULL) != 0);
|
||||
}
|
||||
|
||||
#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \
|
||||
***************
|
||||
*** 3308,3314 ****
|
||||
ireg_icombine = FALSE;
|
||||
#endif
|
||||
ireg_maxcol = 0;
|
||||
! return (vim_regexec_both(line, col) != 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
--- 3308,3314 ----
|
||||
ireg_icombine = FALSE;
|
||||
#endif
|
||||
ireg_maxcol = 0;
|
||||
! return (vim_regexec_both(line, col, NULL) != 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
***************
|
||||
*** 3321,3332 ****
|
||||
* match otherwise.
|
||||
*/
|
||||
long
|
||||
! vim_regexec_multi(rmp, win, buf, lnum, col)
|
||||
regmmatch_T *rmp;
|
||||
win_T *win; /* window in which to search or NULL */
|
||||
buf_T *buf; /* buffer in which to search */
|
||||
linenr_T lnum; /* nr of line to start looking for match */
|
||||
colnr_T col; /* column to start looking for match */
|
||||
{
|
||||
long r;
|
||||
buf_T *save_curbuf = curbuf;
|
||||
--- 3321,3333 ----
|
||||
* match otherwise.
|
||||
*/
|
||||
long
|
||||
! vim_regexec_multi(rmp, win, buf, lnum, col, tm)
|
||||
regmmatch_T *rmp;
|
||||
win_T *win; /* window in which to search or NULL */
|
||||
buf_T *buf; /* buffer in which to search */
|
||||
linenr_T lnum; /* nr of line to start looking for match */
|
||||
colnr_T col; /* column to start looking for match */
|
||||
+ proftime_T *tm; /* timeout limit or NULL */
|
||||
{
|
||||
long r;
|
||||
buf_T *save_curbuf = curbuf;
|
||||
***************
|
||||
*** 3346,3352 ****
|
||||
|
||||
/* Need to switch to buffer "buf" to make vim_iswordc() work. */
|
||||
curbuf = buf;
|
||||
! r = vim_regexec_both(NULL, col);
|
||||
curbuf = save_curbuf;
|
||||
|
||||
return r;
|
||||
--- 3347,3353 ----
|
||||
|
||||
/* Need to switch to buffer "buf" to make vim_iswordc() work. */
|
||||
curbuf = buf;
|
||||
! r = vim_regexec_both(NULL, col, tm);
|
||||
curbuf = save_curbuf;
|
||||
|
||||
return r;
|
||||
***************
|
||||
*** 3356,3365 ****
|
||||
* Match a regexp against a string ("line" points to the string) or multiple
|
||||
* lines ("line" is NULL, use reg_getline()).
|
||||
*/
|
||||
static long
|
||||
! vim_regexec_both(line, col)
|
||||
char_u *line;
|
||||
colnr_T col; /* column to start looking for match */
|
||||
{
|
||||
regprog_T *prog;
|
||||
char_u *s;
|
||||
--- 3357,3368 ----
|
||||
* Match a regexp against a string ("line" points to the string) or multiple
|
||||
* lines ("line" is NULL, use reg_getline()).
|
||||
*/
|
||||
+ /*ARGSUSED*/
|
||||
static long
|
||||
! vim_regexec_both(line, col, tm)
|
||||
char_u *line;
|
||||
colnr_T col; /* column to start looking for match */
|
||||
+ proftime_T *tm; /* timeout limit or NULL */
|
||||
{
|
||||
regprog_T *prog;
|
||||
char_u *s;
|
||||
***************
|
||||
*** 3502,3507 ****
|
||||
--- 3505,3513 ----
|
||||
}
|
||||
else
|
||||
{
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ int tm_count = 0;
|
||||
+ #endif
|
||||
/* Messy cases: unanchored match. */
|
||||
while (!got_int)
|
||||
{
|
||||
***************
|
||||
*** 3550,3555 ****
|
||||
--- 3556,3570 ----
|
||||
else
|
||||
#endif
|
||||
++col;
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ /* Check for timeout once in a twenty times to avoid overhead. */
|
||||
+ if (tm != NULL && ++tm_count == 20)
|
||||
+ {
|
||||
+ tm_count = 0;
|
||||
+ if (profile_passed_limit(tm))
|
||||
+ break;
|
||||
+ }
|
||||
+ #endif
|
||||
}
|
||||
}
|
||||
|
||||
*** ../vim-7.1.235/src/proto/regexp.pro Sat May 5 19:42:08 2007
|
||||
--- src/proto/regexp.pro Sat Jan 19 13:14:09 2008
|
||||
***************
|
||||
*** 1,13 ****
|
||||
/* regexp.c */
|
||||
- void free_regexp_stuff __ARGS((void));
|
||||
int re_multiline __ARGS((regprog_T *prog));
|
||||
int re_lookbehind __ARGS((regprog_T *prog));
|
||||
char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
|
||||
regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags));
|
||||
int vim_regcomp_had_eol __ARGS((void));
|
||||
int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
|
||||
int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
|
||||
! long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col));
|
||||
reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
|
||||
void unref_extmatch __ARGS((reg_extmatch_T *em));
|
||||
char_u *regtilde __ARGS((char_u *source, int magic));
|
||||
--- 1,13 ----
|
||||
/* regexp.c */
|
||||
int re_multiline __ARGS((regprog_T *prog));
|
||||
int re_lookbehind __ARGS((regprog_T *prog));
|
||||
char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp));
|
||||
regprog_T *vim_regcomp __ARGS((char_u *expr, int re_flags));
|
||||
int vim_regcomp_had_eol __ARGS((void));
|
||||
+ void free_regexp_stuff __ARGS((void));
|
||||
int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
|
||||
int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col));
|
||||
! long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm));
|
||||
reg_extmatch_T *ref_extmatch __ARGS((reg_extmatch_T *em));
|
||||
void unref_extmatch __ARGS((reg_extmatch_T *em));
|
||||
char_u *regtilde __ARGS((char_u *source, int magic));
|
||||
*** ../vim-7.1.235/src/proto/search.pro Sun Jan 6 20:05:36 2008
|
||||
--- src/proto/search.pro Fri Jan 18 21:03:49 2008
|
||||
***************
|
||||
*** 11,17 ****
|
||||
void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
|
||||
void last_pat_prog __ARGS((regmmatch_T *regmatch));
|
||||
int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm));
|
||||
! int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options));
|
||||
int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
|
||||
int searchc __ARGS((cmdarg_T *cap, int t_cmd));
|
||||
pos_T *findmatch __ARGS((oparg_T *oap, int initc));
|
||||
--- 11,17 ----
|
||||
void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
|
||||
void last_pat_prog __ARGS((regmmatch_T *regmatch));
|
||||
int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm));
|
||||
! int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options, proftime_T *tm));
|
||||
int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
|
||||
int searchc __ARGS((cmdarg_T *cap, int t_cmd));
|
||||
pos_T *findmatch __ARGS((oparg_T *oap, int initc));
|
||||
*** ../vim-7.1.235/src/search.c Sun Jan 6 20:05:36 2008
|
||||
--- src/search.c Sat Jan 19 13:13:25 2008
|
||||
***************
|
||||
*** 606,612 ****
|
||||
* Look for a match somewhere in line "lnum".
|
||||
*/
|
||||
nmatched = vim_regexec_multi(®match, win, buf,
|
||||
! lnum, (colnr_T)0);
|
||||
/* Abort searching on an error (e.g., out of stack). */
|
||||
if (called_emsg)
|
||||
break;
|
||||
--- 606,618 ----
|
||||
* Look for a match somewhere in line "lnum".
|
||||
*/
|
||||
nmatched = vim_regexec_multi(®match, win, buf,
|
||||
! lnum, (colnr_T)0,
|
||||
! #ifdef FEAT_RELTIME
|
||||
! tm
|
||||
! #else
|
||||
! NULL
|
||||
! #endif
|
||||
! );
|
||||
/* Abort searching on an error (e.g., out of stack). */
|
||||
if (called_emsg)
|
||||
break;
|
||||
***************
|
||||
*** 615,623 ****
|
||||
/* match may actually be in another line when using \zs */
|
||||
matchpos = regmatch.startpos[0];
|
||||
endpos = regmatch.endpos[0];
|
||||
! # ifdef FEAT_EVAL
|
||||
submatch = first_submatch(®match);
|
||||
! # endif
|
||||
/* Line me be past end of buffer for "\n\zs". */
|
||||
if (lnum + matchpos.lnum > buf->b_ml.ml_line_count)
|
||||
ptr = (char_u *)"";
|
||||
--- 621,629 ----
|
||||
/* match may actually be in another line when using \zs */
|
||||
matchpos = regmatch.startpos[0];
|
||||
endpos = regmatch.endpos[0];
|
||||
! #ifdef FEAT_EVAL
|
||||
submatch = first_submatch(®match);
|
||||
! #endif
|
||||
/* Line me be past end of buffer for "\n\zs". */
|
||||
if (lnum + matchpos.lnum > buf->b_ml.ml_line_count)
|
||||
ptr = (char_u *)"";
|
||||
***************
|
||||
*** 693,699 ****
|
||||
if (ptr[matchcol] == NUL
|
||||
|| (nmatched = vim_regexec_multi(®match,
|
||||
win, buf, lnum + matchpos.lnum,
|
||||
! matchcol)) == 0)
|
||||
{
|
||||
match_ok = FALSE;
|
||||
break;
|
||||
--- 699,711 ----
|
||||
if (ptr[matchcol] == NUL
|
||||
|| (nmatched = vim_regexec_multi(®match,
|
||||
win, buf, lnum + matchpos.lnum,
|
||||
! matchcol,
|
||||
! #ifdef FEAT_RELTIME
|
||||
! tm
|
||||
! #else
|
||||
! NULL
|
||||
! #endif
|
||||
! )) == 0)
|
||||
{
|
||||
match_ok = FALSE;
|
||||
break;
|
||||
***************
|
||||
*** 799,805 ****
|
||||
if (ptr[matchcol] == NUL
|
||||
|| (nmatched = vim_regexec_multi(®match,
|
||||
win, buf, lnum + matchpos.lnum,
|
||||
! matchcol)) == 0)
|
||||
break;
|
||||
|
||||
/* Need to get the line pointer again, a
|
||||
--- 811,823 ----
|
||||
if (ptr[matchcol] == NUL
|
||||
|| (nmatched = vim_regexec_multi(®match,
|
||||
win, buf, lnum + matchpos.lnum,
|
||||
! matchcol,
|
||||
! #ifdef FEAT_RELTIME
|
||||
! tm
|
||||
! #else
|
||||
! NULL
|
||||
! #endif
|
||||
! )) == 0)
|
||||
break;
|
||||
|
||||
/* Need to get the line pointer again, a
|
||||
***************
|
||||
*** 977,988 ****
|
||||
* return 0 for failure, 1 for found, 2 for found and line offset added
|
||||
*/
|
||||
int
|
||||
! do_search(oap, dirc, pat, count, options)
|
||||
oparg_T *oap; /* can be NULL */
|
||||
int dirc; /* '/' or '?' */
|
||||
char_u *pat;
|
||||
long count;
|
||||
int options;
|
||||
{
|
||||
pos_T pos; /* position of the last match */
|
||||
char_u *searchstr;
|
||||
--- 995,1007 ----
|
||||
* return 0 for failure, 1 for found, 2 for found and line offset added
|
||||
*/
|
||||
int
|
||||
! do_search(oap, dirc, pat, count, options, tm)
|
||||
oparg_T *oap; /* can be NULL */
|
||||
int dirc; /* '/' or '?' */
|
||||
char_u *pat;
|
||||
long count;
|
||||
int options;
|
||||
+ proftime_T *tm; /* timeout limit or NULL */
|
||||
{
|
||||
pos_T pos; /* position of the last match */
|
||||
char_u *searchstr;
|
||||
***************
|
||||
*** 1256,1262 ****
|
||||
(SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
|
||||
+ SEARCH_MSG + SEARCH_START
|
||||
+ ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
|
||||
! RE_LAST, (linenr_T)0, NULL);
|
||||
|
||||
if (dircp != NULL)
|
||||
*dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
|
||||
--- 1275,1281 ----
|
||||
(SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
|
||||
+ SEARCH_MSG + SEARCH_START
|
||||
+ ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
|
||||
! RE_LAST, (linenr_T)0, tm);
|
||||
|
||||
if (dircp != NULL)
|
||||
*dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
|
||||
*** ../vim-7.1.235/src/screen.c Sat Jan 12 16:45:25 2008
|
||||
--- src/screen.c Sat Jan 19 13:52:29 2008
|
||||
***************
|
||||
*** 848,858 ****
|
||||
--- 848,863 ----
|
||||
cur->hl.buf = buf;
|
||||
cur->hl.lnum = 0;
|
||||
cur->hl.first_lnum = 0;
|
||||
+ # ifdef FEAT_RELTIME
|
||||
+ /* Set the time limit to 'redrawtime'. */
|
||||
+ profile_setlimit(p_rdt, &(cur->hl.tm));
|
||||
+ # endif
|
||||
cur = cur->next;
|
||||
}
|
||||
search_hl.buf = buf;
|
||||
search_hl.lnum = 0;
|
||||
search_hl.first_lnum = 0;
|
||||
+ /* time limit is set at the toplevel, for all windows */
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_LINEBREAK
|
||||
***************
|
||||
*** 6462,6467 ****
|
||||
--- 6467,6476 ----
|
||||
{
|
||||
last_pat_prog(&search_hl.rm);
|
||||
search_hl.attr = hl_attr(HLF_L);
|
||||
+ # ifdef FEAT_RELTIME
|
||||
+ /* Set the time limit to 'redrawtime'. */
|
||||
+ profile_setlimit(p_rdt, &search_hl.tm);
|
||||
+ # endif
|
||||
}
|
||||
}
|
||||
|
||||
***************
|
||||
*** 6587,6592 ****
|
||||
--- 6596,6609 ----
|
||||
called_emsg = FALSE;
|
||||
for (;;)
|
||||
{
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ /* Stop searching after passing the time limit. */
|
||||
+ if (profile_passed_limit(&(shl->tm)))
|
||||
+ {
|
||||
+ shl->lnum = 0; /* no match found in time */
|
||||
+ break;
|
||||
+ }
|
||||
+ #endif
|
||||
/* Three situations:
|
||||
* 1. No useful previous match: search from start of line.
|
||||
* 2. Not Vi compatible or empty match: continue at next character.
|
||||
***************
|
||||
*** 6620,6626 ****
|
||||
matchcol = shl->rm.endpos[0].col;
|
||||
|
||||
shl->lnum = lnum;
|
||||
! nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum, matchcol);
|
||||
if (called_emsg)
|
||||
{
|
||||
/* Error while handling regexp: stop using this regexp. */
|
||||
--- 6637,6649 ----
|
||||
matchcol = shl->rm.endpos[0].col;
|
||||
|
||||
shl->lnum = lnum;
|
||||
! nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum, matchcol,
|
||||
! #ifdef FEAT_RELTIME
|
||||
! &(shl->tm)
|
||||
! #else
|
||||
! NULL
|
||||
! #endif
|
||||
! );
|
||||
if (called_emsg)
|
||||
{
|
||||
/* Error while handling regexp: stop using this regexp. */
|
||||
*** ../vim-7.1.235/src/option.h Thu May 10 20:34:47 2007
|
||||
--- src/option.h Sat Jan 19 13:45:51 2008
|
||||
***************
|
||||
*** 633,638 ****
|
||||
--- 633,641 ----
|
||||
#ifdef FEAT_SEARCHPATH
|
||||
EXTERN char_u *p_cdpath; /* 'cdpath' */
|
||||
#endif
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ EXTERN long p_rdt; /* 'redrawtime' */
|
||||
+ #endif
|
||||
EXTERN int p_remap; /* 'remap' */
|
||||
EXTERN long p_report; /* 'report' */
|
||||
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
|
||||
*** ../vim-7.1.235/src/spell.c Sat Jan 12 16:45:25 2008
|
||||
--- src/spell.c Fri Jan 18 21:02:47 2008
|
||||
***************
|
||||
*** 10343,10349 ****
|
||||
curwin->w_cursor.lnum = 0;
|
||||
while (!got_int)
|
||||
{
|
||||
! if (do_search(NULL, '/', frompat, 1L, SEARCH_KEEP) == 0
|
||||
|| u_save_cursor() == FAIL)
|
||||
break;
|
||||
|
||||
--- 10343,10349 ----
|
||||
curwin->w_cursor.lnum = 0;
|
||||
while (!got_int)
|
||||
{
|
||||
! if (do_search(NULL, '/', frompat, 1L, SEARCH_KEEP, NULL) == 0
|
||||
|| u_save_cursor() == FAIL)
|
||||
break;
|
||||
|
||||
*** ../vim-7.1.235/src/structs.h Mon Oct 1 22:53:27 2007
|
||||
--- src/structs.h Fri Jan 18 21:18:53 2008
|
||||
***************
|
||||
*** 1717,1722 ****
|
||||
--- 1717,1725 ----
|
||||
linenr_T first_lnum; /* first lnum to search for multi-line pat */
|
||||
colnr_T startcol; /* in win_line() points to char where HL starts */
|
||||
colnr_T endcol; /* in win_line() points to char where HL ends */
|
||||
+ #ifdef FEAT_RELTIME
|
||||
+ proftime_T tm; /* for a time limit */
|
||||
+ #endif
|
||||
} match_T;
|
||||
|
||||
/*
|
||||
*** ../vim-7.1.235/src/syntax.c Sun Jan 13 17:39:29 2008
|
||||
--- src/syntax.c Sat Jan 19 13:13:49 2008
|
||||
***************
|
||||
*** 3097,3103 ****
|
||||
colnr_T col;
|
||||
{
|
||||
rmp->rmm_maxcol = syn_buf->b_p_smc;
|
||||
! if (vim_regexec_multi(rmp, syn_win, syn_buf, lnum, col) > 0)
|
||||
{
|
||||
rmp->startpos[0].lnum += lnum;
|
||||
rmp->endpos[0].lnum += lnum;
|
||||
--- 3097,3103 ----
|
||||
colnr_T col;
|
||||
{
|
||||
rmp->rmm_maxcol = syn_buf->b_p_smc;
|
||||
! if (vim_regexec_multi(rmp, syn_win, syn_buf, lnum, col, NULL) > 0)
|
||||
{
|
||||
rmp->startpos[0].lnum += lnum;
|
||||
rmp->endpos[0].lnum += lnum;
|
||||
*** ../vim-7.1.235/src/tag.c Thu May 10 19:44:07 2007
|
||||
--- src/tag.c Fri Jan 18 21:03:41 2008
|
||||
***************
|
||||
*** 3191,3197 ****
|
||||
#endif
|
||||
save_lnum = curwin->w_cursor.lnum;
|
||||
curwin->w_cursor.lnum = 0; /* start search before first line */
|
||||
! if (do_search(NULL, pbuf[0], pbuf + 1, (long)1, search_options))
|
||||
retval = OK;
|
||||
else
|
||||
{
|
||||
--- 3191,3198 ----
|
||||
#endif
|
||||
save_lnum = curwin->w_cursor.lnum;
|
||||
curwin->w_cursor.lnum = 0; /* start search before first line */
|
||||
! if (do_search(NULL, pbuf[0], pbuf + 1, (long)1,
|
||||
! search_options, NULL))
|
||||
retval = OK;
|
||||
else
|
||||
{
|
||||
***************
|
||||
*** 3203,3209 ****
|
||||
*/
|
||||
p_ic = TRUE;
|
||||
if (!do_search(NULL, pbuf[0], pbuf + 1, (long)1,
|
||||
! search_options))
|
||||
{
|
||||
/*
|
||||
* Failed to find pattern, take a guess: "^func ("
|
||||
--- 3204,3210 ----
|
||||
*/
|
||||
p_ic = TRUE;
|
||||
if (!do_search(NULL, pbuf[0], pbuf + 1, (long)1,
|
||||
! search_options, NULL))
|
||||
{
|
||||
/*
|
||||
* Failed to find pattern, take a guess: "^func ("
|
||||
***************
|
||||
*** 3213,3225 ****
|
||||
cc = *tagp.tagname_end;
|
||||
*tagp.tagname_end = NUL;
|
||||
sprintf((char *)pbuf, "^%s\\s\\*(", tagp.tagname);
|
||||
! if (!do_search(NULL, '/', pbuf, (long)1, search_options))
|
||||
{
|
||||
/* Guess again: "^char * \<func (" */
|
||||
sprintf((char *)pbuf, "^\\[#a-zA-Z_]\\.\\*\\<%s\\s\\*(",
|
||||
tagp.tagname);
|
||||
if (!do_search(NULL, '/', pbuf, (long)1,
|
||||
! search_options))
|
||||
found = 0;
|
||||
}
|
||||
*tagp.tagname_end = cc;
|
||||
--- 3214,3227 ----
|
||||
cc = *tagp.tagname_end;
|
||||
*tagp.tagname_end = NUL;
|
||||
sprintf((char *)pbuf, "^%s\\s\\*(", tagp.tagname);
|
||||
! if (!do_search(NULL, '/', pbuf, (long)1,
|
||||
! search_options, NULL))
|
||||
{
|
||||
/* Guess again: "^char * \<func (" */
|
||||
sprintf((char *)pbuf, "^\\[#a-zA-Z_]\\.\\*\\<%s\\s\\*(",
|
||||
tagp.tagname);
|
||||
if (!do_search(NULL, '/', pbuf, (long)1,
|
||||
! search_options, NULL))
|
||||
found = 0;
|
||||
}
|
||||
*tagp.tagname_end = cc;
|
||||
*** ../vim-7.1.235/src/vim.h Sat Jan 5 13:34:01 2008
|
||||
--- src/vim.h Fri Jan 18 21:29:22 2008
|
||||
***************
|
||||
*** 1550,1555 ****
|
||||
--- 1550,1565 ----
|
||||
# define MB_MAXBYTES 21
|
||||
#endif
|
||||
|
||||
+ #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
|
||||
+ # ifdef WIN3264
|
||||
+ typedef LARGE_INTEGER proftime_T;
|
||||
+ # else
|
||||
+ typedef struct timeval proftime_T;
|
||||
+ # endif
|
||||
+ #else
|
||||
+ typedef int proftime_T; /* dummy for function prototypes */
|
||||
+ #endif
|
||||
+
|
||||
/* Include option.h before structs.h, because the number of window-local and
|
||||
* buffer-local options is used there. */
|
||||
#include "option.h" /* options and default values */
|
||||
***************
|
||||
*** 1760,1775 ****
|
||||
# include <io.h> /* for access() */
|
||||
|
||||
# define stat(a,b) (access(a,0) ? -1 : stat(a,b))
|
||||
- #endif
|
||||
-
|
||||
- #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
|
||||
- # ifdef WIN3264
|
||||
- typedef LARGE_INTEGER proftime_T;
|
||||
- # else
|
||||
- typedef struct timeval proftime_T;
|
||||
- # endif
|
||||
- #else
|
||||
- typedef int proftime_T; /* dummy for function prototypes */
|
||||
#endif
|
||||
|
||||
#include "ex_cmds.h" /* Ex command defines */
|
||||
--- 1770,1775 ----
|
||||
*** ../vim-7.1.235/src/version.c Fri Jan 18 20:36:40 2008
|
||||
--- src/version.c Sat Jan 19 15:19:48 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 236,
|
||||
/**/
|
||||
|
||||
--
|
||||
Every time I lose weight, it finds me again!
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
54
7.1.237
Normal file
54
7.1.237
Normal file
@ -0,0 +1,54 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.237
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.237
|
||||
Problem: Compiler warning on an Alpha processor in Motif code.
|
||||
Solution: Change a typecast. (Adri Verhoef)
|
||||
Files: src/gui_motif.c
|
||||
|
||||
|
||||
*** ../vim-7.1.236/src/gui_motif.c Thu May 10 19:51:05 2007
|
||||
--- src/gui_motif.c Mon Jan 21 21:03:55 2008
|
||||
***************
|
||||
*** 3813,3819 ****
|
||||
|
||||
XtAddCallback(frdp->find, XmNactivateCallback,
|
||||
find_replace_callback,
|
||||
! (XtPointer) (do_replace ? FRD_R_FINDNEXT : FRD_FINDNEXT));
|
||||
|
||||
if (do_replace)
|
||||
{
|
||||
--- 3813,3819 ----
|
||||
|
||||
XtAddCallback(frdp->find, XmNactivateCallback,
|
||||
find_replace_callback,
|
||||
! (do_replace ? (XtPointer)FRD_R_FINDNEXT : (XtPointer)FRD_FINDNEXT));
|
||||
|
||||
if (do_replace)
|
||||
{
|
||||
*** ../vim-7.1.236/src/version.c Sat Jan 19 15:55:51 2008
|
||||
--- src/version.c Tue Jan 22 11:05:12 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 237,
|
||||
/**/
|
||||
|
||||
--
|
||||
I am always surprised in the Linux world how quickly solutions can be
|
||||
obtained. (Imagine sending an email to Bill Gates, asking why Windows
|
||||
crashed, and how to fix it... and then getting an answer that fixed the
|
||||
problem... <0>_<0> !) -- Mark Langdon
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
61
7.1.238
Normal file
61
7.1.238
Normal file
@ -0,0 +1,61 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.238
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.238
|
||||
Problem: Using the 'c' flag with searchpair() may cause it to fail. Using
|
||||
the 'r' flag doesn't work when 'wrapscan' is set. (A.Politz)
|
||||
Solution: Only use the 'c' flag for the first search, not for repeating.
|
||||
When using 'r' imply 'W'. (Antony Scriven)
|
||||
Files: src/eval.c
|
||||
|
||||
|
||||
*** ../vim-7.1.237/src/eval.c Sat Jan 12 16:45:25 2008
|
||||
--- src/eval.c Tue Jan 22 11:42:28 2008
|
||||
***************
|
||||
*** 14189,14194 ****
|
||||
--- 14189,14198 ----
|
||||
goto theend;
|
||||
}
|
||||
|
||||
+ /* Using 'r' implies 'W', otherwise it doesn't work. */
|
||||
+ if (flags & SP_REPEAT)
|
||||
+ p_ws = FALSE;
|
||||
+
|
||||
/* Optional fifth argument: skip expression */
|
||||
if (argvars[3].v_type == VAR_UNKNOWN
|
||||
|| argvars[4].v_type == VAR_UNKNOWN)
|
||||
***************
|
||||
*** 14344,14349 ****
|
||||
--- 14348,14356 ----
|
||||
incl(&pos);
|
||||
}
|
||||
foundpos = pos;
|
||||
+
|
||||
+ /* clear the start flag to avoid getting stuck here */
|
||||
+ options &= ~SEARCH_START;
|
||||
|
||||
/* If the skip pattern matches, ignore this match. */
|
||||
if (*skip != NUL)
|
||||
*** ../vim-7.1.237/src/version.c Tue Jan 22 11:06:06 2008
|
||||
--- src/version.c Tue Jan 22 11:57:28 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 238,
|
||||
/**/
|
||||
|
||||
--
|
||||
To keep milk from turning sour: Keep it in the cow.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
53
7.1.239
Normal file
53
7.1.239
Normal file
@ -0,0 +1,53 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.239
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.239 (after 7.1.233)
|
||||
Problem: Compiler warning for sprintf() argument.
|
||||
Solution: Add a typecast. (Nico Weber)
|
||||
Files: src/ex_getln.c
|
||||
|
||||
|
||||
*** ../vim-7.1.238/src/ex_getln.c Sat Jan 19 15:55:51 2008
|
||||
--- src/ex_getln.c Tue Jan 22 12:40:54 2008
|
||||
***************
|
||||
*** 4694,4700 ****
|
||||
{
|
||||
/* Completion from Insert mode, pass fake arguments. */
|
||||
keep = 0;
|
||||
! sprintf((char *)num, "%d", STRLEN(xp->xp_pattern));
|
||||
args[1] = xp->xp_pattern;
|
||||
}
|
||||
else
|
||||
--- 4694,4700 ----
|
||||
{
|
||||
/* Completion from Insert mode, pass fake arguments. */
|
||||
keep = 0;
|
||||
! sprintf((char *)num, "%d", (int)STRLEN(xp->xp_pattern));
|
||||
args[1] = xp->xp_pattern;
|
||||
}
|
||||
else
|
||||
*** ../vim-7.1.238/src/version.c Tue Jan 22 11:58:41 2008
|
||||
--- src/version.c Tue Jan 22 12:42:36 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 239,
|
||||
/**/
|
||||
|
||||
--
|
||||
We apologise again for the fault in the subtitles. Those responsible for
|
||||
sacking the people who have just been sacked have been sacked.
|
||||
"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/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
186
7.1.240
Normal file
186
7.1.240
Normal file
@ -0,0 +1,186 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.240
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.240
|
||||
Problem: When "gUe" turns a German sharp s into SS the operation stops
|
||||
before the end of the word. Latin2 has the same sharp s but it's
|
||||
not changed to SS there.
|
||||
Solution: Make sure all the characters are operated upon. Detect the sharp
|
||||
s in latin2. Also fixes that changing case of a multi-byte
|
||||
character that changes the byte cound doesn't always work.
|
||||
Files: src/ops.c
|
||||
|
||||
|
||||
*** ../vim-7.1.239/src/ops.c Wed Jan 16 20:01:14 2008
|
||||
--- src/ops.c Tue Jan 22 16:00:07 2008
|
||||
***************
|
||||
*** 2184,2189 ****
|
||||
--- 2184,2191 ----
|
||||
}
|
||||
#endif
|
||||
|
||||
+ static int swapchars __ARGS((int op_type, pos_T *pos, int length));
|
||||
+
|
||||
/*
|
||||
* Handle the (non-standard vi) tilde operator. Also for "gu", "gU" and "g?".
|
||||
*/
|
||||
***************
|
||||
*** 2194,2202 ****
|
||||
pos_T pos;
|
||||
#ifdef FEAT_VISUAL
|
||||
struct block_def bd;
|
||||
- int todo;
|
||||
#endif
|
||||
! int did_change = 0;
|
||||
|
||||
if (u_save((linenr_T)(oap->start.lnum - 1),
|
||||
(linenr_T)(oap->end.lnum + 1)) == FAIL)
|
||||
--- 2196,2203 ----
|
||||
pos_T pos;
|
||||
#ifdef FEAT_VISUAL
|
||||
struct block_def bd;
|
||||
#endif
|
||||
! int did_change;
|
||||
|
||||
if (u_save((linenr_T)(oap->start.lnum - 1),
|
||||
(linenr_T)(oap->end.lnum + 1)) == FAIL)
|
||||
***************
|
||||
*** 2210,2225 ****
|
||||
{
|
||||
block_prep(oap, &bd, pos.lnum, FALSE);
|
||||
pos.col = bd.textcol;
|
||||
! for (todo = bd.textlen; todo > 0; --todo)
|
||||
! {
|
||||
! # ifdef FEAT_MBYTE
|
||||
! if (has_mbyte)
|
||||
! todo -= (*mb_ptr2len)(ml_get_pos(&pos)) - 1;
|
||||
! # endif
|
||||
! did_change |= swapchar(oap->op_type, &pos);
|
||||
! if (inc(&pos) == -1) /* at end of file */
|
||||
! break;
|
||||
! }
|
||||
# ifdef FEAT_NETBEANS_INTG
|
||||
if (usingNetbeans && did_change)
|
||||
{
|
||||
--- 2211,2218 ----
|
||||
{
|
||||
block_prep(oap, &bd, pos.lnum, FALSE);
|
||||
pos.col = bd.textcol;
|
||||
! did_change = swapchars(oap->op_type, &pos, bd.textlen);
|
||||
!
|
||||
# ifdef FEAT_NETBEANS_INTG
|
||||
if (usingNetbeans && did_change)
|
||||
{
|
||||
***************
|
||||
*** 2249,2261 ****
|
||||
else if (!oap->inclusive)
|
||||
dec(&(oap->end));
|
||||
|
||||
! while (ltoreq(pos, oap->end))
|
||||
! {
|
||||
! did_change |= swapchar(oap->op_type, &pos);
|
||||
! if (inc(&pos) == -1) /* at end of file */
|
||||
! break;
|
||||
! }
|
||||
!
|
||||
if (did_change)
|
||||
{
|
||||
changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
|
||||
--- 2242,2248 ----
|
||||
else if (!oap->inclusive)
|
||||
dec(&(oap->end));
|
||||
|
||||
! did_change = swapchars(oap->op_type, &pos, oap->end.col - pos.col + 1);
|
||||
if (did_change)
|
||||
{
|
||||
changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
|
||||
***************
|
||||
*** 2309,2314 ****
|
||||
--- 2296,2337 ----
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Invoke swapchar() on "length" bytes at position "pos".
|
||||
+ * "pos" is advanced to just after the changed characters.
|
||||
+ * "length" is rounded up to include the whole last multi-byte character.
|
||||
+ * Also works correctly when the number of bytes changes.
|
||||
+ * Returns TRUE if some character was changed.
|
||||
+ */
|
||||
+ static int
|
||||
+ swapchars(op_type, pos, length)
|
||||
+ int op_type;
|
||||
+ pos_T *pos;
|
||||
+ int length;
|
||||
+ {
|
||||
+ int todo;
|
||||
+ int did_change = 0;
|
||||
+
|
||||
+ for (todo = length; todo > 0; --todo)
|
||||
+ {
|
||||
+ # ifdef FEAT_MBYTE
|
||||
+ int pos_col = pos->col;
|
||||
+
|
||||
+ if (has_mbyte)
|
||||
+ /* we're counting bytes, not characters */
|
||||
+ todo -= (*mb_ptr2len)(ml_get_pos(pos)) - 1;
|
||||
+ # endif
|
||||
+ did_change |= swapchar(op_type, pos);
|
||||
+ # ifdef FEAT_MBYTE
|
||||
+ /* Changing German sharp s to SS increases the column. */
|
||||
+ todo += pos->col - pos_col;
|
||||
+ # endif
|
||||
+ if (inc(pos) == -1) /* at end of file */
|
||||
+ break;
|
||||
+ }
|
||||
+ return did_change;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
* If op_type == OP_UPPER: make uppercase,
|
||||
* if op_type == OP_LOWER: make lowercase,
|
||||
* if op_type == OP_ROT13: do rot13 encoding,
|
||||
***************
|
||||
*** 2330,2336 ****
|
||||
return FALSE;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
! if (op_type == OP_UPPER && enc_latin1like && c == 0xdf)
|
||||
{
|
||||
pos_T sp = curwin->w_cursor;
|
||||
|
||||
--- 2353,2360 ----
|
||||
return FALSE;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
! if (op_type == OP_UPPER && c == 0xdf
|
||||
! && (enc_latin1like || STRCMP(p_enc, "iso-8859-2") == 0))
|
||||
{
|
||||
pos_T sp = curwin->w_cursor;
|
||||
|
||||
*** ../vim-7.1.239/src/version.c Tue Jan 22 12:44:03 2008
|
||||
--- src/version.c Tue Jan 22 15:36:36 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 240,
|
||||
/**/
|
||||
|
||||
--
|
||||
ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
|
||||
King of all Britons, defeator of the Saxons, sovereign of all England!
|
||||
[Pause]
|
||||
SOLDIER: Get away!
|
||||
"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/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
112
7.1.241
Normal file
112
7.1.241
Normal file
@ -0,0 +1,112 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.241
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.241
|
||||
Problem: Focus change events not always ignored. (Erik Falor)
|
||||
Solution: Ignore K_IGNORE in Insert mode in a few more places.
|
||||
Files: src/edit.c
|
||||
|
||||
|
||||
*** ../vim-7.1.240/src/edit.c Wed Jan 16 20:01:14 2008
|
||||
--- src/edit.c Tue Jan 22 17:45:32 2008
|
||||
***************
|
||||
*** 703,712 ****
|
||||
#endif
|
||||
|
||||
/*
|
||||
! * Get a character for Insert mode.
|
||||
*/
|
||||
lastc = c; /* remember previous char for CTRL-D */
|
||||
! c = safe_vgetc();
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
|
||||
--- 703,715 ----
|
||||
#endif
|
||||
|
||||
/*
|
||||
! * Get a character for Insert mode. Ignore K_IGNORE.
|
||||
*/
|
||||
lastc = c; /* remember previous char for CTRL-D */
|
||||
! do
|
||||
! {
|
||||
! c = safe_vgetc();
|
||||
! } while (c == K_IGNORE);
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
|
||||
***************
|
||||
*** 777,783 ****
|
||||
/* Prepare for or stop CTRL-X mode. This doesn't do completion, but
|
||||
* it does fix up the text when finishing completion. */
|
||||
compl_get_longest = FALSE;
|
||||
! if (c != K_IGNORE && ins_compl_prep(c))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
--- 780,786 ----
|
||||
/* Prepare for or stop CTRL-X mode. This doesn't do completion, but
|
||||
* it does fix up the text when finishing completion. */
|
||||
compl_get_longest = FALSE;
|
||||
! if (ins_compl_prep(c))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
***************
|
||||
*** 4516,4530 ****
|
||||
else
|
||||
{
|
||||
/* Need to get the character to have KeyTyped set. We'll put it
|
||||
! * back with vungetc() below. */
|
||||
c = safe_vgetc();
|
||||
|
||||
! /* Don't interrupt completion when the character wasn't typed,
|
||||
! * e.g., when doing @q to replay keys. */
|
||||
! if (c != Ctrl_R && KeyTyped)
|
||||
! compl_interrupted = TRUE;
|
||||
!
|
||||
! vungetc(c);
|
||||
}
|
||||
}
|
||||
if (compl_pending != 0 && !got_int)
|
||||
--- 4519,4535 ----
|
||||
else
|
||||
{
|
||||
/* Need to get the character to have KeyTyped set. We'll put it
|
||||
! * back with vungetc() below. But skip K_IGNORE. */
|
||||
c = safe_vgetc();
|
||||
+ if (c != K_IGNORE)
|
||||
+ {
|
||||
+ /* Don't interrupt completion when the character wasn't typed,
|
||||
+ * e.g., when doing @q to replay keys. */
|
||||
+ if (c != Ctrl_R && KeyTyped)
|
||||
+ compl_interrupted = TRUE;
|
||||
|
||||
! vungetc(c);
|
||||
! }
|
||||
}
|
||||
}
|
||||
if (compl_pending != 0 && !got_int)
|
||||
*** ../vim-7.1.240/src/version.c Tue Jan 22 16:01:25 2008
|
||||
--- src/version.c Tue Jan 22 17:48:46 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 241,
|
||||
/**/
|
||||
|
||||
--
|
||||
The problem with political jokes is that they get elected.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
68
7.1.242
Normal file
68
7.1.242
Normal file
@ -0,0 +1,68 @@
|
||||
To: vim-dev@vim.org
|
||||
Subject: Patch 7.1.242
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=ISO-8859-1
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.1.242 (after 7.1.005)
|
||||
Problem: "cib" doesn't work properly on "(x)". (Tim Pope)
|
||||
Solution: Use ltoreq() instead of lt(). Also fix "ciT" on "<a>x</a>".
|
||||
Files: src/search.c
|
||||
|
||||
|
||||
*** ../vim-7.1.241/src/search.c Sat Jan 19 15:55:51 2008
|
||||
--- src/search.c Sat Jan 26 13:56:06 2008
|
||||
***************
|
||||
*** 3637,3643 ****
|
||||
oap->inclusive = FALSE;
|
||||
if (sol)
|
||||
incl(&curwin->w_cursor);
|
||||
! else if (lt(start_pos, curwin->w_cursor))
|
||||
/* Include the character under the cursor. */
|
||||
oap->inclusive = TRUE;
|
||||
else
|
||||
--- 3637,3643 ----
|
||||
oap->inclusive = FALSE;
|
||||
if (sol)
|
||||
incl(&curwin->w_cursor);
|
||||
! else if (ltoreq(start_pos, curwin->w_cursor))
|
||||
/* Include the character under the cursor. */
|
||||
oap->inclusive = TRUE;
|
||||
else
|
||||
***************
|
||||
*** 3754,3759 ****
|
||||
--- 3754,3763 ----
|
||||
old_pos = curwin->w_cursor;
|
||||
old_end = curwin->w_cursor; /* remember where we started */
|
||||
old_start = old_end;
|
||||
+ #ifdef FEAT_VISUAL
|
||||
+ if (!VIsual_active || *p_sel == 'e')
|
||||
+ #endif
|
||||
+ decl(&old_end); /* old_end is inclusive */
|
||||
|
||||
/*
|
||||
* If we start on "<aaa>" select that block.
|
||||
*** ../vim-7.1.241/src/version.c Tue Jan 22 17:49:17 2008
|
||||
--- src/version.c Sat Jan 26 21:14:05 2008
|
||||
***************
|
||||
*** 668,669 ****
|
||||
--- 668,671 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 242,
|
||||
/**/
|
||||
|
||||
--
|
||||
DENNIS: Oh, very nice. King, eh! I expect you've got a palace and fine
|
||||
clothes and courtiers and plenty of food. And how d'you get that? By
|
||||
exploiting the workers! By hanging on to outdated imperialist dogma
|
||||
which perpetuates the social and economic differences in our society!
|
||||
"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/ \\\
|
||||
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -264,3 +264,12 @@ Individual patches for Vim 7.1:
|
||||
8648 7.1.231 when shifting lines the change is acted upon multiple times
|
||||
2002 7.1.232 (after 7.1.207 and 7.1.211) compiler warnings with MSVC
|
||||
3249 7.1.233 crash with Insert mode completion for a user defined command
|
||||
6865 7.1.234 display problems when diff'ing three files
|
||||
5925 7.1.235 pattern matching is slow when using a lot of simple patterns
|
||||
28992 7.1.236 hang when using complicated pattern and 'hlsearch' or ":match"
|
||||
1704 7.1.237 compiler warning on an Alpha processor in Motif code
|
||||
1801 7.1.238 searchpair() may fail when using 'c' or 'r' flag
|
||||
1639 7.1.239 (after 7.1.233) compiler warning for sprintf() argument
|
||||
5157 7.1.240 "gUe" may stop before the end of the word
|
||||
3093 7.1.241 focus change events not always ignored
|
||||
2262 7.1.242 "cib" doesn't work properly on "(x)"
|
||||
|
25
vim.spec
25
vim.spec
@ -17,13 +17,13 @@
|
||||
#used for pre-releases:
|
||||
%define beta %{nil}
|
||||
%define vimdir vim71%{?beta}
|
||||
%define patchlevel 233
|
||||
%define patchlevel 242
|
||||
|
||||
Summary: The VIM editor
|
||||
URL: http://www.vim.org/
|
||||
Name: vim
|
||||
Version: %{baseversion}.%{beta}%{patchlevel}
|
||||
Release: 2%{?dist}
|
||||
Release: 1%{?dist}
|
||||
License: Vim
|
||||
Group: Applications/Editors
|
||||
Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2
|
||||
@ -286,6 +286,15 @@ Patch230: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.230
|
||||
Patch231: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.231
|
||||
Patch232: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.232
|
||||
Patch233: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.233
|
||||
Patch234: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.234
|
||||
Patch235: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.235
|
||||
Patch236: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.236
|
||||
Patch237: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.237
|
||||
Patch238: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.238
|
||||
Patch239: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.239
|
||||
Patch240: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.240
|
||||
Patch241: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.241
|
||||
Patch242: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.242
|
||||
|
||||
Patch3000: vim-7.0-syntax.patch
|
||||
Patch3002: vim-7.1-nowarnings.patch
|
||||
@ -653,6 +662,15 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
|
||||
%patch231 -p0
|
||||
%patch232 -p0
|
||||
%patch233 -p0
|
||||
%patch234 -p0
|
||||
%patch235 -p0
|
||||
%patch236 -p0
|
||||
%patch237 -p0
|
||||
%patch238 -p0
|
||||
%patch239 -p0
|
||||
%patch240 -p0
|
||||
%patch241 -p0
|
||||
%patch242 -p0
|
||||
|
||||
|
||||
# install spell files
|
||||
@ -1040,6 +1058,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_datadir}/icons/hicolor/*/apps/*
|
||||
|
||||
%changelog
|
||||
* Sun Jan 27 2008 Karsten Hopp <karsten@redhat.com> 7.1.242-1
|
||||
- patchlevel 242
|
||||
|
||||
* Fri Jan 18 2008 Karsten Hopp <karsten@redhat.com> 7.1.233-2
|
||||
- silence taglist plugin (#429200)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user