forked from aniani/vim
updated for version 7.0071
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.0aa. Last change: 2005 Apr 23
|
*todo.txt* For Vim version 7.0aa. Last change: 2005 Apr 24
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -30,21 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
Frame size wrong after ":sp" with this in vimrc (Michael Schaap):
|
|
||||||
set cmdheight=2
|
|
||||||
set lines=43
|
|
||||||
|
|
||||||
Trick to get ...MOUSE_NM not used when there are vertical splits. Can we pass
|
|
||||||
-col instead of col? (Yegappan Lakshmanan)
|
|
||||||
|
|
||||||
Hang in searchpair(). (2005 April 12, John Wellesz)
|
|
||||||
|
|
||||||
With this mapping a click on a status line echoes the wrong buffer name:
|
|
||||||
:noremap <Leftmouse> <Leftmouse>:echo bufname('%')<CR>
|
|
||||||
|
|
||||||
When in diff mode and making a change that causes the "changed" highlighting
|
|
||||||
to disappear, it's still highlighted in another window.
|
|
||||||
|
|
||||||
This doesn't work: "a[var1:var2]". Requires space before/after ':'. Can this
|
This doesn't work: "a[var1:var2]". Requires space before/after ':'. Can this
|
||||||
be fixed? Otherwise document it.
|
be fixed? Otherwise document it.
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*version7.txt* For Vim version 7.0aa. Last change: 2005 Apr 17
|
*version7.txt* For Vim version 7.0aa. Last change: 2005 Apr 24
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1045,4 +1045,18 @@ reallocating the buffer every time. (Alexei Alexandrov)
|
|||||||
When using a Python "atexit" function it was not invoked when Vim exits. Now
|
When using a Python "atexit" function it was not invoked when Vim exits. Now
|
||||||
call Py_Finalize() for that. (Ugo Di Girolamo)
|
call Py_Finalize() for that. (Ugo Di Girolamo)
|
||||||
|
|
||||||
|
GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
|
||||||
|
after startup, the window layout is messed up. (Michael Schaap) Added
|
||||||
|
win_new_shellsize() call in gui_init() to fix the topframe size.
|
||||||
|
|
||||||
|
Trick to get ...MOUSE_NM not used when there are vertical splits. Now pass
|
||||||
|
column -1 for the left most window and add MOUSE_COLOFF for others. Limits
|
||||||
|
mouse column to 10000.
|
||||||
|
|
||||||
|
searchpair() may hang when the end pattern has "\zs" at the end. Check that
|
||||||
|
we find the same position again and advance one character.
|
||||||
|
|
||||||
|
When in diff mode and making a change that causes the "changed" highlighting
|
||||||
|
to disappear or reappear, it was still highlighted in another window.
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
107
src/misc1.c
107
src/misc1.c
@@ -2464,7 +2464,8 @@ changed()
|
|||||||
++global_changedtick;
|
++global_changedtick;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void changedOneline __ARGS((linenr_T lnum));
|
static void changedOneline __ARGS((buf_T *buf, linenr_T lnum));
|
||||||
|
static void changed_lines_buf __ARGS((buf_T *buf, linenr_T lnum, linenr_T lnume, long xtra));
|
||||||
static void changed_common __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
|
static void changed_common __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2478,29 +2479,48 @@ changed_bytes(lnum, col)
|
|||||||
linenr_T lnum;
|
linenr_T lnum;
|
||||||
colnr_T col;
|
colnr_T col;
|
||||||
{
|
{
|
||||||
changedOneline(lnum);
|
changedOneline(curbuf, lnum);
|
||||||
changed_common(lnum, col, lnum + 1, 0L);
|
changed_common(lnum, col, lnum + 1, 0L);
|
||||||
|
|
||||||
|
#ifdef FEAT_DIFF
|
||||||
|
/* Diff highlighting in other diff windows may need to be updated too. */
|
||||||
|
if (curwin->w_p_diff)
|
||||||
|
{
|
||||||
|
win_T *wp;
|
||||||
|
linenr_T wlnum;
|
||||||
|
|
||||||
|
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||||
|
if (wp->w_p_diff && wp != curwin)
|
||||||
|
{
|
||||||
|
redraw_win_later(wp, VALID);
|
||||||
|
wlnum = diff_lnum_win(lnum, wp);
|
||||||
|
if (wlnum > 0)
|
||||||
|
changedOneline(wp->w_buffer, wlnum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
changedOneline(lnum)
|
changedOneline(buf, lnum)
|
||||||
|
buf_T *buf;
|
||||||
linenr_T lnum;
|
linenr_T lnum;
|
||||||
{
|
{
|
||||||
if (curbuf->b_mod_set)
|
if (buf->b_mod_set)
|
||||||
{
|
{
|
||||||
/* find the maximum area that must be redisplayed */
|
/* find the maximum area that must be redisplayed */
|
||||||
if (lnum < curbuf->b_mod_top)
|
if (lnum < buf->b_mod_top)
|
||||||
curbuf->b_mod_top = lnum;
|
buf->b_mod_top = lnum;
|
||||||
else if (lnum >= curbuf->b_mod_bot)
|
else if (lnum >= buf->b_mod_bot)
|
||||||
curbuf->b_mod_bot = lnum + 1;
|
buf->b_mod_bot = lnum + 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* set the area that must be redisplayed to one line */
|
/* set the area that must be redisplayed to one line */
|
||||||
curbuf->b_mod_set = TRUE;
|
buf->b_mod_set = TRUE;
|
||||||
curbuf->b_mod_top = lnum;
|
buf->b_mod_top = lnum;
|
||||||
curbuf->b_mod_bot = lnum + 1;
|
buf->b_mod_bot = lnum + 1;
|
||||||
curbuf->b_mod_xlines = 0;
|
buf->b_mod_xlines = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2572,32 +2592,63 @@ changed_lines(lnum, col, lnume, xtra)
|
|||||||
linenr_T lnume; /* line below last changed line */
|
linenr_T lnume; /* line below last changed line */
|
||||||
long xtra; /* number of extra lines (negative when deleting) */
|
long xtra; /* number of extra lines (negative when deleting) */
|
||||||
{
|
{
|
||||||
if (curbuf->b_mod_set)
|
changed_lines_buf(curbuf, lnum, lnume, xtra);
|
||||||
|
|
||||||
|
#ifdef FEAT_DIFF
|
||||||
|
if (xtra == 0 && curwin->w_p_diff)
|
||||||
|
{
|
||||||
|
/* When the number of lines doesn't change then mark_adjust() isn't
|
||||||
|
* called and other diff buffers still need to be marked for
|
||||||
|
* displaying. */
|
||||||
|
win_T *wp;
|
||||||
|
linenr_T wlnum;
|
||||||
|
|
||||||
|
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||||
|
if (wp->w_p_diff && wp != curwin)
|
||||||
|
{
|
||||||
|
redraw_win_later(wp, VALID);
|
||||||
|
wlnum = diff_lnum_win(lnum, wp);
|
||||||
|
if (wlnum > 0)
|
||||||
|
changed_lines_buf(wp->w_buffer, wlnum,
|
||||||
|
lnume - lnum + wlnum, 0L);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
changed_common(lnum, col, lnume, xtra);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
changed_lines_buf(buf, lnum, lnume, xtra)
|
||||||
|
buf_T *buf;
|
||||||
|
linenr_T lnum; /* first line with change */
|
||||||
|
linenr_T lnume; /* line below last changed line */
|
||||||
|
long xtra; /* number of extra lines (negative when deleting) */
|
||||||
|
{
|
||||||
|
if (buf->b_mod_set)
|
||||||
{
|
{
|
||||||
/* find the maximum area that must be redisplayed */
|
/* find the maximum area that must be redisplayed */
|
||||||
if (lnum < curbuf->b_mod_top)
|
if (lnum < buf->b_mod_top)
|
||||||
curbuf->b_mod_top = lnum;
|
buf->b_mod_top = lnum;
|
||||||
if (lnum < curbuf->b_mod_bot)
|
if (lnum < buf->b_mod_bot)
|
||||||
{
|
{
|
||||||
/* adjust old bot position for xtra lines */
|
/* adjust old bot position for xtra lines */
|
||||||
curbuf->b_mod_bot += xtra;
|
buf->b_mod_bot += xtra;
|
||||||
if (curbuf->b_mod_bot < lnum)
|
if (buf->b_mod_bot < lnum)
|
||||||
curbuf->b_mod_bot = lnum;
|
buf->b_mod_bot = lnum;
|
||||||
}
|
}
|
||||||
if (lnume + xtra > curbuf->b_mod_bot)
|
if (lnume + xtra > buf->b_mod_bot)
|
||||||
curbuf->b_mod_bot = lnume + xtra;
|
buf->b_mod_bot = lnume + xtra;
|
||||||
curbuf->b_mod_xlines += xtra;
|
buf->b_mod_xlines += xtra;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* set the area that must be redisplayed */
|
/* set the area that must be redisplayed */
|
||||||
curbuf->b_mod_set = TRUE;
|
buf->b_mod_set = TRUE;
|
||||||
curbuf->b_mod_top = lnum;
|
buf->b_mod_top = lnum;
|
||||||
curbuf->b_mod_bot = lnume + xtra;
|
buf->b_mod_bot = lnume + xtra;
|
||||||
curbuf->b_mod_xlines = xtra;
|
buf->b_mod_xlines = xtra;
|
||||||
}
|
}
|
||||||
|
|
||||||
changed_common(lnum, col, lnume, xtra);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user