Merge branch 'master' into f21

This commit is contained in:
Karsten Hopp 2014-08-13 11:59:42 +02:00
commit a62b8bc8bc
97 changed files with 22022 additions and 22 deletions

47
7.4.308 Normal file
View File

@ -0,0 +1,47 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.308
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.4.308
Problem: When using ":diffsplit" on an empty file the cursor is displayed
on the command line.
Solution: Limit the value of w_topfill.
Files: src/diff.c
*** ../vim-7.4.307/src/diff.c 2013-09-20 20:13:48.000000000 +0200
--- src/diff.c 2014-05-28 11:30:11.724008432 +0200
***************
*** 622,627 ****
--- 622,628 ----
wp->w_topfill = (n < 0 ? 0 : n);
else if (n > 0 && n > wp->w_topfill)
wp->w_topfill = n;
+ check_topfill(wp, FALSE);
}
}
}
*** ../vim-7.4.307/src/version.c 2014-05-22 21:22:15.361995652 +0200
--- src/version.c 2014-05-28 11:34:01.064010440 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 308,
/**/
--
msdn.microsoft.com:
ERROR_SUCCESS 0 (0x0) The operation completed successfully.
I have always suspected that for Microsoft success is an error.
/// 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 ///

88
7.4.309 Normal file
View File

@ -0,0 +1,88 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.309
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.4.309
Problem: When increasing the size of the lower window, the upper window
jumps back to the top. (Ron Aaron)
Solution: Change setting the topline. (Nobuhiro Takasaki)
Files: src/window.c
*** ../vim-7.4.308/src/window.c 2014-05-22 15:17:24.706440568 +0200
--- src/window.c 2014-05-28 13:24:40.308068558 +0200
***************
*** 5710,5717 ****
--wp->w_wrow;
}
}
}
! else
{
while (sline > 0 && lnum > 1)
{
--- 5710,5718 ----
--wp->w_wrow;
}
}
+ set_topline(wp, lnum);
}
! else if (sline > 0)
{
while (sline > 0 && lnum > 1)
{
***************
*** 5748,5761 ****
lnum++;
wp->w_wrow -= line_size + sline;
}
! else if (sline >= 0)
{
/* First line of file reached, use that as topline. */
lnum = 1;
wp->w_wrow -= sline;
}
}
- set_topline(wp, lnum);
}
if (wp == curwin)
--- 5749,5763 ----
lnum++;
wp->w_wrow -= line_size + sline;
}
! else if (sline > 0)
{
/* First line of file reached, use that as topline. */
lnum = 1;
wp->w_wrow -= sline;
}
+
+ set_topline(wp, lnum);
}
}
if (wp == curwin)
*** ../vim-7.4.308/src/version.c 2014-05-28 11:35:33.428011248 +0200
--- src/version.c 2014-05-28 13:33:54.244073407 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 309,
/**/
--
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 ///

373
7.4.310 Normal file
View File

@ -0,0 +1,373 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.310
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.4.310
Problem: getpos()/setpos() don't include curswant.
Solution: Add a fifth number when getting/setting the cursor.
Files: src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok,
runtime/doc/eval.txt
*** ../vim-7.4.309/src/eval.c 2014-05-22 18:59:54.506169240 +0200
--- src/eval.c 2014-05-28 14:23:37.608099523 +0200
***************
*** 764,770 ****
static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
static void f_xor __ARGS((typval_T *argvars, typval_T *rettv));
! static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
static int get_env_len __ARGS((char_u **arg));
static int get_id_len __ARGS((char_u **arg));
--- 764,770 ----
static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
static void f_xor __ARGS((typval_T *argvars, typval_T *rettv));
! static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump, colnr_T *curswantp));
static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
static int get_env_len __ARGS((char_u **arg));
static int get_id_len __ARGS((char_u **arg));
***************
*** 9799,9812 ****
if (argvars[1].v_type == VAR_UNKNOWN)
{
pos_T pos;
! if (list2fpos(argvars, &pos, NULL) == FAIL)
return;
line = pos.lnum;
col = pos.col;
#ifdef FEAT_VIRTUALEDIT
coladd = pos.coladd;
#endif
}
else
{
--- 9799,9815 ----
if (argvars[1].v_type == VAR_UNKNOWN)
{
pos_T pos;
+ colnr_T curswant = -1;
! if (list2fpos(argvars, &pos, NULL, &curswant) == FAIL)
return;
line = pos.lnum;
col = pos.col;
#ifdef FEAT_VIRTUALEDIT
coladd = pos.coladd;
#endif
+ if (curswant >= 0)
+ curwin->w_curswant = curswant - 1;
}
else
{
***************
*** 11770,11775 ****
--- 11773,11780 ----
(fp != NULL) ? (varnumber_T)fp->coladd :
#endif
(varnumber_T)0);
+ if (fp == &curwin->w_cursor)
+ list_append_number(l, (varnumber_T)curwin->w_curswant + 1);
}
else
rettv->vval.v_number = FALSE;
***************
*** 16751,16762 ****
pos_T pos;
int fnum;
char_u *name;
rettv->vval.v_number = -1;
name = get_tv_string_chk(argvars);
if (name != NULL)
{
! if (list2fpos(&argvars[1], &pos, &fnum) == OK)
{
if (--pos.col < 0)
pos.col = 0;
--- 16756,16768 ----
pos_T pos;
int fnum;
char_u *name;
+ colnr_T curswant = -1;
rettv->vval.v_number = -1;
name = get_tv_string_chk(argvars);
if (name != NULL)
{
! if (list2fpos(&argvars[1], &pos, &fnum, &curswant) == OK)
{
if (--pos.col < 0)
pos.col = 0;
***************
*** 16766,16771 ****
--- 16772,16779 ----
if (fnum == curbuf->b_fnum)
{
curwin->w_cursor = pos;
+ if (curswant >= 0)
+ curwin->w_curswant = curswant - 1;
check_cursor();
rettv->vval.v_number = 0;
}
***************
*** 19532,19552 ****
* validity.
*/
static int
! list2fpos(arg, posp, fnump)
typval_T *arg;
pos_T *posp;
int *fnump;
{
list_T *l = arg->vval.v_list;
long i = 0;
long n;
! /* List must be: [fnum, lnum, col, coladd], where "fnum" is only there
! * when "fnump" isn't NULL and "coladd" is optional. */
if (arg->v_type != VAR_LIST
|| l == NULL
|| l->lv_len < (fnump == NULL ? 2 : 3)
! || l->lv_len > (fnump == NULL ? 3 : 4))
return FAIL;
if (fnump != NULL)
--- 19540,19561 ----
* validity.
*/
static int
! list2fpos(arg, posp, fnump, curswantp)
typval_T *arg;
pos_T *posp;
int *fnump;
+ colnr_T *curswantp;
{
list_T *l = arg->vval.v_list;
long i = 0;
long n;
! /* List must be: [fnum, lnum, col, coladd, curswant], where "fnum" is only
! * there when "fnump" isn't NULL; "coladd" and "curswant" are optional. */
if (arg->v_type != VAR_LIST
|| l == NULL
|| l->lv_len < (fnump == NULL ? 2 : 3)
! || l->lv_len > (fnump == NULL ? 4 : 5))
return FAIL;
if (fnump != NULL)
***************
*** 19570,19582 ****
posp->col = n;
#ifdef FEAT_VIRTUALEDIT
! n = list_find_nr(l, i, NULL);
if (n < 0)
posp->coladd = 0;
else
posp->coladd = n;
#endif
return OK;
}
--- 19579,19594 ----
posp->col = n;
#ifdef FEAT_VIRTUALEDIT
! n = list_find_nr(l, i, NULL); /* off */
if (n < 0)
posp->coladd = 0;
else
posp->coladd = n;
#endif
+ if (curswantp != NULL)
+ *curswantp = list_find_nr(l, i + 1, NULL); /* curswant */
+
return OK;
}
*** ../vim-7.4.309/src/testdir/test_eval.in 2014-04-29 17:41:18.351689927 +0200
--- src/testdir/test_eval.in 2014-05-28 14:22:31.780098947 +0200
***************
*** 190,198 ****
--- 190,207 ----
:$put =v:exception
:endtry
:"
+ :$put ='{{{1 setpos/getpos'
+ /^012345678
+ 6l:let sp = getpos('.')
+ 0:call setpos('.', sp)
+ jyl:$put
+ :"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST
+ 012345678
+ 012345678
+
start:
*** ../vim-7.4.309/src/testdir/test_eval.ok 2014-04-29 17:41:18.351689927 +0200
--- src/testdir/test_eval.ok 2014-05-28 14:19:31.836097372 +0200
***************
*** 346,348 ****
--- 346,350 ----
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
+ {{{1 setpos/getpos
+ 6
*** ../vim-7.4.309/runtime/doc/eval.txt 2014-05-07 18:35:25.661216052 +0200
--- runtime/doc/eval.txt 2014-05-28 14:04:40.928089573 +0200
***************
*** 2587,2595 ****
cursor({list})
Positions the cursor at the column (byte count) {col} in the
line {lnum}. The first column is one.
When there is one argument {list} this is used as a |List|
! with two or three items {lnum}, {col} and {off}. This is like
! the return value of |getpos()|, but without the first item.
Does not change the jumplist.
If {lnum} is greater than the number of lines in the buffer,
the cursor will be positioned at the last line in the buffer.
--- 2587,2600 ----
cursor({list})
Positions the cursor at the column (byte count) {col} in the
line {lnum}. The first column is one.
+
When there is one argument {list} this is used as a |List|
! with two, three or four item:
! [{lnum}, {col}, {off}]
! [{lnum}, {col}, {off}, {curswant}]
! This is like the return value of |getpos()|, but without the
! first item.
!
Does not change the jumplist.
If {lnum} is greater than the number of lines in the buffer,
the cursor will be positioned at the last line in the buffer.
***************
*** 4475,4482 ****
*getpos()*
getpos({expr}) Get the position for {expr}. For possible values of {expr}
see |line()|.
! The result is a |List| with four numbers:
[bufnum, lnum, col, off]
"bufnum" is zero, unless a mark like '0 or 'A is used, then it
is the buffer number of the mark.
"lnum" and "col" are the position in the buffer. The first
--- 4490,4498 ----
*getpos()*
getpos({expr}) Get the position for {expr}. For possible values of {expr}
see |line()|.
! The result is a |List| with four or five numbers:
[bufnum, lnum, col, off]
+ [bufnum, lnum, col, off, curswant]
"bufnum" is zero, unless a mark like '0 or 'A is used, then it
is the buffer number of the mark.
"lnum" and "col" are the position in the buffer. The first
***************
*** 4485,4490 ****
--- 4501,4511 ----
it is the offset in screen columns from the start of the
character. E.g., a position within a <Tab> or after the last
character.
+ The "curswant" number is only added for getpos('.'), it is the
+ preferred column when moving the cursor vertically.
+ Note that for '< and '> Visual mode matters: when it is "V"
+ (visual line mode) the column of '< is zero and the column of
+ '> is a large number.
This can be used to save and restore the cursor position: >
let save_cursor = getpos(".")
MoveTheCursorAround
***************
*** 5289,5296 ****
. the cursor
'x mark x
! {list} must be a |List| with four numbers:
[bufnum, lnum, col, off]
"bufnum" is the buffer number. Zero can be used for the
current buffer. Setting the cursor is only possible for
--- 5310,5318 ----
. the cursor
'x mark x
! {list} must be a |List| with four or five numbers:
[bufnum, lnum, col, off]
+ [bufnum, lnum, col, off, curswant]
"bufnum" is the buffer number. Zero can be used for the
current buffer. Setting the cursor is only possible for
***************
*** 5308,5320 ****
character. E.g., a position within a <Tab> or after the last
character.
Returns 0 when the position could be set, -1 otherwise.
An error message is given if {expr} is invalid.
Also see |getpos()|
This does not restore the preferred column for moving
! vertically. See |winrestview()| for that.
setqflist({list} [, {action}]) *setqflist()*
--- 5330,5355 ----
character. E.g., a position within a <Tab> or after the last
character.
+ The "curswant" number is only used when setting the cursor
+ position. It sets the preferred column for when moving the
+ cursor vertically. When the "curswant" number is missing the
+ preferred column is not set. When it is present and setting a
+ mark position it is not used.
+
+ Note that for '< and '> changing the line number may result in
+ the marks to be effectively be swapped, so that '< is always
+ before '>.
+
Returns 0 when the position could be set, -1 otherwise.
An error message is given if {expr} is invalid.
Also see |getpos()|
This does not restore the preferred column for moving
! vertically; if you set the cursor position with this, |j| and
! |k| motions will jump to previous columns! Use |cursor()| to
! also set the preferred column. Also see the "curswant" key in
! |winrestview()|.
setqflist({list} [, {action}]) *setqflist()*
*** ../vim-7.4.309/src/version.c 2014-05-28 13:42:59.884078184 +0200
--- src/version.c 2014-05-28 14:27:20.132101471 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 310,
/**/
--
hundred-and-one symptoms of being an internet addict:
218. Your spouse hands you a gift wrapped magnet with your PC's name
on it and you accuse him or her of genocide.
/// 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 ///

127
7.4.311 Normal file
View File

@ -0,0 +1,127 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.311
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.4.311
Problem: Can't use winrestview to only restore part of the view.
Solution: Handle missing items in the dict. (Christian Brabandt)
Files: src/eval.c, runtime/doc/eval.txt
*** ../vim-7.4.310/src/eval.c 2014-05-28 14:32:47.156104334 +0200
--- src/eval.c 2014-05-28 16:42:25.196172421 +0200
***************
*** 19231,19250 ****
EMSG(_(e_invarg));
else
{
! curwin->w_cursor.lnum = get_dict_number(dict, (char_u *)"lnum");
! curwin->w_cursor.col = get_dict_number(dict, (char_u *)"col");
#ifdef FEAT_VIRTUALEDIT
! curwin->w_cursor.coladd = get_dict_number(dict, (char_u *)"coladd");
#endif
! curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant");
! curwin->w_set_curswant = FALSE;
! set_topline(curwin, get_dict_number(dict, (char_u *)"topline"));
#ifdef FEAT_DIFF
! curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill");
#endif
! curwin->w_leftcol = get_dict_number(dict, (char_u *)"leftcol");
! curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
check_cursor();
win_new_height(curwin, curwin->w_height);
--- 19231,19260 ----
EMSG(_(e_invarg));
else
{
! if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
! curwin->w_cursor.lnum = get_dict_number(dict, (char_u *)"lnum");
! if (dict_find(dict, (char_u *)"col", -1) != NULL)
! curwin->w_cursor.col = get_dict_number(dict, (char_u *)"col");
#ifdef FEAT_VIRTUALEDIT
! if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
! curwin->w_cursor.coladd = get_dict_number(dict, (char_u *)"coladd");
#endif
! if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
! {
! curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant");
! curwin->w_set_curswant = FALSE;
! }
! if (dict_find(dict, (char_u *)"topline", -1) != NULL)
! set_topline(curwin, get_dict_number(dict, (char_u *)"topline"));
#ifdef FEAT_DIFF
! if (dict_find(dict, (char_u *)"topfill", -1) != NULL)
! curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill");
#endif
! if (dict_find(dict, (char_u *)"leftcol", -1) != NULL)
! curwin->w_leftcol = get_dict_number(dict, (char_u *)"leftcol");
! if (dict_find(dict, (char_u *)"skipcol", -1) != NULL)
! curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
check_cursor();
win_new_height(curwin, curwin->w_height);
*** ../vim-7.4.310/runtime/doc/eval.txt 2014-05-28 14:32:47.164104334 +0200
--- runtime/doc/eval.txt 2014-05-28 16:42:25.192172421 +0200
***************
*** 6404,6409 ****
--- 6414,6429 ----
winrestview({dict})
Uses the |Dictionary| returned by |winsaveview()| to restore
the view of the current window.
+ Note: The {dict} does not have to contain all values, that are
+ returned by |winsaveview()|. If values are missing, those
+ settings won't be restored. So you can use: >
+ :call winrestview({'curswant': 4})
+ <
+ This will only set the curswant value (the column the cursor
+ wants to move on vertical movements) of the cursor to column 5
+ (yes, that is 5), while all other settings will remain the
+ same. This is useful, if you set the cursor position manually.
+
If you have changed the values the result is unpredictable.
If the window size changed the result won't be the same.
***************
*** 6418,6424 ****
not opened when moving around.
The return value includes:
lnum cursor line number
! col cursor column
coladd cursor column offset for 'virtualedit'
curswant column for vertical movement
topline first line in the window
--- 6438,6446 ----
not opened when moving around.
The return value includes:
lnum cursor line number
! col cursor column (Note: the first column
! zero, as opposed to what getpos()
! returns)
coladd cursor column offset for 'virtualedit'
curswant column for vertical movement
topline first line in the window
*** ../vim-7.4.310/src/version.c 2014-05-28 14:32:47.164104334 +0200
--- src/version.c 2014-05-28 16:45:19.200173944 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 311,
/**/
--
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 ///

194
7.4.312 Normal file
View File

@ -0,0 +1,194 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.312
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.4.312
Problem: Cannot figure out what argument list is being used for a window.
Solution: Add the arglistid() function. (Marcin Szamotulski)
Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
src/ex_docmd.c, src/globals.h, src/structs.h, src/main.c
*** ../vim-7.4.311/runtime/doc/eval.txt 2014-05-28 16:47:11.396174926 +0200
--- runtime/doc/eval.txt 2014-05-28 18:00:06.248213223 +0200
***************
*** 1716,1721 ****
--- 1716,1723 ----
append( {lnum}, {list}) Number append lines {list} below line {lnum}
argc() Number number of files in the argument list
argidx() Number current index in the argument list
+ arglistid( [{winnr}, [ {tabnr}]])
+ Number argument list id
argv( {nr}) String {nr} entry of the argument list
argv( ) List the argument list
asin( {expr}) Float arc sine of {expr}
***************
*** 2103,2108 ****
--- 2105,2122 ----
argidx() The result is the current index in the argument list. 0 is
the first file. argc() - 1 is the last one. See |arglist|.
+ *arglistid()*
+ arglistid([{winnr}, [ {tabnr} ]])
+ Return the argument list ID. This is a number which
+ identifies the argument list being used. Zero is used for the
+ global argument list.
+ Return zero if the arguments are invalid.
+
+ Without arguments use the current window.
+ With {winnr} only use this window in the current tab page.
+ With {winnr} and {tabnr} use the window in the specified tab
+ page.
+
*argv()*
argv([{nr}]) The result is the {nr}th file in the argument list of the
current window. See |arglist|. "argv(0)" is the first one.
*** ../vim-7.4.311/runtime/doc/usr_41.txt 2014-03-25 18:23:27.054087691 +0100
--- runtime/doc/usr_41.txt 2014-05-28 18:07:43.096217222 +0200
***************
*** 770,775 ****
--- 772,778 ----
Buffers, windows and the argument list:
argc() number of entries in the argument list
argidx() current position in the argument list
+ arglistid() get id of the argument list
argv() get one entry from the argument list
bufexists() check if a buffer exists
buflisted() check if a buffer exists and is listed
*** ../vim-7.4.311/src/eval.c 2014-05-28 16:47:11.392174926 +0200
--- src/eval.c 2014-05-28 18:11:10.264219035 +0200
***************
*** 463,468 ****
--- 463,469 ----
static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_arglistid __ARGS((typval_T *argvars, typval_T *rettv));
static void f_argv __ARGS((typval_T *argvars, typval_T *rettv));
#ifdef FEAT_FLOAT
static void f_asin __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 7875,7880 ****
--- 7876,7882 ----
{"append", 2, 2, f_append},
{"argc", 0, 0, f_argc},
{"argidx", 0, 0, f_argidx},
+ {"arglistid", 0, 2, f_arglistid},
{"argv", 0, 1, f_argv},
#ifdef FEAT_FLOAT
{"asin", 1, 1, f_asin}, /* WJMc */
***************
*** 8859,8864 ****
--- 8861,8901 ----
}
/*
+ * "arglistid()" function
+ */
+ static void
+ f_arglistid(argvars, rettv)
+ typval_T *argvars UNUSED;
+ typval_T *rettv;
+ {
+ win_T *wp;
+ tabpage_T *tp = NULL;
+ long n;
+
+ rettv->vval.v_number = -1;
+ if (argvars[0].v_type != VAR_UNKNOWN)
+ {
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ {
+ n = get_tv_number(&argvars[1]);
+ if (n >= 0)
+ tp = find_tabpage(n);
+ }
+ else
+ tp = curtab;
+
+ if (tp != NULL)
+ {
+ wp = find_win_by_nr(&argvars[0], tp);
+ if (wp != NULL)
+ rettv->vval.v_number = wp->w_alist->id;
+ }
+ }
+ else
+ rettv->vval.v_number = curwin->w_alist->id;
+ }
+
+ /*
* "argv(nr)" function
*/
static void
*** ../vim-7.4.311/src/ex_docmd.c 2014-05-07 21:14:42.913299714 +0200
--- src/ex_docmd.c 2014-05-28 18:10:01.696218435 +0200
***************
*** 7211,7216 ****
--- 7211,7217 ----
else
{
curwin->w_alist->al_refcount = 1;
+ curwin->w_alist->id = ++max_alist_id;
alist_init(curwin->w_alist);
}
}
*** ../vim-7.4.311/src/globals.h 2014-05-22 18:14:27.570224664 +0200
--- src/globals.h 2014-05-28 17:56:53.392211534 +0200
***************
*** 601,606 ****
--- 601,607 ----
* to this when the window is using the global argument list.
*/
EXTERN alist_T global_alist; /* global argument list */
+ EXTERN int max_alist_id INIT(= 0); /* the previous argument list id */
EXTERN int arg_had_last INIT(= FALSE); /* accessed last file in
global_alist */
*** ../vim-7.4.311/src/structs.h 2014-05-13 20:19:53.573808877 +0200
--- src/structs.h 2014-05-28 17:54:18.312210177 +0200
***************
*** 675,680 ****
--- 675,681 ----
{
garray_T al_ga; /* growarray with the array of file names */
int al_refcount; /* number of windows using this arglist */
+ int id; /* id of this arglist */
} alist_T;
/*
*** ../vim-7.4.311/src/main.c 2014-04-01 19:55:46.252787300 +0200
--- src/main.c 2014-05-28 18:09:32.040218175 +0200
***************
*** 322,327 ****
--- 322,328 ----
init_yank(); /* init yank buffers */
alist_init(&global_alist); /* Init the argument list to empty. */
+ global_alist.id = 0;
/*
* Set the default values for the options.
*** ../vim-7.4.311/src/version.c 2014-05-28 16:47:11.396174926 +0200
--- src/version.c 2014-05-28 17:25:32.644195071 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 312,
/**/
--
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 ///

320
7.4.313 Normal file
View File

@ -0,0 +1,320 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.313
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.4.313 (after 7.4.310)
Problem: Changing the return value of getpos() causes an error. (Jie Zhu)
Solution: Revert getpos() and add getcurpos().
Files: src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok,
runtime/doc/eval.txt
*** ../vim-7.4.312/src/eval.c 2014-05-28 18:22:37.876225054 +0200
--- src/eval.c 2014-05-28 20:11:55.364282457 +0200
***************
*** 560,565 ****
--- 560,566 ----
static void f_getline __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getmatches __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getpid __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_getcurpos __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getpos __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getqflist __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getreg __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 7967,7972 ****
--- 7968,7974 ----
{"getcmdline", 0, 0, f_getcmdline},
{"getcmdpos", 0, 0, f_getcmdpos},
{"getcmdtype", 0, 0, f_getcmdtype},
+ {"getcurpos", 0, 0, f_getcurpos},
{"getcwd", 0, 0, f_getcwd},
{"getfontname", 0, 1, f_getfontname},
{"getfperm", 1, 1, f_getfperm},
***************
*** 11780,11785 ****
--- 11782,11800 ----
rettv->vval.v_number = mch_get_pid();
}
+ static void getpos_both __ARGS((typval_T *argvars, typval_T *rettv, int getcurpos));
+
+ /*
+ * "getcurpos()" function
+ */
+ static void
+ f_getcurpos(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+ getpos_both(argvars, rettv, TRUE);
+ }
+
/*
* "getpos(string)" function
*/
***************
*** 11788,11793 ****
--- 11803,11817 ----
typval_T *argvars;
typval_T *rettv;
{
+ getpos_both(argvars, rettv, FALSE);
+ }
+
+ static void
+ getpos_both(argvars, rettv, getcurpos)
+ typval_T *argvars;
+ typval_T *rettv;
+ int getcurpos;
+ {
pos_T *fp;
list_T *l;
int fnum = -1;
***************
*** 11795,11801 ****
if (rettv_list_alloc(rettv) == OK)
{
l = rettv->vval.v_list;
! fp = var2fpos(&argvars[0], TRUE, &fnum);
if (fnum != -1)
list_append_number(l, (varnumber_T)fnum);
else
--- 11819,11828 ----
if (rettv_list_alloc(rettv) == OK)
{
l = rettv->vval.v_list;
! if (getcurpos)
! fp = &curwin->w_cursor;
! else
! fp = var2fpos(&argvars[0], TRUE, &fnum);
if (fnum != -1)
list_append_number(l, (varnumber_T)fnum);
else
***************
*** 11810,11816 ****
(fp != NULL) ? (varnumber_T)fp->coladd :
#endif
(varnumber_T)0);
! if (fp == &curwin->w_cursor)
list_append_number(l, (varnumber_T)curwin->w_curswant + 1);
}
else
--- 11837,11843 ----
(fp != NULL) ? (varnumber_T)fp->coladd :
#endif
(varnumber_T)0);
! if (getcurpos)
list_append_number(l, (varnumber_T)curwin->w_curswant + 1);
}
else
*** ../vim-7.4.312/src/testdir/test_eval.in 2014-05-28 14:32:47.160104334 +0200
--- src/testdir/test_eval.in 2014-05-28 20:14:27.048283785 +0200
***************
*** 190,198 ****
:$put =v:exception
:endtry
:"
! :$put ='{{{1 setpos/getpos'
/^012345678
! 6l:let sp = getpos('.')
0:call setpos('.', sp)
jyl:$put
:"
--- 190,198 ----
:$put =v:exception
:endtry
:"
! :$put ='{{{1 getcurpos/setpos'
/^012345678
! 6l:let sp = getcurpos()
0:call setpos('.', sp)
jyl:$put
:"
*** ../vim-7.4.312/src/testdir/test_eval.ok 2014-05-28 14:32:47.160104334 +0200
--- src/testdir/test_eval.ok 2014-05-28 20:14:43.316283927 +0200
***************
*** 346,350 ****
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
! {{{1 setpos/getpos
6
--- 346,350 ----
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
! {{{1 getcurpos/setpos
6
*** ../vim-7.4.312/runtime/doc/eval.txt 2014-05-28 18:22:37.872225054 +0200
--- runtime/doc/eval.txt 2014-05-28 20:27:57.092290876 +0200
***************
*** 1808,1817 ****
getcmdline() String return the current command-line
getcmdpos() Number return cursor position in command-line
getcmdtype() String return the current command-line type
getcwd() String the current working directory
getfperm( {fname}) String file permissions of file {fname}
getfsize( {fname}) Number size in bytes of file {fname}
- getfontname( [{name}]) String name of font being used
getftime( {fname}) Number last modification time of file
getftype( {fname}) String description of type of file {fname}
getline( {lnum}) String line {lnum} of current buffer
--- 1808,1818 ----
getcmdline() String return the current command-line
getcmdpos() Number return cursor position in command-line
getcmdtype() String return the current command-line type
+ getcurpos() List position of the cursor
getcwd() String the current working directory
+ getfontname( [{name}]) String name of font being used
getfperm( {fname}) String file permissions of file {fname}
getfsize( {fname}) Number size in bytes of file {fname}
getftime( {fname}) Number last modification time of file
getftype( {fname}) String description of type of file {fname}
getline( {lnum}) String line {lnum} of current buffer
***************
*** 2606,2613 ****
with two, three or four item:
[{lnum}, {col}, {off}]
[{lnum}, {col}, {off}, {curswant}]
! This is like the return value of |getpos()|, but without the
! first item.
Does not change the jumplist.
If {lnum} is greater than the number of lines in the buffer,
--- 2607,2614 ----
with two, three or four item:
[{lnum}, {col}, {off}]
[{lnum}, {col}, {off}, {curswant}]
! This is like the return value of |getpos()| or |getcurpos|,
! but without the first item.
Does not change the jumplist.
If {lnum} is greater than the number of lines in the buffer,
***************
*** 2617,2622 ****
--- 2618,2625 ----
the cursor will be positioned at the last character in the
line.
If {col} is zero, the cursor will stay in the current column.
+ If {curswant} is given it is used to set the preferred column
+ for vertical movment. Otherwise {col} is used.
When 'virtualedit' is used {off} specifies the offset in
screen columns from the start of the character. E.g., a
position within a <Tab> or after the last character.
***************
*** 3339,3344 ****
--- 3347,3363 ----
Returns an empty string otherwise.
Also see |getcmdpos()|, |setcmdpos()| and |getcmdline()|.
+ *getcurpos()*
+ getcurpos() Get the position of the cursor. This is like getpos('.'), but
+ includes an extra item in the list:
+ [bufnum, lnum, col, off, curswant]
+ The "curswant" number is the preferred column when moving the
+ cursor vertically.
+ This can be used to save and restore the cursor position: >
+ let save_cursor = getcurpos()
+ MoveTheCursorAround
+ call setpos('.', save_cursor)
+
*getcwd()*
getcwd() The result is a String, which is the name of the current
working directory.
***************
*** 4493,4502 ****
*getpos()*
getpos({expr}) Get the position for {expr}. For possible values of {expr}
! see |line()|.
! The result is a |List| with four or five numbers:
[bufnum, lnum, col, off]
- [bufnum, lnum, col, off, curswant]
"bufnum" is zero, unless a mark like '0 or 'A is used, then it
is the buffer number of the mark.
"lnum" and "col" are the position in the buffer. The first
--- 4517,4526 ----
*getpos()*
getpos({expr}) Get the position for {expr}. For possible values of {expr}
! see |line()|. For getting the cursor position see
! |getcurpos()|.
! The result is a |List| with four numbers:
[bufnum, lnum, col, off]
"bufnum" is zero, unless a mark like '0 or 'A is used, then it
is the buffer number of the mark.
"lnum" and "col" are the position in the buffer. The first
***************
*** 4505,4520 ****
it is the offset in screen columns from the start of the
character. E.g., a position within a <Tab> or after the last
character.
- The "curswant" number is only added for getpos('.'), it is the
- preferred column when moving the cursor vertically.
Note that for '< and '> Visual mode matters: when it is "V"
(visual line mode) the column of '< is zero and the column of
'> is a large number.
! This can be used to save and restore the cursor position: >
! let save_cursor = getpos(".")
! MoveTheCursorAround
! call setpos('.', save_cursor)
! < Also see |setpos()|.
or({expr}, {expr}) *or()*
Bitwise OR on the two arguments. The arguments are converted
--- 4529,4542 ----
it is the offset in screen columns from the start of the
character. E.g., a position within a <Tab> or after the last
character.
Note that for '< and '> Visual mode matters: when it is "V"
(visual line mode) the column of '< is zero and the column of
'> is a large number.
! This can be used to save and restore the position of a mark: >
! let save_a_mark = getpos("'a")
! ...
! call setpos(''a', save_a_mark
! < Also see |getcurpos()| and |setpos()|.
or({expr}, {expr}) *or()*
Bitwise OR on the two arguments. The arguments are converted
***************
*** 5347,5353 ****
Returns 0 when the position could be set, -1 otherwise.
An error message is given if {expr} is invalid.
! Also see |getpos()|
This does not restore the preferred column for moving
vertically; if you set the cursor position with this, |j| and
--- 5369,5375 ----
Returns 0 when the position could be set, -1 otherwise.
An error message is given if {expr} is invalid.
! Also see |getpos()| and |getcurpos()|.
This does not restore the preferred column for moving
vertically; if you set the cursor position with this, |j| and
*** ../vim-7.4.312/src/version.c 2014-05-28 18:22:37.880225054 +0200
--- src/version.c 2014-05-28 20:15:52.164284530 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 313,
/**/
--
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 ///

178
7.4.314 Normal file
View File

@ -0,0 +1,178 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.314
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.4.314
Problem: Completion messages can get in the way of a plugin.
Solution: Add 'c' flag to 'shortmess' option. (Shougo Matsu)
Files: runtime/doc/options.txt, src/edit.c, src/option.h, src/screen.c
*** ../vim-7.4.313/runtime/doc/options.txt 2014-03-12 18:55:52.096906804 +0100
--- runtime/doc/options.txt 2014-05-28 20:55:14.640305211 +0200
***************
*** 6252,6257 ****
--- 6254,6262 ----
A don't give the "ATTENTION" message when an existing swap file
is found.
I don't give the intro message when starting Vim |:intro|.
+ c don't give |ins-completion-menu| messages. For example,
+ "-- XXX completion (YYY)", "match 1 of 2", "The only match",
+ "Pattern not found", "Back at original", etc.
This gives you the opportunity to avoid that a change between buffers
requires you to hit <Enter>, but still gives as useful a message as
*** ../vim-7.4.313/src/edit.c 2014-04-29 14:44:31.515875819 +0200
--- src/edit.c 2014-05-28 21:33:57.588325545 +0200
***************
*** 3854,3860 ****
ins_compl_free();
compl_started = FALSE;
compl_matches = 0;
! msg_clr_cmdline(); /* necessary for "noshowmode" */
ctrl_x_mode = 0;
compl_enter_selects = FALSE;
if (edit_submode != NULL)
--- 3854,3861 ----
ins_compl_free();
compl_started = FALSE;
compl_matches = 0;
! if (!shortmess(SHM_COMPLETIONMENU))
! msg_clr_cmdline(); /* necessary for "noshowmode" */
ctrl_x_mode = 0;
compl_enter_selects = FALSE;
if (edit_submode != NULL)
***************
*** 5285,5291 ****
{
ctrl_x_mode = 0;
edit_submode = NULL;
! msg_clr_cmdline();
return FAIL;
}
--- 5286,5293 ----
{
ctrl_x_mode = 0;
edit_submode = NULL;
! if (!shortmess(SHM_COMPLETIONMENU))
! msg_clr_cmdline();
return FAIL;
}
***************
*** 5544,5558 ****
/* Show a message about what (completion) mode we're in. */
showmode();
! if (edit_submode_extra != NULL)
{
! if (!p_smd)
! msg_attr(edit_submode_extra,
! edit_submode_highl < HLF_COUNT
! ? hl_attr(edit_submode_highl) : 0);
}
- else
- msg_clr_cmdline(); /* necessary for "noshowmode" */
/* Show the popup menu, unless we got interrupted. */
if (!compl_interrupted)
--- 5546,5563 ----
/* Show a message about what (completion) mode we're in. */
showmode();
! if (!shortmess(SHM_COMPLETIONMENU))
{
! if (edit_submode_extra != NULL)
! {
! if (!p_smd)
! msg_attr(edit_submode_extra,
! edit_submode_highl < HLF_COUNT
! ? hl_attr(edit_submode_highl) : 0);
! }
! else
! msg_clr_cmdline(); /* necessary for "noshowmode" */
}
/* Show the popup menu, unless we got interrupted. */
if (!compl_interrupted)
*** ../vim-7.4.313/src/option.h 2014-03-23 15:12:29.943264337 +0100
--- src/option.h 2014-05-28 21:34:25.244325787 +0200
***************
*** 212,218 ****
#define SHM_SEARCH 's' /* no search hit bottom messages */
#define SHM_ATTENTION 'A' /* no ATTENTION messages */
#define SHM_INTRO 'I' /* intro messages */
! #define SHM_ALL "rmfixlnwaWtToOsAI" /* all possible flags for 'shm' */
/* characters for p_go: */
#define GO_ASEL 'a' /* autoselect */
--- 212,219 ----
#define SHM_SEARCH 's' /* no search hit bottom messages */
#define SHM_ATTENTION 'A' /* no ATTENTION messages */
#define SHM_INTRO 'I' /* intro messages */
! #define SHM_COMPLETIONMENU 'c' /* completion menu messages */
! #define SHM_ALL "rmfixlnwaWtToOsAIc" /* all possible flags for 'shm' */
/* characters for p_go: */
#define GO_ASEL 'a' /* autoselect */
*** ../vim-7.4.313/src/screen.c 2014-05-22 16:05:16.338382204 +0200
--- src/screen.c 2014-05-28 20:53:20.488304211 +0200
***************
*** 42,48 ****
*
* The part of the buffer that is displayed in a window is set with:
* - w_topline (first buffer line in window)
! * - w_topfill (filler line above the first line)
* - w_leftcol (leftmost window cell in window),
* - w_skipcol (skipped window cells of first line)
*
--- 42,48 ----
*
* The part of the buffer that is displayed in a window is set with:
* - w_topline (first buffer line in window)
! * - w_topfill (filler lines above the first line)
* - w_leftcol (leftmost window cell in window),
* - w_skipcol (skipped window cells of first line)
*
***************
*** 9683,9689 ****
}
#endif
#ifdef FEAT_INS_EXPAND
! if (edit_submode != NULL) /* CTRL-X in Insert mode */
{
/* These messages can get long, avoid a wrap in a narrow
* window. Prefer showing edit_submode_extra. */
--- 9683,9690 ----
}
#endif
#ifdef FEAT_INS_EXPAND
! /* CTRL-X in Insert mode */
! if (edit_submode != NULL && !shortmess(SHM_COMPLETIONMENU))
{
/* These messages can get long, avoid a wrap in a narrow
* window. Prefer showing edit_submode_extra. */
*** ../vim-7.4.313/src/version.c 2014-05-28 20:31:37.504292805 +0200
--- src/version.c 2014-05-28 20:54:27.664304800 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 314,
/**/
--
hundred-and-one symptoms of being an internet addict:
227. You sleep next to your monitor. Or on top of it.
/// 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 ///

229
7.4.315 Normal file
View File

@ -0,0 +1,229 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.315
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.4.315 (after 7.4.309)
Problem: Fixes for computation of topline not tested.
Solution: Add test. (Hirohito Higashi)
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/test107.in, src/testdir/test107.ok
*** ../vim-7.4.314/src/testdir/Make_amiga.mak 2014-04-29 12:15:22.852032651 +0200
--- src/testdir/Make_amiga.mak 2014-05-28 13:13:32.108062709 +0200
***************
*** 35,41 ****
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
! test104.out test105.out test106.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
--- 35,41 ----
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
! test104.out test105.out test106.out test107.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
***************
*** 161,166 ****
--- 161,167 ----
test104.out: test104.in
test105.out: test105.in
test106.out: test106.in
+ test107.out: test107.in
test_autoformat_join.out: test_autoformat_join.in
test_eval.out: test_eval.in
test_options.out: test_options.in
*** ../vim-7.4.314/src/testdir/Make_dos.mak 2014-04-29 12:15:22.852032651 +0200
--- src/testdir/Make_dos.mak 2014-05-28 13:13:44.344062816 +0200
***************
*** 34,40 ****
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
! test105.out test106.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
--- 34,40 ----
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
! test105.out test106.out test107.out\
test_autoformat_join.out \
test_eval.out \
test_options.out
*** ../vim-7.4.314/src/testdir/Make_ming.mak 2014-04-29 12:15:22.852032651 +0200
--- src/testdir/Make_ming.mak 2014-05-28 13:13:52.656062889 +0200
***************
*** 54,60 ****
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
! test105.out test106.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
--- 54,60 ----
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
! test105.out test106.out test107.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
*** ../vim-7.4.314/src/testdir/Make_os2.mak 2014-04-29 12:15:22.852032651 +0200
--- src/testdir/Make_os2.mak 2014-05-28 13:14:03.616062985 +0200
***************
*** 36,42 ****
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
! test105.out test106.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
--- 36,42 ----
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
! test105.out test106.out test107.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
*** ../vim-7.4.314/src/testdir/Make_vms.mms 2014-04-29 12:15:22.852032651 +0200
--- src/testdir/Make_vms.mms 2014-05-28 13:14:09.724063038 +0200
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2014 Mar 12
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
--- 4,10 ----
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2014 May 28
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
***************
*** 95,101 ****
test90.out test91.out test92.out test93.out test94.out \
test95.out test96.out test98.out test99.out \
test100.out test101.out test103.out test104.out \
! test105.out test106.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
--- 95,101 ----
test90.out test91.out test92.out test93.out test94.out \
test95.out test96.out test98.out test99.out \
test100.out test101.out test103.out test104.out \
! test105.out test106.out test107.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
*** ../vim-7.4.314/src/testdir/Makefile 2014-05-22 13:12:25.650592983 +0200
--- src/testdir/Makefile 2014-05-28 13:14:28.688063204 +0200
***************
*** 32,38 ****
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
! test104.out test105.out test106.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
--- 32,38 ----
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
! test104.out test105.out test106.out test107.out \
test_autoformat_join.out \
test_eval.out \
test_options.out
*** ../vim-7.4.314/src/testdir/test107.in 2014-05-29 11:46:48.728773486 +0200
--- src/testdir/test107.in 2014-05-29 11:40:20.096770084 +0200
***************
*** 0 ****
--- 1,38 ----
+ Tests for adjusting window and contents vim: set ft=vim :
+
+ STARTTEST
+ :so small.vim
+ :new
+ :call setline(1, range(1,256))
+ :let r=[]
+ :func! GetScreenStr(row)
+ : let str = ""
+ : for c in range(1,3)
+ : let str .= nr2char(screenchar(a:row, c))
+ : endfor
+ : return str
+ :endfunc
+ :
+ :exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
+ :let s3=GetScreenStr(1)
+ :wincmd p
+ :call add(r, [line("w0"), s3])
+ :
+ :exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
+ :let s3=GetScreenStr(1)
+ :wincmd p
+ :call add(r, [line("w0"), s3])
+ :
+ :exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
+ :let s3=GetScreenStr(1)
+ ::wincmd p
+ :call add(r, [line("w0"), s3])
+ :
+ :bwipeout!
+ :$put=r
+ :call garbagecollect(1)
+ :"
+ :/^start:/,$wq! test.out
+ ENDTEST
+
+ start:
*** ../vim-7.4.314/src/testdir/test107.ok 2014-05-29 11:46:48.736773486 +0200
--- src/testdir/test107.ok 2014-05-29 11:40:20.096770084 +0200
***************
*** 0 ****
--- 1,4 ----
+ start:
+ [1, '1 ']
+ [50, '50 ']
+ [59, '59 ']
*** ../vim-7.4.314/src/version.c 2014-05-28 21:40:47.092329130 +0200
--- src/version.c 2014-05-29 11:41:47.640770850 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 315,
/**/
--
hundred-and-one symptoms of being an internet addict:
229. You spend so much time thinking what to add on this list.
/// 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.4.316 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.316
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.4.316
Problem: Warning from 64-bit compiler.
Solution: Add type cast. (Mike Williams)
Files: src/ex_getln.c
*** ../vim-7.4.315/src/ex_getln.c 2014-05-07 18:35:25.665216052 +0200
--- src/ex_getln.c 2014-05-29 14:32:53.584860716 +0200
***************
*** 5202,5208 ****
for (i = 0; i < num_p; ++i)
{
((char_u **)ga->ga_data)[ga->ga_len] =
! vim_strnsave(p[i], STRLEN(p[i]));
++ga->ga_len;
}
}
--- 5202,5208 ----
for (i = 0; i < num_p; ++i)
{
((char_u **)ga->ga_data)[ga->ga_len] =
! vim_strnsave(p[i], (int)STRLEN(p[i]));
++ga->ga_len;
}
}
*** ../vim-7.4.315/src/version.c 2014-05-29 11:47:19.808773758 +0200
--- src/version.c 2014-05-29 14:33:29.476861030 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 316,
/**/
--
hundred-and-one symptoms of being an internet addict:
232. You start conversations with, "Have you gotten an ISDN line?"
/// 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.4.317 Normal file
View File

@ -0,0 +1,57 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.317
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.4.317
Problem: Crash when starting gvim. Issue 230.
Solution: Check for a pointer to be NULL. (Christian Brabandt)
Files: src/window.c
*** ../vim-7.4.316/src/window.c 2014-05-28 13:42:59.884078184 +0200
--- src/window.c 2014-06-12 11:36:53.619441640 +0200
***************
*** 4721,4728 ****
win_free_lsize(wp)
win_T *wp;
{
! vim_free(wp->w_lines);
! wp->w_lines = NULL;
}
/*
--- 4721,4732 ----
win_free_lsize(wp)
win_T *wp;
{
! /* TODO: why would wp be NULL here? */
! if (wp != NULL)
! {
! vim_free(wp->w_lines);
! wp->w_lines = NULL;
! }
}
/*
*** ../vim-7.4.316/src/version.c 2014-05-29 14:36:26.156862577 +0200
--- src/version.c 2014-06-12 11:37:37.907443315 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 317,
/**/
--
press CTRL-ALT-DEL for more information
/// 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.4.318 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.318
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.4.318
Problem: Check for whether a highlight group has settings ignores fg and bg
color settings.
Solution: Also check cterm and GUI color settings. (Christian Brabandt)
Files: src/syntax.c
*** ../vim-7.4.317/src/syntax.c 2014-03-23 15:12:29.939264336 +0100
--- src/syntax.c 2014-06-12 12:16:13.851530931 +0200
***************
*** 8043,8050 ****
--- 8043,8056 ----
{
return ( HL_TABLE()[idx].sg_term_attr != 0
|| HL_TABLE()[idx].sg_cterm_attr != 0
+ || HL_TABLE()[idx].sg_cterm_fg != 0
+ || HL_TABLE()[idx].sg_cterm_bg != 0
#ifdef FEAT_GUI
|| HL_TABLE()[idx].sg_gui_attr != 0
+ || HL_TABLE()[idx].sg_gui_fg_name != NULL
+ || HL_TABLE()[idx].sg_gui_bg_name != NULL
+ || HL_TABLE()[idx].sg_gui_sp_name != NULL
+ || HL_TABLE()[idx].sg_font_name != NUL
#endif
|| (check_link && (HL_TABLE()[idx].sg_set & SG_LINK)));
}
*** ../vim-7.4.317/src/version.c 2014-06-12 11:49:42.219470717 +0200
--- src/version.c 2014-06-12 12:17:25.607533645 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 318,
/**/
--
The software said it requires Windows 95 or better, so I installed Linux.
/// 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.4.319 Normal file
View File

@ -0,0 +1,55 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.319
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.4.319
Problem: Crash when putting zero bytes on the clipboard.
Solution: Do not support the utf8_atom target when not using an Unicode
encoding. (Naofumi Honda)
Files: src/ui.c
*** ../vim-7.4.318/src/ui.c 2014-03-23 15:12:29.943264337 +0100
--- src/ui.c 2014-06-12 13:25:21.791687853 +0200
***************
*** 2324,2330 ****
if ( *target != XA_STRING
#ifdef FEAT_MBYTE
&& *target != vimenc_atom
! && *target != utf8_atom
#endif
&& *target != vim_atom
&& *target != text_atom
--- 2324,2330 ----
if ( *target != XA_STRING
#ifdef FEAT_MBYTE
&& *target != vimenc_atom
! && (*target != utf8_atom || !enc_utf8)
#endif
&& *target != vim_atom
&& *target != text_atom
*** ../vim-7.4.318/src/version.c 2014-06-12 12:20:50.195541385 +0200
--- src/version.c 2014-06-12 13:26:09.147689645 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 319,
/**/
--
FIRST HEAD: Oh! quick! get the sword out I want to cut his head off.
THIRD HEAD: Oh, cut your own head off.
SECOND HEAD: Yes - do us all a favour.
"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 ///

143
7.4.320 Normal file
View File

@ -0,0 +1,143 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.320
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.4.320
Problem: Possible crash when an BufLeave autocommand deletes the buffer.
Solution: Check for the window pointer being valid. Postpone freeing the
window until autocommands are done. (Yasuhiro Matsumoto)
Files: src/buffer.c, src/fileio.c, src/globals.h, src/window.c
*** ../vim-7.4.319/src/buffer.c 2014-05-07 16:35:05.029152844 +0200
--- src/buffer.c 2014-06-12 13:47:17.799737639 +0200
***************
*** 371,377 ****
unload_buf = TRUE;
#endif
! if (win != NULL)
{
/* Set b_last_cursor when closing the last window for the buffer.
* Remember the last cursor position and window options of the buffer.
--- 371,381 ----
unload_buf = TRUE;
#endif
! if (win != NULL
! #ifdef FEAT_WINDOWS
! && win_valid(win) /* in case autocommands closed the window */
! #endif
! )
{
/* Set b_last_cursor when closing the last window for the buffer.
* Remember the last cursor position and window options of the buffer.
*** ../vim-7.4.319/src/fileio.c 2014-05-02 15:46:10.731268318 +0200
--- src/fileio.c 2014-06-12 13:53:33.207751842 +0200
***************
*** 9549,9555 ****
/*
* When stopping to execute autocommands, restore the search patterns and
! * the redo buffer. Free buffers in the au_pending_free_buf list.
*/
if (!autocmd_busy)
{
--- 9549,9556 ----
/*
* When stopping to execute autocommands, restore the search patterns and
! * the redo buffer. Free any buffers in the au_pending_free_buf list and
! * free any windows in the au_pending_free_win list.
*/
if (!autocmd_busy)
{
***************
*** 9562,9567 ****
--- 9563,9574 ----
vim_free(au_pending_free_buf);
au_pending_free_buf = b;
}
+ while (au_pending_free_win != NULL)
+ {
+ win_T *w = au_pending_free_win->w_next;
+ vim_free(au_pending_free_win);
+ au_pending_free_win = w;
+ }
}
/*
*** ../vim-7.4.319/src/globals.h 2014-05-28 18:22:37.876225054 +0200
--- src/globals.h 2014-06-12 13:54:29.163753959 +0200
***************
*** 387,396 ****
* which one is preferred, au_new_curbuf is set to it */
EXTERN buf_T *au_new_curbuf INIT(= NULL);
! /* When deleting the buffer and autocmd_busy is TRUE, do not free the buffer
! * but link it in the list starting with au_pending_free_buf, using b_next.
! * Free the buffer when autocmd_busy is set to FALSE. */
EXTERN buf_T *au_pending_free_buf INIT(= NULL);
#endif
#ifdef FEAT_MOUSE
--- 387,398 ----
* which one is preferred, au_new_curbuf is set to it */
EXTERN buf_T *au_new_curbuf INIT(= NULL);
! /* When deleting a buffer/window and autocmd_busy is TRUE, do not free the
! * buffer/window. but link it in the list starting with
! * au_pending_free_buf/ap_pending_free_win, using b_next/w_next.
! * Free the buffer/window when autocmd_busy is being set to FALSE. */
EXTERN buf_T *au_pending_free_buf INIT(= NULL);
+ EXTERN win_T *au_pending_free_win INIT(= NULL);
#endif
#ifdef FEAT_MOUSE
*** ../vim-7.4.319/src/window.c 2014-06-12 11:49:42.219470717 +0200
--- src/window.c 2014-06-12 13:51:54.939748124 +0200
***************
*** 4597,4603 ****
if (wp != aucmd_win)
#endif
win_remove(wp, tp);
! vim_free(wp);
#ifdef FEAT_AUTOCMD
unblock_autocmds();
--- 4597,4609 ----
if (wp != aucmd_win)
#endif
win_remove(wp, tp);
! if (autocmd_busy)
! {
! wp->w_next = au_pending_free_win;
! au_pending_free_win = wp;
! }
! else
! vim_free(wp);
#ifdef FEAT_AUTOCMD
unblock_autocmds();
*** ../vim-7.4.319/src/version.c 2014-06-12 13:28:26.771694851 +0200
--- src/version.c 2014-06-12 13:40:23.507721966 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 320,
/**/
--
Life would be so much easier if we could just look at the source code.
/// 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 ///

71
7.4.321 Normal file
View File

@ -0,0 +1,71 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.321
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.4.321
Problem: Can't build with strawberry perl 5.20 + mingw-w64-4.9.0.
Solution: Define save_strlen. (Ken Takata)
Files: src/if_perl.xs
*** ../vim-7.4.320/src/if_perl.xs 2014-03-12 17:08:01.508807656 +0100
--- src/if_perl.xs 2014-06-12 16:02:25.584044368 +0200
***************
*** 191,196 ****
--- 191,199 ----
# define Perl_pop_scope dll_Perl_pop_scope
# define Perl_push_scope dll_Perl_push_scope
# define Perl_save_int dll_Perl_save_int
+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 20)
+ # define Perl_save_strlen dll_Perl_save_strlen
+ # endif
# define Perl_stack_grow dll_Perl_stack_grow
# define Perl_set_context dll_Perl_set_context
# if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
***************
*** 311,316 ****
--- 314,322 ----
static void (*Perl_pop_scope)(pTHX);
static void (*Perl_push_scope)(pTHX);
static void (*Perl_save_int)(pTHX_ int*);
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 20)
+ static void (*Perl_save_strlen)(pTHX_ STRLEN* ptr);
+ #endif
static SV** (*Perl_stack_grow)(pTHX_ SV**, SV**p, int);
static SV** (*Perl_set_context)(void*);
#if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
***************
*** 440,445 ****
--- 446,454 ----
{"Perl_pop_scope", (PERL_PROC*)&Perl_pop_scope},
{"Perl_push_scope", (PERL_PROC*)&Perl_push_scope},
{"Perl_save_int", (PERL_PROC*)&Perl_save_int},
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 20)
+ {"Perl_save_strlen", (PERL_PROC*)&Perl_save_strlen},
+ #endif
{"Perl_stack_grow", (PERL_PROC*)&Perl_stack_grow},
{"Perl_set_context", (PERL_PROC*)&Perl_set_context},
#if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
*** ../vim-7.4.320/src/version.c 2014-06-12 14:01:27.583769788 +0200
--- src/version.c 2014-06-12 16:02:37.156044806 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 321,
/**/
--
Microsoft's definition of a boolean: TRUE, FALSE, MAYBE
"Embrace and extend"...?
/// 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 ///

92
7.4.322 Normal file
View File

@ -0,0 +1,92 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.322
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.4.322
Problem: Using "msgfmt" is hard coded, cannot use "gmsgfmt".
Solution: Use the msgfmt command found by configure. (Danek Duvall)
Files: src/config.mk.in, src/po/Makefile
*** ../vim-7.4.321/src/config.mk.in 2010-11-03 22:26:24.000000000 +0100
--- src/config.mk.in 2014-06-12 17:41:12.892268607 +0200
***************
*** 164,169 ****
--- 164,171 ----
### If the *.po files are to be translated to *.mo files.
MAKEMO = @MAKEMO@
+ MSGFMT = @MSGFMT@
+
# Make sure that "make first" will run "make all" once configure has done its
# work. This is needed when using the Makefile in the top directory.
first: all
*** ../vim-7.4.321/src/po/Makefile 2013-06-23 13:26:12.000000000 +0200
--- src/po/Makefile 2014-06-12 17:45:19.116277922 +0200
***************
*** 1,5 ****
--- 1,8 ----
# Makefile for the Vim message translations.
+ # Include stuff found by configure.
+ include ../auto/config.mk
+
# TODO make this configurable
# Note: ja.sjis, *.cp1250 and zh_CN.cp936 are only for MS-Windows, they are
# not installed on Unix
***************
*** 133,139 ****
# tools 0.10.37, which use a slightly different .po file format that is not
# compatible with Solaris (and old gettext implementations) unless these are
# set. gettext 0.10.36 will not work!
! MSGFMT = OLD_PO_FILE_INPUT=yes msgfmt -v
XGETTEXT = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes xgettext
MSGMERGE = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes msgmerge
--- 136,142 ----
# tools 0.10.37, which use a slightly different .po file format that is not
# compatible with Solaris (and old gettext implementations) unless these are
# set. gettext 0.10.36 will not work!
! MSGFMTCMD = OLD_PO_FILE_INPUT=yes $(MSGFMT) -v
XGETTEXT = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes xgettext
MSGMERGE = OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes msgmerge
***************
*** 142,148 ****
.PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) $(CONVERTED)
.po.mo:
! $(MSGFMT) -o $@ $<
.po.ck:
$(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $<
--- 145,151 ----
.PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) $(CONVERTED)
.po.mo:
! $(MSGFMTCMD) -o $@ $<
.po.ck:
$(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $<
*** ../vim-7.4.321/src/version.c 2014-06-12 16:03:24.268046589 +0200
--- src/version.c 2014-06-12 17:42:27.584271433 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 322,
/**/
--
If I tell you "you have a beautiful body", would you hold it against me?
/// 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 ///

96
7.4.323 Normal file
View File

@ -0,0 +1,96 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.323
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.4.323
Problem: Substitute() with zero width pattern breaks multi-byte character.
Solution: Take multi-byte character size into account. (Yukihiro Nakadaira)
Files: src/eval.c src/testdir/test69.in, src/testdir/test69.ok
*** ../vim-7.4.322/src/eval.c 2014-05-28 20:31:37.496292805 +0200
--- src/eval.c 2014-06-12 18:34:22.928389291 +0200
***************
*** 24848,24855 ****
if (zero_width == regmatch.startp[0])
{
/* avoid getting stuck on a match with an empty string */
! *((char_u *)ga.ga_data + ga.ga_len) = *tail++;
! ++ga.ga_len;
continue;
}
zero_width = regmatch.startp[0];
--- 24848,24858 ----
if (zero_width == regmatch.startp[0])
{
/* avoid getting stuck on a match with an empty string */
! i = MB_PTR2LEN(tail);
! mch_memmove((char_u *)ga.ga_data + ga.ga_len, tail,
! (size_t)i);
! ga.ga_len += i;
! tail += i;
continue;
}
zero_width = regmatch.startp[0];
*** ../vim-7.4.322/src/testdir/test69.in 2014-02-22 23:49:30.268896843 +0100
--- src/testdir/test69.in 2014-06-12 18:32:43.108385514 +0200
***************
*** 180,185 ****
--- 180,192 ----
byteidxcomp
STARTTEST
+ /^substitute
+ :let y = substitute('', '\zs', 'a', 'g') | put =y
+ ENDTEST
+
+ substitute
+
+ STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out
ENDTEST
*** ../vim-7.4.322/src/testdir/test69.ok 2014-02-22 23:49:30.268896843 +0100
--- src/testdir/test69.ok 2014-06-12 18:32:43.108385514 +0200
***************
*** 160,162 ****
--- 160,166 ----
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]
+
+ substitute
+ aaaa
+
*** ../vim-7.4.322/src/version.c 2014-06-12 18:03:24.940319000 +0200
--- src/version.c 2014-06-12 18:32:08.356384200 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 323,
/**/
--
When danger reared its ugly head,
He bravely turned his tail and fled
Yes, Brave Sir Robin turned about
And gallantly he chickened out
Bravely taking to his feet
He beat a very brave retreat
Bravest of the brave Sir Robin
Petrified of being dead
Soiled his pants then brave Sir Robin
Turned away and fled.
"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 ///

190
7.4.324 Normal file
View File

@ -0,0 +1,190 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.324
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.4.324
Problem: In Ex mode, cyrillic characters are not handled. (Stas Malavin)
Solution: Support multi-byte characters in Ex mode. (Yukihiro Nakadaira)
Files: src/ex_getln.c
*** ../vim-7.4.323/src/ex_getln.c 2014-05-29 14:36:26.156862577 +0200
--- src/ex_getln.c 2014-06-12 19:33:10.440522741 +0200
***************
*** 2188,2193 ****
--- 2188,2194 ----
int vcol = 0;
char_u *p;
int prev_char;
+ int len;
/* Switch cursor on now. This avoids that it happens after the "\n", which
* confuses the system function that computes tabstops. */
***************
*** 2264,2270 ****
{
if (line_ga.ga_len > 0)
{
! --line_ga.ga_len;
goto redraw;
}
continue;
--- 2265,2281 ----
{
if (line_ga.ga_len > 0)
{
! #ifdef FEAT_MBYTE
! if (has_mbyte)
! {
! p = (char_u *)line_ga.ga_data;
! p[line_ga.ga_len] = NUL;
! len = (*mb_head_off)(p, p + line_ga.ga_len - 1) + 1;
! line_ga.ga_len -= len;
! }
! else
! #endif
! --line_ga.ga_len;
goto redraw;
}
continue;
***************
*** 2280,2286 ****
if (c1 == Ctrl_T)
{
! long sw = get_sw_value(curbuf);
p = (char_u *)line_ga.ga_data;
p[line_ga.ga_len] = NUL;
--- 2291,2297 ----
if (c1 == Ctrl_T)
{
! long sw = get_sw_value(curbuf);
p = (char_u *)line_ga.ga_data;
p[line_ga.ga_len] = NUL;
***************
*** 2300,2307 ****
/* redraw the line */
msg_col = startcol;
vcol = 0;
! for (p = (char_u *)line_ga.ga_data;
! p < (char_u *)line_ga.ga_data + line_ga.ga_len; ++p)
{
if (*p == TAB)
{
--- 2311,2319 ----
/* redraw the line */
msg_col = startcol;
vcol = 0;
! p = (char_u *)line_ga.ga_data;
! p[line_ga.ga_len] = NUL;
! while (p < (char_u *)line_ga.ga_data + line_ga.ga_len)
{
if (*p == TAB)
{
***************
*** 2309,2319 ****
{
msg_putchar(' ');
} while (++vcol % 8);
}
else
{
! msg_outtrans_len(p, 1);
! vcol += char2cells(*p);
}
}
msg_clr_eos();
--- 2321,2334 ----
{
msg_putchar(' ');
} while (++vcol % 8);
+ ++p;
}
else
{
! len = MB_PTR2LEN(p);
! msg_outtrans_len(p, len);
! vcol += ptr2cells(p);
! p += len;
}
}
msg_clr_eos();
***************
*** 2362,2368 ****
if (IS_SPECIAL(c1))
c1 = '?';
! ((char_u *)line_ga.ga_data)[line_ga.ga_len] = c1;
if (c1 == '\n')
msg_putchar('\n');
else if (c1 == TAB)
--- 2377,2392 ----
if (IS_SPECIAL(c1))
c1 = '?';
! #ifdef FEAT_MBYTE
! if (has_mbyte)
! len = (*mb_char2bytes)(c1,
! (char_u *)line_ga.ga_data + line_ga.ga_len);
! else
! #endif
! {
! len = 1;
! ((char_u *)line_ga.ga_data)[line_ga.ga_len] = c1;
! }
if (c1 == '\n')
msg_putchar('\n');
else if (c1 == TAB)
***************
*** 2376,2385 ****
else
{
msg_outtrans_len(
! ((char_u *)line_ga.ga_data) + line_ga.ga_len, 1);
vcol += char2cells(c1);
}
! ++line_ga.ga_len;
escaped = FALSE;
windgoto(msg_row, msg_col);
--- 2400,2409 ----
else
{
msg_outtrans_len(
! ((char_u *)line_ga.ga_data) + line_ga.ga_len, len);
vcol += char2cells(c1);
}
! line_ga.ga_len += len;
escaped = FALSE;
windgoto(msg_row, msg_col);
*** ../vim-7.4.323/src/version.c 2014-06-12 18:39:16.828400409 +0200
--- src/version.c 2014-06-12 19:37:40.296532950 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 324,
/**/
--
ZOOT: I'm afraid our life must seem very dull and quiet compared to yours.
We are but eightscore young blondes, all between sixteen and
nineteen-and-a-half, cut off in this castle, with no one to protect us.
Oooh. It is a lonely life ... bathing ... dressing ... undressing ...
making exciting underwear....
"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 ///

62
7.4.325 Normal file
View File

@ -0,0 +1,62 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.325
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.4.325
Problem: When starting the gui and changing the window size the status line
may not be drawn correctly.
Solution: Catch new_win_height() being called recursively. (Christian
Brabandt)
Files: src/window.c
*** ../vim-7.4.324/src/window.c 2014-06-12 14:01:27.579769788 +0200
--- src/window.c 2014-06-13 20:04:59.051863582 +0200
***************
*** 5660,5666 ****
if (wp->w_height > 0)
{
if (wp == curwin)
! validate_cursor(); /* w_wrow needs to be valid */
if (wp->w_wrow != wp->w_prev_fraction_row)
set_fraction(wp);
}
--- 5660,5671 ----
if (wp->w_height > 0)
{
if (wp == curwin)
! /* w_wrow needs to be valid. When setting 'laststatus' this may
! * call win_new_height() recursively. */
! validate_cursor();
! if (wp->w_height != prev_height)
! return; /* Recursive call already changed the size, bail out here
! to avoid the following to mess things up. */
if (wp->w_wrow != wp->w_prev_fraction_row)
set_fraction(wp);
}
*** ../vim-7.4.324/src/version.c 2014-06-12 19:44:45.324549030 +0200
--- src/version.c 2014-06-13 20:06:12.947866378 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 325,
/**/
--
DINGO: And after the spanking ... the oral sex.
GALAHAD: Oh, dear! Well, I...
GIRLS: The oral sex ... The oral sex.
GALAHAD: Well, I suppose I could stay a BIT longer.
"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 ///

51
7.4.326 Normal file
View File

@ -0,0 +1,51 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.326
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.4.326
Problem: Can't build Tiny version. (Elimar Riesebieter)
Solution: Add #ifdef.
Files: src/window.c
*** ../vim-7.4.325/src/window.c 2014-06-13 20:08:41.295871990 +0200
--- src/window.c 2014-06-14 12:51:00.010147123 +0200
***************
*** 4597,4608 ****
--- 4597,4610 ----
if (wp != aucmd_win)
#endif
win_remove(wp, tp);
+ #ifdef FEAT_AUTOCMD
if (autocmd_busy)
{
wp->w_next = au_pending_free_win;
au_pending_free_win = wp;
}
else
+ #endif
vim_free(wp);
#ifdef FEAT_AUTOCMD
*** ../vim-7.4.325/src/version.c 2014-06-13 20:08:41.295871990 +0200
--- src/version.c 2014-06-14 12:53:05.134151857 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 326,
/**/
--
You cannot propel yourself forward by patting yourself on the back.
/// 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 ///

163
7.4.327 Normal file
View File

@ -0,0 +1,163 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.327
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.4.327
Problem: When 'verbose' is set to display the return value of a function,
may get E724 repeatedly.
Solution: Do not give an error for verbose messages. Abort conversion to
string after an error.
Files: src/eval.c
*** ../vim-7.4.326/src/eval.c 2014-06-12 18:39:16.828400409 +0200
--- src/eval.c 2014-06-17 12:48:12.083946675 +0200
***************
*** 134,139 ****
--- 134,142 ----
#define COPYID_INC 2
#define COPYID_MASK (~0x1)
+ /* Abort conversion to string after a recursion error. */
+ static int did_echo_string_emsg = FALSE;
+
/*
* Array to hold the hashtab with variables local to each sourced script.
* Each item holds a variable (nameless) that points to the dict_T.
***************
*** 6686,6691 ****
--- 6689,6696 ----
}
line_breakcheck();
+ if (did_echo_string_emsg) /* recursion error, bail out */
+ break;
}
/* Allocate result buffer with its total size, avoid re-allocation and
***************
*** 7460,7467 ****
if (s != NULL)
ga_concat(&ga, s);
vim_free(tofree);
! if (s == NULL)
break;
}
}
if (todo > 0)
--- 7465,7474 ----
if (s != NULL)
ga_concat(&ga, s);
vim_free(tofree);
! if (s == NULL || did_echo_string_emsg)
break;
+ line_breakcheck();
+
}
}
if (todo > 0)
***************
*** 7619,7627 ****
if (recurse >= DICT_MAXNEST)
{
! EMSG(_("E724: variable nested too deep for displaying"));
*tofree = NULL;
! return NULL;
}
++recurse;
--- 7626,7641 ----
if (recurse >= DICT_MAXNEST)
{
! if (!did_echo_string_emsg)
! {
! /* Only give this message once for a recursive call to avoid
! * flooding the user with errors. And stop iterating over lists
! * and dicts. */
! did_echo_string_emsg = TRUE;
! EMSG(_("E724: variable nested too deep for displaying"));
! }
*tofree = NULL;
! return (char_u *)"{E724}";
}
++recurse;
***************
*** 7689,7695 ****
*tofree = NULL;
}
! --recurse;
return r;
}
--- 7703,7710 ----
*tofree = NULL;
}
! if (--recurse == 0)
! did_echo_string_emsg = FALSE;
return r;
}
***************
*** 23303,23309 ****
--- 23318,23327 ----
msg_outnum((long)argvars[i].vval.v_number);
else
{
+ /* Do not want errors such as E724 here. */
+ ++emsg_off;
s = tv2string(&argvars[i], &tofree, numbuf2, 0);
+ --emsg_off;
if (s != NULL)
{
if (vim_strsize(s) > MSG_BUF_CLEN)
***************
*** 23395,23402 ****
/* The value may be very long. Skip the middle part, so that we
* have some idea how it starts and ends. smsg() would always
! * truncate it at the end. */
s = tv2string(fc->rettv, &tofree, numbuf2, 0);
if (s != NULL)
{
if (vim_strsize(s) > MSG_BUF_CLEN)
--- 23413,23422 ----
/* The value may be very long. Skip the middle part, so that we
* have some idea how it starts and ends. smsg() would always
! * truncate it at the end. Don't want errors such as E724 here. */
! ++emsg_off;
s = tv2string(fc->rettv, &tofree, numbuf2, 0);
+ --emsg_off;
if (s != NULL)
{
if (vim_strsize(s) > MSG_BUF_CLEN)
*** ../vim-7.4.326/src/version.c 2014-06-14 12:53:27.394152699 +0200
--- src/version.c 2014-06-17 12:41:45.019932032 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 327,
/**/
--
TALL KNIGHT: We shall say Ni! again to you if you do not appease us.
ARTHUR: All right! What do you want?
TALL KNIGHT: We want ... a shrubbery!
"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 ///

82
7.4.328 Normal file
View File

@ -0,0 +1,82 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.328
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.4.328
Problem: Selection of inner block is inconsistent.
Solution: Skip indent not only for '}' but all parens. (Tom McDonald)
Files: src/search.c
*** ../vim-7.4.327/src/search.c 2014-03-23 15:12:29.935264336 +0100
--- src/search.c 2014-06-17 12:37:49.075923106 +0200
***************
*** 3608,3628 ****
/*
* Try to exclude the '(', '{', ')', '}', etc. when "include" is FALSE.
! * If the ending '}' is only preceded by indent, skip that indent.
! * But only if the resulting area is not smaller than what we started with.
*/
while (!include)
{
incl(&start_pos);
sol = (curwin->w_cursor.col == 0);
decl(&curwin->w_cursor);
! if (what == '{')
! while (inindent(1))
! {
! sol = TRUE;
! if (decl(&curwin->w_cursor) != 0)
! break;
! }
/*
* In Visual mode, when the resulting area is not bigger than what we
* started with, extend it to the next block, and then exclude again.
--- 3608,3629 ----
/*
* Try to exclude the '(', '{', ')', '}', etc. when "include" is FALSE.
! * If the ending '}', ')' or ']' is only preceded by indent, skip that
! * indent. But only if the resulting area is not smaller than what we
! * started with.
*/
while (!include)
{
incl(&start_pos);
sol = (curwin->w_cursor.col == 0);
decl(&curwin->w_cursor);
! while (inindent(1))
! {
! sol = TRUE;
! if (decl(&curwin->w_cursor) != 0)
! break;
! }
!
/*
* In Visual mode, when the resulting area is not bigger than what we
* started with, extend it to the next block, and then exclude again.
*** ../vim-7.4.327/src/version.c 2014-06-17 12:51:13.207953527 +0200
--- src/version.c 2014-06-17 12:52:35.279956632 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 328,
/**/
--
FATHER: One day, lad, all this will be yours ...
PRINCE: What - the curtains?
"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.4.329 Normal file
View File

@ -0,0 +1,55 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.329
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.4.329
Problem: When moving the cursor and then switching to another window the
previous window isn't scrolled. (Yukihiro Nakadaira)
Solution: Call update_topline() before leaving the window. (Christian
Brabandt)
Files: src/window.c
*** ../vim-7.4.328/src/window.c 2014-06-14 12:53:27.394152699 +0200
--- src/window.c 2014-06-17 13:44:48.812075178 +0200
***************
*** 4250,4255 ****
--- 4250,4260 ----
/* sync undo before leaving the current buffer */
if (undo_sync && curbuf != wp->w_buffer)
u_sync(FALSE);
+
+ /* Might need to scroll the old window before switching, e.g., when the
+ * cursor was moved. */
+ update_topline();
+
/* may have to copy the buffer options when 'cpo' contains 'S' */
if (wp->w_buffer != curbuf)
buf_copy_options(wp->w_buffer, BCO_ENTER | BCO_NOHELP);
*** ../vim-7.4.328/src/version.c 2014-06-17 13:50:06.148087184 +0200
--- src/version.c 2014-06-17 13:51:09.960089598 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 329,
/**/
--
FATHER: Make sure the Prince doesn't leave this room until I come and
get him.
FIRST GUARD: Not ... to leave the room ... even if you come and get him.
FATHER: No. Until I come and get him.
SECOND GUARD: Hic.
"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 ///

1131
7.4.330 Normal file

File diff suppressed because it is too large Load Diff

47
7.4.331 Normal file
View File

@ -0,0 +1,47 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.331
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.4.331
Problem: Relative numbering not updated after a linewise yank. Issue 235.
Solution: Redraw after the yank. (Christian Brabandt)
Files: src/ops.c
*** ../vim-7.4.330/src/ops.c 2014-04-29 15:55:39.443801021 +0200
--- src/ops.c 2014-06-17 18:14:36.584687585 +0200
***************
*** 3150,3155 ****
--- 3150,3157 ----
vim_free(y_current->y_array);
y_current = curr;
}
+ if (curwin->w_p_rnu)
+ redraw_later(SOME_VALID); /* cursor moved to start */
if (mess) /* Display message about yank? */
{
if (yanktype == MCHAR
*** ../vim-7.4.330/src/version.c 2014-06-17 17:48:21.784628008 +0200
--- src/version.c 2014-06-17 18:13:35.824685286 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 331,
/**/
--
CONCORDE: Message for you, sir.
He falls forward revealing the arrow with the note.
"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 ///

118
7.4.332 Normal file
View File

@ -0,0 +1,118 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.332
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.4.332
Problem: GTK: When a sign icon doesn't fit exactly there can be ugly gaps.
Solution: Scale the sign to fit when the aspect ratio is not too far off.
(Christian Brabandt)
Files: src/gui_gtk_x11.c
*** ../vim-7.4.331/src/gui_gtk_x11.c 2014-05-13 20:19:53.573808877 +0200
--- src/gui_gtk_x11.c 2014-06-17 18:44:39.900755807 +0200
***************
*** 5965,5991 ****
* Decide whether we need to scale. Allow one pixel of border
* width to be cut off, in order to avoid excessive scaling for
* tiny differences in font size.
*/
need_scale = (width > SIGN_WIDTH + 2
! || height > SIGN_HEIGHT + 2
|| (width < 3 * SIGN_WIDTH / 4
&& height < 3 * SIGN_HEIGHT / 4));
if (need_scale)
{
! double aspect;
/* Keep the original aspect ratio */
aspect = (double)height / (double)width;
width = (double)SIGN_WIDTH * SIGN_ASPECT / aspect;
width = MIN(width, SIGN_WIDTH);
! height = (double)width * aspect;
! /* This doesn't seem to be worth caching, and doing so
! * would complicate the code quite a bit. */
! sign = gdk_pixbuf_scale_simple(sign, width, height,
! GDK_INTERP_BILINEAR);
! if (sign == NULL)
! return; /* out of memory */
}
/* The origin is the upper-left corner of the pixmap. Therefore
--- 5965,6012 ----
* Decide whether we need to scale. Allow one pixel of border
* width to be cut off, in order to avoid excessive scaling for
* tiny differences in font size.
+ * Do scale to fit the height to avoid gaps because of linespacing.
*/
need_scale = (width > SIGN_WIDTH + 2
! || height != SIGN_HEIGHT
|| (width < 3 * SIGN_WIDTH / 4
&& height < 3 * SIGN_HEIGHT / 4));
if (need_scale)
{
! double aspect;
! int w = width;
! int h = height;
/* Keep the original aspect ratio */
aspect = (double)height / (double)width;
width = (double)SIGN_WIDTH * SIGN_ASPECT / aspect;
width = MIN(width, SIGN_WIDTH);
! if (((double)(MAX(height, SIGN_HEIGHT)) /
! (double)(MIN(height, SIGN_HEIGHT))) < 1.15)
! {
! /* Change the aspect ratio by at most 15% to fill the
! * available space completly. */
! height = (double)SIGN_HEIGHT * SIGN_ASPECT / aspect;
! height = MIN(height, SIGN_HEIGHT);
! }
! else
! height = (double)width * aspect;
! if (w == width && h == height)
! {
! /* no change in dimensions; don't decrease reference counter
! * (below) */
! need_scale = FALSE;
! }
! else
! {
! /* This doesn't seem to be worth caching, and doing so would
! * complicate the code quite a bit. */
! sign = gdk_pixbuf_scale_simple(sign, width, height,
! GDK_INTERP_BILINEAR);
! if (sign == NULL)
! return; /* out of memory */
! }
}
/* The origin is the upper-left corner of the pixmap. Therefore
*** ../vim-7.4.331/src/version.c 2014-06-17 18:16:08.420691059 +0200
--- src/version.c 2014-06-17 18:46:49.784760721 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 332,
/**/
--
"To whoever finds this note -
I have been imprisoned by my father who wishes me to marry
against my will. Please please please please come and rescue me.
I am in the tall tower of Swamp Castle."
SIR LAUNCELOT's eyes light up with holy inspiration.
"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 ///

72
7.4.333 Normal file
View File

@ -0,0 +1,72 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.333
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.4.333
Problem: Compiler warning for unused function.
Solution: Put the function inside the #ifdef.
Files: src/screen.c
*** ../vim-7.4.332/src/screen.c 2014-06-17 17:48:21.784628008 +0200
--- src/screen.c 2014-06-17 23:16:24.121372619 +0200
***************
*** 139,145 ****
static void redraw_custom_statusline __ARGS((win_T *wp));
#endif
#ifdef FEAT_SEARCH_EXTRA
! #define SEARCH_HL_PRIORITY 0
static void start_search_hl __ARGS((void));
static void end_search_hl __ARGS((void));
static void init_search_hl __ARGS((win_T *wp));
--- 139,145 ----
static void redraw_custom_statusline __ARGS((win_T *wp));
#endif
#ifdef FEAT_SEARCH_EXTRA
! # define SEARCH_HL_PRIORITY 0
static void start_search_hl __ARGS((void));
static void end_search_hl __ARGS((void));
static void init_search_hl __ARGS((win_T *wp));
***************
*** 7476,7482 ****
}
}
}
- #endif
static int
next_search_hl_pos(shl, lnum, posmatch, mincol)
--- 7476,7481 ----
***************
*** 7533,7538 ****
--- 7532,7538 ----
}
return FALSE;
}
+ #endif
static void
screen_start_highlight(attr)
*** ../vim-7.4.332/src/version.c 2014-06-17 18:46:57.880761027 +0200
--- src/version.c 2014-06-17 23:17:14.949374542 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 333,
/**/
--
You had connectors? Eeee, when I were a lad we 'ad to carry the
bits between the computer and the terminal with a spoon...
/// 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 ///

112
7.4.334 Normal file
View File

@ -0,0 +1,112 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.334
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.4.334 (after 7.4.330)
Problem: Unitialized variables, causing some problems.
Solution: Initialize the variables. (Dominique Pelle)
Files: src/screen.c, src/window.c
*** ../vim-7.4.333/src/screen.c 2014-06-17 23:17:56.489376113 +0200
--- src/screen.c 2014-06-18 21:16:23.560368846 +0200
***************
*** 7363,7369 ****
match_T *shl; /* points to search_hl or a match */
linenr_T lnum;
colnr_T mincol; /* minimal column for a match */
! matchitem_T *cur; /* to retrieve match postions if any */
{
linenr_T l;
colnr_T matchcol;
--- 7363,7369 ----
match_T *shl; /* points to search_hl or a match */
linenr_T lnum;
colnr_T mincol; /* minimal column for a match */
! matchitem_T *cur; /* to retrieve match positions if any */
{
linenr_T l;
colnr_T matchcol;
***************
*** 7458,7466 ****
}
}
else if (cur != NULL)
- {
nmatched = next_search_hl_pos(shl, lnum, &(cur->pos), matchcol);
! }
if (nmatched == 0)
{
shl->lnum = 0; /* no match found */
--- 7458,7466 ----
}
}
else if (cur != NULL)
nmatched = next_search_hl_pos(shl, lnum, &(cur->pos), matchcol);
! else
! nmatched = 0;
if (nmatched == 0)
{
shl->lnum = 0; /* no match found */
*** ../vim-7.4.333/src/window.c 2014-06-17 17:48:21.784628008 +0200
--- src/window.c 2014-06-18 21:12:15.232359452 +0200
***************
*** 6809,6815 ****
}
/* Build new match. */
! m = (matchitem_T *)alloc(sizeof(matchitem_T));
m->id = id;
m->priority = prio;
m->pattern = pat == NULL ? NULL : vim_strsave(pat);
--- 6809,6815 ----
}
/* Build new match. */
! m = (matchitem_T *)alloc_clear(sizeof(matchitem_T));
m->id = id;
m->priority = prio;
m->pattern = pat == NULL ? NULL : vim_strsave(pat);
***************
*** 6835,6841 ****
int len = 1;
list_T *subl;
listitem_T *subli;
! int error;
if (li == NULL)
{
--- 6835,6841 ----
int len = 1;
list_T *subl;
listitem_T *subli;
! int error = FALSE;
if (li == NULL)
{
*** ../vim-7.4.333/src/version.c 2014-06-17 23:17:56.493376113 +0200
--- src/version.c 2014-06-18 21:14:16.516364040 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 334,
/**/
--
You were lucky. We lived for three months in a brown paper bag in a
septic tank. We used to have to get up at six o'clock in the morning,
clean the bag, eat a crust of stale bread, go to work down mill for
fourteen hours a day week in-week out. When we got home, our Dad
would thrash us to sleep with his belt!
/// 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 ///

108
7.4.335 Normal file
View File

@ -0,0 +1,108 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.335
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.4.335
Problem: No digraph for the new rouble sign.
Solution: Add the digraphs =R and =P.
Files: src/digraph.c, runtime/doc/digraph.txt
*** ../vim-7.4.334/src/digraph.c 2012-01-10 21:57:16.000000000 +0100
--- src/digraph.c 2014-06-18 21:36:46.148415099 +0200
***************
*** 1425,1430 ****
--- 1425,1432 ----
{'W', '=', 0x20a9},
{'=', 'e', 0x20ac}, /* euro */
{'E', 'u', 0x20ac}, /* euro */
+ {'=', 'R', 0x20bd}, /* rouble */
+ {'=', 'P', 0x20bd}, /* rouble */
{'o', 'C', 0x2103},
{'c', 'o', 0x2105},
{'o', 'F', 0x2109},
*** ../vim-7.4.334/runtime/doc/digraph.txt 2013-08-10 13:24:52.000000000 +0200
--- runtime/doc/digraph.txt 2014-06-18 21:35:21.684411903 +0200
***************
*** 147,153 ****
Two 2 Hook
Nine 9 Horn
! Equals = Cyrillic
Asterisk * Greek
Percent sign % Greek/Cyrillic special
Plus + smalls: Arabic, capitals: Hebrew
--- 147,153 ----
Two 2 Hook
Nine 9 Horn
! Equals = Cyrillic (= used as second char)
Asterisk * Greek
Percent sign % Greek/Cyrillic special
Plus + smalls: Arabic, capitals: Hebrew
***************
*** 170,175 ****
--- 170,180 ----
used for the euro sign, while both of them are the character 164, 0xa4. For
compatibility with zsh Eu can also be used for the euro sign.
+ ROUBLE
+
+ The rouble sign was added in 2014 as 0x20bd. Vim supports the digraphs =R and
+ =P for this. Note that R= and P= are other characters.
+
*digraph-table*
char digraph hex dec official name ~
^@ NU 0x00 0 NULL (NUL)
***************
*** 966,971 ****
--- 971,978 ----
₧ Pt 20A7 8359 PESETA SIGN
₩ W= 20A9 8361 WON SIGN
€ Eu 20AC 8364 EURO SIGN
+ ₽ =R 20AC 8381 ROUBLE SIGN
+ ₽ =P 20AC 8381 ROUBLE SIGN
℃ oC 2103 8451 DEGREE CELSIUS
℅ co 2105 8453 CARE OF
℉ oF 2109 8457 DEGREE FAHRENHEIT
***************
*** 1077,1083 ****
⊥ -T 22A5 8869 UP TACK
⋅ .P 22C5 8901 DOT OPERATOR
⋮ :3 22EE 8942 VERTICAL ELLIPSIS
! ⋯ .3 22EF 8943 MIDLINE HORIZONTAL ELLIPSIS
⌂ Eh 2302 8962 HOUSE
⌈ <7 2308 8968 LEFT CEILING
⌉ >7 2309 8969 RIGHT CEILING
--- 1084,1090 ----
⊥ -T 22A5 8869 UP TACK
⋅ .P 22C5 8901 DOT OPERATOR
⋮ :3 22EE 8942 VERTICAL ELLIPSIS
! ⋯ .3 22EF 8943 MIDLINE HORIZONTAL ELLIPSIS
⌂ Eh 2302 8962 HOUSE
⌈ <7 2308 8968 LEFT CEILING
⌉ >7 2309 8969 RIGHT CEILING
*** ../vim-7.4.334/src/version.c 2014-06-18 21:20:07.240377308 +0200
--- src/version.c 2014-06-18 21:36:14.632413906 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 335,
/**/
--
You got to work at a mill? Lucky! I got sent back to work in the
acid-mines for my daily crust of stale bread... which not even the
birds would eat.
/// 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 ///

100
7.4.336 Normal file
View File

@ -0,0 +1,100 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.336
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.4.336
Problem: Setting 'history' to a big value causes out-of-memory errors.
Solution: Limit the value to 10000. (Hirohito Higashi)
Files: runtime/doc/options.txt, src/option.c
*** ../vim-7.4.335/runtime/doc/options.txt 2014-05-28 21:40:47.088329130 +0200
--- runtime/doc/options.txt 2014-06-25 11:44:16.985950668 +0200
***************
*** 3920,3931 ****
NOTE: This option is reset when 'compatible' is set.
*'history'* *'hi'*
! 'history' 'hi' number (Vim default: 20, Vi default: 0)
global
{not in Vi}
A history of ":" commands, and a history of previous search patterns
! are remembered. This option decides how many entries may be stored in
each of these histories (see |cmdline-editing|).
NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.
--- 3920,3932 ----
NOTE: This option is reset when 'compatible' is set.
*'history'* *'hi'*
! 'history' 'hi' number (Vim default: 50, Vi default: 0)
global
{not in Vi}
A history of ":" commands, and a history of previous search patterns
! is remembered. This option decides how many entries may be stored in
each of these histories (see |cmdline-editing|).
+ The maximum value is 10000.
NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.
*** ../vim-7.4.335/src/option.c 2014-05-13 12:16:44.037555110 +0200
--- src/option.c 2014-06-25 11:44:48.349951855 +0200
***************
*** 1392,1398 ****
SCRIPTID_INIT},
{"history", "hi", P_NUM|P_VIM,
(char_u *)&p_hi, PV_NONE,
! {(char_u *)0L, (char_u *)20L} SCRIPTID_INIT},
{"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM,
#ifdef FEAT_RIGHTLEFT
(char_u *)&p_hkmap, PV_NONE,
--- 1392,1398 ----
SCRIPTID_INIT},
{"history", "hi", P_NUM|P_VIM,
(char_u *)&p_hi, PV_NONE,
! {(char_u *)0L, (char_u *)50L} SCRIPTID_INIT},
{"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM,
#ifdef FEAT_RIGHTLEFT
(char_u *)&p_hkmap, PV_NONE,
***************
*** 8595,8600 ****
--- 8595,8605 ----
errmsg = e_positive;
p_hi = 0;
}
+ else if (p_hi > 10000)
+ {
+ errmsg = e_invarg;
+ p_hi = 10000;
+ }
if (p_re < 0 || p_re > 2)
{
errmsg = e_invarg;
*** ../vim-7.4.335/src/version.c 2014-06-18 21:38:12.216418355 +0200
--- src/version.c 2014-06-25 11:45:08.141952604 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 336,
/**/
--
ARTHUR: Well, it doesn't matter. Will you go and tell your master that
Arthur from the Court of Camelot is here.
GUARD #1: Listen, in order to maintain air-speed velocity, a swallow
needs to beat its wings 43 times every second, right?
ARTHUR: Please!
The Quest for the Holy Grail (Monty Python)
/// 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 ///

51
7.4.337 Normal file
View File

@ -0,0 +1,51 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.337
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.4.337
Problem: When there is an error preparing to edit the command line, the
command won't be executed. (Hirohito Higashi)
Solution: Reset did_emsg before editing.
Files: src/ex_getln.c
*** ../vim-7.4.336/src/ex_getln.c 2014-06-12 19:44:45.324549030 +0200
--- src/ex_getln.c 2014-06-25 12:06:38.018001402 +0200
***************
*** 342,347 ****
--- 342,354 ----
do_digraph(-1); /* init digraph typeahead */
#endif
+ /* If something above caused an error, reset the flags, we do want to type
+ * and execute commands. Display may be messed up a bit. */
+ if (did_emsg)
+ redrawcmd();
+ did_emsg = FALSE;
+ got_int = FALSE;
+
/*
* Collect the command string, handling editing keys.
*/
*** ../vim-7.4.336/src/version.c 2014-06-25 11:48:40.733960646 +0200
--- src/version.c 2014-06-25 12:24:39.442042313 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 337,
/**/
--
Computers are not intelligent. They only think they are.
/// 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 ///

1830
7.4.338 Normal file

File diff suppressed because it is too large Load Diff

79
7.4.339 Normal file
View File

@ -0,0 +1,79 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.339
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.4.339
Problem: Local function is available globally.
Solution: Add "static".
Files: src/option.c, src/proto/option.pro
*** ../vim-7.4.338/src/option.c 2014-06-25 14:39:35.110348584 +0200
--- src/option.c 2014-06-25 14:42:33.986355351 +0200
***************
*** 3074,3079 ****
--- 3074,3080 ----
static char_u *get_varp_scope __ARGS((struct vimoption *p, int opt_flags));
static char_u *get_varp __ARGS((struct vimoption *));
static void option_value2string __ARGS((struct vimoption *, int opt_flags));
+ static void check_winopt __ARGS((winopt_T *wop));
static int wc_use_keyname __ARGS((char_u *varp, long *wcp));
#ifdef FEAT_LANGMAP
static void langmap_init __ARGS((void));
***************
*** 10305,10311 ****
/*
* Check for NULL pointers in a winopt_T and replace them with empty_option.
*/
! void
check_winopt(wop)
winopt_T *wop UNUSED;
{
--- 10306,10312 ----
/*
* Check for NULL pointers in a winopt_T and replace them with empty_option.
*/
! static void
check_winopt(wop)
winopt_T *wop UNUSED;
{
*** ../vim-7.4.338/src/proto/option.pro 2014-06-25 14:39:35.110348584 +0200
--- src/proto/option.pro 2014-06-25 14:42:38.702355530 +0200
***************
*** 40,46 ****
void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
void check_win_options __ARGS((win_T *win));
- void check_winopt __ARGS((winopt_T *wop));
void clear_winopt __ARGS((winopt_T *wop));
void buf_copy_options __ARGS((buf_T *buf, int flags));
void reset_modifiable __ARGS((void));
--- 40,45 ----
*** ../vim-7.4.338/src/version.c 2014-06-25 14:39:35.114348584 +0200
--- src/version.c 2014-06-25 14:43:41.502357905 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 339,
/**/
--
MORTICIAN: What?
CUSTOMER: Nothing -- here's your nine pence.
DEAD PERSON: I'm not dead!
MORTICIAN: Here -- he says he's not dead!
CUSTOMER: Yes, he is.
DEAD PERSON: I'm not!
The Quest for the Holy Grail (Monty Python)
/// 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 ///

97
7.4.340 Normal file
View File

@ -0,0 +1,97 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.340
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.4.340
Problem: Error from sed about illegal bytes when installing Vim.
Solution: Prepend LC_ALL=C. (Itchyny)
Files: src/installman.sh
*** ../vim-7.4.339/src/installman.sh 2010-05-15 13:04:07.000000000 +0200
--- src/installman.sh 2014-06-25 14:54:11.742381748 +0200
***************
*** 43,52 ****
fi
fi
if test $what = "install"; then
# vim.1
echo installing $destdir/$exename.1
! sed -e s+/usr/local/lib/vim+$vimloc+ \
-e s+$vimloc/doc+$helpsubloc+ \
-e s+$vimloc/print+$printsubloc+ \
-e s+$vimloc/syntax+$synsubloc+ \
--- 43,55 ----
fi
fi
+ # Note: setting LC_ALL to C is required to avoid illegal byte errors from sed
+ # on some systems.
+
if test $what = "install"; then
# vim.1
echo installing $destdir/$exename.1
! LC_ALL=C sed -e s+/usr/local/lib/vim+$vimloc+ \
-e s+$vimloc/doc+$helpsubloc+ \
-e s+$vimloc/print+$printsubloc+ \
-e s+$vimloc/syntax+$synsubloc+ \
***************
*** 64,70 ****
# vimtutor.1
echo installing $destdir/$exename""tutor.1
! sed -e s+/usr/local/lib/vim+$vimloc+ \
-e s+$vimloc/tutor+$tutorsubloc+ \
$helpsource/vimtutor$langadd.1 > $destdir/$exename""tutor.1
chmod $manmod $destdir/$exename""tutor.1
--- 67,73 ----
# vimtutor.1
echo installing $destdir/$exename""tutor.1
! LC_ALL=C sed -e s+/usr/local/lib/vim+$vimloc+ \
-e s+$vimloc/tutor+$tutorsubloc+ \
$helpsource/vimtutor$langadd.1 > $destdir/$exename""tutor.1
chmod $manmod $destdir/$exename""tutor.1
***************
*** 76,82 ****
# evim.1
echo installing $destdir/$evimname.1
! sed -e s+/usr/local/lib/vim+$vimloc+ \
-e s+$vimloc/evim.vim+$scriptloc/evim.vim+ \
$helpsource/evim$langadd.1 > $destdir/$evimname.1
chmod $manmod $destdir/$evimname.1
--- 79,85 ----
# evim.1
echo installing $destdir/$evimname.1
! LC_ALL=C sed -e s+/usr/local/lib/vim+$vimloc+ \
-e s+$vimloc/evim.vim+$scriptloc/evim.vim+ \
$helpsource/evim$langadd.1 > $destdir/$evimname.1
chmod $manmod $destdir/$evimname.1
*** ../vim-7.4.339/src/version.c 2014-06-25 14:44:04.458358774 +0200
--- src/version.c 2014-06-25 14:55:14.198384111 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 340,
/**/
--
DEAD PERSON: I'm getting better!
CUSTOMER: No, you're not -- you'll be stone dead in a moment.
MORTICIAN: Oh, I can't take him like that -- it's against regulations.
The Quest for the Holy Grail (Monty Python)
/// 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 ///

178
7.4.341 Normal file
View File

@ -0,0 +1,178 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.341
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.4.341
Problem: sort() doesn't handle numbers well.
Solution: Add an argument to specify sorting on numbers. (Christian Brabandt)
Files: runtime/doc/eval.txt, src/eval.c, src/testdir/test55.in,
src/testdir/test55.ok
*** ../vim-7.4.340/runtime/doc/eval.txt 2014-06-25 14:39:35.094348583 +0200
--- runtime/doc/eval.txt 2014-06-25 17:05:50.606680574 +0200
***************
*** 5618,5628 ****
If you want a list to remain unmodified make a copy first: >
:let sortedlist = sort(copy(mylist))
- < Uses the string representation of each item to sort on.
- Numbers sort after Strings, |Lists| after Numbers.
- For sorting text in the current buffer use |:sort|.
! When {func} is given and it is one then case is ignored.
When {func} is a |Funcref| or a function name, this function
is called to compare items. The function is invoked with two
items as argument and must return zero if they are equal, 1 or
--- 5628,5647 ----
If you want a list to remain unmodified make a copy first: >
:let sortedlist = sort(copy(mylist))
! < When {func} is omitted, is empty or zero, then sort() uses the
! string representation of each item to sort on. Numbers sort
! after Strings, |Lists| after Numbers. For sorting text in the
! current buffer use |:sort|.
!
! When {func} is given and it is is '1' or 'i' then case is
! ignored.
!
! When {func} is given and it is 'n' then all items will be
! sorted numerical (Implementation detail: This uses the
! strtod() function to parse numbers, Strings, Lists, Dicts and
! Funcrefs will be considered as being 0).
!
When {func} is a |Funcref| or a function name, this function
is called to compare items. The function is invoked with two
items as argument and must return zero if they are equal, 1 or
*** ../vim-7.4.340/src/eval.c 2014-06-17 17:48:21.776628008 +0200
--- src/eval.c 2014-06-25 17:23:05.466719724 +0200
***************
*** 17330,17335 ****
--- 17330,17336 ----
item_compare2 __ARGS((const void *s1, const void *s2));
static int item_compare_ic;
+ static int item_compare_numeric;
static char_u *item_compare_func;
static dict_T *item_compare_selfdict;
static int item_compare_func_err;
***************
*** 17359,17368 ****
p1 = (char_u *)"";
if (p2 == NULL)
p2 = (char_u *)"";
! if (item_compare_ic)
! res = STRICMP(p1, p2);
else
! res = STRCMP(p1, p2);
vim_free(tofree1);
vim_free(tofree2);
return res;
--- 17360,17379 ----
p1 = (char_u *)"";
if (p2 == NULL)
p2 = (char_u *)"";
! if (!item_compare_numeric)
! {
! if (item_compare_ic)
! res = STRICMP(p1, p2);
! else
! res = STRCMP(p1, p2);
! }
else
! {
! double n1, n2;
! n1 = strtod((char *)p1, (char **)&p1);
! n2 = strtod((char *)p2, (char **)&p2);
! res = n1 == n2 ? 0 : n1 > n2 ? 1 : -1;
! }
vim_free(tofree1);
vim_free(tofree2);
return res;
***************
*** 17439,17444 ****
--- 17450,17456 ----
return; /* short list sorts pretty quickly */
item_compare_ic = FALSE;
+ item_compare_numeric = FALSE;
item_compare_func = NULL;
item_compare_selfdict = NULL;
if (argvars[1].v_type != VAR_UNKNOWN)
***************
*** 17457,17462 ****
--- 17469,17487 ----
item_compare_ic = TRUE;
else
item_compare_func = get_tv_string(&argvars[1]);
+ if (item_compare_func != NULL)
+ {
+ if (STRCMP(item_compare_func, "n") == 0)
+ {
+ item_compare_func = NULL;
+ item_compare_numeric = TRUE;
+ }
+ else if (STRCMP(item_compare_func, "i") == 0)
+ {
+ item_compare_func = NULL;
+ item_compare_ic = TRUE;
+ }
+ }
}
if (argvars[2].v_type != VAR_UNKNOWN)
*** ../vim-7.4.340/src/testdir/test55.in 2014-03-25 18:23:27.062087691 +0100
--- src/testdir/test55.in 2014-06-25 17:20:47.006714486 +0200
***************
*** 332,337 ****
--- 332,342 ----
:$put =string(reverse(sort(l)))
:$put =string(sort(reverse(sort(l))))
:$put =string(uniq(sort(l)))
+ :let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'foo', 'FOOBAR',{}, []]
+ :$put =string(sort(copy(l), 'n'))
+ :$put =string(sort(copy(l), 1))
+ :$put =string(sort(copy(l), 'i'))
+ :$put =string(sort(copy(l)))
:"
:" splitting a string to a List
:$put =string(split(' aa bb '))
*** ../vim-7.4.340/src/testdir/test55.ok 2014-03-25 18:23:27.062087691 +0100
--- src/testdir/test55.ok 2014-06-25 17:23:31.382720704 +0200
***************
*** 101,106 ****
--- 101,110 ----
[[0, 1, 2], [0, 1, 2], 4, 2, 2, 1.5, 'xaaa', 'x8', 'foo6', 'foo', 'foo', 'A11', '-0']
['-0', 'A11', 'foo', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 2, 4, [0, 1, 2], [0, 1, 2]]
['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 4, [0, 1, 2]]
+ [-1, 0, 0, 'foo', 'FOOBAR', {}, [], 1.0e-15, 0.22, 7, 9, 12, 18, 22, 255]
+ ['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
+ ['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
+ ['FOOBAR', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
*** ../vim-7.4.340/src/version.c 2014-06-25 15:02:29.250400570 +0200
--- src/version.c 2014-06-25 16:46:45.438637250 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 341,
/**/
--
We do not stumble over mountains, but over molehills.
Confucius
/// 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 ///

67
7.4.342 Normal file
View File

@ -0,0 +1,67 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.342
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.4.342
Problem: Clang gives warnings.
Solution: Add an else block. (Dominique Pelle)
Files: src/gui_beval.c
*** ../vim-7.4.341/src/gui_beval.c 2013-05-06 04:06:04.000000000 +0200
--- src/gui_beval.c 2014-06-25 17:40:40.818759649 +0200
***************
*** 1193,1203 ****
XmFontList fl;
fl = gui_motif_fontset2fontlist(&gui.tooltip_fontset);
! if (fl != NULL)
{
! XmStringExtent(fl, s, &w, &h);
! XmFontListFree(fl);
}
}
w += gui.border_offset << 1;
h += gui.border_offset << 1;
--- 1193,1205 ----
XmFontList fl;
fl = gui_motif_fontset2fontlist(&gui.tooltip_fontset);
! if (fl == NULL)
{
! XmStringFree(s);
! return;
}
+ XmStringExtent(fl, s, &w, &h);
+ XmFontListFree(fl);
}
w += gui.border_offset << 1;
h += gui.border_offset << 1;
*** ../vim-7.4.341/src/version.c 2014-06-25 17:31:04.942737863 +0200
--- src/version.c 2014-06-25 17:40:56.902760258 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 342,
/**/
--
CUSTOMER: Well, can you hang around a couple of minutes? He won't be
long.
MORTICIAN: Naaah, I got to go on to Robinson's -- they've lost nine today.
CUSTOMER: Well, when is your next round?
MORTICIAN: Thursday.
DEAD PERSON: I think I'll go for a walk.
The Quest for the Holy Grail (Monty Python)
/// 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 ///

60
7.4.343 Normal file
View File

@ -0,0 +1,60 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.343
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.4.343
Problem: matchdelete() does not always update the right lines.
Solution: Fix off-by-one error. (Ozaki Kiichi)
Files: src/window.c
*** ../vim-7.4.342/src/window.c 2014-06-18 21:20:07.236377308 +0200
--- src/window.c 2014-06-25 17:55:34.190793447 +0200
***************
*** 6891,6898 ****
}
if (toplnum == 0 || lnum < toplnum)
toplnum = lnum;
! if (botlnum == 0 || lnum > botlnum)
! botlnum = lnum;
}
/* Calculate top and bottom lines for redrawing area */
--- 6891,6898 ----
}
if (toplnum == 0 || lnum < toplnum)
toplnum = lnum;
! if (botlnum == 0 || lnum >= botlnum)
! botlnum = lnum + 1;
}
/* Calculate top and bottom lines for redrawing area */
*** ../vim-7.4.342/src/version.c 2014-06-25 17:44:45.850768919 +0200
--- src/version.c 2014-06-25 17:54:14.258790423 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 343,
/**/
--
CUSTOMER: You're not fooling anyone y'know. Look, isn't there something
you can do?
DEAD PERSON: I feel happy... I feel happy.
[whop]
CUSTOMER: Ah, thanks very much.
MORTICIAN: Not at all. See you on Thursday.
CUSTOMER: Right.
The Quest for the Holy Grail (Monty Python)
/// 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 ///

180
7.4.344 Normal file
View File

@ -0,0 +1,180 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.344
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.4.344
Problem: Unessecary initializations and other things related to
matchaddpos().
Solution: Code cleanup. (Alexey Radkov)
Files: runtime/doc/eval.txt, src/screen.c, src/window.c
*** ../vim-7.4.343/runtime/doc/eval.txt 2014-06-25 17:31:04.934737863 +0200
--- runtime/doc/eval.txt 2014-06-25 18:08:50.790823583 +0200
***************
*** 4353,4369 ****
required, for example to highlight matching parentheses.
The list {pos} can contain one of these items:
! - A number. This while line will be highlighted. The first
line has number 1.
- A list with one number, e.g., [23]. The whole line with this
number will be highlighted.
- A list with two numbers, e.g., [23, 11]. The first number is
! the line number, the second one the column number (first
! column is 1). The character at this position will be
! highlighted.
- A list with three numbers, e.g., [23, 11, 3]. As above, but
! the third number gives the length of the highlight in screen
! cells.
The maximum number of positions is 8.
--- 4391,4407 ----
required, for example to highlight matching parentheses.
The list {pos} can contain one of these items:
! - A number. This whole line will be highlighted. The first
line has number 1.
- A list with one number, e.g., [23]. The whole line with this
number will be highlighted.
- A list with two numbers, e.g., [23, 11]. The first number is
! the line number, the second one is the column number (first
! column is 1, the value must correspond to the byte index as
! |col()| would return). The character at this position will
! be highlighted.
- A list with three numbers, e.g., [23, 11, 3]. As above, but
! the third number gives the length of the highlight in bytes.
The maximum number of positions is 8.
*** ../vim-7.4.343/src/screen.c 2014-06-25 14:39:35.110348584 +0200
--- src/screen.c 2014-06-25 18:10:11.906826652 +0200
***************
*** 7531,7537 ****
colnr_T mincol; /* minimal column for a match */
{
int i;
! int bot = -1;
shl->lnum = 0;
for (i = posmatch->cur; i < MAXPOSMATCH; i++)
--- 7531,7537 ----
colnr_T mincol; /* minimal column for a match */
{
int i;
! int bot = -1;
shl->lnum = 0;
for (i = posmatch->cur; i < MAXPOSMATCH; i++)
*** ../vim-7.4.343/src/window.c 2014-06-25 17:58:07.346799241 +0200
--- src/window.c 2014-06-25 18:10:45.698827930 +0200
***************
*** 6813,6819 ****
m->id = id;
m->priority = prio;
m->pattern = pat == NULL ? NULL : vim_strsave(pat);
- m->pos.cur = 0;
m->hlg_id = hlg_id;
m->match.regprog = regprog;
m->match.rmm_ic = FALSE;
--- 6813,6818 ----
***************
*** 6827,6833 ****
listitem_T *li;
int i;
! for (i = 0, li = pos_list->lv_first; i < MAXPOSMATCH;
i++, li = li->li_next)
{
linenr_T lnum = 0;
--- 6826,6832 ----
listitem_T *li;
int i;
! for (i = 0, li = pos_list->lv_first; li != NULL && i < MAXPOSMATCH;
i++, li = li->li_next)
{
linenr_T lnum = 0;
***************
*** 6837,6847 ****
listitem_T *subli;
int error = FALSE;
- if (li == NULL)
- {
- m->pos.pos[i].lnum = 0;
- break;
- }
if (li->li_tv.v_type == VAR_LIST)
{
subl = li->li_tv.vval.v_list;
--- 6836,6841 ----
***************
*** 6853,6864 ****
lnum = get_tv_number_chk(&subli->li_tv, &error);
if (error == TRUE)
goto fail;
- m->pos.pos[i].lnum = lnum;
if (lnum == 0)
{
--i;
continue;
}
subli = subli->li_next;
if (subli != NULL)
{
--- 6847,6858 ----
lnum = get_tv_number_chk(&subli->li_tv, &error);
if (error == TRUE)
goto fail;
if (lnum == 0)
{
--i;
continue;
}
+ m->pos.pos[i].lnum = lnum;
subli = subli->li_next;
if (subli != NULL)
{
***************
*** 6879,6885 ****
--- 6873,6882 ----
else if (li->li_tv.v_type == VAR_NUMBER)
{
if (li->li_tv.vval.v_number == 0)
+ {
+ --i;
continue;
+ }
m->pos.pos[i].lnum = li->li_tv.vval.v_number;
m->pos.pos[i].col = 0;
m->pos.pos[i].len = 0;
*** ../vim-7.4.343/src/version.c 2014-06-25 17:58:07.346799241 +0200
--- src/version.c 2014-06-25 18:07:06.170819625 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 344,
/**/
--
[clop clop]
MORTICIAN: Who's that then?
CUSTOMER: I don't know.
MORTICIAN: Must be a king.
CUSTOMER: Why?
MORTICIAN: He hasn't got shit all over him.
The Quest for the Holy Grail (Monty Python)
/// 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 ///

73
7.4.345 Normal file
View File

@ -0,0 +1,73 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.345
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.4.345 (after 7.4.338)
Problem: Indent is not updated when deleting indent.
Solution: Remember changedtick.
Files: src/misc1.c
*** ../vim-7.4.344/src/misc1.c 2014-06-25 14:39:35.106348584 +0200
--- src/misc1.c 2014-06-25 22:51:32.955465286 +0200
***************
*** 497,502 ****
--- 497,503 ----
static int prev_indent = 0; /* cached indent value */
static long prev_ts = 0L; /* cached tabstop value */
static char_u *prev_line = NULL; /* cached pointer to line */
+ static int prev_tick = 0; /* changedtick of cached value */
int bri = 0;
/* window width minus window margin space, i.e. what rests for text */
const int eff_wwidth = W_WIDTH(wp)
***************
*** 505,514 ****
? number_width(wp) + 1 : 0);
/* used cached indent, unless pointer or 'tabstop' changed */
! if (prev_line != line || prev_ts != wp->w_buffer->b_p_ts)
{
prev_line = line;
prev_ts = wp->w_buffer->b_p_ts;
prev_indent = get_indent_str(line,
(int)wp->w_buffer->b_p_ts, wp->w_p_list) + wp->w_p_brishift;
}
--- 506,517 ----
? number_width(wp) + 1 : 0);
/* used cached indent, unless pointer or 'tabstop' changed */
! if (prev_line != line || prev_ts != wp->w_buffer->b_p_ts
! || prev_tick != wp->w_buffer->b_changedtick)
{
prev_line = line;
prev_ts = wp->w_buffer->b_p_ts;
+ prev_tick = wp->w_buffer->b_changedtick;
prev_indent = get_indent_str(line,
(int)wp->w_buffer->b_p_ts, wp->w_p_list) + wp->w_p_brishift;
}
*** ../vim-7.4.344/src/version.c 2014-06-25 18:15:18.446838249 +0200
--- src/version.c 2014-06-25 22:52:55.971468427 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 345,
/**/
--
ARTHUR: Well, I can't just call you `Man'.
DENNIS: Well, you could say `Dennis'.
ARTHUR: Well, I didn't know you were called `Dennis.'
DENNIS: Well, you didn't bother to find out, did you?
The Quest for the Holy Grail (Monty Python)
/// 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 ///

61
7.4.346 Normal file
View File

@ -0,0 +1,61 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.346
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.4.346 (after 7.4.338)
Problem: Indent is not updated when changing 'breakindentopt'. (itchyny)
Solution: Do not cache "brishift". (Christian Brabandt)
Files: src/misc1.c
*** ../vim-7.4.345/src/misc1.c 2014-06-25 22:55:34.783474435 +0200
--- src/misc1.c 2014-06-26 21:15:46.970516542 +0200
***************
*** 513,523 ****
prev_ts = wp->w_buffer->b_p_ts;
prev_tick = wp->w_buffer->b_changedtick;
prev_indent = get_indent_str(line,
! (int)wp->w_buffer->b_p_ts, wp->w_p_list) + wp->w_p_brishift;
}
/* indent minus the length of the showbreak string */
- bri = prev_indent;
if (wp->w_p_brisbr)
bri -= vim_strsize(p_sbr);
--- 513,523 ----
prev_ts = wp->w_buffer->b_p_ts;
prev_tick = wp->w_buffer->b_changedtick;
prev_indent = get_indent_str(line,
! (int)wp->w_buffer->b_p_ts, wp->w_p_list);
}
+ bri = prev_indent + wp->w_p_brishift;
/* indent minus the length of the showbreak string */
if (wp->w_p_brisbr)
bri -= vim_strsize(p_sbr);
*** ../vim-7.4.345/src/version.c 2014-06-25 22:55:34.783474435 +0200
--- src/version.c 2014-06-26 21:17:10.342519697 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 346,
/**/
--
A computer programmer is a device for turning requirements into
undocumented features. It runs on cola, pizza and Dilbert cartoons.
Bram Moolenaar
/// 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 ///

74
7.4.347 Normal file
View File

@ -0,0 +1,74 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.347
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.4.347
Problem: test55 fails on some systems.
Solution: Remove the elements that all result in zero and can end up in an
arbitrary position.
Files: src/testdir/test55.in, src/testdir/test55.ok
*** ../vim-7.4.346/src/testdir/test55.in 2014-06-25 17:31:04.942737863 +0200
--- src/testdir/test55.in 2014-06-26 22:25:33.078674909 +0200
***************
*** 332,339 ****
:$put =string(reverse(sort(l)))
:$put =string(sort(reverse(sort(l))))
:$put =string(uniq(sort(l)))
! :let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'foo', 'FOOBAR',{}, []]
:$put =string(sort(copy(l), 'n'))
:$put =string(sort(copy(l), 1))
:$put =string(sort(copy(l), 'i'))
:$put =string(sort(copy(l)))
--- 332,340 ----
:$put =string(reverse(sort(l)))
:$put =string(sort(reverse(sort(l))))
:$put =string(uniq(sort(l)))
! :let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0.22, 'foo']
:$put =string(sort(copy(l), 'n'))
+ :let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'foo', 'FOOBAR',{}, []]
:$put =string(sort(copy(l), 1))
:$put =string(sort(copy(l), 'i'))
:$put =string(sort(copy(l)))
*** ../vim-7.4.346/src/testdir/test55.ok 2014-06-25 17:31:04.942737863 +0200
--- src/testdir/test55.ok 2014-06-26 22:26:38.662677390 +0200
***************
*** 101,107 ****
[[0, 1, 2], [0, 1, 2], 4, 2, 2, 1.5, 'xaaa', 'x8', 'foo6', 'foo', 'foo', 'A11', '-0']
['-0', 'A11', 'foo', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 2, 4, [0, 1, 2], [0, 1, 2]]
['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 4, [0, 1, 2]]
! [-1, 0, 0, 'foo', 'FOOBAR', {}, [], 1.0e-15, 0.22, 7, 9, 12, 18, 22, 255]
['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['FOOBAR', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
--- 101,107 ----
[[0, 1, 2], [0, 1, 2], 4, 2, 2, 1.5, 'xaaa', 'x8', 'foo6', 'foo', 'foo', 'A11', '-0']
['-0', 'A11', 'foo', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 2, 4, [0, 1, 2], [0, 1, 2]]
['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 4, [0, 1, 2]]
! [-1, 'foo', 1.0e-15, 0.22, 7, 9, 12, 18, 22, 255]
['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['FOOBAR', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
*** ../vim-7.4.346/src/version.c 2014-06-26 21:24:53.134537205 +0200
--- src/version.c 2014-06-26 22:28:15.402681050 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 347,
/**/
--
Witches prefer brooms: vacuum-cleaners need extension cords!
/// 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 ///

58
7.4.348 Normal file
View File

@ -0,0 +1,58 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.348
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.4.348
Problem: When using "J1" in 'cinoptions' a line below a continuation line
gets too much indent.
Solution: Fix parenthesis in condition.
Files: src/misc1.c
*** ../vim-7.4.347/src/misc1.c 2014-06-26 21:24:53.134537205 +0200
--- src/misc1.c 2014-07-02 16:58:08.854208322 +0200
***************
*** 7497,7505 ****
* ldfd) {
* }
*/
! if (curbuf->b_ind_js || (curbuf->b_ind_keep_case_label
! && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
amount = get_indent();
else
amount = skip_label(lnum, &l);
--- 7497,7507 ----
* ldfd) {
* }
*/
! if ((curbuf->b_ind_js || curbuf->b_ind_keep_case_label)
! && cin_iscase(skipwhite(ml_get_curline()), FALSE))
amount = get_indent();
+ else if (curbuf->b_ind_js)
+ amount = get_indent_lnum(lnum);
else
amount = skip_label(lnum, &l);
*** ../vim-7.4.347/src/version.c 2014-06-26 22:33:47.850693627 +0200
--- src/version.c 2014-07-02 16:46:14.934197383 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 348,
/**/
--
5 out of 4 people have trouble with fractions.
/// 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 ///

111
7.4.349 Normal file
View File

@ -0,0 +1,111 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.349
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.4.349
Problem: When there are matches to highlight the whole window is redrawn,
which is slow.
Solution: Only redraw everything when lines were inserted or deleted.
Reset b_mod_xlines when needed. (Alexey Radkov)
Files: src/screen.c, src/window.c
*** ../vim-7.4.348/src/screen.c 2014-06-25 18:15:18.446838249 +0200
--- src/screen.c 2014-06-28 15:35:18.868836570 +0200
***************
*** 1769,1776 ****
syntax_check_changed(lnum)))
#endif
#ifdef FEAT_SEARCH_EXTRA
! /* match in fixed position might need redraw */
! || wp->w_match_head != NULL
#endif
)))))
{
--- 1769,1778 ----
syntax_check_changed(lnum)))
#endif
#ifdef FEAT_SEARCH_EXTRA
! /* match in fixed position might need redraw
! * if lines were inserted or deleted */
! || (wp->w_match_head != NULL
! && buf->b_mod_xlines != 0)
#endif
)))))
{
*** ../vim-7.4.348/src/window.c 2014-06-25 18:15:18.446838249 +0200
--- src/window.c 2014-06-28 15:38:51.952839835 +0200
***************
*** 6904,6915 ****
}
else
{
wp->w_buffer->b_mod_top = toplnum;
wp->w_buffer->b_mod_bot = botlnum;
}
m->pos.toplnum = toplnum;
m->pos.botlnum = botlnum;
- wp->w_buffer->b_mod_set = TRUE;
rtype = VALID;
}
}
--- 6904,6916 ----
}
else
{
+ wp->w_buffer->b_mod_set = TRUE;
wp->w_buffer->b_mod_top = toplnum;
wp->w_buffer->b_mod_bot = botlnum;
+ wp->w_buffer->b_mod_xlines = 0;
}
m->pos.toplnum = toplnum;
m->pos.botlnum = botlnum;
rtype = VALID;
}
}
***************
*** 6986,6995 ****
}
else
{
wp->w_buffer->b_mod_top = cur->pos.toplnum;
wp->w_buffer->b_mod_bot = cur->pos.botlnum;
}
- wp->w_buffer->b_mod_set = TRUE;
rtype = VALID;
}
vim_free(cur);
--- 6987,6997 ----
}
else
{
+ wp->w_buffer->b_mod_set = TRUE;
wp->w_buffer->b_mod_top = cur->pos.toplnum;
wp->w_buffer->b_mod_bot = cur->pos.botlnum;
+ wp->w_buffer->b_mod_xlines = 0;
}
rtype = VALID;
}
vim_free(cur);
*** ../vim-7.4.348/src/version.c 2014-07-02 17:02:29.726212319 +0200
--- src/version.c 2014-07-02 17:15:58.646224714 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 349,
/**/
--
Trees moving back and forth is what makes the wind blow.
/// 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 ///

139
7.4.350 Normal file
View File

@ -0,0 +1,139 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.350
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.4.350
Problem: Using C indenting for Javascript does not work well for a {} block
inside parenthesis.
Solution: When looking for a matching paren ignore one that is before the
start of a {} block.
Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
*** ../vim-7.4.349/src/misc1.c 2014-07-02 17:02:29.722212319 +0200
--- src/misc1.c 2014-07-02 18:09:39.670274070 +0200
***************
*** 6614,6620 ****
}
/*
! * Find the matching '(', failing if it is in a comment.
* Return NULL if no match found.
*/
static pos_T *
--- 6614,6620 ----
}
/*
! * Find the matching '(', ignoring it if it is in a comment.
* Return NULL if no match found.
*/
static pos_T *
***************
*** 6645,6650 ****
--- 6645,6676 ----
}
/*
+ * Find the matching '(', ignoring it if it is in a comment or before an
+ * unmatched {.
+ * Return NULL if no match found.
+ */
+ static pos_T *
+ find_match_paren_after_brace(ind_maxparen) /* XXX */
+ int ind_maxparen;
+ {
+ pos_T *trypos = find_match_paren(ind_maxparen);
+
+ if (trypos != NULL)
+ {
+ pos_T *tryposBrace = find_start_brace();
+
+ /* If both an unmatched '(' and '{' is found. Ignore the '('
+ * position if the '{' is further down. */
+ if (tryposBrace != NULL
+ && (trypos->lnum != tryposBrace->lnum
+ ? trypos->lnum < tryposBrace->lnum
+ : trypos->col < tryposBrace->col))
+ trypos = NULL;
+ }
+ return trypos;
+ }
+
+ /*
* Return ind_maxparen corrected for the difference in line number between the
* cursor position and "startpos". This makes sure that searching for a
* matching paren above the cursor line doesn't find a match because of
***************
*** 7419,7425 ****
{
curwin->w_cursor.lnum = our_paren_pos.lnum;
curwin->w_cursor.col = col;
! if (find_match_paren(curbuf->b_ind_maxparen) != NULL)
amount += curbuf->b_ind_unclosed2;
else
{
--- 7445,7452 ----
{
curwin->w_cursor.lnum = our_paren_pos.lnum;
curwin->w_cursor.col = col;
! if (find_match_paren_after_brace(curbuf->b_ind_maxparen)
! != NULL)
amount += curbuf->b_ind_unclosed2;
else
{
*** ../vim-7.4.349/src/testdir/test3.in 2013-03-07 12:39:35.000000000 +0100
--- src/testdir/test3.in 2014-07-02 18:08:06.430272641 +0200
***************
*** 1950,1955 ****
--- 1950,1959 ----
JSSTART
(function($){
+ if (cond &&
+ cond) {
+ stmt;
+ }
var class_name='myclass';
function private_method() {
*** ../vim-7.4.349/src/testdir/test3.ok 2013-03-07 12:40:03.000000000 +0100
--- src/testdir/test3.ok 2014-07-02 18:09:14.470273684 +0200
***************
*** 1728,1733 ****
--- 1728,1737 ----
JSSTART
(function($){
+ if (cond &&
+ cond) {
+ stmt;
+ }
var class_name='myclass';
function private_method() {
*** ../vim-7.4.349/src/version.c 2014-07-02 17:16:51.334225522 +0200
--- src/version.c 2014-07-02 18:06:31.330271184 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 350,
/**/
--
FATHER: You killed eight wedding guests in all!
LAUNCELOT: Er, Well ... the thing is ... I thought your son was a lady.
FATHER: I can understand that.
"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 ///

160
7.4.351 Normal file
View File

@ -0,0 +1,160 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.351
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.4.351
Problem: sort() is not stable.
Solution: When the items are identical, compare the pointers.
Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
*** ../vim-7.4.350/src/eval.c 2014-06-25 17:31:04.942737863 +0200
--- src/eval.c 2014-07-02 18:52:19.102313288 +0200
***************
*** 17334,17339 ****
--- 17334,17340 ----
static char_u *item_compare_func;
static dict_T *item_compare_selfdict;
static int item_compare_func_err;
+ static int item_compare_keep_zero;
static void do_sort_uniq __ARGS((typval_T *argvars, typval_T *rettv, int sort));
#define ITEM_COMPARE_FAIL 999
***************
*** 17374,17379 ****
--- 17375,17386 ----
n2 = strtod((char *)p2, (char **)&p2);
res = n1 == n2 ? 0 : n1 > n2 ? 1 : -1;
}
+
+ /* When the result would be zero, compare the pointers themselves. Makes
+ * the sort stable. */
+ if (res == 0 && !item_compare_keep_zero)
+ res = s1 > s2 ? 1 : -1;
+
vim_free(tofree1);
vim_free(tofree2);
return res;
***************
*** 17396,17402 ****
if (item_compare_func_err)
return 0;
! /* copy the values. This is needed to be able to set v_lock to VAR_FIXED
* in the copy without changing the original list items. */
copy_tv(&(*(listitem_T **)s1)->li_tv, &argv[0]);
copy_tv(&(*(listitem_T **)s2)->li_tv, &argv[1]);
--- 17403,17409 ----
if (item_compare_func_err)
return 0;
! /* Copy the values. This is needed to be able to set v_lock to VAR_FIXED
* in the copy without changing the original list items. */
copy_tv(&(*(listitem_T **)s1)->li_tv, &argv[0]);
copy_tv(&(*(listitem_T **)s2)->li_tv, &argv[1]);
***************
*** 17415,17420 ****
--- 17422,17433 ----
if (item_compare_func_err)
res = ITEM_COMPARE_FAIL; /* return value has wrong type */
clear_tv(&rettv);
+
+ /* When the result would be zero, compare the pointers themselves. Makes
+ * the sort stable. */
+ if (res == 0 && !item_compare_keep_zero)
+ res = s1 > s2 ? 1 : -1;
+
return res;
}
***************
*** 17509,17514 ****
--- 17522,17528 ----
ptrs[i++] = li;
item_compare_func_err = FALSE;
+ item_compare_keep_zero = FALSE;
/* test the compare function */
if (item_compare_func != NULL
&& item_compare2((void *)&ptrs[0], (void *)&ptrs[1])
***************
*** 17536,17541 ****
--- 17550,17556 ----
/* f_uniq(): ptrs will be a stack of items to remove */
item_compare_func_err = FALSE;
+ item_compare_keep_zero = TRUE;
item_compare_func_ptr = item_compare_func
? item_compare2 : item_compare;
*** ../vim-7.4.350/src/testdir/test55.in 2014-06-26 22:33:47.850693627 +0200
--- src/testdir/test55.in 2014-07-02 19:00:09.238320492 +0200
***************
*** 332,340 ****
:$put =string(reverse(sort(l)))
:$put =string(sort(reverse(sort(l))))
:$put =string(uniq(sort(l)))
! :let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0.22, 'foo']
:$put =string(sort(copy(l), 'n'))
! :let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'foo', 'FOOBAR',{}, []]
:$put =string(sort(copy(l), 1))
:$put =string(sort(copy(l), 'i'))
:$put =string(sort(copy(l)))
--- 332,340 ----
:$put =string(reverse(sort(l)))
:$put =string(sort(reverse(sort(l))))
:$put =string(uniq(sort(l)))
! :let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xff, 0.22, 'four']
:$put =string(sort(copy(l), 'n'))
! :let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]
:$put =string(sort(copy(l), 1))
:$put =string(sort(copy(l), 'i'))
:$put =string(sort(copy(l)))
*** ../vim-7.4.350/src/testdir/test55.ok 2014-06-26 22:33:47.850693627 +0200
--- src/testdir/test55.ok 2014-07-02 19:00:57.078321225 +0200
***************
*** 101,110 ****
[[0, 1, 2], [0, 1, 2], 4, 2, 2, 1.5, 'xaaa', 'x8', 'foo6', 'foo', 'foo', 'A11', '-0']
['-0', 'A11', 'foo', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 2, 4, [0, 1, 2], [0, 1, 2]]
['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 4, [0, 1, 2]]
! [-1, 'foo', 1.0e-15, 0.22, 7, 9, 12, 18, 22, 255]
! ['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
! ['foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
! ['FOOBAR', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
--- 101,110 ----
[[0, 1, 2], [0, 1, 2], 4, 2, 2, 1.5, 'xaaa', 'x8', 'foo6', 'foo', 'foo', 'A11', '-0']
['-0', 'A11', 'foo', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 2, 4, [0, 1, 2], [0, 1, 2]]
['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 1.5, 2, 4, [0, 1, 2]]
! [-1, 'one', 'two', 'three', 'four', 1.0e-15, 0.22, 7, 9, 12, 18, 22, 255]
! ['bar', 'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
! ['bar', 'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
! ['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
*** ../vim-7.4.350/src/version.c 2014-07-02 18:27:44.662290695 +0200
--- src/version.c 2014-07-02 18:46:38.230308065 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 351,
/**/
--
The early bird gets the worm. If you want something else for
breakfast, get up later.
/// 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 ///

101
7.4.352 Normal file
View File

@ -0,0 +1,101 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.352
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.4.352
Problem: With 'linebreak' a tab causes missing line break.
Solution: Count a tab for what it's worth also for shorter lines.
(Christian Brabandt)
Files: src/charset.c
*** ../vim-7.4.351/src/charset.c 2014-06-25 14:39:35.098348584 +0200
--- src/charset.c 2014-07-02 19:34:28.142352040 +0200
***************
*** 1078,1083 ****
--- 1078,1084 ----
int c;
int size;
colnr_T col2;
+ colnr_T col_adj = 0; /* col + screen size of tab */
colnr_T colmax;
int added;
# ifdef FEAT_MBYTE
***************
*** 1109,1114 ****
--- 1110,1117 ----
*/
size = win_chartabsize(wp, s, col);
c = *s;
+ if (tab_corr)
+ col_adj = size - 1;
/*
* If 'linebreak' set check at a blank before a non-blank if the line
***************
*** 1130,1141 ****
*/
numberextra = win_col_off(wp);
col2 = col;
! colmax = (colnr_T)(W_WIDTH(wp) - numberextra);
if (col >= colmax)
{
! n = colmax + win_col_off2(wp);
if (n > 0)
! colmax += (((col - colmax) / n) + 1) * n;
}
for (;;)
--- 1133,1145 ----
*/
numberextra = win_col_off(wp);
col2 = col;
! colmax = (colnr_T)(W_WIDTH(wp) - numberextra - col_adj);
if (col >= colmax)
{
! colmax += col_adj;
! n = colmax + win_col_off2(wp);
if (n > 0)
! colmax += (((col - colmax) / n) + 1) * n - col_adj;
}
for (;;)
***************
*** 1152,1158 ****
col2 += win_chartabsize(wp, s, col2);
if (col2 >= colmax) /* doesn't fit */
{
! size = colmax - col;
tab_corr = FALSE;
break;
}
--- 1156,1162 ----
col2 += win_chartabsize(wp, s, col2);
if (col2 >= colmax) /* doesn't fit */
{
! size = colmax - col + col_adj;
tab_corr = FALSE;
break;
}
*** ../vim-7.4.351/src/version.c 2014-07-02 19:06:14.686326091 +0200
--- src/version.c 2014-07-02 19:32:50.218350540 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 352,
/**/
--
The early bird gets the worm. The second mouse gets the cheese.
/// 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 ///

446
7.4.353 Normal file
View File

@ -0,0 +1,446 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.353
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.4.353
Problem: 'linebreak' doesn't work with the 'list' option.
Solution: Make it work. (Christian Brabandt)
Files: src/charset.c, src/screen.c,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/test_listlbr.in, src/testdir/test_listlbr.ok
*** ../vim-7.4.352/src/charset.c 2014-07-02 19:37:38.462354956 +0200
--- src/charset.c 2014-07-02 19:47:21.602363892 +0200
***************
*** 1120,1126 ****
if (wp->w_p_lbr
&& vim_isbreak(c)
&& !vim_isbreak(s[1])
- && !wp->w_p_list
&& wp->w_p_wrap
# ifdef FEAT_VERTSPLIT
&& wp->w_width != 0
--- 1120,1125 ----
*** ../vim-7.4.352/src/screen.c 2014-07-02 17:16:51.330225522 +0200
--- src/screen.c 2014-07-02 19:51:42.082367883 +0200
***************
*** 2843,2848 ****
--- 2843,2849 ----
char_u extra[18]; /* "%ld" and 'fdc' must fit in here */
int n_extra = 0; /* number of extra chars */
char_u *p_extra = NULL; /* string of extra chars, plus NUL */
+ char_u *p_extra_free = NULL; /* p_extra needs to be freed */
int c_extra = NUL; /* extra chars, all the same */
int extra_attr = 0; /* attributes when n_extra != 0 */
static char_u *at_end_str = (char_u *)""; /* used for p_extra when
***************
*** 4053,4058 ****
--- 4054,4064 ----
}
else
{
+ if (p_extra_free != NULL)
+ {
+ vim_free(p_extra_free);
+ p_extra_free = NULL;
+ }
/*
* Get a character from the line itself.
*/
***************
*** 4424,4431 ****
/*
* Found last space before word: check for line break.
*/
! if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr)
! && !wp->w_p_list)
{
char_u *p = ptr - (
# ifdef FEAT_MBYTE
--- 4430,4436 ----
/*
* Found last space before word: check for line break.
*/
! if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr))
{
char_u *p = ptr - (
# ifdef FEAT_MBYTE
***************
*** 4433,4439 ****
# endif
1);
/* TODO: is passing p for start of the line OK? */
! n_extra = win_lbr_chartabsize(wp, p, p, (colnr_T)vcol,
NULL) - 1;
c_extra = ' ';
if (vim_iswhite(c))
--- 4438,4444 ----
# endif
1);
/* TODO: is passing p for start of the line OK? */
! n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol,
NULL) - 1;
c_extra = ' ';
if (vim_iswhite(c))
***************
*** 4443,4449 ****
/* See "Tab alignment" below. */
FIX_FOR_BOGUSCOLS;
#endif
! c = ' ';
}
}
#endif
--- 4448,4455 ----
/* See "Tab alignment" below. */
FIX_FOR_BOGUSCOLS;
#endif
! if (!wp->w_p_list)
! c = ' ';
}
}
#endif
***************
*** 4483,4491 ****
*/
if (c == TAB && (!wp->w_p_list || lcs_tab1))
{
/* tab amount depends on current column */
! n_extra = (int)wp->w_buffer->b_p_ts
- vcol % (int)wp->w_buffer->b_p_ts - 1;
#ifdef FEAT_CONCEAL
/* Tab alignment should be identical regardless of
* 'conceallevel' value. So tab compensates of all
--- 4489,4538 ----
*/
if (c == TAB && (!wp->w_p_list || lcs_tab1))
{
+ int tab_len = 0;
/* tab amount depends on current column */
! tab_len = (int)wp->w_buffer->b_p_ts
- vcol % (int)wp->w_buffer->b_p_ts - 1;
+ #ifdef FEAT_LINEBREAK
+ if (!wp->w_p_lbr)
+ #endif
+ /* tab amount depends on current column */
+ n_extra = tab_len;
+ #ifdef FEAT_LINEBREAK
+ else
+ {
+ char_u *p;
+ int len = n_extra;
+ int i;
+ int saved_nextra = n_extra;
+
+ /* if n_extra > 0, it gives the number of chars, to
+ * use for a tab, else we need to calculate the width
+ * for a tab */
+ #ifdef FEAT_MBYTE
+ len = (tab_len * mb_char2len(lcs_tab2));
+ if (n_extra > 0)
+ len += n_extra - tab_len;
+ #endif
+ c = lcs_tab1;
+ p = alloc((unsigned)(len + 1));
+ vim_memset(p, ' ', len);
+ p[len] = NUL;
+ p_extra_free = p;
+ for (i = 0; i < tab_len; i++)
+ {
+ #ifdef FEAT_MBYTE
+ mb_char2bytes(lcs_tab2, p);
+ p += mb_char2len(lcs_tab2);
+ n_extra += mb_char2len(lcs_tab2)
+ - (saved_nextra > 0 ? 1 : 0);
+ #else
+ p[i] = lcs_tab2;
+ #endif
+ }
+ p_extra = p_extra_free;
+ }
+ #endif
#ifdef FEAT_CONCEAL
/* Tab alignment should be identical regardless of
* 'conceallevel' value. So tab compensates of all
***************
*** 4501,4508 ****
if (wp->w_p_list)
{
c = lcs_tab1;
! c_extra = lcs_tab2;
! n_attr = n_extra + 1;
extra_attr = hl_attr(HLF_8);
saved_attr2 = char_attr; /* save current attr */
#ifdef FEAT_MBYTE
--- 4548,4560 ----
if (wp->w_p_list)
{
c = lcs_tab1;
! #ifdef FEAT_LINEBREAK
! if (wp->w_p_lbr)
! c_extra = NUL; /* using p_extra from above */
! else
! #endif
! c_extra = lcs_tab2;
! n_attr = tab_len + 1;
extra_attr = hl_attr(HLF_8);
saved_attr2 = char_attr; /* save current attr */
#ifdef FEAT_MBYTE
***************
*** 4598,4606 ****
if ((dy_flags & DY_UHEX) && wp->w_p_rl)
rl_mirror(p_extra); /* reverse "<12>" */
#endif
- n_extra = byte2cells(c) - 1;
c_extra = NUL;
! c = *p_extra++;
if (!attr_pri)
{
n_attr = n_extra + 1;
--- 4650,4674 ----
if ((dy_flags & DY_UHEX) && wp->w_p_rl)
rl_mirror(p_extra); /* reverse "<12>" */
#endif
c_extra = NUL;
! #ifdef FEAT_LINEBREAK
! if (wp->w_p_lbr)
! {
! char_u *p;
!
! c = *p_extra;
! p = alloc((unsigned)n_extra + 1);
! vim_memset(p, ' ', n_extra);
! STRNCPY(p, p_extra + 1, STRLEN(p_extra) - 1);
! p[n_extra] = NUL;
! p_extra_free = p_extra = p;
! }
! else
! #endif
! {
! n_extra = byte2cells(c) - 1;
! c = *p_extra++;
! }
if (!attr_pri)
{
n_attr = n_extra + 1;
*** ../vim-7.4.352/src/testdir/Make_amiga.mak 2014-06-25 14:39:35.110348584 +0200
--- src/testdir/Make_amiga.mak 2014-07-02 19:47:21.610363892 +0200
***************
*** 38,43 ****
--- 38,44 ----
test104.out test105.out test106.out test107.out \
test_autoformat_join.out \
test_breakindent.out \
+ test_listlbr.out \
test_eval.out \
test_options.out
***************
*** 165,169 ****
--- 166,171 ----
test107.out: test107.in
test_autoformat_join.out: test_autoformat_join.in
test_breakindent.out: test_breakindent.in
+ test_listlbr.out: test_listlbr.in
test_eval.out: test_eval.in
test_options.out: test_options.in
*** ../vim-7.4.352/src/testdir/Make_dos.mak 2014-06-25 14:39:35.110348584 +0200
--- src/testdir/Make_dos.mak 2014-07-02 19:47:21.610363892 +0200
***************
*** 37,42 ****
--- 37,43 ----
test105.out test106.out test107.out\
test_autoformat_join.out \
test_breakindent.out \
+ test_listlbr \
test_eval.out \
test_options.out
*** ../vim-7.4.352/src/testdir/Make_ming.mak 2014-06-25 14:39:35.110348584 +0200
--- src/testdir/Make_ming.mak 2014-07-02 19:47:21.610363892 +0200
***************
*** 57,62 ****
--- 57,63 ----
test105.out test106.out test107.out \
test_autoformat_join.out \
test_breakindent.out \
+ test_listlbr.out \
test_eval.out \
test_options.out
*** ../vim-7.4.352/src/testdir/Make_os2.mak 2014-06-25 14:39:35.114348584 +0200
--- src/testdir/Make_os2.mak 2014-07-02 19:47:21.610363892 +0200
***************
*** 40,45 ****
--- 40,46 ----
test_autoformat_join.out \
test_eval.out \
test_breakindent.out \
+ test_listlbr.out \
test_options.out
.SUFFIXES: .in .out
*** ../vim-7.4.352/src/testdir/Make_vms.mms 2014-06-25 14:39:35.114348584 +0200
--- src/testdir/Make_vms.mms 2014-07-02 19:47:21.610363892 +0200
***************
*** 98,103 ****
--- 98,104 ----
test105.out test106.out test107.out \
test_autoformat_join.out \
test_breakindent.out \
+ test_listlbr.out \
test_eval.out \
test_options.out
*** ../vim-7.4.352/src/testdir/Makefile 2014-06-25 14:39:35.114348584 +0200
--- src/testdir/Makefile 2014-07-02 19:47:21.610363892 +0200
***************
*** 35,40 ****
--- 35,41 ----
test104.out test105.out test106.out test107.out \
test_autoformat_join.out \
test_breakindent.out \
+ test_listlbr.out \
test_eval.out \
test_options.out
*** ../vim-7.4.352/src/testdir/test_listlbr.in 2014-07-02 19:58:25.642374067 +0200
--- src/testdir/test_listlbr.in 2014-07-02 19:47:21.610363892 +0200
***************
*** 0 ****
--- 1,62 ----
+ Test for linebreak and list option
+
+ STARTTEST
+ :so small.vim
+ :if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif
+ :10new|:vsp|:vert resize 20
+ :put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
+ :norm! zt
+ :set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
+ :fu! ScreenChar(width)
+ : let c=''
+ : for j in range(1,4)
+ : for i in range(1,a:width)
+ : let c.=nr2char(screenchar(j, i))
+ : endfor
+ : let c.="\n"
+ : endfor
+ : return c
+ :endfu
+ :fu! DoRecordScreen()
+ : wincmd l
+ : $put =printf(\"\n%s\", g:test)
+ : $put =g:line
+ : wincmd p
+ :endfu
+ :let g:test="Test 1: set linebreak"
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :let g:test="Test 2: set linebreak + set list"
+ :set linebreak list listchars=
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :let g:test ="Test 3: set linebreak + set list + fancy listchars"
+ :exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6"
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :let g:test ="Test 4: set linebreak nolist"
+ :set nolist linebreak
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :let g:test ="Test 5: set nolinebreak list"
+ :set list nolinebreak
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :let g:test ="Test 6: set linebreak with tab and 1 line as long as screen: should break!"
+ :set nolist linebreak ts=8
+ :let line="1\t".repeat('a', winwidth(0)-2)
+ :$put =line
+ :$
+ :norm! zt
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :%w! test.out
+ :qa!
+ ENDTEST
+ dummy text
*** ../vim-7.4.352/src/testdir/test_listlbr.ok 2014-07-02 19:58:25.646374067 +0200
--- src/testdir/test_listlbr.ok 2014-07-02 19:47:21.610363892 +0200
***************
*** 0 ****
--- 1,39 ----
+
+ abcdef hijklmn pqrstuvwxyz 1060ABCDEFGHIJKLMNOP
+
+ Test 1: set linebreak
+ abcdef
+ +hijklmn
+ +pqrstuvwxyz 1060ABC
+ +DEFGHIJKLMNOP
+
+ Test 2: set linebreak + set list
+ ^Iabcdef hijklmn^I
+ +pqrstuvwxyz 1060ABC
+ +DEFGHIJKLMNOP
+
+
+ Test 3: set linebreak + set list + fancy listchars
+ ▕———abcdef
+ +hijklmn▕———
+ +pqrstuvwxyz␣1060ABC
+ +DEFGHIJKLMNOPˑ¶
+
+ Test 4: set linebreak nolist
+ abcdef
+ +hijklmn
+ +pqrstuvwxyz 1060ABC
+ +DEFGHIJKLMNOP
+
+ Test 5: set nolinebreak list
+ ▕———abcdef hijklmn▕—
+ +pqrstuvwxyz␣1060ABC
+ +DEFGHIJKLMNOPˑ¶
+ ¶
+ 1 aaaaaaaaaaaaaaaaaa
+
+ Test 6: set linebreak with tab and 1 line as long as screen: should break!
+ 1
+ +aaaaaaaaaaaaaaaaaa
+ ~
+ ~
*** ../vim-7.4.352/src/version.c 2014-07-02 19:37:38.462354956 +0200
--- src/version.c 2014-07-02 19:57:44.066373430 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 353,
/**/
--
FATHER: You only killed the bride's father - that's all -
LAUNCELOT: Oh dear, I didn't really mean to...
FATHER: Didn't mean to? You put your sword right through his head!
LAUNCELOT: Gosh - Is he all right?
"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 ///

56
7.4.354 Normal file
View File

@ -0,0 +1,56 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.354
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.4.354
Problem: Compiler warning.
Solution: Change NUL to NULL. (Ken Takata)
Files: src/screen.c
*** ../vim-7.4.353/src/screen.c 2014-07-02 19:59:35.454375136 +0200
--- src/screen.c 2014-07-03 14:08:03.579375847 +0200
***************
*** 3704,3710 ****
if (diff_hlf != (hlf_T)0)
char_attr = hl_attr(diff_hlf);
#endif
! p_extra = NUL;
c_extra = ' ';
n_extra = get_breakindent_win(wp,
ml_get_buf(wp->w_buffer, lnum, FALSE));
--- 3704,3710 ----
if (diff_hlf != (hlf_T)0)
char_attr = hl_attr(diff_hlf);
#endif
! p_extra = NULL;
c_extra = ' ';
n_extra = get_breakindent_win(wp,
ml_get_buf(wp->w_buffer, lnum, FALSE));
*** ../vim-7.4.353/src/version.c 2014-07-02 19:59:35.454375136 +0200
--- src/version.c 2014-07-03 14:08:38.875376388 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 354,
/**/
--
[SIR LAUNCELOT runs back up the stairs, grabs a rope
of the wall and swings out over the heads of the CROWD in a
swashbuckling manner towards a large window. He stops just short
of the window and is left swing pathetically back and forth.]
LAUNCELOT: Excuse me ... could somebody give me a push ...
"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 ///

929
7.4.355 Normal file
View File

@ -0,0 +1,929 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.355
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.4.355
Problem: Several problems with Javascript indenting.
Solution: Improve Javascript indenting.
Files: src/misc1.c
*** ../vim-7.4.354/src/misc1.c 2014-07-02 18:27:44.662290695 +0200
--- src/misc1.c 2014-07-03 22:42:20.315848662 +0200
***************
*** 5382,5387 ****
--- 5382,5388 ----
static char_u *cin_skipcomment __ARGS((char_u *));
static int cin_nocode __ARGS((char_u *));
static pos_T *find_line_comment __ARGS((void));
+ static int cin_has_js_key __ARGS((char_u *text));
static int cin_islabel_skip __ARGS((char_u **));
static int cin_isdefault __ARGS((char_u *));
static char_u *after_label __ARGS((char_u *l));
***************
*** 5410,5415 ****
--- 5411,5417 ----
static int cin_skip2pos __ARGS((pos_T *trypos));
static pos_T *find_start_brace __ARGS((void));
static pos_T *find_match_paren __ARGS((int));
+ static pos_T *find_match_char __ARGS((int c, int ind_maxparen));
static int corr_ind_maxparen __ARGS((pos_T *startpos));
static int find_last_paren __ARGS((char_u *l, int start, int end));
static int find_match __ARGS((int lookfor, linenr_T ourscope));
***************
*** 5494,5500 ****
--- 5496,5533 ----
}
/*
+ * Return TRUE if "text" starts with "key:".
+ */
+ static int
+ cin_has_js_key(text)
+ char_u *text;
+ {
+ char_u *s = skipwhite(text);
+ int quote = 0;
+
+ if (*s == '\'' || *s == '"')
+ {
+ /* can be 'key': or "key": */
+ quote = *s;
+ ++s;
+ }
+ if (!vim_isIDc(*s)) /* need at least one ID character */
+ return FALSE;
+
+ while (vim_isIDc(*s))
+ ++s;
+ if (*s == quote)
+ ++s;
+
+ s = cin_skipcomment(s);
+
+ /* "::" is not a label, it's C++ */
+ return (*s == ':' && s[1] != ':');
+ }
+
+ /*
* Check if string matches "label:"; move to character after ':' if true.
+ * "*s" must point to the start of the label, if there is one.
*/
static int
cin_islabel_skip(s)
***************
*** 6621,6632 ****
find_match_paren(ind_maxparen) /* XXX */
int ind_maxparen;
{
pos_T cursor_save;
pos_T *trypos;
static pos_T pos_copy;
cursor_save = curwin->w_cursor;
! if ((trypos = findmatchlimit(NULL, '(', 0, ind_maxparen)) != NULL)
{
/* check if the ( is in a // comment */
if ((colnr_T)cin_skip2pos(trypos) > trypos->col)
--- 6654,6673 ----
find_match_paren(ind_maxparen) /* XXX */
int ind_maxparen;
{
+ return find_match_char('(', ind_maxparen);
+ }
+
+ static pos_T *
+ find_match_char(c, ind_maxparen) /* XXX */
+ int c;
+ int ind_maxparen;
+ {
pos_T cursor_save;
pos_T *trypos;
static pos_T pos_copy;
cursor_save = curwin->w_cursor;
! if ((trypos = findmatchlimit(NULL, c, 0, ind_maxparen)) != NULL)
{
/* check if the ( is in a // comment */
if ((colnr_T)cin_skip2pos(trypos) > trypos->col)
***************
*** 6976,6981 ****
--- 7017,7024 ----
#define LOOKFOR_NOBREAK 8
#define LOOKFOR_CPP_BASECLASS 9
#define LOOKFOR_ENUM_OR_INIT 10
+ #define LOOKFOR_JS_KEY 11
+ #define LOOKFOR_NO_COMMA 12
int whilelevel;
linenr_T lnum;
***************
*** 6986,6991 ****
--- 7029,7035 ----
int cont_amount = 0; /* amount for continuation line */
int original_line_islabel;
int added_to_amount = 0;
+ int js_cur_has_key = 0;
/* make a copy, value is changed below */
int ind_continuation = curbuf->b_ind_continuation;
***************
*** 7209,7214 ****
--- 7253,7268 ----
}
/*
+ * Are we looking at a ']' that has a match?
+ */
+ else if (*skipwhite(theline) == ']'
+ && (trypos = find_match_char('[', curbuf->b_ind_maxparen)) != NULL)
+ {
+ /* align with the line containing the '['. */
+ amount = get_indent_lnum(trypos->lnum);
+ }
+
+ /*
* Are we inside parentheses or braces?
*/ /* XXX */
else if (((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL
***************
*** 7473,7486 ****
if (cin_iscomment(theline))
amount += curbuf->b_ind_comment;
}
-
- /*
- * Are we at least inside braces, then?
- */
else
{
trypos = tryposBrace;
-
ourscope = trypos->lnum;
start = ml_get(ourscope);
--- 7527,7539 ----
if (cin_iscomment(theline))
amount += curbuf->b_ind_comment;
}
else
{
+ /*
+ * We are inside braces, there is a { before this line at the position
+ * stored in tryposBrace.
+ */
trypos = tryposBrace;
ourscope = trypos->lnum;
start = ml_get(ourscope);
***************
*** 7502,7525 ****
}
else
{
! /*
! * that opening brace might have been on a continuation
! * line. if so, find the start of the line.
! */
curwin->w_cursor.lnum = ourscope;
! /*
! * position the cursor over the rightmost paren, so that
! * matching it will take us back to the start of the line.
! */
lnum = ourscope;
if (find_last_paren(start, '(', ')')
&& (trypos = find_match_paren(curbuf->b_ind_maxparen))
!= NULL)
lnum = trypos->lnum;
! /*
! * It could have been something like
* case 1: if (asdf &&
* ldfd) {
* }
--- 7555,7573 ----
}
else
{
! /* That opening brace might have been on a continuation
! * line. if so, find the start of the line. */
curwin->w_cursor.lnum = ourscope;
! /* Position the cursor over the rightmost paren, so that
! * matching it will take us back to the start of the line. */
lnum = ourscope;
if (find_last_paren(start, '(', ')')
&& (trypos = find_match_paren(curbuf->b_ind_maxparen))
!= NULL)
lnum = trypos->lnum;
! /* It could have been something like
* case 1: if (asdf &&
* ldfd) {
* }
***************
*** 7535,7542 ****
start_brace = BRACE_AT_END;
}
/*
! * if we're looking at a closing brace, that's where
* we want to be. otherwise, add the amount of room
* that an indent is supposed to be.
*/
--- 7583,7594 ----
start_brace = BRACE_AT_END;
}
+ /* For Javascript check if the line starts with "key:". */
+ if (curbuf->b_ind_js)
+ js_cur_has_key = cin_has_js_key(theline);
+
/*
! * If we're looking at a closing brace, that's where
* we want to be. otherwise, add the amount of room
* that an indent is supposed to be.
*/
***************
*** 7643,7649 ****
* Search backwards. If we find something we recognize, line up
* with that.
*
! * if we're looking at an open brace, indent
* the usual amount relative to the conditional
* that opens the block.
*/
--- 7695,7701 ----
* Search backwards. If we find something we recognize, line up
* with that.
*
! * If we're looking at an open brace, indent
* the usual amount relative to the conditional
* that opens the block.
*/
***************
*** 8051,8056 ****
--- 8103,8143 ----
*/
terminated = cin_isterminated(l, FALSE, TRUE);
+ if (js_cur_has_key)
+ {
+ js_cur_has_key = 0; /* only check the first line */
+ if (curbuf->b_ind_js && terminated == ',')
+ {
+ /* For Javascript we might be inside an object:
+ * key: something, <- align with this
+ * key: something
+ * or:
+ * key: something + <- align with this
+ * something,
+ * key: something
+ */
+ lookfor = LOOKFOR_JS_KEY;
+ }
+ }
+ if (lookfor == LOOKFOR_JS_KEY && cin_has_js_key(l))
+ {
+ amount = get_indent();
+ break;
+ }
+ if (lookfor == LOOKFOR_NO_COMMA)
+ {
+ if (terminated != ',')
+ /* line below current line is the one that starts a
+ * (possibly broken) line ending in a comma. */
+ break;
+ amount = get_indent();
+ if (curwin->w_cursor.lnum - 1 == ourscope)
+ /* line above is start of the scope, thus current line
+ * is the one that stars a (possibly broken) line
+ * ending in a comma. */
+ break;
+ }
+
if (terminated == 0 || (lookfor != LOOKFOR_UNTERM
&& terminated == ','))
{
***************
*** 8062,8072 ****
* bar )
*/
/*
! * position the cursor over the rightmost paren, so that
* matching it will take us back to the start of the line.
*/
(void)find_last_paren(l, '(', ')');
trypos = find_match_paren(corr_ind_maxparen(&cur_curpos));
/*
* If we are looking for ',', we also look for matching
--- 8149,8164 ----
* bar )
*/
/*
! * Position the cursor over the rightmost paren, so that
* matching it will take us back to the start of the line.
+ * Ignore a match before the start of the block.
*/
(void)find_last_paren(l, '(', ')');
trypos = find_match_paren(corr_ind_maxparen(&cur_curpos));
+ if (trypos != NULL && (trypos->lnum < tryposBrace->lnum
+ || (trypos->lnum == tryposBrace->lnum
+ && trypos->col < tryposBrace->col)))
+ trypos = NULL;
/*
* If we are looking for ',', we also look for matching
***************
*** 8117,8126 ****
* Get indent and pointer to text for current line,
* ignoring any jump label. XXX
*/
! if (!curbuf->b_ind_js)
! cur_amount = skip_label(curwin->w_cursor.lnum, &l);
! else
cur_amount = get_indent();
/*
* If this is just above the line we are indenting, and it
* starts with a '{', line it up with this line.
--- 8209,8218 ----
* Get indent and pointer to text for current line,
* ignoring any jump label. XXX
*/
! if (curbuf->b_ind_js)
cur_amount = get_indent();
+ else
+ cur_amount = skip_label(curwin->w_cursor.lnum, &l);
/*
* If this is just above the line we are indenting, and it
* starts with a '{', line it up with this line.
***************
*** 8142,8148 ****
if (*skipwhite(l) != '{')
amount += curbuf->b_ind_open_extra;
! if (curbuf->b_ind_cpp_baseclass)
{
/* have to look back, whether it is a cpp base
* class declaration or initialization */
--- 8234,8240 ----
if (*skipwhite(l) != '{')
amount += curbuf->b_ind_open_extra;
! if (curbuf->b_ind_cpp_baseclass && !curbuf->b_ind_js)
{
/* have to look back, whether it is a cpp base
* class declaration or initialization */
***************
*** 8302,8309 ****
*/
if (lookfor == LOOKFOR_INITIAL && terminated == ',')
{
! lookfor = LOOKFOR_ENUM_OR_INIT;
! cont_amount = cin_first_id_amount();
}
else
{
--- 8394,8434 ----
*/
if (lookfor == LOOKFOR_INITIAL && terminated == ',')
{
! if (curbuf->b_ind_js)
! {
! /* Search for a line ending in a comma
! * and line up with the line below it
! * (could be the current line).
! * some = [
! * 1, <- line up here
! * 2,
! * some = [
! * 3 + <- line up here
! * 4 *
! * 5,
! * 6,
! */
! lookfor = LOOKFOR_NO_COMMA;
! amount = get_indent(); /* XXX */
! trypos = find_match_char('[',
! curbuf->b_ind_maxparen);
! if (trypos != NULL)
! {
! if (trypos->lnum
! == curwin->w_cursor.lnum - 1)
! {
! /* Current line is first inside
! * [], line up with it. */
! break;
! }
! ourscope = trypos->lnum;
! }
! }
! else
! {
! lookfor = LOOKFOR_ENUM_OR_INIT;
! cont_amount = cin_first_id_amount();
! }
}
else
{
***************
*** 8313,8319 ****
/* XXX */
cont_amount = cin_get_equal_amount(
curwin->w_cursor.lnum);
! if (lookfor != LOOKFOR_TERM)
lookfor = LOOKFOR_UNTERM;
}
}
--- 8438,8445 ----
/* XXX */
cont_amount = cin_get_equal_amount(
curwin->w_cursor.lnum);
! if (lookfor != LOOKFOR_TERM
! && lookfor != LOOKFOR_JS_KEY)
lookfor = LOOKFOR_UNTERM;
}
}
***************
*** 8324,8331 ****
* Check if we are after a while (cond);
* If so: Ignore until the matching "do".
*/
! /* XXX */
! else if (cin_iswhileofdo_end(terminated))
{
/*
* Found an unterminated line after a while ();, line up
--- 8450,8456 ----
* Check if we are after a while (cond);
* If so: Ignore until the matching "do".
*/
! else if (cin_iswhileofdo_end(terminated)) /* XXX */
{
/*
* Found an unterminated line after a while ();, line up
***************
*** 8538,8555 ****
if (curbuf->b_ind_jump_label > 0 && original_line_islabel)
amount -= curbuf->b_ind_jump_label;
}
-
- /*
- * ok -- we're not inside any sort of structure at all!
- *
- * this means we're at the top level, and everything should
- * basically just match where the previous line is, except
- * for the lines immediately following a function declaration,
- * which are K&R-style parameters and need to be indented.
- */
else
{
/*
* if our line starts with an open brace, forget about any
* prevailing indent and make sure it looks like the start
* of a function
--- 8663,8678 ----
if (curbuf->b_ind_jump_label > 0 && original_line_islabel)
amount -= curbuf->b_ind_jump_label;
}
else
{
/*
+ * ok -- we're not inside any sort of structure at all!
+ *
+ * This means we're at the top level, and everything should
+ * basically just match where the previous line is, except
+ * for the lines immediately following a function declaration,
+ * which are K&R-style parameters and need to be indented.
+ *
* if our line starts with an open brace, forget about any
* prevailing indent and make sure it looks like the start
* of a function
***************
*** 8700,8705 ****
--- 8823,8840 ----
break;
/*
+ * If the previous line ends on '[' we are probably in an
+ * array constant:
+ * something = [
+ * 234, <- extra indent
+ */
+ if (cin_ends_in(l, (char_u *)"[", NULL))
+ {
+ amount = get_indent() + ind_continuation;
+ break;
+ }
+
+ /*
* Find a line only has a semicolon that belongs to a previous
* line ending in '}', e.g. before an #endif. Don't increase
* indent then.
*** ../vim-7.4.354/src/testdir/test3.in 2014-07-02 18:27:44.662290695 +0200
--- src/testdir/test3.in 2014-07-03 22:41:38.743848025 +0200
***************
*** 1432,1438 ****
STARTTEST
:set cino=(0,ts
! 2kdd=][
ENDTEST
void func(int a
--- 1432,1438 ----
STARTTEST
:set cino=(0,ts
! 2kdd2j=][
ENDTEST
void func(int a
***************
*** 1446,1452 ****
STARTTEST
:set cino=(0
! 2kdd=][
ENDTEST
void
--- 1446,1452 ----
STARTTEST
:set cino=(0
! 2kdd2j=][
ENDTEST
void
***************
*** 1461,1467 ****
STARTTEST
:set cino&
! 2kdd=7][
ENDTEST
void func(void)
--- 1461,1467 ----
STARTTEST
:set cino&
! 2kdd2j=7][
ENDTEST
void func(void)
***************
*** 1538,1544 ****
STARTTEST
:set cino&
:set cino+=l1
! 2kdd=][
ENDTEST
void func(void)
--- 1538,1544 ----
STARTTEST
:set cino&
:set cino+=l1
! 2kdd2j=][
ENDTEST
void func(void)
***************
*** 1567,1573 ****
STARTTEST
:set cino&
! 2kdd=][
ENDTEST
void func(void)
--- 1567,1573 ----
STARTTEST
:set cino&
! 2kdd2j=][
ENDTEST
void func(void)
***************
*** 1592,1598 ****
STARTTEST
:set cino&
! 2kdd=][
ENDTEST
void func(void)
--- 1592,1598 ----
STARTTEST
:set cino&
! 2kdd2j=][
ENDTEST
void func(void)
***************
*** 1919,1928 ****
JSSTART
var foo = [
! 1, // indent 8 more
2,
3
! ]; // indent 8 less
JSEND
STARTTEST
--- 1919,1928 ----
JSSTART
var foo = [
! 1,
2,
3
! ];
JSEND
STARTTEST
***************
*** 1937,1943 ****
1,
2,
3
! ]; // indent 16 less
}
JSEND
--- 1937,1943 ----
1,
2,
3
! ];
}
JSEND
***************
*** 1954,1959 ****
--- 1954,1961 ----
cond) {
stmt;
}
+ window.something.left =
+ (width - 50 + offset) + "px";
var class_name='myclass';
function private_method() {
***************
*** 1969,1983 ****
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2, // indent 8 more
! foobar: [ // indent 8 more
! 1, // indent 8 more
! 2, // indent 16 more
! 3 // indent 16 more
],
! callback: function(){ // indent 8 more
! return true; // indent 8 more
! } // indent 8 more
}, options||{}));
}
--- 1971,1985 ----
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2,
! foobar: [
! 1,
! 2,
! 3
],
! callback: function(){
! return true;
! }
}, options||{}));
}
***************
*** 2018,2026 ****
foo: 'bar',
bar: 2,
foobar: [
! 1, // indent 8 more
! 2, // indent 8 more
! 3 // indent 8 more
],
callback: function(){
return true;
--- 2020,2028 ----
foo: 'bar',
bar: 2,
foobar: [
! 1,
! 2,
! 3
],
callback: function(){
return true;
***************
*** 2040,2054 ****
function init(options) {
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2, // indent 8 more
! foobar: [ // indent 8 more
! 1, // indent 8 more
! 2, // indent 16 more
! 3 // indent 16 more
],
! callback: function(){ // indent 8 more
! return true; // indent 8 more
! } // indent 8 more
}, options||{}));
}
})(jQuery);
--- 2042,2056 ----
function init(options) {
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2,
! foobar: [
! 1,
! 2,
! 3
],
! callback: function(){
! return true;
! }
}, options||{}));
}
})(jQuery);
*** ../vim-7.4.354/src/testdir/test3.ok 2014-07-02 18:27:44.662290695 +0200
--- src/testdir/test3.ok 2014-07-03 22:18:58.167827177 +0200
***************
*** 1707,1716 ****
JSSTART
var foo = [
! 1, // indent 8 more
2,
3
! ]; // indent 8 less
JSEND
--- 1707,1716 ----
JSSTART
var foo = [
! 1,
2,
3
! ];
JSEND
***************
*** 1720,1726 ****
1,
2,
3
! ]; // indent 16 less
}
JSEND
--- 1720,1726 ----
1,
2,
3
! ];
}
JSEND
***************
*** 1732,1737 ****
--- 1732,1739 ----
cond) {
stmt;
}
+ window.something.left =
+ (width - 50 + offset) + "px";
var class_name='myclass';
function private_method() {
***************
*** 1747,1761 ****
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2, // indent 8 more
! foobar: [ // indent 8 more
! 1, // indent 8 more
! 2, // indent 16 more
! 3 // indent 16 more
],
! callback: function(){ // indent 8 more
! return true; // indent 8 more
! } // indent 8 more
}, options||{}));
}
--- 1749,1763 ----
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2,
! foobar: [
! 1,
! 2,
! 3
],
! callback: function(){
! return true;
! }
}, options||{}));
}
***************
*** 1791,1799 ****
foo: 'bar',
bar: 2,
foobar: [
! 1, // indent 8 more
! 2, // indent 8 more
! 3 // indent 8 more
],
callback: function(){
return true;
--- 1793,1801 ----
foo: 'bar',
bar: 2,
foobar: [
! 1,
! 2,
! 3
],
callback: function(){
return true;
***************
*** 1808,1822 ****
function init(options) {
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2, // indent 8 more
! foobar: [ // indent 8 more
! 1, // indent 8 more
! 2, // indent 16 more
! 3 // indent 16 more
],
! callback: function(){ // indent 8 more
! return true; // indent 8 more
! } // indent 8 more
}, options||{}));
}
})(jQuery);
--- 1810,1824 ----
function init(options) {
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
! bar: 2,
! foobar: [
! 1,
! 2,
! 3
],
! callback: function(){
! return true;
! }
}, options||{}));
}
})(jQuery);
*** ../vim-7.4.354/src/version.c 2014-07-03 22:54:04.911859458 +0200
--- src/version.c 2014-07-03 22:54:40.971860011 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 355,
/**/
--
MESKIMEN'S LAW
There's never time to do it right, but always time to do it over.
/// 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 ///

38
7.4.356 Normal file
View File

@ -0,0 +1,38 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.356
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.4.356
Problem: Mercurial does not ignore memfile_test. (Daniel Hahler)
Solution: Add memfile_test to ignored files, remove trailing spaces.
Files: .hgignore
Note: This patch was made empty, because .hgignore is not part of the
distributed files.
*** ../vim-7.4.355/src/version.c 2014-07-03 22:57:51.299862927 +0200
--- src/version.c 2014-07-09 13:41:39.855060005 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 356,
/**/
--
In Africa some of the native tribes have a custom of beating the ground
with clubs and uttering spine chilling cries. Anthropologists call
this a form of primitive self-expression. In America we call it golf.
/// 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.4.357 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.357
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.4.357
Problem: After completion some characters are not redrawn.
Solution: Clear the command line unconditionally. (Jacob Niehus)
Files: src/edit.c
*** ../vim-7.4.356/src/edit.c 2014-06-25 14:39:35.102348584 +0200
--- src/edit.c 2014-07-09 13:22:22.747075922 +0200
***************
*** 3854,3861 ****
ins_compl_free();
compl_started = FALSE;
compl_matches = 0;
! if (!shortmess(SHM_COMPLETIONMENU))
! msg_clr_cmdline(); /* necessary for "noshowmode" */
ctrl_x_mode = 0;
compl_enter_selects = FALSE;
if (edit_submode != NULL)
--- 3854,3860 ----
ins_compl_free();
compl_started = FALSE;
compl_matches = 0;
! msg_clr_cmdline(); /* necessary for "noshowmode" */
ctrl_x_mode = 0;
compl_enter_selects = FALSE;
if (edit_submode != NULL)
*** ../vim-7.4.356/src/version.c 2014-07-09 13:43:18.399058649 +0200
--- src/version.c 2014-07-09 13:58:35.483046034 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 357,
/**/
--
Why isn't there mouse-flavored cat food?
/// 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 ///

290
7.4.358 Normal file
View File

@ -0,0 +1,290 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.358
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.4.358 (after 7.4.351)
Problem: Sort is not always stable.
Solution: Add an index instead of relying on the pointer to remain the same.
Idea by Jun Takimoto.
Files: src/eval.c
*** ../vim-7.4.357/src/eval.c 2014-07-02 19:06:14.686326091 +0200
--- src/eval.c 2014-07-09 17:42:05.699813489 +0200
***************
*** 17329,17334 ****
--- 17329,17341 ----
#endif
item_compare2 __ARGS((const void *s1, const void *s2));
+ /* struct used in the array that's given to qsort() */
+ typedef struct
+ {
+ listitem_T *item;
+ int idx;
+ } sortItem_T;
+
static int item_compare_ic;
static int item_compare_numeric;
static char_u *item_compare_func;
***************
*** 17349,17362 ****
const void *s1;
const void *s2;
{
char_u *p1, *p2;
char_u *tofree1, *tofree2;
int res;
char_u numbuf1[NUMBUFLEN];
char_u numbuf2[NUMBUFLEN];
! p1 = tv2string(&(*(listitem_T **)s1)->li_tv, &tofree1, numbuf1, 0);
! p2 = tv2string(&(*(listitem_T **)s2)->li_tv, &tofree2, numbuf2, 0);
if (p1 == NULL)
p1 = (char_u *)"";
if (p2 == NULL)
--- 17356,17372 ----
const void *s1;
const void *s2;
{
+ sortItem_T *si1, *si2;
char_u *p1, *p2;
char_u *tofree1, *tofree2;
int res;
char_u numbuf1[NUMBUFLEN];
char_u numbuf2[NUMBUFLEN];
! si1 = (sortItem_T *)s1;
! si2 = (sortItem_T *)s2;
! p1 = tv2string(&si1->item->li_tv, &tofree1, numbuf1, 0);
! p2 = tv2string(&si2->item->li_tv, &tofree2, numbuf2, 0);
if (p1 == NULL)
p1 = (char_u *)"";
if (p2 == NULL)
***************
*** 17379,17385 ****
/* When the result would be zero, compare the pointers themselves. Makes
* the sort stable. */
if (res == 0 && !item_compare_keep_zero)
! res = s1 > s2 ? 1 : -1;
vim_free(tofree1);
vim_free(tofree2);
--- 17389,17395 ----
/* When the result would be zero, compare the pointers themselves. Makes
* the sort stable. */
if (res == 0 && !item_compare_keep_zero)
! res = si1->idx > si2->idx ? 1 : -1;
vim_free(tofree1);
vim_free(tofree2);
***************
*** 17394,17399 ****
--- 17404,17410 ----
const void *s1;
const void *s2;
{
+ sortItem_T *si1, *si2;
int res;
typval_T rettv;
typval_T argv[3];
***************
*** 17403,17412 ****
if (item_compare_func_err)
return 0;
/* Copy the values. This is needed to be able to set v_lock to VAR_FIXED
* in the copy without changing the original list items. */
! copy_tv(&(*(listitem_T **)s1)->li_tv, &argv[0]);
! copy_tv(&(*(listitem_T **)s2)->li_tv, &argv[1]);
rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
--- 17414,17426 ----
if (item_compare_func_err)
return 0;
+ si1 = (sortItem_T *)s1;
+ si2 = (sortItem_T *)s2;
+
/* Copy the values. This is needed to be able to set v_lock to VAR_FIXED
* in the copy without changing the original list items. */
! copy_tv(&si1->item->li_tv, &argv[0]);
! copy_tv(&si2->item->li_tv, &argv[1]);
rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
***************
*** 17426,17432 ****
/* When the result would be zero, compare the pointers themselves. Makes
* the sort stable. */
if (res == 0 && !item_compare_keep_zero)
! res = s1 > s2 ? 1 : -1;
return res;
}
--- 17440,17446 ----
/* When the result would be zero, compare the pointers themselves. Makes
* the sort stable. */
if (res == 0 && !item_compare_keep_zero)
! res = si1->idx > si2->idx ? 1 : -1;
return res;
}
***************
*** 17442,17448 ****
{
list_T *l;
listitem_T *li;
! listitem_T **ptrs;
long len;
long i;
--- 17456,17462 ----
{
list_T *l;
listitem_T *li;
! sortItem_T *ptrs;
long len;
long i;
***************
*** 17510,17516 ****
}
/* Make an array with each entry pointing to an item in the List. */
! ptrs = (listitem_T **)alloc((int)(len * sizeof(listitem_T *)));
if (ptrs == NULL)
return;
--- 17524,17530 ----
}
/* Make an array with each entry pointing to an item in the List. */
! ptrs = (sortItem_T *)alloc((int)(len * sizeof(sortItem_T)));
if (ptrs == NULL)
return;
***************
*** 17519,17525 ****
{
/* sort(): ptrs will be the list to sort */
for (li = l->lv_first; li != NULL; li = li->li_next)
! ptrs[i++] = li;
item_compare_func_err = FALSE;
item_compare_keep_zero = FALSE;
--- 17533,17543 ----
{
/* sort(): ptrs will be the list to sort */
for (li = l->lv_first; li != NULL; li = li->li_next)
! {
! ptrs[i].item = li;
! ptrs[i].idx = i;
! ++i;
! }
item_compare_func_err = FALSE;
item_compare_keep_zero = FALSE;
***************
*** 17531,17537 ****
else
{
/* Sort the array with item pointers. */
! qsort((void *)ptrs, (size_t)len, sizeof(listitem_T *),
item_compare_func == NULL ? item_compare : item_compare2);
if (!item_compare_func_err)
--- 17549,17555 ----
else
{
/* Sort the array with item pointers. */
! qsort((void *)ptrs, (size_t)len, sizeof(sortItem_T),
item_compare_func == NULL ? item_compare : item_compare2);
if (!item_compare_func_err)
***************
*** 17540,17546 ****
l->lv_first = l->lv_last = l->lv_idx_item = NULL;
l->lv_len = 0;
for (i = 0; i < len; ++i)
! list_append(l, ptrs[i]);
}
}
}
--- 17558,17564 ----
l->lv_first = l->lv_last = l->lv_idx_item = NULL;
l->lv_len = 0;
for (i = 0; i < len; ++i)
! list_append(l, ptrs[i].item);
}
}
}
***************
*** 17559,17565 ****
{
if (item_compare_func_ptr((void *)&li, (void *)&li->li_next)
== 0)
! ptrs[i++] = li;
if (item_compare_func_err)
{
EMSG(_("E882: Uniq compare function failed"));
--- 17577,17583 ----
{
if (item_compare_func_ptr((void *)&li, (void *)&li->li_next)
== 0)
! ptrs[i++].item = li;
if (item_compare_func_err)
{
EMSG(_("E882: Uniq compare function failed"));
***************
*** 17571,17582 ****
{
while (--i >= 0)
{
! li = ptrs[i]->li_next;
! ptrs[i]->li_next = li->li_next;
if (li->li_next != NULL)
! li->li_next->li_prev = ptrs[i];
else
! l->lv_last = ptrs[i];
list_fix_watch(l, li);
listitem_free(li);
l->lv_len--;
--- 17589,17600 ----
{
while (--i >= 0)
{
! li = ptrs[i].item->li_next;
! ptrs[i].item->li_next = li->li_next;
if (li->li_next != NULL)
! li->li_next->li_prev = ptrs[i].item;
else
! l->lv_last = ptrs[i].item;
list_fix_watch(l, li);
listitem_free(li);
l->lv_len--;
*** ../vim-7.4.357/src/version.c 2014-07-09 14:00:45.175044250 +0200
--- src/version.c 2014-07-09 17:23:12.791836515 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 358,
/**/
--
An indication you must be a manager:
You can explain to somebody the difference between "re-engineering",
"down-sizing", "right-sizing", and "firing people's asses".
/// 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 ///

103
7.4.359 Normal file
View File

@ -0,0 +1,103 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.359
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.4.359
Problem: When 'ttymouse' is set to 'uxterm' the xterm version is not
requested. (Tomas Janousek)
Solution: Do not mark uxterm as a conflict mouse and add
resume_get_esc_sequence().
Files: src/term.c, src/os_unix.c, src/proto/term.pro
*** ../vim-7.4.358/src/term.c 2014-05-22 21:22:15.361995652 +0200
--- src/term.c 2014-07-09 18:49:57.127730739 +0200
***************
*** 3330,3335 ****
--- 3330,3348 ----
return crv_status == CRV_SENT || u7_status == U7_SENT
|| xt_index_out > xt_index_in;
}
+
+ /*
+ * If requesting the version was disabled in did_request_esc_sequence(),
+ * enable it again.
+ */
+ void
+ resume_get_esc_sequence()
+ {
+ if (crv_status == 0)
+ crv_status = CRV_GET;
+ if (u7_status == 0)
+ u7_status = U7_GET;
+ }
# endif
*** ../vim-7.4.358/src/os_unix.c 2014-05-22 21:22:15.361995652 +0200
--- src/os_unix.c 2014-07-09 18:56:58.483722175 +0200
***************
*** 3780,3788 ****
# ifdef FEAT_MOUSE_URXVT
/* same as the dec mouse */
if (use_xterm_mouse() == 3
- # ifdef FEAT_TERMRESPONSE
- && !did_request_esc_sequence()
- # endif
# ifdef FEAT_GUI
&& !gui.in_use
# endif
--- 3780,3785 ----
***************
*** 3797,3803 ****
mch_setmouse(FALSE);
setmouse();
}
! xterm_conflict_mouse = TRUE;
}
else
del_mouse_termcode(KS_URXVT_MOUSE);
--- 3794,3801 ----
mch_setmouse(FALSE);
setmouse();
}
! /* It's OK to request the xterm version for uxterm. */
! resume_get_esc_sequence();
}
else
del_mouse_termcode(KS_URXVT_MOUSE);
*** ../vim-7.4.358/src/proto/term.pro 2014-05-22 18:14:27.570224664 +0200
--- src/proto/term.pro 2014-07-09 18:53:31.827726375 +0200
***************
*** 35,40 ****
--- 35,41 ----
void starttermcap __ARGS((void));
void stoptermcap __ARGS((void));
int did_request_esc_sequence __ARGS((void));
+ void resume_get_esc_sequence __ARGS((void));
void may_req_termresponse __ARGS((void));
void may_req_ambiguous_char_width __ARGS((void));
int swapping_screen __ARGS((void));
*** ../vim-7.4.358/src/version.c 2014-07-09 17:51:46.075801693 +0200
--- src/version.c 2014-07-09 18:50:55.515729552 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 359,
/**/
--
An indication you must be a manager:
You give constructive feedback to your dog.
/// 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 ///

80
7.4.360 Normal file
View File

@ -0,0 +1,80 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.360
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.4.360
Problem: In a regexp pattern a "$" followed by \v or \V is not seen as the
end-of-line.
Solution: Handle the situation. (Ozaki Kiichi)
Files: src/regexp.c
*** ../vim-7.4.359/src/regexp.c 2014-05-13 19:37:19.489786520 +0200
--- src/regexp.c 2014-07-09 19:28:51.871683287 +0200
***************
*** 3109,3123 ****
if (reg_magic >= MAGIC_OFF)
{
char_u *p = regparse + 1;
! /* ignore \c \C \m and \M after '$' */
while (p[0] == '\\' && (p[1] == 'c' || p[1] == 'C'
! || p[1] == 'm' || p[1] == 'M' || p[1] == 'Z'))
p += 2;
if (p[0] == NUL
|| (p[0] == '\\'
&& (p[1] == '|' || p[1] == '&' || p[1] == ')'
|| p[1] == 'n'))
|| reg_magic == MAGIC_ALL)
curchr = Magic('$');
}
--- 3109,3133 ----
if (reg_magic >= MAGIC_OFF)
{
char_u *p = regparse + 1;
+ int is_magic_all = (reg_magic == MAGIC_ALL);
! /* ignore \c \C \m \M \v \V and \Z after '$' */
while (p[0] == '\\' && (p[1] == 'c' || p[1] == 'C'
! || p[1] == 'm' || p[1] == 'M'
! || p[1] == 'v' || p[1] == 'V' || p[1] == 'Z'))
! {
! if (p[1] == 'v')
! is_magic_all = TRUE;
! else if (p[1] == 'm' || p[1] == 'M' || p[1] == 'V')
! is_magic_all = FALSE;
p += 2;
+ }
if (p[0] == NUL
|| (p[0] == '\\'
&& (p[1] == '|' || p[1] == '&' || p[1] == ')'
|| p[1] == 'n'))
+ || (is_magic_all
+ && (p[0] == '|' || p[0] == '&' || p[0] == ')'))
|| reg_magic == MAGIC_ALL)
curchr = Magic('$');
}
*** ../vim-7.4.359/src/version.c 2014-07-09 19:13:45.007701718 +0200
--- src/version.c 2014-07-09 19:18:36.599695792 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 360,
/**/
--
An indication you must be a manager:
You believe you never have any problems in your life, just
"issues" and "improvement opportunities".
/// 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.4.361 Normal file
View File

@ -0,0 +1,48 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.361
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.4.361
Problem: Lots of flickering when filling the preview window for 'omnifunc'.
Solution: Disable redrawing. (Hirohito Higashi)
Files: src/popupmnu.c
*** ../vim-7.4.360/src/popupmnu.c 2013-11-06 04:04:29.000000000 +0100
--- src/popupmnu.c 2014-07-09 19:56:25.663649674 +0200
***************
*** 567,573 ****
--- 567,575 ----
g_do_tagpreview = 3;
if (p_pvh > 0 && p_pvh < g_do_tagpreview)
g_do_tagpreview = p_pvh;
+ ++RedrawingDisabled;
resized = prepare_tagpreview(FALSE);
+ --RedrawingDisabled;
g_do_tagpreview = 0;
if (curwin->w_p_pvw)
*** ../vim-7.4.360/src/version.c 2014-07-09 19:32:30.939678834 +0200
--- src/version.c 2014-07-09 19:55:48.995650419 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 361,
/**/
--
Lose weight, NEVER Diet again with
The "Invisible Weight Loss Patch"
(spam e-mail)
/// 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 ///

53
7.4.362 Normal file
View File

@ -0,0 +1,53 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.362
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.4.362
Problem: When matchaddpos() uses a length smaller than the number of bytes
in the (last) character the highlight continues until the end of
the line.
Solution: Change condition from equal to larger-or-equal.
Files: src/screen.c
*** ../vim-7.4.361/src/screen.c 2014-07-03 22:54:04.911859458 +0200
--- src/screen.c 2014-07-09 20:14:46.611627298 +0200
***************
*** 3852,3858 ****
{
shl->attr_cur = shl->attr;
}
! else if (v == (long)shl->endcol)
{
shl->attr_cur = 0;
next_search_hl(wp, shl, lnum, (colnr_T)v, cur);
--- 3852,3858 ----
{
shl->attr_cur = shl->attr;
}
! else if (v >= (long)shl->endcol)
{
shl->attr_cur = 0;
next_search_hl(wp, shl, lnum, (colnr_T)v, cur);
*** ../vim-7.4.361/src/version.c 2014-07-09 19:58:21.115647328 +0200
--- src/version.c 2014-07-09 20:20:14.423620635 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 362,
/**/
--
Compilation process failed successfully.
/// 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 ///

160
7.4.363 Normal file
View File

@ -0,0 +1,160 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.363
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.4.363
Problem: In Windows console typing 0xCE does not work.
Solution: Convert 0xCE to K_NUL 3. (Nobuhiro Takasaki et al.)
Files: src/os_win32.c, src/term.c
*** ../vim-7.4.362/src/os_win32.c 2014-04-01 21:00:45.436733663 +0200
--- src/os_win32.c 2014-07-09 20:29:30.787609327 +0200
***************
*** 619,625 ****
return FALSE;
}
! tokenPrivileges.PrivilegeCount = 1;
tokenPrivileges.Privileges[0].Luid = luid;
tokenPrivileges.Privileges[0].Attributes = bEnable ?
SE_PRIVILEGE_ENABLED : 0;
--- 619,625 ----
return FALSE;
}
! tokenPrivileges.PrivilegeCount = 1;
tokenPrivileges.Privileges[0].Luid = luid;
tokenPrivileges.Privileges[0].Attributes = bEnable ?
SE_PRIVILEGE_ENABLED : 0;
***************
*** 1785,1797 ****
#endif
{
int n = 1;
- /* A key may have one or two bytes. */
typeahead[typeaheadlen] = c;
if (ch2 != NUL)
{
! typeahead[typeaheadlen + 1] = ch2;
! ++n;
}
#ifdef FEAT_MBYTE
/* Only convert normal characters, not special keys. Need to
--- 1785,1798 ----
#endif
{
int n = 1;
+ int conv = FALSE;
typeahead[typeaheadlen] = c;
if (ch2 != NUL)
{
! typeahead[typeaheadlen + 1] = 3;
! typeahead[typeaheadlen + 2] = ch2;
! n += 2;
}
#ifdef FEAT_MBYTE
/* Only convert normal characters, not special keys. Need to
***************
*** 1800,1805 ****
--- 1801,1807 ----
if (input_conv.vc_type != CONV_NONE
&& (ch2 == NUL || c != K_NUL))
{
+ conv = TRUE;
typeaheadlen -= unconverted;
n = convert_input_safe(typeahead + typeaheadlen,
n + unconverted, TYPEAHEADLEN - typeaheadlen,
***************
*** 1807,1812 ****
--- 1809,1832 ----
}
#endif
+ if (conv)
+ {
+ char_u *p = typeahead + typeaheadlen;
+ char_u *e = typeahead + TYPEAHEADLEN;
+
+ while (*p && p < e)
+ {
+ if (*p == K_NUL)
+ {
+ ++p;
+ mch_memmove(p + 1, p, ((size_t)(e - p)) - 1);
+ *p = 3;
+ ++n;
+ }
+ ++p;
+ }
+ }
+
/* Use the ALT key to set the 8th bit of the character
* when it's one byte, the 8th bit isn't set yet and not
* using a double-byte encoding (would become a lead
*** ../vim-7.4.362/src/term.c 2014-07-09 19:13:45.003701718 +0200
--- src/term.c 2014-07-09 20:26:28.655613029 +0200
***************
*** 3724,3730 ****
--- 3724,3734 ----
return;
}
+ #if defined(WIN3264) && !defined(FEAT_GUI)
+ s = vim_strnsave(string, (int)STRLEN(string) + 1);
+ #else
s = vim_strsave(string);
+ #endif
if (s == NULL)
return;
***************
*** 3734,3739 ****
--- 3738,3752 ----
STRMOVE(s, s + 1);
s[0] = term_7to8bit(string);
}
+
+ #if defined(WIN3264) && !defined(FEAT_GUI)
+ if (s[0] == K_NUL)
+ {
+ STRMOVE(s + 1, s);
+ s[1] = 3;
+ }
+ #endif
+
len = (int)STRLEN(s);
need_gather = TRUE; /* need to fill termleader[] */
*** ../vim-7.4.362/src/version.c 2014-07-09 20:20:40.359620108 +0200
--- src/version.c 2014-07-09 20:26:38.903612821 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 363,
/**/
--
BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O
Lord bless this thy hand grenade that with it thou mayest
blow thine enemies to tiny bits, in thy mercy. "and the Lord
did grin and people did feast upon the lambs and sloths and
carp and anchovies and orang-utans and breakfast cereals and
fruit bats and...
BROTHER MAYNARD: Skip a bit brother ...
"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 ///

70
7.4.364 Normal file
View File

@ -0,0 +1,70 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.364
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.4.364
Problem: When the viminfo file can't be renamed there is no error message.
(Vladimir Berezhnoy)
Solution: Check for the rename to fail.
Files: src/ex_cmds.c
*** ../vim-7.4.363/src/ex_cmds.c 2014-05-22 14:00:12.694534712 +0200
--- src/ex_cmds.c 2014-07-09 21:11:44.531557830 +0200
***************
*** 2004,2014 ****
{
fclose(fp_in);
! /*
! * In case of an error keep the original viminfo file.
! * Otherwise rename the newly written file.
! */
! if (viminfo_errcnt || vim_rename(tempname, fname) == -1)
mch_remove(tempname);
#ifdef WIN3264
--- 2004,2017 ----
{
fclose(fp_in);
! /* In case of an error keep the original viminfo file. Otherwise
! * rename the newly written file. Give an error if that fails. */
! if (viminfo_errcnt == 0 && vim_rename(tempname, fname) == -1)
! {
! ++viminfo_errcnt;
! EMSG2(_("E886: Can't rename viminfo file to %s!"), fname);
! }
! if (viminfo_errcnt > 0)
mch_remove(tempname);
#ifdef WIN3264
*** ../vim-7.4.363/src/version.c 2014-07-09 20:51:04.519583033 +0200
--- src/version.c 2014-07-09 21:13:18.575555919 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 364,
/**/
--
MONK: ... and the Lord spake, saying, "First shalt thou take out the Holy Pin,
then shalt thou count to three, no more, no less. Three shalt be the
number thou shalt count, and the number of the counting shalt be three.
Four shalt thou not count, neither count thou two, excepting that thou
then proceed to three. Five is right out. Once the number three, being
the third number, be reached, then lobbest thou thy Holy Hand Grenade of
Antioch towards thou foe, who being naughty in my sight, shall snuff it.
"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 ///

159
7.4.365 Normal file
View File

@ -0,0 +1,159 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.365
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.4.365
Problem: Crash when using ":botright split" when there isn't much space.
Solution: Add a check for the minimum width/height. (Yukihiro Nakadaira)
Files: src/window.c
*** ../vim-7.4.364/src/window.c 2014-07-02 17:16:51.334225522 +0200
--- src/window.c 2014-07-16 14:14:37.751774230 +0200
***************
*** 686,691 ****
--- 686,693 ----
int layout;
frame_T *frp, *curfrp;
int before;
+ int minwidth;
+ int minheight;
if (flags & WSP_TOP)
oldwin = firstwin;
***************
*** 725,735 ****
needed += p_wiw - p_wmw;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
available = topframe->fr_width;
! needed += frame_minwidth(topframe, NULL);
}
else
available = oldwin->w_width;
if (available < needed && new_wp == NULL)
{
EMSG(_(e_noroom));
--- 727,741 ----
needed += p_wiw - p_wmw;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
+ minwidth = frame_minwidth(topframe, NULL);
available = topframe->fr_width;
! needed += minwidth;
}
else
+ {
+ minwidth = frame_minwidth(oldwin->w_frame, NULL);
available = oldwin->w_width;
+ }
if (available < needed && new_wp == NULL)
{
EMSG(_(e_noroom));
***************
*** 739,744 ****
--- 745,752 ----
new_size = oldwin->w_width / 2;
if (new_size > oldwin->w_width - p_wmw - 1)
new_size = oldwin->w_width - p_wmw - 1;
+ if (new_size > available - minwidth - 1)
+ new_size = available - minwidth - 1;
if (new_size < p_wmw)
new_size = p_wmw;
***************
*** 786,796 ****
needed += p_wh - p_wmh;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
available = topframe->fr_height;
! needed += frame_minheight(topframe, NULL);
}
else
{
available = oldwin->w_height;
needed += p_wmh;
}
--- 794,806 ----
needed += p_wh - p_wmh;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
+ minheight = frame_minheight(topframe, NULL);
available = topframe->fr_height;
! needed += minheight;
}
else
{
+ minheight = frame_minheight(oldwin->w_frame, NULL);
available = oldwin->w_height;
needed += p_wmh;
}
***************
*** 810,815 ****
--- 820,827 ----
if (new_size > oldwin_height - p_wmh - STATUS_HEIGHT)
new_size = oldwin_height - p_wmh - STATUS_HEIGHT;
+ if (new_size > available - minheight - STATUS_HEIGHT)
+ new_size = available - minheight - STATUS_HEIGHT;
if (new_size < p_wmh)
new_size = p_wmh;
***************
*** 5732,5738 ****
--wp->w_wrow;
}
}
! set_topline(wp, lnum);
}
else if (sline > 0)
{
--- 5744,5750 ----
--wp->w_wrow;
}
}
! set_topline(wp, lnum);
}
else if (sline > 0)
{
***************
*** 5778,5784 ****
wp->w_wrow -= sline;
}
! set_topline(wp, lnum);
}
}
--- 5790,5796 ----
wp->w_wrow -= sline;
}
! set_topline(wp, lnum);
}
}
*** ../vim-7.4.364/src/version.c 2014-07-09 21:17:59.755550204 +0200
--- src/version.c 2014-07-16 14:10:41.191779038 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 365,
/**/
--
"Software is like sex... it's better when it's free."
-- Linus Torvalds, initiator of the free Linux OS
Makes me wonder what FSF stands for...?
/// 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 ///

53
7.4.366 Normal file
View File

@ -0,0 +1,53 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.366
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.4.366
Problem: Can't run the linebreak test on MS-Windows.
Solution: Fix the output file name. (Taro Muraoka)
Files: src/testdir/Make_dos.mak
*** ../vim-7.4.365/src/testdir/Make_dos.mak 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/Make_dos.mak 2014-07-16 14:19:39.719768093 +0200
***************
*** 37,43 ****
test105.out test106.out test107.out\
test_autoformat_join.out \
test_breakindent.out \
! test_listlbr \
test_eval.out \
test_options.out
--- 37,43 ----
test105.out test106.out test107.out\
test_autoformat_join.out \
test_breakindent.out \
! test_listlbr.out \
test_eval.out \
test_options.out
*** ../vim-7.4.365/src/version.c 2014-07-16 14:16:41.519771715 +0200
--- src/version.c 2014-07-16 14:18:43.307769239 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 366,
/**/
--
<Beeth> Girls are like internet domain names,
the ones I like are already taken.
<honx> Well, you can stil get one from a strange country :-P
/// 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 ///

67
7.4.367 Normal file
View File

@ -0,0 +1,67 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.367
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.4.367 (after 7.4.357)
Problem: Other solution for redrawing after completion.
Solution: Schedule a window redraw instead of just clearing the command
line. (Jacob Niehus)
Files: src/edit.c
*** ../vim-7.4.366/src/edit.c 2014-07-09 14:00:45.175044250 +0200
--- src/edit.c 2014-07-16 14:36:00.679748155 +0200
***************
*** 3854,3860 ****
ins_compl_free();
compl_started = FALSE;
compl_matches = 0;
! msg_clr_cmdline(); /* necessary for "noshowmode" */
ctrl_x_mode = 0;
compl_enter_selects = FALSE;
if (edit_submode != NULL)
--- 3854,3861 ----
ins_compl_free();
compl_started = FALSE;
compl_matches = 0;
! if (!shortmess(SHM_COMPLETIONMENU))
! msg_clr_cmdline(); /* necessary for "noshowmode" */
ctrl_x_mode = 0;
compl_enter_selects = FALSE;
if (edit_submode != NULL)
***************
*** 4591,4597 ****
--- 4592,4601 ----
*/
i = compl_col + (compl_cont_status & CONT_ADDING ? compl_length : 0);
backspace_until_column(i);
+
+ /* Not sure what is still valid, better redraw everything. */
changed_cline_bef_curs();
+ redraw_curbuf_later(NOT_VALID);
}
/* Insert the new text being completed. */
*** ../vim-7.4.366/src/version.c 2014-07-16 14:20:38.255766903 +0200
--- src/version.c 2014-07-16 14:42:23.059740384 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 367,
/**/
--
No children may attend school with their breath smelling of "wild onions."
[real standing law in West Virginia, United States of America]
/// 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 ///

79
7.4.368 Normal file
View File

@ -0,0 +1,79 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.368
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.4.368
Problem: Restoring the window sizes after closing the command line window
doesn't work properly if there are nested splits.
Solution: Restore the sizes twice. (Hirohito Higashi)
Files: src/window.c
*** ../vim-7.4.367/src/window.c 2014-07-16 14:16:41.519771715 +0200
--- src/window.c 2014-07-16 15:13:52.895701974 +0200
***************
*** 4848,4862 ****
garray_T *gap;
{
win_T *wp;
! int i;
if (win_count() * 2 == gap->ga_len)
{
! i = 0;
! for (wp = firstwin; wp != NULL; wp = wp->w_next)
{
! frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
! win_setheight_win(((int *)gap->ga_data)[i++], wp);
}
/* recompute the window positions */
(void)win_comp_pos();
--- 4848,4867 ----
garray_T *gap;
{
win_T *wp;
! int i, j;
if (win_count() * 2 == gap->ga_len)
{
! /* The order matters, because frames contain other frames, but it's
! * difficult to get right. The easy way out is to do it twice. */
! for (j = 0; j < 2; ++j)
{
! i = 0;
! for (wp = firstwin; wp != NULL; wp = wp->w_next)
! {
! frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
! win_setheight_win(((int *)gap->ga_data)[i++], wp);
! }
}
/* recompute the window positions */
(void)win_comp_pos();
*** ../vim-7.4.367/src/version.c 2014-07-16 14:42:37.923740082 +0200
--- src/version.c 2014-07-16 15:14:46.035700894 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 368,
/**/
--
FROG: How you English say: I one more time, mac, I unclog my nose towards
you, sons of a window-dresser, so, you think you could out-clever us
French fellows with your silly knees-bent creeping about advancing
behaviour. (blows a raspberry) I wave my private parts at your aunties,
you brightly-coloured, mealy-templed, cranberry-smelling, electric
donkey-bottom biters.
"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 ///

70
7.4.369 Normal file
View File

@ -0,0 +1,70 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.369
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.4.369
Problem: Using freed memory when exiting while compiled with EXITFREE.
Solution: Set curwin to NULL and check for that. (Dominique Pelle)
Files: src/buffer.c, src/window.c
*** ../vim-7.4.368/src/buffer.c 2014-06-12 14:01:27.571769788 +0200
--- src/buffer.c 2014-07-16 16:20:04.443621254 +0200
***************
*** 5702,5709 ****
signlist_T *next;
/* When deleting the last sign need to redraw the windows to remove the
! * sign column. */
! if (buf->b_signlist != NULL)
{
redraw_buf_later(buf, NOT_VALID);
changed_cline_bef_curs();
--- 5702,5709 ----
signlist_T *next;
/* When deleting the last sign need to redraw the windows to remove the
! * sign column. Not when curwin is NULL (this means we're exiting). */
! if (buf->b_signlist != NULL && curwin != NULL)
{
redraw_buf_later(buf, NOT_VALID);
changed_cline_bef_curs();
*** ../vim-7.4.368/src/window.c 2014-07-16 15:18:22.903696486 +0200
--- src/window.c 2014-07-16 16:15:41.063626607 +0200
***************
*** 2489,2494 ****
--- 2489,2498 ----
while (firstwin != NULL)
(void)win_free_mem(firstwin, &dummy, NULL);
+
+ /* No window should be used after this. Set curwin to NULL to crash
+ * instead of using freed memory. */
+ curwin = NULL;
}
#endif
*** ../vim-7.4.368/src/version.c 2014-07-16 15:18:22.907696486 +0200
--- src/version.c 2014-07-16 16:18:36.827623035 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 369,
/**/
--
ARTHUR: If you do not open these doors, we will take this castle by force ...
[A bucket of slops land on ARTHUR. He tries to retain his dignity.]
"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 ///

316
7.4.370 Normal file
View File

@ -0,0 +1,316 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.370
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.4.370
Problem: Linebreak test fails when encoding is not utf-8. (Danek Duvall)
Solution: Split the test in a single byte one and a utf-8 one. (Christian
Brabandt)
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/test_listlbr.in, src/testdir/test_listlbr.ok,
src/testdir/test_listlbr_utf8.in, src/testdir/test_listlbr_utf8.ok
*** ../vim-7.4.369/src/testdir/Make_amiga.mak 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/Make_amiga.mak 2014-07-16 16:55:15.311578352 +0200
***************
*** 39,44 ****
--- 39,45 ----
test_autoformat_join.out \
test_breakindent.out \
test_listlbr.out \
+ test_listlbr_utf8.out \
test_eval.out \
test_options.out
***************
*** 167,171 ****
--- 168,173 ----
test_autoformat_join.out: test_autoformat_join.in
test_breakindent.out: test_breakindent.in
test_listlbr.out: test_listlbr.in
+ test_listlbr_utf8.out: test_listlbr_utf8.in
test_eval.out: test_eval.in
test_options.out: test_options.in
*** ../vim-7.4.369/src/testdir/Make_dos.mak 2014-07-16 14:20:38.255766903 +0200
--- src/testdir/Make_dos.mak 2014-07-16 16:56:02.423577394 +0200
***************
*** 38,43 ****
--- 38,44 ----
test_autoformat_join.out \
test_breakindent.out \
test_listlbr.out \
+ test_listlbr_utf8.out \
test_eval.out \
test_options.out
*** ../vim-7.4.369/src/testdir/Make_ming.mak 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/Make_ming.mak 2014-07-16 16:55:15.311578352 +0200
***************
*** 58,63 ****
--- 58,64 ----
test_autoformat_join.out \
test_breakindent.out \
test_listlbr.out \
+ test_listlbr_utf8.out \
test_eval.out \
test_options.out
*** ../vim-7.4.369/src/testdir/Make_os2.mak 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/Make_os2.mak 2014-07-16 16:55:15.311578352 +0200
***************
*** 40,45 ****
--- 40,46 ----
test_autoformat_join.out \
test_eval.out \
test_breakindent.out \
+ test_listlbr_utf8.out \
test_listlbr.out \
test_options.out
*** ../vim-7.4.369/src/testdir/Make_vms.mms 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/Make_vms.mms 2014-07-16 16:55:15.311578352 +0200
***************
*** 99,104 ****
--- 99,105 ----
test_autoformat_join.out \
test_breakindent.out \
test_listlbr.out \
+ test_listlbr_utf8.out \
test_eval.out \
test_options.out
*** ../vim-7.4.369/src/testdir/Makefile 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/Makefile 2014-07-16 16:55:15.311578352 +0200
***************
*** 36,41 ****
--- 36,42 ----
test_autoformat_join.out \
test_breakindent.out \
test_listlbr.out \
+ test_listlbr_utf8.out \
test_eval.out \
test_options.out
*** ../vim-7.4.369/src/testdir/test_listlbr.in 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/test_listlbr.in 2014-07-16 16:55:15.311578352 +0200
***************
*** 1,10 ****
! Test for linebreak and list option
STARTTEST
:so small.vim
:if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif
:10new|:vsp|:vert resize 20
! :put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
--- 1,10 ----
! Test for linebreak and list option (non-utf8)
STARTTEST
:so small.vim
:if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif
:10new|:vsp|:vert resize 20
! :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
***************
*** 32,53 ****
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
! :let g:test ="Test 3: set linebreak + set list + fancy listchars"
! :exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6"
! :redraw!
! :let line=ScreenChar(winwidth(0))
! :call DoRecordScreen()
! :let g:test ="Test 4: set linebreak nolist"
:set nolist linebreak
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
! :let g:test ="Test 5: set nolinebreak list"
! :set list nolinebreak
! :redraw!
! :let line=ScreenChar(winwidth(0))
! :call DoRecordScreen()
! :let g:test ="Test 6: set linebreak with tab and 1 line as long as screen: should break!"
:set nolist linebreak ts=8
:let line="1\t".repeat('a', winwidth(0)-2)
:$put =line
--- 32,43 ----
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
! :let g:test ="Test 3: set linebreak nolist"
:set nolist linebreak
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
! :let g:test ="Test 4: set linebreak with tab and 1 line as long as screen: should break!"
:set nolist linebreak ts=8
:let line="1\t".repeat('a', winwidth(0)-2)
:$put =line
*** ../vim-7.4.369/src/testdir/test_listlbr.ok 2014-07-02 19:59:35.454375136 +0200
--- src/testdir/test_listlbr.ok 2014-07-16 16:55:15.315578352 +0200
***************
*** 1,38 ****
! abcdef hijklmn pqrstuvwxyz 1060ABCDEFGHIJKLMNOP
Test 1: set linebreak
abcdef
+hijklmn
! +pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP
Test 2: set linebreak + set list
^Iabcdef hijklmn^I
! +pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP
! Test 3: set linebreak + set list + fancy listchars
! ▕———abcdef
! +hijklmn▕———
! +pqrstuvwxyz␣1060ABC
! +DEFGHIJKLMNOPˑ¶
!
! Test 4: set linebreak nolist
abcdef
+hijklmn
! +pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP
-
- Test 5: set nolinebreak list
- ▕———abcdef hijklmn▕—
- +pqrstuvwxyz␣1060ABC
- +DEFGHIJKLMNOPˑ¶
- ¶
1 aaaaaaaaaaaaaaaaaa
! Test 6: set linebreak with tab and 1 line as long as screen: should break!
1
+aaaaaaaaaaaaaaaaaa
~
--- 1,26 ----
! abcdef hijklmn pqrstuvwxyz_1060ABCDEFGHIJKLMNOP
Test 1: set linebreak
abcdef
+hijklmn
! +pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
Test 2: set linebreak + set list
^Iabcdef hijklmn^I
! +pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
! Test 3: set linebreak nolist
abcdef
+hijklmn
! +pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1 aaaaaaaaaaaaaaaaaa
! Test 4: set linebreak with tab and 1 line as long as screen: should break!
1
+aaaaaaaaaaaaaaaaaa
~
*** ../vim-7.4.369/src/testdir/test_listlbr_utf8.in 2014-07-16 17:01:25.415570829 +0200
--- src/testdir/test_listlbr_utf8.in 2014-07-16 16:55:15.315578352 +0200
***************
*** 0 ****
--- 1,41 ----
+ Test for linebreak and list option in utf-8 mode
+
+ STARTTEST
+ :so small.vim
+ :if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif
+ :so mbyte.vim
+ :if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
+ :10new|:vsp|:vert resize 20
+ :put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
+ :norm! zt
+ :set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
+ :fu! ScreenChar(width)
+ : let c=''
+ : for j in range(1,4)
+ : for i in range(1,a:width)
+ : let c.=nr2char(screenchar(j, i))
+ : endfor
+ : let c.="\n"
+ : endfor
+ : return c
+ :endfu
+ :fu! DoRecordScreen()
+ : wincmd l
+ : $put =printf(\"\n%s\", g:test)
+ : $put =g:line
+ : wincmd p
+ :endfu
+ :let g:test ="Test 1: set linebreak + set list + fancy listchars"
+ :exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6"
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :let g:test ="Test 2: set nolinebreak list"
+ :set list nolinebreak
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :%w! test.out
+ :qa!
+ ENDTEST
+ dummy text
*** ../vim-7.4.369/src/testdir/test_listlbr_utf8.ok 2014-07-16 17:01:25.419570829 +0200
--- src/testdir/test_listlbr_utf8.ok 2014-07-16 16:55:15.315578352 +0200
***************
*** 0 ****
--- 1,14 ----
+
+ abcdef hijklmn pqrstuvwxyz 1060ABCDEFGHIJKLMNOP
+
+ Test 1: set linebreak + set list + fancy listchars
+ ▕———abcdef
+ +hijklmn▕———
+ +pqrstuvwxyz␣1060ABC
+ +DEFGHIJKLMNOPˑ¶
+
+ Test 2: set nolinebreak list
+ ▕———abcdef hijklmn▕—
+ +pqrstuvwxyz␣1060ABC
+ +DEFGHIJKLMNOPˑ¶
+ ¶
*** ../vim-7.4.369/src/version.c 2014-07-16 16:30:21.647608710 +0200
--- src/version.c 2014-07-16 16:56:38.755576656 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 370,
/**/
--
Another bucket of what can only be described as human ordure hits ARTHUR.
ARTHUR: ... Right! (to the KNIGHTS) That settles it!
"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 ///

59
7.4.371 Normal file
View File

@ -0,0 +1,59 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.371
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.4.371
Problem: When 'linebreak' is set control characters are not correctly
displayed. (Kimmy Lindvall)
Solution: Set n_extra. (Christian Brabandt)
Files: src/screen.c
*** ../vim-7.4.370/src/screen.c 2014-07-09 20:20:40.359620108 +0200
--- src/screen.c 2014-07-16 17:12:38.599557147 +0200
***************
*** 4646,4651 ****
--- 4646,4653 ----
else if (c != NUL)
{
p_extra = transchar(c);
+ if (n_extra == 0)
+ n_extra = byte2cells(c) - 1;
#ifdef FEAT_RIGHTLEFT
if ((dy_flags & DY_UHEX) && wp->w_p_rl)
rl_mirror(p_extra); /* reverse "<12>" */
*** ../vim-7.4.370/src/version.c 2014-07-16 17:01:38.279570568 +0200
--- src/version.c 2014-07-16 17:13:21.815556269 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 371,
/**/
--
LETTERS TO THE EDITOR (The Times of London)
Dear Sir,
I am firmly opposed to the spread of microchips either to the home or
to the office.  We have more than enough of them foisted upon us in
public places.  They are a disgusting Americanism, and can only result
in the farmers being forced to grow smaller potatoes, which in turn
will cause massive unemployment in the already severely depressed
agricultural industry.
Yours faithfully,
        Capt. Quinton D'Arcy, J. P.
        Sevenoaks
/// 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 ///

188
7.4.372 Normal file
View File

@ -0,0 +1,188 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.372
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.4.372
Problem: When 'winminheight' is zero there might not be one line for the
current window.
Solution: Change the size computations. (Yukihiro Nakadaira)
Files: src/window.c
*** ../vim-7.4.371/src/window.c 2014-07-16 16:30:21.647608710 +0200
--- src/window.c 2014-07-16 18:06:53.123491001 +0200
***************
*** 688,693 ****
--- 688,695 ----
int before;
int minwidth;
int minheight;
+ int wmw1;
+ int wmh1;
if (flags & WSP_TOP)
oldwin = firstwin;
***************
*** 722,740 ****
* Check if we are able to split the current window and compute its
* width.
*/
! needed = p_wmw + 1;
if (flags & WSP_ROOM)
! needed += p_wiw - p_wmw;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
! minwidth = frame_minwidth(topframe, NULL);
available = topframe->fr_width;
needed += minwidth;
}
else
{
! minwidth = frame_minwidth(oldwin->w_frame, NULL);
! available = oldwin->w_width;
}
if (available < needed && new_wp == NULL)
{
--- 724,745 ----
* Check if we are able to split the current window and compute its
* width.
*/
! /* Current window requires at least 1 space. */
! wmw1 = (p_wmw == 0 ? 1 : p_wmw);
! needed = wmw1 + 1;
if (flags & WSP_ROOM)
! needed += p_wiw - wmw1;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
! minwidth = frame_minwidth(topframe, NOWIN);
available = topframe->fr_width;
needed += minwidth;
}
else
{
! minwidth = frame_minwidth(oldwin->w_frame, NOWIN);
! available = oldwin->w_frame->fr_width;
! needed += minwidth;
}
if (available < needed && new_wp == NULL)
{
***************
*** 743,754 ****
}
if (new_size == 0)
new_size = oldwin->w_width / 2;
- if (new_size > oldwin->w_width - p_wmw - 1)
- new_size = oldwin->w_width - p_wmw - 1;
if (new_size > available - minwidth - 1)
new_size = available - minwidth - 1;
! if (new_size < p_wmw)
! new_size = p_wmw;
/* if it doesn't fit in the current window, need win_equal() */
if (oldwin->w_width - new_size - 1 < p_wmw)
--- 748,757 ----
}
if (new_size == 0)
new_size = oldwin->w_width / 2;
if (new_size > available - minwidth - 1)
new_size = available - minwidth - 1;
! if (new_size < wmw1)
! new_size = wmw1;
/* if it doesn't fit in the current window, need win_equal() */
if (oldwin->w_width - new_size - 1 < p_wmw)
***************
*** 789,808 ****
* Check if we are able to split the current window and compute its
* height.
*/
! needed = p_wmh + STATUS_HEIGHT + need_status;
if (flags & WSP_ROOM)
! needed += p_wh - p_wmh;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
! minheight = frame_minheight(topframe, NULL);
available = topframe->fr_height;
needed += minheight;
}
else
{
! minheight = frame_minheight(oldwin->w_frame, NULL);
! available = oldwin->w_height;
! needed += p_wmh;
}
if (available < needed && new_wp == NULL)
{
--- 792,813 ----
* Check if we are able to split the current window and compute its
* height.
*/
! /* Current window requires at least 1 space. */
! wmh1 = (p_wmh == 0 ? 1 : p_wmh);
! needed = wmh1 + STATUS_HEIGHT;
if (flags & WSP_ROOM)
! needed += p_wh - wmh1;
if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
! minheight = frame_minheight(topframe, NOWIN) + need_status;
available = topframe->fr_height;
needed += minheight;
}
else
{
! minheight = frame_minheight(oldwin->w_frame, NOWIN) + need_status;
! available = oldwin->w_frame->fr_height;
! needed += minheight;
}
if (available < needed && new_wp == NULL)
{
***************
*** 817,829 ****
}
if (new_size == 0)
new_size = oldwin_height / 2;
-
- if (new_size > oldwin_height - p_wmh - STATUS_HEIGHT)
- new_size = oldwin_height - p_wmh - STATUS_HEIGHT;
if (new_size > available - minheight - STATUS_HEIGHT)
new_size = available - minheight - STATUS_HEIGHT;
! if (new_size < p_wmh)
! new_size = p_wmh;
/* if it doesn't fit in the current window, need win_equal() */
if (oldwin_height - new_size - STATUS_HEIGHT < p_wmh)
--- 822,831 ----
}
if (new_size == 0)
new_size = oldwin_height / 2;
if (new_size > available - minheight - STATUS_HEIGHT)
new_size = available - minheight - STATUS_HEIGHT;
! if (new_size < wmh1)
! new_size = wmh1;
/* if it doesn't fit in the current window, need win_equal() */
if (oldwin_height - new_size - STATUS_HEIGHT < p_wmh)
*** ../vim-7.4.371/src/version.c 2014-07-16 17:29:46.691536252 +0200
--- src/version.c 2014-07-16 17:34:14.795530803 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 372,
/**/
--
[The rest of the ARMY stand around looking at a loss.]
INSPECTOR END OF FILM: (picks up megaphone) All right! Clear off! Go on!
"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 ///

98
7.4.373 Normal file
View File

@ -0,0 +1,98 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.373
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.4.373
Problem: Compiler warning for unused argument and unused variable.
Solution: Add UNUSED. Move variable inside #ifdef.
Files: src/charset.c, src/window.c
*** ../vim-7.4.372/src/charset.c 2014-07-02 19:59:35.450375136 +0200
--- src/charset.c 2014-07-16 23:36:51.211088615 +0200
***************
*** 1024,1030 ****
*/
int
lbr_chartabsize(line, s, col)
! char_u *line; /* start of the line */
unsigned char *s;
colnr_T col;
{
--- 1024,1030 ----
*/
int
lbr_chartabsize(line, s, col)
! char_u *line UNUSED; /* start of the line */
unsigned char *s;
colnr_T col;
{
***************
*** 1069,1075 ****
int
win_lbr_chartabsize(wp, line, s, col, headp)
win_T *wp;
! char_u *line; /* start of the line */
char_u *s;
colnr_T col;
int *headp UNUSED;
--- 1069,1075 ----
int
win_lbr_chartabsize(wp, line, s, col, headp)
win_T *wp;
! char_u *line UNUSED; /* start of the line */
char_u *s;
colnr_T col;
int *headp UNUSED;
*** ../vim-7.4.372/src/window.c 2014-07-16 18:19:22.911475762 +0200
--- src/window.c 2014-07-16 23:38:31.567086575 +0200
***************
*** 686,694 ****
int layout;
frame_T *frp, *curfrp;
int before;
- int minwidth;
int minheight;
- int wmw1;
int wmh1;
if (flags & WSP_TOP)
--- 686,692 ----
***************
*** 718,723 ****
--- 716,724 ----
#ifdef FEAT_VERTSPLIT
if (flags & WSP_VERT)
{
+ int wmw1;
+ int minwidth;
+
layout = FR_ROW;
/*
*** ../vim-7.4.372/src/version.c 2014-07-16 18:19:22.915475762 +0200
--- src/version.c 2014-07-16 23:36:20.775089233 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 373,
/**/
--
INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving!
[Suddenly he notices the cameras.]
INSPECTOR END OF FILM: (to Camera) All right, put that away sonny.
[He walks over to it and puts his hand over the lens.]
"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 ///

71
7.4.374 Normal file
View File

@ -0,0 +1,71 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.374
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.4.374
Problem: Character after "fb" command not mapped if it might be a composing
character.
Solution: Don't disable mapping when looking for a composing character.
(Jacob Niehus)
Files: src/normal.c
*** ../vim-7.4.373/src/normal.c 2014-04-29 12:15:22.856032651 +0200
--- src/normal.c 2014-07-23 12:26:26.811992854 +0200
***************
*** 1076,1082 ****
#ifdef FEAT_MBYTE
/* When getting a text character and the next character is a
* multi-byte character, it could be a composing character.
! * However, don't wait for it to arrive. */
while (enc_utf8 && lang && (c = vpeekc()) > 0
&& (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
{
--- 1076,1085 ----
#ifdef FEAT_MBYTE
/* When getting a text character and the next character is a
* multi-byte character, it could be a composing character.
! * However, don't wait for it to arrive. Also, do enable mapping,
! * because if it's put back with vungetc() it's too late to apply
! * mapping. */
! --no_mapping;
while (enc_utf8 && lang && (c = vpeekc()) > 0
&& (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
{
***************
*** 1091,1096 ****
--- 1094,1100 ----
else
ca.ncharC2 = c;
}
+ ++no_mapping;
#endif
}
--no_mapping;
*** ../vim-7.4.373/src/version.c 2014-07-16 23:39:50.251084976 +0200
--- src/version.c 2014-07-23 12:27:50.483992253 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 374,
/**/
--
CART DRIVER: Bring out your dead!
There are legs stick out of windows and doors. Two MEN are fighting in the
mud - covered from head to foot in it. Another MAN is on his hands in
knees shovelling mud into his mouth. We just catch sight of a MAN falling
into a well.
"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 ///

59
7.4.375 Normal file
View File

@ -0,0 +1,59 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.375
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.4.375
Problem: Test 63 fails when run with GUI-only Vim.
Solution: Add guibg attributes. (suggested by Mike Soyka)
Files: src/testdir/test63.in
*** ../vim-7.4.374/src/testdir/test63.in 2014-06-17 17:48:21.784628008 +0200
--- src/testdir/test63.in 2014-07-23 13:12:20.727973060 +0200
***************
*** 6,14 ****
:" --- Check that "matcharg()" returns the correct group and pattern if a match
:" --- is defined.
:let @r = "*** Test 1: "
! :highlight MyGroup1 ctermbg=red
! :highlight MyGroup2 ctermbg=green
! :highlight MyGroup3 ctermbg=blue
:match MyGroup1 /TODO/
:2match MyGroup2 /FIXME/
:3match MyGroup3 /XXX/
--- 6,14 ----
:" --- Check that "matcharg()" returns the correct group and pattern if a match
:" --- is defined.
:let @r = "*** Test 1: "
! :highlight MyGroup1 ctermbg=red guibg=red
! :highlight MyGroup2 ctermbg=green guibg=green
! :highlight MyGroup3 ctermbg=blue guibg=blue
:match MyGroup1 /TODO/
:2match MyGroup2 /FIXME/
:3match MyGroup3 /XXX/
*** ../vim-7.4.374/src/version.c 2014-07-23 12:31:17.207990767 +0200
--- src/version.c 2014-07-23 13:13:15.167972669 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 375,
/**/
--
BODY: I'm not dead!
CART DRIVER: 'Ere. He says he's not dead.
LARGE MAN: Yes he is.
BODY: I'm not!
"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 ///

57
7.4.376 Normal file
View File

@ -0,0 +1,57 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.376
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.4.376 (after 7.4.367)
Problem: Popup menu flickers too much.
Solution: Remove the forced redraw. (Hirohito Higashi)
Files: src/edit.c
*** ../vim-7.4.375/src/edit.c 2014-07-16 14:42:37.923740082 +0200
--- src/edit.c 2014-07-23 13:49:03.535957228 +0200
***************
*** 4593,4601 ****
i = compl_col + (compl_cont_status & CONT_ADDING ? compl_length : 0);
backspace_until_column(i);
! /* Not sure what is still valid, better redraw everything. */
changed_cline_bef_curs();
- redraw_curbuf_later(NOT_VALID);
}
/* Insert the new text being completed. */
--- 4593,4601 ----
i = compl_col + (compl_cont_status & CONT_ADDING ? compl_length : 0);
backspace_until_column(i);
! /* TODO: is this sufficient for redrawing? Redrawing everything causes
! * flicker, thus we can't do that. */
changed_cline_bef_curs();
}
/* Insert the new text being completed. */
*** ../vim-7.4.375/src/version.c 2014-07-23 13:16:26.727971292 +0200
--- src/version.c 2014-07-23 13:48:02.031957670 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 376,
/**/
--
Why I like vim:
> I like VIM because, when I ask a question in this newsgroup, I get a
> one-line answer. With xemacs, I get a 1Kb lisp script with bugs in it ;-)
/// 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 ///

144
7.4.377 Normal file
View File

@ -0,0 +1,144 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.377
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.4.377
Problem: When 'equalalways' is set a split may report "no room" even though
there is plenty of room.
Solution: Compute the available room properly. (Yukihiro Nakadaira)
Files: src/window.c
*** ../vim-7.4.376/src/window.c 2014-07-16 23:39:50.251084976 +0200
--- src/window.c 2014-07-23 15:19:10.491918366 +0200
***************
*** 684,690 ****
int available;
int oldwin_height = 0;
int layout;
! frame_T *frp, *curfrp;
int before;
int minheight;
int wmh1;
--- 684,690 ----
int available;
int oldwin_height = 0;
int layout;
! frame_T *frp, *curfrp, *frp2, *prevfrp;
int before;
int minheight;
int wmh1;
***************
*** 730,741 ****
needed = wmw1 + 1;
if (flags & WSP_ROOM)
needed += p_wiw - wmw1;
! if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
minwidth = frame_minwidth(topframe, NOWIN);
available = topframe->fr_width;
needed += minwidth;
}
else
{
minwidth = frame_minwidth(oldwin->w_frame, NOWIN);
--- 730,758 ----
needed = wmw1 + 1;
if (flags & WSP_ROOM)
needed += p_wiw - wmw1;
! if (flags & (WSP_BOT | WSP_TOP))
{
minwidth = frame_minwidth(topframe, NOWIN);
available = topframe->fr_width;
needed += minwidth;
}
+ else if (p_ea)
+ {
+ minwidth = frame_minwidth(oldwin->w_frame, NOWIN);
+ prevfrp = oldwin->w_frame;
+ for (frp = oldwin->w_frame->fr_parent; frp != NULL;
+ frp = frp->fr_parent)
+ {
+ if (frp->fr_layout == FR_ROW)
+ for (frp2 = frp->fr_child; frp2 != NULL;
+ frp2 = frp2->fr_next)
+ if (frp2 != prevfrp)
+ minwidth += frame_minwidth(frp2, NOWIN);
+ prevfrp = frp;
+ }
+ available = topframe->fr_width;
+ needed += minwidth;
+ }
else
{
minwidth = frame_minwidth(oldwin->w_frame, NOWIN);
***************
*** 798,809 ****
needed = wmh1 + STATUS_HEIGHT;
if (flags & WSP_ROOM)
needed += p_wh - wmh1;
! if (p_ea || (flags & (WSP_BOT | WSP_TOP)))
{
minheight = frame_minheight(topframe, NOWIN) + need_status;
available = topframe->fr_height;
needed += minheight;
}
else
{
minheight = frame_minheight(oldwin->w_frame, NOWIN) + need_status;
--- 815,843 ----
needed = wmh1 + STATUS_HEIGHT;
if (flags & WSP_ROOM)
needed += p_wh - wmh1;
! if (flags & (WSP_BOT | WSP_TOP))
{
minheight = frame_minheight(topframe, NOWIN) + need_status;
available = topframe->fr_height;
needed += minheight;
}
+ else if (p_ea)
+ {
+ minheight = frame_minheight(oldwin->w_frame, NOWIN) + need_status;
+ prevfrp = oldwin->w_frame;
+ for (frp = oldwin->w_frame->fr_parent; frp != NULL;
+ frp = frp->fr_parent)
+ {
+ if (frp->fr_layout == FR_COL)
+ for (frp2 = frp->fr_child; frp2 != NULL;
+ frp2 = frp2->fr_next)
+ if (frp2 != prevfrp)
+ minheight += frame_minheight(frp2, NOWIN);
+ prevfrp = frp;
+ }
+ available = topframe->fr_height;
+ needed += minheight;
+ }
else
{
minheight = frame_minheight(oldwin->w_frame, NOWIN) + need_status;
*** ../vim-7.4.376/src/version.c 2014-07-23 13:50:41.839956521 +0200
--- src/version.c 2014-07-23 15:20:33.227917771 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 377,
/**/
--
LARGE MAN: Who's that then?
CART DRIVER: (Grudgingly) I dunno, Must be a king.
LARGE MAN: Why?
CART DRIVER: He hasn't got shit all over him.
"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 ///

336
7.4.378 Normal file
View File

@ -0,0 +1,336 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.378
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.4.378
Problem: Title of quickfist list is not kept for setqflist(list, 'r').
Solution: Keep the title. Add a test. (Lcd)
Files: src/quickfix.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/test_qf_title.in,
src/testdir/test_qf_title.ok
*** ../vim-7.4.377/src/quickfix.c 2014-03-27 17:02:22.080660944 +0100
--- src/quickfix.c 2014-07-23 15:37:30.551910459 +0200
***************
*** 107,112 ****
--- 107,113 ----
};
static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title));
+ static void qf_store_title __ARGS((qf_info_T *qi, char_u *title));
static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title));
static void ll_free_all __ARGS((qf_info_T **pqi));
static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
***************
*** 126,132 ****
static win_T *qf_find_win __ARGS((qf_info_T *qi));
static buf_T *qf_find_buf __ARGS((qf_info_T *qi));
static void qf_update_buffer __ARGS((qf_info_T *qi));
! static void qf_set_title __ARGS((qf_info_T *qi));
static void qf_fill_buffer __ARGS((qf_info_T *qi));
#endif
static char_u *get_mef_name __ARGS((void));
--- 127,133 ----
static win_T *qf_find_win __ARGS((qf_info_T *qi));
static buf_T *qf_find_buf __ARGS((qf_info_T *qi));
static void qf_update_buffer __ARGS((qf_info_T *qi));
! static void qf_set_title_var __ARGS((qf_info_T *qi));
static void qf_fill_buffer __ARGS((qf_info_T *qi));
#endif
static char_u *get_mef_name __ARGS((void));
***************
*** 884,889 ****
--- 885,905 ----
return retval;
}
+ static void
+ qf_store_title(qi, title)
+ qf_info_T *qi;
+ char_u *title;
+ {
+ if (title != NULL)
+ {
+ char_u *p = alloc((int)STRLEN(title) + 2);
+
+ qi->qf_lists[qi->qf_curlist].qf_title = p;
+ if (p != NULL)
+ sprintf((char *)p, ":%s", (char *)title);
+ }
+ }
+
/*
* Prepare for adding a new quickfix list.
*/
***************
*** 895,901 ****
int i;
/*
! * If the current entry is not the last entry, delete entries below
* the current entry. This makes it possible to browse in a tree-like
* way with ":grep'.
*/
--- 911,917 ----
int i;
/*
! * If the current entry is not the last entry, delete entries beyond
* the current entry. This makes it possible to browse in a tree-like
* way with ":grep'.
*/
***************
*** 916,929 ****
else
qi->qf_curlist = qi->qf_listcount++;
vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T)));
! if (qf_title != NULL)
! {
! char_u *p = alloc((int)STRLEN(qf_title) + 2);
!
! qi->qf_lists[qi->qf_curlist].qf_title = p;
! if (p != NULL)
! sprintf((char *)p, ":%s", (char *)qf_title);
! }
}
/*
--- 932,938 ----
else
qi->qf_curlist = qi->qf_listcount++;
vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T)));
! qf_store_title(qi, qf_title);
}
/*
***************
*** 2444,2450 ****
qf_fill_buffer(qi);
if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
! qf_set_title(qi);
curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
curwin->w_cursor.col = 0;
--- 2453,2459 ----
qf_fill_buffer(qi);
if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
! qf_set_title_var(qi);
curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
curwin->w_cursor.col = 0;
***************
*** 2599,2605 ****
{
curwin_save = curwin;
curwin = win;
! qf_set_title(qi);
curwin = curwin_save;
}
--- 2608,2614 ----
{
curwin_save = curwin;
curwin = win;
! qf_set_title_var(qi);
curwin = curwin_save;
}
***************
*** 2612,2618 ****
}
static void
! qf_set_title(qi)
qf_info_T *qi;
{
set_internal_string_var((char_u *)"w:quickfix_title",
--- 2621,2627 ----
}
static void
! qf_set_title_var(qi)
qf_info_T *qi;
{
set_internal_string_var((char_u *)"w:quickfix_title",
***************
*** 3845,3851 ****
--- 3854,3863 ----
prevp->qf_next != prevp; prevp = prevp->qf_next)
;
else if (action == 'r')
+ {
qf_free(qi, qi->qf_curlist);
+ qf_store_title(qi, title);
+ }
for (li = list->lv_first; li != NULL; li = li->li_next)
{
*** ../vim-7.4.377/src/testdir/Make_amiga.mak 2014-07-16 17:01:38.275570568 +0200
--- src/testdir/Make_amiga.mak 2014-07-23 15:26:51.455915053 +0200
***************
*** 40,45 ****
--- 40,46 ----
test_breakindent.out \
test_listlbr.out \
test_listlbr_utf8.out \
+ test_qf_title.out \
test_eval.out \
test_options.out
***************
*** 169,173 ****
--- 170,175 ----
test_breakindent.out: test_breakindent.in
test_listlbr.out: test_listlbr.in
test_listlbr_utf8.out: test_listlbr_utf8.in
+ test_qf_title.out: test_qf_title.in
test_eval.out: test_eval.in
test_options.out: test_options.in
*** ../vim-7.4.377/src/testdir/Make_dos.mak 2014-07-16 17:01:38.279570568 +0200
--- src/testdir/Make_dos.mak 2014-07-23 15:27:01.231914983 +0200
***************
*** 39,44 ****
--- 39,45 ----
test_breakindent.out \
test_listlbr.out \
test_listlbr_utf8.out \
+ test_qf_title.out \
test_eval.out \
test_options.out
*** ../vim-7.4.377/src/testdir/Make_ming.mak 2014-07-16 17:01:38.279570568 +0200
--- src/testdir/Make_ming.mak 2014-07-23 15:27:13.163914897 +0200
***************
*** 59,64 ****
--- 59,65 ----
test_breakindent.out \
test_listlbr.out \
test_listlbr_utf8.out \
+ test_qf_title.out \
test_eval.out \
test_options.out
*** ../vim-7.4.377/src/testdir/Make_os2.mak 2014-07-16 17:01:38.279570568 +0200
--- src/testdir/Make_os2.mak 2014-07-23 15:27:25.999914805 +0200
***************
*** 40,47 ****
test_autoformat_join.out \
test_eval.out \
test_breakindent.out \
- test_listlbr_utf8.out \
test_listlbr.out \
test_options.out
.SUFFIXES: .in .out
--- 40,48 ----
test_autoformat_join.out \
test_eval.out \
test_breakindent.out \
test_listlbr.out \
+ test_listlbr_utf8.out \
+ test_qf_title.out \
test_options.out
.SUFFIXES: .in .out
*** ../vim-7.4.377/src/testdir/Make_vms.mms 2014-07-16 17:01:38.279570568 +0200
--- src/testdir/Make_vms.mms 2014-07-23 15:27:34.787914741 +0200
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2014 May 28
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
--- 4,10 ----
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2014 Jul 23
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
***************
*** 100,105 ****
--- 100,106 ----
test_breakindent.out \
test_listlbr.out \
test_listlbr_utf8.out \
+ test_qf_title.out \
test_eval.out \
test_options.out
*** ../vim-7.4.377/src/testdir/Makefile 2014-07-16 17:01:38.279570568 +0200
--- src/testdir/Makefile 2014-07-23 15:27:46.947914654 +0200
***************
*** 37,42 ****
--- 37,43 ----
test_breakindent.out \
test_listlbr.out \
test_listlbr_utf8.out \
+ test_qf_title.out \
test_eval.out \
test_options.out
*** ../vim-7.4.377/src/testdir/test_qf_title.in 2014-07-23 15:53:26.279903590 +0200
--- src/testdir/test_qf_title.in 2014-07-23 15:26:02.495915405 +0200
***************
*** 0 ****
--- 1,18 ----
+ Tests for quickfix window's title vim: set ft=vim :
+
+ STARTTEST
+ :so small.vim
+ :if !has('quickfix') | e! test.ok | wq! test.out | endif
+ :set efm=%E%f:%l:%c:%m
+ :cgetexpr ['file:1:1:message']
+ :let qflist=getqflist()
+ :call setqflist(qflist, 'r')
+ :copen
+ :let g:quickfix_title=w:quickfix_title
+ :wincmd p
+ :$put =g:quickfix_title
+ :/^Results/,$w test.out
+ :qa!
+ ENDTEST
+
+ Results of test_qf_title:
*** ../vim-7.4.377/src/testdir/test_qf_title.ok 2014-07-23 15:53:26.283903590 +0200
--- src/testdir/test_qf_title.ok 2014-07-23 15:25:55.303915456 +0200
***************
*** 0 ****
--- 1,2 ----
+ Results of test_qf_title:
+ :setqflist()
*** ../vim-7.4.377/src/version.c 2014-07-23 15:21:16.247917462 +0200
--- src/version.c 2014-07-23 15:28:57.251914149 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 378,
/**/
--
ARTHUR: Old woman!
DENNIS: Man!
ARTHUR: Man. I'm sorry. Old man, What knight live in that castle over there?
DENNIS: I'm thirty-seven.
"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 ///

45
7.4.379 Normal file
View File

@ -0,0 +1,45 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.379
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.4.379
Problem: Accessing freed memory after using setqflist(list, 'r'). (Lcd)
Solution: Reset qf_index.
Files: src/quickfix.c
*** ../vim-7.4.378/src/quickfix.c 2014-07-23 15:54:43.443903036 +0200
--- src/quickfix.c 2014-07-23 16:11:59.915895586 +0200
***************
*** 2173,2178 ****
--- 2173,2179 ----
}
vim_free(qi->qf_lists[idx].qf_title);
qi->qf_lists[idx].qf_title = NULL;
+ qi->qf_lists[idx].qf_index = 0;
}
/*
*** ../vim-7.4.378/src/version.c 2014-07-23 15:54:43.443903036 +0200
--- src/version.c 2014-07-23 16:14:43.995894407 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 379,
/**/
--
"Lisp has all the visual appeal of oatmeal with nail clippings thrown in."
-- Larry Wall
/// 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 ///

115
7.4.380 Normal file
View File

@ -0,0 +1,115 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.380
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.4.380
Problem: Loading python may cause Vim to exit.
Solution: Avoid loading the "site" module. (Taro Muraoka)
Files: src/if_python.c
*** ../vim-7.4.379/src/if_python.c 2014-03-30 16:11:37.176530823 +0200
--- src/if_python.c 2014-07-23 16:46:42.863880615 +0200
***************
*** 295,300 ****
--- 295,303 ----
# define PyCObject_FromVoidPtr dll_PyCObject_FromVoidPtr
# define PyCObject_AsVoidPtr dll_PyCObject_AsVoidPtr
# endif
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ # define Py_NoSiteFlag (*dll_Py_NoSiteFlag)
+ # endif
/*
* Pointers for dynamic link
***************
*** 440,445 ****
--- 443,451 ----
static PyObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
static void* (*dll_PyCObject_AsVoidPtr)(PyObject *);
# endif
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ static int* dll_Py_NoSiteFlag;
+ # endif
static HINSTANCE hinstPython = 0; /* Instance of python.dll */
***************
*** 633,638 ****
--- 639,647 ----
{"PyCObject_FromVoidPtr", (PYTHON_PROC*)&dll_PyCObject_FromVoidPtr},
{"PyCObject_AsVoidPtr", (PYTHON_PROC*)&dll_PyCObject_AsVoidPtr},
# endif
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ {"Py_NoSiteFlag", (PYTHON_PROC*)&dll_Py_NoSiteFlag},
+ # endif
{"", NULL},
};
***************
*** 901,906 ****
--- 910,919 ----
{
if (!initialised)
{
+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ PyObject *site;
+ #endif
+
#ifdef DYNAMIC_PYTHON
if (!python_enabled(TRUE))
{
***************
*** 915,925 ****
--- 928,956 ----
init_structs();
+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ /* Disable implicit 'import site', because it may cause Vim to exit
+ * when it can't be found. */
+ Py_NoSiteFlag++;
+ #endif
+
#if !defined(MACOS) || defined(MACOS_X_UNIX)
Py_Initialize();
#else
PyMac_Initialize();
#endif
+
+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ /* 'import site' explicitly. */
+ site = PyImport_ImportModule("site");
+ if (site == NULL)
+ {
+ EMSG(_("E887: Sorry, this command is disabled, the Python's site module could not be loaded."));
+ goto fail;
+ }
+ Py_DECREF(site);
+ #endif
+
/* Initialise threads, and below save the state using
* PyEval_SaveThread. Without the call to PyEval_SaveThread, thread
* specific state (such as the system trace hook), will be lost
*** ../vim-7.4.379/src/version.c 2014-07-23 16:33:04.079886500 +0200
--- src/version.c 2014-07-23 16:43:47.939881872 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 380,
/**/
--
Looking at Perl through Lisp glasses, Perl looks atrocious.
/// 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 ///

45
7.4.381 Normal file
View File

@ -0,0 +1,45 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.381
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.4.381
Problem: Get u_undo error when backspacing in Insert mode deletes more than
one line break. (Ayberk Ozgur)
Solution: Also decrement Insstart.lnum.
Files: src/edit.c
*** ../vim-7.4.380/src/edit.c 2014-07-23 13:50:41.839956521 +0200
--- src/edit.c 2014-07-23 17:35:05.747859751 +0200
***************
*** 8833,8838 ****
--- 8833,8839 ----
return FALSE;
--Insstart_orig.lnum;
Insstart_orig.col = MAXCOL;
+ Insstart = Insstart_orig;
}
/*
* In replace mode:
*** ../vim-7.4.380/src/version.c 2014-07-23 16:56:56.587876204 +0200
--- src/version.c 2014-07-23 17:38:54.467858107 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 381,
/**/
--
Friends? I have lots of friends! In fact, I have all episodes ever made.
/// 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.4.382 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.382
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.4.382
Problem: Mapping characters may not work after typing Esc in Insert mode.
Solution: Fix the noremap flags for inserted characters. (Jacob Niehus)
Files: src/getchar.c
*** ../vim-7.4.381/src/getchar.c 2014-06-25 14:39:35.102348584 +0200
--- src/getchar.c 2014-07-23 20:10:25.651792765 +0200
***************
*** 2731,2736 ****
--- 2731,2741 ----
}
if (c < 0)
continue; /* end of input script reached */
+
+ /* Allow mapping for just typed characters. When we get here c
+ * is the number of extra bytes and typebuf.tb_len is 1. */
+ for (n = 1; n <= c; ++n)
+ typebuf.tb_noremap[typebuf.tb_off + n] = RM_YES;
typebuf.tb_len += c;
/* buffer full, don't map */
*** ../vim-7.4.381/src/version.c 2014-07-23 17:39:21.815857910 +0200
--- src/version.c 2014-07-23 18:26:42.663837492 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 382,
/**/
--
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/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.4.383 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.383
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.4.383
Problem: Bad interaction between preview window and omnifunc.
Solution: Avoid redrawing the status line. (Hirohito Higashi)
Files: src/popupmnu.c
*** ../vim-7.4.382/src/popupmnu.c 2014-07-09 19:58:21.111647328 +0200
--- src/popupmnu.c 2014-07-23 20:56:17.131772989 +0200
***************
*** 643,648 ****
--- 643,654 ----
if (curwin != curwin_save && win_valid(curwin_save))
{
+ /* When the first completion is done and the preview
+ * window is not resized, skip the preview window's
+ * status line redrawing. */
+ if (ins_compl_active() && !resized)
+ curwin->w_redr_status = FALSE;
+
/* Return cursor to where we were */
validate_cursor();
redraw_later(SOME_VALID);
*** ../vim-7.4.382/src/version.c 2014-07-23 20:41:09.895779510 +0200
--- src/version.c 2014-07-23 20:58:12.079772163 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 383,
/**/
--
ARTHUR: ... and I am your king ....
OLD WOMAN: Ooooh! I didn't know we had a king. I thought we were an
autonomous collective ...
"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 ///

47
7.4.384 Normal file
View File

@ -0,0 +1,47 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.384
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.4.384
Problem: Test 102 fails when compiled with small features.
Solution: Source small.vim. (Jacob Niehus)
Files: src/testdir/test102.in
*** ../vim-7.4.383/src/testdir/test102.in 2013-11-12 05:28:08.000000000 +0100
--- src/testdir/test102.in 2014-07-27 21:10:34.881282860 +0200
***************
*** 1,6 ****
--- 1,7 ----
Test if fnameescape is correct for special chars like !
STARTTEST
+ :so small.vim
:%d
:let fname = 'Xspa ce'
:try | exe "w! " . fnameescape(fname) | put='Space' | endtry
*** ../vim-7.4.383/src/version.c 2014-07-23 21:10:39.867766788 +0200
--- src/version.c 2014-07-30 13:15:18.047624849 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 384,
/**/
--
An easy way to determine if you have enough teamwork to be doomed is simply to
measure how long it takes from the time you decide to go to lunch together
until the time you actually eat.
(Scott Adams - The Dilbert principle)
/// 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 ///

76
7.4.385 Normal file
View File

@ -0,0 +1,76 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.385
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.4.385
Problem: When building with tiny or small features building the .mo files
fails.
Solution: In autoconf do not setup for building the .mo files when it would
fail.
Files: src/configure.in, src/auto/configure
*** ../vim-7.4.384/src/configure.in 2014-05-22 14:44:08.094481148 +0200
--- src/configure.in 2014-07-27 21:26:39.349275928 +0200
***************
*** 3818,3824 ****
else
AC_MSG_RESULT([msgfmt not found - disabled]);
fi
! if test $have_gettext = "yes"; then
AC_DEFINE(HAVE_GETTEXT)
MAKEMO=yes
AC_SUBST(MAKEMO)
--- 3818,3824 ----
else
AC_MSG_RESULT([msgfmt not found - disabled]);
fi
! if test $have_gettext = "yes" -a "x$features" != "xtiny" -a "x$features" != "xsmall"; then
AC_DEFINE(HAVE_GETTEXT)
MAKEMO=yes
AC_SUBST(MAKEMO)
*** ../vim-7.4.384/src/auto/configure 2014-05-22 14:44:08.098481148 +0200
--- src/auto/configure 2014-07-27 21:26:41.969275909 +0200
***************
*** 12966,12972 ****
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: msgfmt not found - disabled" >&5
$as_echo "msgfmt not found - disabled" >&6; };
fi
! if test $have_gettext = "yes"; then
$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
MAKEMO=yes
--- 12966,12972 ----
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: msgfmt not found - disabled" >&5
$as_echo "msgfmt not found - disabled" >&6; };
fi
! if test $have_gettext = "yes" -a "x$features" != "xtiny" -a "x$features" != "xsmall"; then
$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
MAKEMO=yes
*** ../vim-7.4.384/src/version.c 2014-07-30 13:20:35.719622565 +0200
--- src/version.c 2014-07-30 13:22:07.295621907 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 385,
/**/
--
"You're fired." (1980)
"You're laid off." (1985)
"You're downsized." (1990)
"You're rightsized." (1992)
(Scott Adams - The Dilbert principle)
/// 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 ///

186
7.4.386 Normal file
View File

@ -0,0 +1,186 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.386
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.4.386
Problem: When splitting a window the changelist position is wrong.
Solution: Copy the changelist position. (Jacob Niehus)
Files: src/window.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/test_changelist.in,
src/testdir/test_changelist.ok
*** ../vim-7.4.385/src/window.c 2014-07-23 15:21:16.247917462 +0200
--- src/window.c 2014-07-30 13:55:49.275607374 +0200
***************
*** 1178,1183 ****
--- 1178,1188 ----
p_wh = size;
}
+ #ifdef FEAT_JUMPLIST
+ /* Keep same changelist position in new window. */
+ wp->w_changelistidx = oldwin->w_changelistidx;
+ #endif
+
/*
* make the new window the current window
*/
*** ../vim-7.4.385/src/testdir/Make_amiga.mak 2014-07-23 15:54:43.443903036 +0200
--- src/testdir/Make_amiga.mak 2014-07-30 13:54:06.871608110 +0200
***************
*** 41,46 ****
--- 41,47 ----
test_listlbr.out \
test_listlbr_utf8.out \
test_qf_title.out \
+ test_changelist.out \
test_eval.out \
test_options.out
***************
*** 171,175 ****
--- 172,177 ----
test_listlbr.out: test_listlbr.in
test_listlbr_utf8.out: test_listlbr_utf8.in
test_qf_title.out: test_qf_title.in
+ test_changelist.out: test_changelist.in
test_eval.out: test_eval.in
test_options.out: test_options.in
*** ../vim-7.4.385/src/testdir/Make_dos.mak 2014-07-23 15:54:43.443903036 +0200
--- src/testdir/Make_dos.mak 2014-07-30 13:54:16.091608044 +0200
***************
*** 40,45 ****
--- 40,46 ----
test_listlbr.out \
test_listlbr_utf8.out \
test_qf_title.out \
+ test_changelist.out \
test_eval.out \
test_options.out
*** ../vim-7.4.385/src/testdir/Make_ming.mak 2014-07-23 15:54:43.443903036 +0200
--- src/testdir/Make_ming.mak 2014-07-30 13:54:19.775608018 +0200
***************
*** 60,65 ****
--- 60,66 ----
test_listlbr.out \
test_listlbr_utf8.out \
test_qf_title.out \
+ test_changelist.out \
test_eval.out \
test_options.out
*** ../vim-7.4.385/src/testdir/Make_os2.mak 2014-07-23 15:54:43.443903036 +0200
--- src/testdir/Make_os2.mak 2014-07-30 13:54:24.207607986 +0200
***************
*** 38,43 ****
--- 38,44 ----
test100.out test101.out test102.out test103.out test104.out \
test105.out test106.out test107.out \
test_autoformat_join.out \
+ test_changelist.out \
test_eval.out \
test_breakindent.out \
test_listlbr.out \
*** ../vim-7.4.385/src/testdir/Make_vms.mms 2014-07-23 15:54:43.443903036 +0200
--- src/testdir/Make_vms.mms 2014-07-30 13:54:31.151607936 +0200
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2014 Jul 23
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
--- 4,10 ----
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2014 Jul 30
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
***************
*** 101,106 ****
--- 101,107 ----
test_listlbr.out \
test_listlbr_utf8.out \
test_qf_title.out \
+ test_changelist.out \
test_eval.out \
test_options.out
*** ../vim-7.4.385/src/testdir/Makefile 2014-07-23 15:54:43.443903036 +0200
--- src/testdir/Makefile 2014-07-30 13:54:45.291607834 +0200
***************
*** 38,43 ****
--- 38,44 ----
test_listlbr.out \
test_listlbr_utf8.out \
test_qf_title.out \
+ test_changelist.out \
test_eval.out \
test_options.out
*** ../vim-7.4.385/src/testdir/test_changelist.in 2014-07-30 14:04:27.507603650 +0200
--- src/testdir/test_changelist.in 2014-07-30 13:52:21.363608869 +0200
***************
*** 0 ****
--- 1,22 ----
+ Test changelist position after splitting window
+ Set 'undolevels' to make changelist for sourced file
+
+ STARTTEST
+ :so small.vim
+ Gkylp:set ul=100
+ Gylp:set ul=100
+ gg
+ :vsplit
+ :try
+ : normal g;
+ : normal ggVGcpass
+ :catch
+ : normal ggVGcfail
+ :finally
+ : %w! test.out
+ :endtry
+ :qa!
+ ENDTEST
+
+ 1
+ 2
*** ../vim-7.4.385/src/testdir/test_changelist.ok 2014-07-30 14:04:27.515603650 +0200
--- src/testdir/test_changelist.ok 2014-07-30 13:53:41.991608289 +0200
***************
*** 0 ****
--- 1 ----
+ pass
*** ../vim-7.4.385/src/version.c 2014-07-30 13:22:48.271621613 +0200
--- src/version.c 2014-07-30 13:56:49.951606938 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 386,
/**/
--
Our job was to build a computer information system for the branch banks. We
were the perfect people for the job: Dean had seen a computer once, and I had
heard Dean talk about it.
(Scott Adams - The Dilbert principle)
/// 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 ///

199
7.4.387 Normal file
View File

@ -0,0 +1,199 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.387
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.4.387
Problem: "4gro" replaces one character then executes "ooo". (Urtica Dioica)
Solution: Write the ESC in the second stuff buffer.
Files: src/getchar.c, src/proto/getchar.pro, src/edit.c,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/test_insertcount.in, src/testdir/test_insertcount.ok
*** ../vim-7.4.386/src/getchar.c 2014-07-23 20:41:09.891779510 +0200
--- src/getchar.c 2014-07-30 14:35:08.831590415 +0200
***************
*** 678,683 ****
--- 678,694 ----
add_buff(&readbuf1, s, -1L);
}
+ /*
+ * Append string "s" to the redo stuff buffer.
+ * CSI and K_SPECIAL must already have been escaped.
+ */
+ void
+ stuffRedoReadbuff(s)
+ char_u *s;
+ {
+ add_buff(&readbuf2, s, -1L);
+ }
+
void
stuffReadbuffLen(s, len)
char_u *s;
*** ../vim-7.4.386/src/proto/getchar.pro 2014-02-11 15:10:38.134111836 +0100
--- src/proto/getchar.pro 2014-07-30 14:36:18.851589912 +0200
***************
*** 15,20 ****
--- 15,21 ----
void AppendCharToRedobuff __ARGS((int c));
void AppendNumberToRedobuff __ARGS((long n));
void stuffReadbuff __ARGS((char_u *s));
+ void stuffRedoReadbuff __ARGS((char_u *s));
void stuffReadbuffLen __ARGS((char_u *s, long len));
void stuffReadbuffSpec __ARGS((char_u *s));
void stuffcharReadbuff __ARGS((int c));
*** ../vim-7.4.386/src/edit.c 2014-07-23 17:39:21.815857910 +0200
--- src/edit.c 2014-07-30 14:47:56.875584895 +0200
***************
*** 8389,8395 ****
(void)start_redo_ins();
if (cmdchar == 'r' || cmdchar == 'v')
! stuffReadbuff(ESC_STR); /* no ESC in redo buffer */
++RedrawingDisabled;
disabled_redraw = TRUE;
return FALSE; /* repeat the insert */
--- 8389,8395 ----
(void)start_redo_ins();
if (cmdchar == 'r' || cmdchar == 'v')
! stuffRedoReadbuff(ESC_STR); /* no ESC in redo buffer */
++RedrawingDisabled;
disabled_redraw = TRUE;
return FALSE; /* repeat the insert */
*** ../vim-7.4.386/src/testdir/Make_amiga.mak 2014-07-30 14:04:49.131603494 +0200
--- src/testdir/Make_amiga.mak 2014-07-30 15:57:52.819554737 +0200
***************
*** 43,48 ****
--- 43,49 ----
test_qf_title.out \
test_changelist.out \
test_eval.out \
+ test_insertcount.out \
test_options.out
.SUFFIXES: .in .out
***************
*** 174,177 ****
--- 175,179 ----
test_qf_title.out: test_qf_title.in
test_changelist.out: test_changelist.in
test_eval.out: test_eval.in
+ test_insertcount.out: test_insertcount.in
test_options.out: test_options.in
*** ../vim-7.4.386/src/testdir/Make_dos.mak 2014-07-30 14:04:49.131603494 +0200
--- src/testdir/Make_dos.mak 2014-07-30 15:57:59.071554692 +0200
***************
*** 42,47 ****
--- 42,48 ----
test_qf_title.out \
test_changelist.out \
test_eval.out \
+ test_insertcount.out \
test_options.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.386/src/testdir/Make_ming.mak 2014-07-30 14:04:49.131603494 +0200
--- src/testdir/Make_ming.mak 2014-07-30 15:58:02.351554669 +0200
***************
*** 62,67 ****
--- 62,68 ----
test_qf_title.out \
test_changelist.out \
test_eval.out \
+ test_insertcount.out \
test_options.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.386/src/testdir/Make_os2.mak 2014-07-30 14:04:49.131603494 +0200
--- src/testdir/Make_os2.mak 2014-07-30 15:58:05.975554643 +0200
***************
*** 40,45 ****
--- 40,46 ----
test_autoformat_join.out \
test_changelist.out \
test_eval.out \
+ test_insertcount.out \
test_breakindent.out \
test_listlbr.out \
test_listlbr_utf8.out \
*** ../vim-7.4.386/src/testdir/Make_vms.mms 2014-07-30 14:04:49.131603494 +0200
--- src/testdir/Make_vms.mms 2014-07-30 15:58:10.099554613 +0200
***************
*** 103,108 ****
--- 103,109 ----
test_qf_title.out \
test_changelist.out \
test_eval.out \
+ test_insertcount.out \
test_options.out
# Known problems:
*** ../vim-7.4.386/src/testdir/Makefile 2014-07-30 14:04:49.131603494 +0200
--- src/testdir/Makefile 2014-07-30 15:58:16.539554567 +0200
***************
*** 40,45 ****
--- 40,46 ----
test_qf_title.out \
test_changelist.out \
test_eval.out \
+ test_insertcount.out \
test_options.out
SCRIPTS_GUI = test16.out
*** ../vim-7.4.386/src/testdir/test_insertcount.in 2014-07-30 15:56:12.087555461 +0200
--- src/testdir/test_insertcount.in 2014-07-30 14:47:36.335585043 +0200
***************
*** 0 ****
--- 1,14 ----
+ Tests for repeating insert and replace.
+
+ STARTTEST
+ :so small.vim
+ :/Second
+ 4gro
+ :/^First/,$wq! test.out
+ :" get here when failed and in Insert mode
+ :.wq! test.out
+ ENDTEST
+
+ First line
+ Second line
+ Last line
*** ../vim-7.4.386/src/testdir/test_insertcount.ok 2014-07-30 15:56:12.091555461 +0200
--- src/testdir/test_insertcount.ok 2014-07-30 14:45:43.491585854 +0200
***************
*** 0 ****
--- 1,3 ----
+ First line
+ ooooecond line
+ Last line
*** ../vim-7.4.386/src/version.c 2014-07-30 14:04:49.131603494 +0200
--- src/version.c 2014-07-30 14:48:45.039584549 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 387,
/**/
--
If your company is not involved in something called "ISO 9000" you probably
have no idea what it is. If your company _is_ involved in ISO 9000 then you
definitely have no idea what it is.
(Scott Adams - The Dilbert principle)
/// 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 ///

98
7.4.388 Normal file
View File

@ -0,0 +1,98 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.388
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.4.388
Problem: With 'linebreak' set and 'list' unset a Tab is not counted
properly. (Kent Sibilev)
Solution: Check the 'list' option. (Christian Brabandt)
Files: src/screen.c, src/testdir/test_listlbr_utf8.in,
src/testdir/test_listlbr_utf8.ok
*** ../vim-7.4.387/src/screen.c 2014-07-16 17:29:46.691536252 +0200
--- src/screen.c 2014-07-30 16:41:15.167536033 +0200
***************
*** 4494,4500 ****
tab_len = (int)wp->w_buffer->b_p_ts
- vcol % (int)wp->w_buffer->b_p_ts - 1;
#ifdef FEAT_LINEBREAK
! if (!wp->w_p_lbr)
#endif
/* tab amount depends on current column */
n_extra = tab_len;
--- 4494,4500 ----
tab_len = (int)wp->w_buffer->b_p_ts
- vcol % (int)wp->w_buffer->b_p_ts - 1;
#ifdef FEAT_LINEBREAK
! if (!wp->w_p_lbr || !wp->w_p_list)
#endif
/* tab amount depends on current column */
n_extra = tab_len;
*** ../vim-7.4.387/src/testdir/test_listlbr_utf8.in 2014-07-16 17:01:38.279570568 +0200
--- src/testdir/test_listlbr_utf8.in 2014-07-30 16:37:26.703537675 +0200
***************
*** 30,40 ****
--- 30,51 ----
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
+ :"
:let g:test ="Test 2: set nolinebreak list"
:set list nolinebreak
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
+ :"
+ :let g:test ="Test 3: set linebreak nolist"
+ :$put =\"\t*mask = nil;\"
+ :$
+ :norm! zt
+ :set nolist linebreak
+ :redraw!
+ :let line=ScreenChar(winwidth(0))
+ :call DoRecordScreen()
+ :"
:%w! test.out
:qa!
ENDTEST
*** ../vim-7.4.387/src/testdir/test_listlbr_utf8.ok 2014-07-16 17:01:38.279570568 +0200
--- src/testdir/test_listlbr_utf8.ok 2014-07-30 16:40:17.043536451 +0200
***************
*** 12,14 ****
--- 12,21 ----
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶
+ *mask = nil;
+
+ Test 3: set linebreak nolist
+ *mask = nil;
+ ~
+ ~
+ ~
*** ../vim-7.4.387/src/version.c 2014-07-30 16:00:45.551553496 +0200
--- src/version.c 2014-07-30 16:40:57.659536159 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 388,
/**/
--
You can test a person's importance in the organization by asking how much RAM
his computer has. Anybody who knows the answer to that question is not a
decision-maker.
(Scott Adams - The Dilbert principle)
/// 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 ///

490
7.4.389 Normal file
View File

@ -0,0 +1,490 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.389
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.4.389
Problem: Still sometimes Vim enters Replace mode when starting up.
Solution: Use a different solution in detecting the termresponse and
location response. (Hayaki Saito)
Files: src/globals.h, src/os_unix.c, src/term.c, src/proto/term.pro
*** ../vim-7.4.388/src/globals.h 2014-06-12 14:01:27.575769788 +0200
--- src/globals.h 2014-07-30 17:02:57.711526671 +0200
***************
*** 1336,1344 ****
#if defined(UNIX) || defined(VMS)
EXTERN int term_is_xterm INIT(= FALSE); /* xterm-like 'term' */
#endif
- #if defined(UNIX)
- EXTERN int xterm_conflict_mouse INIT(= FALSE);
- #endif
#ifdef BACKSLASH_IN_FILENAME
EXTERN char psepc INIT(= '\\'); /* normal path separator character */
--- 1336,1341 ----
*** ../vim-7.4.388/src/os_unix.c 2014-07-09 19:13:45.007701718 +0200
--- src/os_unix.c 2014-07-30 17:06:02.375525344 +0200
***************
*** 3667,3674 ****
void
check_mouse_termcode()
{
- xterm_conflict_mouse = FALSE;
-
# ifdef FEAT_MOUSE_XTERM
if (use_xterm_mouse()
# ifdef FEAT_MOUSE_URXVT
--- 3667,3672 ----
***************
*** 3713,3719 ****
# endif
# ifdef FEAT_MOUSE_JSB
! /* There is no conflict, but it was disabled for xterm before. */
if (!use_xterm_mouse()
# ifdef FEAT_GUI
&& !gui.in_use
--- 3711,3717 ----
# endif
# ifdef FEAT_MOUSE_JSB
! /* Conflicts with xterm mouse: "\033[" and "\033[M" ??? */
if (!use_xterm_mouse()
# ifdef FEAT_GUI
&& !gui.in_use
***************
*** 3740,3784 ****
# endif
# ifdef FEAT_MOUSE_DEC
! /* Conflicts with xterm mouse: "\033[" and "\033[M".
! * Also conflicts with the xterm termresponse, skip this if it was
! * requested already. */
if (!use_xterm_mouse()
- # ifdef FEAT_TERMRESPONSE
- && !did_request_esc_sequence()
- # endif
# ifdef FEAT_GUI
&& !gui.in_use
# endif
)
- {
set_mouse_termcode(KS_DEC_MOUSE, (char_u *)(term_is_8bit(T_NAME)
? IF_EB("\233", CSI_STR) : IF_EB("\033[", ESC_STR "[")));
- xterm_conflict_mouse = TRUE;
- }
else
del_mouse_termcode(KS_DEC_MOUSE);
# endif
# ifdef FEAT_MOUSE_PTERM
! /* same as the dec mouse */
if (!use_xterm_mouse()
- # ifdef FEAT_TERMRESPONSE
- && !did_request_esc_sequence()
- # endif
# ifdef FEAT_GUI
&& !gui.in_use
# endif
)
- {
set_mouse_termcode(KS_PTERM_MOUSE,
(char_u *) IF_EB("\033[", ESC_STR "["));
- xterm_conflict_mouse = TRUE;
- }
else
del_mouse_termcode(KS_PTERM_MOUSE);
# endif
# ifdef FEAT_MOUSE_URXVT
! /* same as the dec mouse */
if (use_xterm_mouse() == 3
# ifdef FEAT_GUI
&& !gui.in_use
--- 3738,3768 ----
# endif
# ifdef FEAT_MOUSE_DEC
! /* Conflicts with xterm mouse: "\033[" and "\033[M" */
if (!use_xterm_mouse()
# ifdef FEAT_GUI
&& !gui.in_use
# endif
)
set_mouse_termcode(KS_DEC_MOUSE, (char_u *)(term_is_8bit(T_NAME)
? IF_EB("\233", CSI_STR) : IF_EB("\033[", ESC_STR "[")));
else
del_mouse_termcode(KS_DEC_MOUSE);
# endif
# ifdef FEAT_MOUSE_PTERM
! /* same conflict as the dec mouse */
if (!use_xterm_mouse()
# ifdef FEAT_GUI
&& !gui.in_use
# endif
)
set_mouse_termcode(KS_PTERM_MOUSE,
(char_u *) IF_EB("\033[", ESC_STR "["));
else
del_mouse_termcode(KS_PTERM_MOUSE);
# endif
# ifdef FEAT_MOUSE_URXVT
! /* same conflict as the dec mouse */
if (use_xterm_mouse() == 3
# ifdef FEAT_GUI
&& !gui.in_use
***************
*** 3794,3801 ****
mch_setmouse(FALSE);
setmouse();
}
- /* It's OK to request the xterm version for uxterm. */
- resume_get_esc_sequence();
}
else
del_mouse_termcode(KS_URXVT_MOUSE);
--- 3778,3783 ----
*** ../vim-7.4.388/src/term.c 2014-07-09 20:51:04.519583033 +0200
--- src/term.c 2014-07-30 17:20:54.915518929 +0200
***************
*** 153,163 ****
static char_u *vim_tgetstr __ARGS((char *s, char_u **pp));
#endif /* HAVE_TGETENT */
- #if defined(FEAT_TERMRESPONSE)
- static int xt_index_in = 0;
- static int xt_index_out = 0;
- #endif
-
static int detected_8bit = FALSE; /* detected 8-bit terminal */
static struct builtin_term builtin_termcaps[] =
--- 153,158 ----
***************
*** 3312,3351 ****
}
#if defined(FEAT_TERMRESPONSE) || defined(PROTO)
- # if defined(UNIX) || defined(PROTO)
- /*
- * Return TRUE when the xterm version was requested or anything else that
- * would send an ESC sequence back to Vim.
- * If not sent yet, prevent it from being sent soon.
- * Used to check whether it is OK to enable checking for DEC mouse codes,
- * which conflict with may xterm ESC sequences.
- */
- int
- did_request_esc_sequence()
- {
- if (crv_status == CRV_GET)
- crv_status = 0;
- if (u7_status == U7_GET)
- u7_status = 0;
- return crv_status == CRV_SENT || u7_status == U7_SENT
- || xt_index_out > xt_index_in;
- }
-
- /*
- * If requesting the version was disabled in did_request_esc_sequence(),
- * enable it again.
- */
- void
- resume_get_esc_sequence()
- {
- if (crv_status == 0)
- crv_status = CRV_GET;
- if (u7_status == 0)
- u7_status = U7_GET;
- }
- # endif
-
-
/*
* Request version string (for xterm) when needed.
* Only do this after switching to raw mode, otherwise the result will be
--- 3307,3312 ----
***************
*** 3358,3365 ****
* Insert mode.
* On Unix only do it when both output and input are a tty (avoid writing
* request to terminal while reading from a file).
- * Do not do this when a mouse is being detected that starts with the same ESC
- * sequence as the termresponse.
* The result is caught in check_termcode().
*/
void
--- 3319,3324 ----
***************
*** 3373,3379 ****
# ifdef UNIX
&& isatty(1)
&& isatty(read_cmd_fd)
- && !xterm_conflict_mouse
# endif
&& *T_CRV != NUL)
{
--- 3332,3337 ----
***************
*** 3742,3749 ****
#if defined(WIN3264) && !defined(FEAT_GUI)
if (s[0] == K_NUL)
{
! STRMOVE(s + 1, s);
! s[1] = 3;
}
#endif
--- 3700,3707 ----
#if defined(WIN3264) && !defined(FEAT_GUI)
if (s[0] == K_NUL)
{
! STRMOVE(s + 1, s);
! s[1] = 3;
}
#endif
***************
*** 4212,4235 ****
#ifdef FEAT_TERMRESPONSE
if (key_name[0] == NUL
! /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
|| key_name[0] == KS_URXVT_MOUSE
- # ifdef FEAT_MBYTE
- || u7_status == U7_SENT
# endif
! )
{
! /* Check for some responses from terminal start with "<Esc>[" or
! * CSI.
*
! * - xterm version string: <Esc>[>{x};{vers};{y}c
* Also eat other possible responses to t_RV, rxvt returns
* "<Esc>[?1;2c". Also accept CSI instead of <Esc>[.
* mrxvt has been reported to have "+" in the version. Assume
* the escape sequence ends with a letter or one of "{|}~".
*
! * - cursor position report: <Esc>[{row};{col}R
! * The final byte is 'R'. now it is only used for checking for
* ambiguous-width character state.
*/
p = tp[0] == CSI ? tp + 1 : tp + 2;
--- 4170,4200 ----
#ifdef FEAT_TERMRESPONSE
if (key_name[0] == NUL
! /* Mouse codes of DEC, pterm, and URXVT start with <ESC>[. When
! * detecting the start of these mouse codes they might as well be
! * another key code or terminal response. */
! # 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
! )
{
! /* Check for some responses from the terminal starting with
! * "<Esc>[" or CSI:
*
! * - Xterm version string: <Esc>[>{x};{vers};{y}c
* Also eat other possible responses to t_RV, rxvt returns
* "<Esc>[?1;2c". Also accept CSI instead of <Esc>[.
* mrxvt has been reported to have "+" in the version. Assume
* the escape sequence ends with a letter or one of "{|}~".
*
! * - Cursor position report: <Esc>[{row};{col}R
! * The final byte must be 'R'. It is used for checking the
* ambiguous-width character state.
*/
p = tp[0] == CSI ? tp + 1 : tp + 2;
***************
*** 4269,4304 ****
* u7_status is not "sent", it may be from a previous Vim that
* just exited. But not for <S-F3>, it sends something
* similar, check for row and column to make sense. */
! if (j == 1 && tp[i] == 'R' && row_char == '2' && col >= 2)
{
! char *aw = NULL;
! LOG_TR("Received U7 status");
! u7_status = U7_GOT;
# ifdef FEAT_AUTOCMD
! did_cursorhold = TRUE;
# endif
! if (col == 2)
! aw = "single";
! else if (col == 3)
! aw = "double";
! if (aw != NULL && STRCMP(aw, p_ambw) != 0)
! {
! /* Setting the option causes a screen redraw. Do that
! * right away if possible, keeping any messages. */
! set_option_value((char_u *)"ambw", 0L, (char_u *)aw, 0);
! # ifdef DEBUG_TERMRESPONSE
{
! char buf[100];
! int r = redraw_asap(CLEAR);
! sprintf(buf, "set 'ambiwidth', redraw_asap(): %d",
! r);
! log_tr(buf);
! }
# else
! redraw_asap(CLEAR);
# endif
}
key_name[0] = (int)KS_EXTRA;
key_name[1] = (int)KE_IGNORE;
--- 4234,4275 ----
* u7_status is not "sent", it may be from a previous Vim that
* just exited. But not for <S-F3>, it sends something
* similar, check for row and column to make sense. */
! if (j == 1 && tp[i] == 'R')
{
! if (row_char == '2' && col >= 2)
! {
! char *aw = NULL;
! LOG_TR("Received U7 status");
! u7_status = U7_GOT;
# ifdef FEAT_AUTOCMD
! did_cursorhold = TRUE;
# endif
! if (col == 2)
! aw = "single";
! else if (col == 3)
! aw = "double";
! if (aw != NULL && STRCMP(aw, p_ambw) != 0)
{
! /* Setting the option causes a screen redraw. Do
! * that right away if possible, keeping any
! * messages. */
! set_option_value((char_u *)"ambw", 0L,
! (char_u *)aw, 0);
! # ifdef DEBUG_TERMRESPONSE
! {
! char buf[100];
! int r = redraw_asap(CLEAR);
! sprintf(buf,
! "set 'ambiwidth', redraw_asap(): %d",
! r);
! log_tr(buf);
! }
# else
! redraw_asap(CLEAR);
# endif
+ }
}
key_name[0] = (int)KS_EXTRA;
key_name[1] = (int)KE_IGNORE;
***************
*** 4563,4581 ****
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));
--- 4534,4552 ----
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));
***************
*** 4592,4598 ****
for (slen2 = slen; slen2 < len; slen2++)
{
if (tp[slen2] == 'M'
! || (key_name[0] == KS_SGR_MOUSE
&& tp[slen2] == 'm'))
{
cmd_complete = 1;
--- 4563,4569 ----
for (slen2 = slen; slen2 < len; slen2++)
{
if (tp[slen2] == 'M'
! || (key_name[0] == KS_SGR_MOUSE
&& tp[slen2] == 'm'))
{
cmd_complete = 1;
***************
*** 5769,5774 ****
--- 5740,5748 ----
* termcap codes from the terminal itself.
* We get them one by one to avoid a very long response string.
*/
+ static int xt_index_in = 0;
+ static int xt_index_out = 0;
+
static void
req_codes_from_term()
{
*** ../vim-7.4.388/src/proto/term.pro 2014-07-09 19:13:45.007701718 +0200
--- src/proto/term.pro 2014-07-30 17:04:40.791525930 +0200
***************
*** 34,41 ****
void settmode __ARGS((int tmode));
void starttermcap __ARGS((void));
void stoptermcap __ARGS((void));
- int did_request_esc_sequence __ARGS((void));
- void resume_get_esc_sequence __ARGS((void));
void may_req_termresponse __ARGS((void));
void may_req_ambiguous_char_width __ARGS((void));
int swapping_screen __ARGS((void));
--- 34,39 ----
*** ../vim-7.4.388/src/version.c 2014-07-30 16:44:17.503534723 +0200
--- src/version.c 2014-07-30 17:03:13.715526556 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 389,
/**/
--
The only way the average employee can speak to an executive is by taking a
second job as a golf caddie.
(Scott Adams - The Dilbert principle)
/// 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 ///

51
7.4.390 Normal file
View File

@ -0,0 +1,51 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.390
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.4.390
Problem: Advancing pointer over end of a string.
Solution: Init quote character to -1 instead of zero. (Dominique Pelle)
Files: src/misc1.c
*** ../vim-7.4.389/src/misc1.c 2014-07-03 22:57:51.299862927 +0200
--- src/misc1.c 2014-08-06 12:43:33.191291602 +0200
***************
*** 5503,5509 ****
char_u *text;
{
char_u *s = skipwhite(text);
! int quote = 0;
if (*s == '\'' || *s == '"')
{
--- 5503,5509 ----
char_u *text;
{
char_u *s = skipwhite(text);
! int quote = -1;
if (*s == '\'' || *s == '"')
{
*** ../vim-7.4.389/src/version.c 2014-07-30 17:21:53.819518506 +0200
--- src/version.c 2014-08-06 12:44:31.643291182 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 390,
/**/
--
A radioactive cat has eighteen half-lives.
/// 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 ///

118
7.4.391 Normal file
View File

@ -0,0 +1,118 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.391
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.4.391
Problem: No 'cursorline' highlighting when the cursor is on a line with
diff highlighting. (Benjamin Fritz)
Solution: Combine the highlight attributes. (Christian Brabandt)
Files: src/screen.c
*** ../vim-7.4.390/src/screen.c 2014-07-30 16:44:17.499534723 +0200
--- src/screen.c 2014-08-06 13:14:02.163278457 +0200
***************
*** 3702,3708 ****
--- 3702,3713 ----
char_attr = 0; /* was: hl_attr(HLF_AT); */
#ifdef FEAT_DIFF
if (diff_hlf != (hlf_T)0)
+ {
char_attr = hl_attr(diff_hlf);
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+ char_attr = hl_combine_attr(char_attr,
+ hl_attr(HLF_CUL));
+ }
#endif
p_extra = NULL;
c_extra = ' ';
***************
*** 3753,3759 ****
#ifdef FEAT_SYN_HL
/* combine 'showbreak' with 'cursorline' */
if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
! char_attr = hl_combine_attr(char_attr, HLF_CLN);
#endif
}
# endif
--- 3758,3765 ----
#ifdef FEAT_SYN_HL
/* combine 'showbreak' with 'cursorline' */
if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
! char_attr = hl_combine_attr(char_attr,
! hl_attr(HLF_CUL));
#endif
}
# endif
***************
*** 3931,3936 ****
--- 3937,3944 ----
&& n_extra == 0)
diff_hlf = HLF_CHD; /* changed line */
line_attr = hl_attr(diff_hlf);
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+ line_attr = hl_combine_attr(line_attr, hl_attr(HLF_CUL));
}
#endif
***************
*** 4729,4735 ****
--- 4737,4748 ----
{
diff_hlf = HLF_CHD;
if (attr == 0 || char_attr != attr)
+ {
char_attr = hl_attr(diff_hlf);
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+ char_attr = hl_combine_attr(char_attr,
+ hl_attr(HLF_CUL));
+ }
}
# endif
}
***************
*** 10174,10182 ****
break;
screen_puts_len(NameBuff, len, 0, col,
#if defined(FEAT_SYN_HL)
! hl_combine_attr(attr, hl_attr(HLF_T))
#else
! attr
#endif
);
col += len;
--- 10187,10195 ----
break;
screen_puts_len(NameBuff, len, 0, col,
#if defined(FEAT_SYN_HL)
! hl_combine_attr(attr, hl_attr(HLF_T))
#else
! attr
#endif
);
col += len;
*** ../vim-7.4.390/src/version.c 2014-08-06 12:49:06.711289205 +0200
--- src/version.c 2014-08-06 13:19:19.135276179 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 391,
/**/
--
It's totally unfair to suggest - as many have - that engineers are socially
inept. Engineers simply have different objectives when it comes to social
interaction.
(Scott Adams - The Dilbert principle)
/// 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 ///

86
7.4.392 Normal file
View File

@ -0,0 +1,86 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.392
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.4.392
Problem: Not easy to detect type of command line window.
Solution: Add the getcmdwintype() function. (Jacob Niehus)
Files: src/eval.c
*** ../vim-7.4.391/src/eval.c 2014-07-09 17:51:46.075801693 +0200
--- src/eval.c 2014-08-06 13:35:59.303268990 +0200
***************
*** 554,559 ****
--- 554,560 ----
static void f_getcmdline __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getcmdpos __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getcmdtype __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_getcmdwintype __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getcwd __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getfontname __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getfperm __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 7984,7989 ****
--- 7985,7991 ----
{"getcmdline", 0, 0, f_getcmdline},
{"getcmdpos", 0, 0, f_getcmdpos},
{"getcmdtype", 0, 0, f_getcmdtype},
+ {"getcmdwintype", 0, 0, f_getcmdwintype},
{"getcurpos", 0, 0, f_getcurpos},
{"getcwd", 0, 0, f_getcwd},
{"getfontname", 0, 1, f_getfontname},
***************
*** 11503,11508 ****
--- 11505,11530 ----
}
/*
+ * "getcmdwintype()" function
+ */
+ static void
+ f_getcmdwintype(argvars, rettv)
+ typval_T *argvars UNUSED;
+ typval_T *rettv;
+ {
+ rettv->v_type = VAR_STRING;
+ rettv->vval.v_string = NULL;
+ #ifdef FEAT_CMDWIN
+ rettv->vval.v_string = alloc(2);
+ if (rettv->vval.v_string != NULL)
+ {
+ rettv->vval.v_string[0] = cmdwin_type;
+ rettv->vval.v_string[1] = NUL;
+ }
+ #endif
+ }
+
+ /*
* "getcwd()" function
*/
static void
*** ../vim-7.4.391/src/version.c 2014-08-06 13:20:51.799275513 +0200
--- src/version.c 2014-08-06 13:34:42.903269539 +0200
***************
*** 736,737 ****
--- 736,739 ----
{ /* Add new patch number below this line */
+ /**/
+ 392,
/**/
--
I learned the customs and mannerisms of engineers by observing them, much the
way Jane Goodall learned about the great apes, but without the hassle of
grooming.
(Scott Adams - The Dilbert principle)
/// 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 ///

1946
7.4.393 Normal file

File diff suppressed because it is too large Load Diff

56
7.4.394 Normal file
View File

@ -0,0 +1,56 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.394
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.4.394 (after 7.4.393)
Problem: When using DirectX last italic character is incomplete.
Solution: Add one to the number of cells. (Ken Takata)
Files: src/gui_w32.c
*** ../vim-7.4.393/src/gui_w32.c 2014-08-06 14:52:05.043236174 +0200
--- src/gui_w32.c 2014-08-06 16:45:56.927187071 +0200
***************
*** 2590,2597 ****
#if defined(FEAT_DIRECTX)
if (IS_ENABLE_DIRECTX() && font_is_ttf_or_vector)
{
DWriteContext_DrawText(s_dwc, s_hdc, unicodebuf, wlen,
! TEXT_X(col), TEXT_Y(row), FILL_X(cells), FILL_Y(1),
gui.char_width, gui.currFgColor);
}
else
--- 2590,2598 ----
#if defined(FEAT_DIRECTX)
if (IS_ENABLE_DIRECTX() && font_is_ttf_or_vector)
{
+ /* Add one to "cells" for italics. */
DWriteContext_DrawText(s_dwc, s_hdc, unicodebuf, wlen,
! TEXT_X(col), TEXT_Y(row), FILL_X(cells + 1), FILL_Y(1),
gui.char_width, gui.currFgColor);
}
else
*** ../vim-7.4.393/src/version.c 2014-08-06 14:52:05.047236174 +0200
--- src/version.c 2014-08-06 16:46:54.279186658 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 394,
/**/
--
The average life of an organization chart is six months. You can safely
ignore any order from your boss that would take six months to complete.
(Scott Adams - The Dilbert principle)
/// 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 ///

99
7.4.395 Normal file
View File

@ -0,0 +1,99 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.395
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.4.395 (after 7.4.355)
Problem: C indent is wrong below an if with wrapped condition followed by
curly braces. (Trevor Powell)
Solution: Make a copy of tryposBrace.
Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
*** ../vim-7.4.394/src/misc1.c 2014-08-06 12:49:06.711289205 +0200
--- src/misc1.c 2014-08-06 17:35:45.003165594 +0200
***************
*** 6995,7000 ****
--- 6995,7001 ----
char_u *linecopy;
pos_T *trypos;
pos_T *tryposBrace = NULL;
+ pos_T tryposBraceCopy;
pos_T our_paren_pos;
char_u *start;
int start_brace;
***************
*** 7532,7538 ****
--- 7533,7543 ----
/*
* We are inside braces, there is a { before this line at the position
* stored in tryposBrace.
+ * Make a copy of tryposBrace, it may point to pos_copy inside
+ * find_start_brace(), which may be changed somewhere.
*/
+ tryposBraceCopy = *tryposBrace;
+ tryposBrace = &tryposBraceCopy;
trypos = tryposBrace;
ourscope = trypos->lnum;
start = ml_get(ourscope);
*** ../vim-7.4.394/src/testdir/test3.in 2014-07-03 22:57:51.299862927 +0200
--- src/testdir/test3.in 2014-08-06 17:19:41.099172522 +0200
***************
*** 464,469 ****
--- 464,477 ----
asdfasdf
}
+ {
+ for ( int i = 0;
+ i < 10; i++ )
+ {
+ }
+ i = 0;
+ }
+
class bob
{
int foo() {return 1;}
*** ../vim-7.4.394/src/testdir/test3.ok 2014-07-03 22:57:51.299862927 +0200
--- src/testdir/test3.ok 2014-08-06 17:20:11.867172301 +0200
***************
*** 452,457 ****
--- 452,465 ----
asdfasdf
}
+ {
+ for ( int i = 0;
+ i < 10; i++ )
+ {
+ }
+ i = 0;
+ }
+
class bob
{
int foo() {return 1;}
*** ../vim-7.4.394/src/version.c 2014-08-06 16:49:51.203185387 +0200
--- src/version.c 2014-08-06 17:43:44.243162150 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 395,
/**/
--
An operatingsystem is just a name you give to the rest of bloating
idiosyncratic machine-based-features you left out of your editor.
(author unknown)
/// 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 ///

291
7.4.396 Normal file
View File

@ -0,0 +1,291 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.396
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.4.396
Problem: When 'clipboard' is "unnamed", :g/pat/d is very slow. (Praful)
Solution: Only set the clipboard after the last delete. (Christian Brabandt)
Files: src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/globals.h,
src/ops.c, src/proto/ui.pro, src/ui.c
*** ../vim-7.4.395/src/ex_cmds.c 2014-07-09 21:17:59.755550204 +0200
--- src/ex_cmds.c 2014-08-06 18:06:37.931152276 +0200
***************
*** 5514,5520 ****
--- 5514,5528 ----
smsg((char_u *)_("Pattern not found: %s"), pat);
}
else
+ {
+ #ifdef FEAT_CLIPBOARD
+ start_global_changes();
+ #endif
global_exe(cmd);
+ #ifdef FEAT_CLIPBOARD
+ end_global_changes();
+ #endif
+ }
ml_clearmarked(); /* clear rest of the marks */
vim_regfree(regmatch.regprog);
*** ../vim-7.4.395/src/ex_cmds2.c 2014-04-05 19:44:36.903160723 +0200
--- src/ex_cmds2.c 2014-08-06 18:05:07.563152926 +0200
***************
*** 2464,2469 ****
--- 2464,2472 ----
* great speed improvement. */
save_ei = au_event_disable(",Syntax");
#endif
+ #ifdef FEAT_CLIPBOARD
+ start_global_changes();
+ #endif
if (eap->cmdidx == CMD_windo
|| eap->cmdidx == CMD_tabdo
***************
*** 2591,2596 ****
--- 2594,2602 ----
curbuf->b_fname, TRUE, curbuf);
}
#endif
+ #ifdef FEAT_CLIPBOARD
+ end_global_changes();
+ #endif
}
/*
***************
*** 2750,2757 ****
* used.
* Returns OK when at least one match found, FAIL otherwise.
*
! * If "name" is NULL calls callback for each entry in runtimepath. Cookie is
! * passed by reference in this case, setting it to NULL indicates that callback
* has done its job.
*/
int
--- 2756,2763 ----
* used.
* Returns OK when at least one match found, FAIL otherwise.
*
! * If "name" is NULL calls callback for each entry in runtimepath. Cookie is
! * passed by reference in this case, setting it to NULL indicates that callback
* has done its job.
*/
int
*** ../vim-7.4.395/src/ex_docmd.c 2014-06-17 17:48:21.780628008 +0200
--- src/ex_docmd.c 2014-08-06 18:05:07.563152926 +0200
***************
*** 11534,11539 ****
--- 11534,11543 ----
{
linenr_T lnum;
+ #ifdef FEAT_CLIPBOARD
+ start_global_changes();
+ #endif
+
/* First set the marks for all lines closed/open. */
for (lnum = eap->line1; lnum <= eap->line2; ++lnum)
if (hasFolding(lnum, NULL, NULL) == (eap->cmdidx == CMD_folddoclosed))
***************
*** 11542,11546 ****
--- 11546,11553 ----
/* Execute the command on the marked lines. */
global_exe(eap->arg);
ml_clearmarked(); /* clear rest of the marks */
+ #ifdef FEAT_CLIPBOARD
+ end_global_changes();
+ #endif
}
#endif
*** ../vim-7.4.395/src/globals.h 2014-07-30 17:21:53.815518506 +0200
--- src/globals.h 2014-08-06 18:05:07.563152926 +0200
***************
*** 533,538 ****
--- 533,540 ----
EXTERN int clip_autoselectml INIT(= FALSE);
EXTERN int clip_html INIT(= FALSE);
EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
+ EXTERN int clip_did_set_selection INIT(= TRUE);
+ EXTERN int clip_unnamed_saved INIT(= 0);
#endif
/*
*** ../vim-7.4.395/src/ops.c 2014-06-25 14:39:35.106348584 +0200
--- src/ops.c 2014-08-06 18:05:07.563152926 +0200
***************
*** 1597,1605 ****
{
/* If no reg. specified, and "unnamed" or "unnamedplus" is in 'clipboard',
* use '*' or '+' reg, respectively. "unnamedplus" prevails. */
! if (*rp == 0 && clip_unnamed != 0)
! *rp = ((clip_unnamed & CLIP_UNNAMED_PLUS) && clip_plus.available)
? '+' : '*';
if (!clip_star.available && *rp == '*')
*rp = 0;
if (!clip_plus.available && *rp == '+')
--- 1597,1611 ----
{
/* If no reg. specified, and "unnamed" or "unnamedplus" is in 'clipboard',
* use '*' or '+' reg, respectively. "unnamedplus" prevails. */
! if (*rp == 0 && (clip_unnamed != 0 || clip_unnamed_saved != 0))
! {
! if (clip_unnamed != 0)
! *rp = ((clip_unnamed & CLIP_UNNAMED_PLUS) && clip_plus.available)
! ? '+' : '*';
! else
! *rp = ((clip_unnamed_saved & CLIP_UNNAMED_PLUS) && clip_plus.available)
? '+' : '*';
+ }
if (!clip_star.available && *rp == '*')
*rp = 0;
if (!clip_plus.available && *rp == '+')
***************
*** 3203,3209 ****
if (clip_star.available
&& (curr == &(y_regs[STAR_REGISTER])
|| (!deleting && oap->regname == 0
! && (clip_unnamed & CLIP_UNNAMED))))
{
if (curr != &(y_regs[STAR_REGISTER]))
/* Copy the text from register 0 to the clipboard register. */
--- 3209,3215 ----
if (clip_star.available
&& (curr == &(y_regs[STAR_REGISTER])
|| (!deleting && oap->regname == 0
! && ((clip_unnamed | clip_unnamed_saved) & CLIP_UNNAMED))))
{
if (curr != &(y_regs[STAR_REGISTER]))
/* Copy the text from register 0 to the clipboard register. */
***************
*** 3224,3230 ****
if (clip_plus.available
&& (curr == &(y_regs[PLUS_REGISTER])
|| (!deleting && oap->regname == 0
! && (clip_unnamed & CLIP_UNNAMED_PLUS))))
{
if (curr != &(y_regs[PLUS_REGISTER]))
/* Copy the text from register 0 to the clipboard register. */
--- 3230,3237 ----
if (clip_plus.available
&& (curr == &(y_regs[PLUS_REGISTER])
|| (!deleting && oap->regname == 0
! && ((clip_unnamed | clip_unnamed_saved) &
! CLIP_UNNAMED_PLUS))))
{
if (curr != &(y_regs[PLUS_REGISTER]))
/* Copy the text from register 0 to the clipboard register. */
*** ../vim-7.4.395/src/proto/ui.pro 2013-08-10 13:37:29.000000000 +0200
--- src/proto/ui.pro 2014-08-06 18:05:07.563152926 +0200
***************
*** 14,19 ****
--- 14,21 ----
void clip_update_selection __ARGS((VimClipboard *clip));
void clip_own_selection __ARGS((VimClipboard *cbd));
void clip_lose_selection __ARGS((VimClipboard *cbd));
+ void start_global_changes __ARGS((void));
+ void end_global_changes __ARGS((void));
void clip_auto_select __ARGS((void));
int clip_isautosel_star __ARGS((void));
int clip_isautosel_plus __ARGS((void));
*** ../vim-7.4.395/src/ui.c 2014-06-25 14:39:35.114348584 +0200
--- src/ui.c 2014-08-06 18:13:13.475149434 +0200
***************
*** 558,563 ****
--- 558,608 ----
}
/*
+ * Save and restore clip_unnamed before doing possibly many changes. This
+ * prevents accessing the clipboard very often which might slow down Vim
+ * considerably.
+ */
+
+ /*
+ * Save clip_unnamed and reset it.
+ */
+ void
+ start_global_changes()
+ {
+ clip_unnamed_saved = clip_unnamed;
+
+ if (clip_did_set_selection)
+ {
+ clip_unnamed = FALSE;
+ clip_did_set_selection = FALSE;
+ }
+ }
+
+ /*
+ * Restore clip_unnamed and set the selection when needed.
+ */
+ void
+ end_global_changes()
+ {
+ if (!clip_did_set_selection)
+ {
+ clip_did_set_selection = TRUE;
+ clip_unnamed = clip_unnamed_saved;
+ if (clip_unnamed & CLIP_UNNAMED)
+ {
+ clip_own_selection(&clip_star);
+ clip_gen_set_selection(&clip_star);
+ }
+ if (clip_unnamed & CLIP_UNNAMED_PLUS)
+ {
+ clip_own_selection(&clip_plus);
+ clip_gen_set_selection(&clip_plus);
+ }
+ }
+ clip_unnamed_saved = FALSE;
+ }
+
+ /*
* Called when Visual mode is ended: update the selection.
*/
void
***************
*** 1428,1433 ****
--- 1473,1487 ----
clip_gen_set_selection(cbd)
VimClipboard *cbd;
{
+ if (!clip_did_set_selection)
+ {
+ /* Updating postponed, so that accessing the system clipboard won't
+ * hang Vim when accessing it many times (e.g. on a :g comand). */
+ if (cbd == &clip_plus && (clip_unnamed_saved & CLIP_UNNAMED_PLUS))
+ return;
+ else if (cbd == &clip_star && (clip_unnamed_saved & CLIP_UNNAMED))
+ return;
+ }
#ifdef FEAT_XCLIPBOARD
# ifdef FEAT_GUI
if (gui.in_use)
*** ../vim-7.4.395/src/version.c 2014-08-06 17:44:09.867161966 +0200
--- src/version.c 2014-08-06 18:04:47.359153071 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 396,
/**/
--
You have heard the saying that if you put a thousand monkeys in a room with a
thousand typewriters and waited long enough, eventually you would have a room
full of dead monkeys.
(Scott Adams - The Dilbert principle)
/// 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 ///

150
7.4.397 Normal file
View File

@ -0,0 +1,150 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.397
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.4.397
Problem: Matchparen only uses the topmost syntax item.
Solution: Go through the syntax stack to find items. (James McCoy)
Also use getcurpos() when possible.
Files: runtime/plugin/matchparen.vim
*** ../vim-7.4.396/runtime/plugin/matchparen.vim 2014-06-17 17:48:21.772628007 +0200
--- runtime/plugin/matchparen.vim 2014-08-06 19:02:04.967128364 +0200
***************
*** 1,6 ****
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
! " Last Change: 2014 Jun 17
" Exit quickly when:
" - this plugin was already loaded (or disabled)
--- 1,6 ----
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
! " Last Change: 2014 Jul 19
" Exit quickly when:
" - this plugin was already loaded (or disabled)
***************
*** 54,67 ****
let c_col = col('.')
let before = 0
! let c = getline(c_lnum)[c_col - 1]
let plist = split(&matchpairs, '.\zs[:,]')
let i = index(plist, c)
if i < 0
" not found, in Insert mode try character before the cursor
if c_col > 1 && (mode() == 'i' || mode() == 'R')
let before = 1
! let c = getline(c_lnum)[c_col - 2]
let i = index(plist, c)
endif
if i < 0
--- 54,68 ----
let c_col = col('.')
let before = 0
! let text = getline(c_lnum)
! let c = text[c_col - 1]
let plist = split(&matchpairs, '.\zs[:,]')
let i = index(plist, c)
if i < 0
" not found, in Insert mode try character before the cursor
if c_col > 1 && (mode() == 'i' || mode() == 'R')
let before = 1
! let c = text[c_col - 2]
let i = index(plist, c)
endif
if i < 0
***************
*** 87,100 ****
" Find the match. When it was just before the cursor move it there for a
" moment.
if before > 0
! let save_cursor = winsaveview()
call cursor(c_lnum, c_col - before)
endif
! " When not in a string or comment ignore matches inside them.
" We match "escape" for special items, such as lispEscapeSpecial.
! let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
! \ '=~? "string\\|character\\|singlequote\\|escape\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
" Limit the search to lines visible in the window.
--- 88,114 ----
" Find the match. When it was just before the cursor move it there for a
" moment.
if before > 0
! let has_getcurpos = exists("*getcurpos")
! if has_getcurpos
! " getcurpos() is more efficient but doesn't exist before 7.4.313.
! let save_cursor = getcurpos()
! else
! let save_cursor = winsaveview()
! endif
call cursor(c_lnum, c_col - before)
endif
! " Build an expression that detects whether the current cursor position is in
! " certain syntax types (string, comment, etc.), for use as searchpairpos()'s
! " skip argument.
" We match "escape" for special items, such as lispEscapeSpecial.
! let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' .
! \ '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
! " If executing the expression determines that the cursor is currently in
! " one of the syntax types, then we want searchpairpos() to find the pair
! " within those syntax types (i.e., not skip). Otherwise, the cursor is
! " outside of the syntax types and s_skip should keep its value so we skip any
! " matching pair inside the syntax types.
execute 'if' s_skip '| let s_skip = 0 | endif'
" Limit the search to lines visible in the window.
***************
*** 147,153 ****
endtry
if before > 0
! call winrestview(save_cursor)
endif
" If a match is found setup match highlighting.
--- 161,171 ----
endtry
if before > 0
! if has_getcurpos
! call setpos('.', save_cursor)
! else
! call winrestview(save_cursor)
! endif
endif
" If a match is found setup match highlighting.
*** ../vim-7.4.396/src/version.c 2014-08-06 18:17:03.475147780 +0200
--- src/version.c 2014-08-06 19:06:44.627126354 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 397,
/**/
--
Often you're less important than your furniture. If you think about it, you
can get fired but your furniture stays behind, gainfully employed at the
company that didn't need _you_ anymore.
(Scott Adams - The Dilbert principle)
/// 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.4.398 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.398
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.4.398 (after 7.4.393)
Problem: Gcc error for the argument of InterlockedIncrement() and
InterlockedDecrement(). (Axel Bender)
Solution: Remove "unsigned" from the cRefCount_ declaration.
Files: src/gui_dwrite.cpp
*** ../vim-7.4.397/src/gui_dwrite.cpp 2014-08-06 14:52:05.043236174 +0200
--- src/gui_dwrite.cpp 2014-08-06 18:39:01.611138306 +0200
***************
*** 377,383 ****
}
private:
! unsigned long cRefCount_;
IDWriteBitmapRenderTarget* pRenderTarget_;
IDWriteRenderingParams* pRenderingParams_;
};
--- 377,383 ----
}
private:
! long cRefCount_;
IDWriteBitmapRenderTarget* pRenderTarget_;
IDWriteRenderingParams* pRenderingParams_;
};
*** ../vim-7.4.397/src/version.c 2014-08-06 19:08:33.563125571 +0200
--- src/version.c 2014-08-07 13:54:40.162639943 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 398,
/**/
--
A)bort, R)etry, D)o it right this time
/// 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 ///

5057
7.4.399 Normal file

File diff suppressed because it is too large Load Diff

69
7.4.400 Normal file
View File

@ -0,0 +1,69 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.400
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.4.400
Problem: List of distributed files is incomplete.
Solution: Add recently added files.
Files: Filelist
*** ../vim-7.4.399/Filelist 2014-05-13 13:52:34.817605451 +0200
--- Filelist 2014-08-10 13:43:31.612781775 +0200
***************
*** 11,16 ****
--- 11,18 ----
src/blowfish.c \
src/buffer.c \
src/charset.c \
+ src/crypt.c \
+ src/crypt_zip.c \
src/diff.c \
src/digraph.c \
src/edit.c \
***************
*** 103,108 ****
--- 105,112 ----
src/proto/blowfish.pro \
src/proto/buffer.pro \
src/proto/charset.pro \
+ src/proto/crypt.pro \
+ src/proto/crypt_zip.pro \
src/proto/diff.pro \
src/proto/digraph.pro \
src/proto/edit.pro \
***************
*** 289,294 ****
--- 293,300 ----
src/dosinst.h \
src/glbl_ime.cpp \
src/glbl_ime.h \
+ src/gui_dwrite.cpp \
+ src/gui_dwrite.h \
src/gui_w16.c \
src/gui_w32.c \
src/gui_w48.c \
*** ../vim-7.4.399/src/version.c 2014-08-10 13:34:59.064785459 +0200
--- src/version.c 2014-08-10 13:45:45.800780810 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 400,
/**/
--
hundred-and-one symptoms of being an internet addict:
17. You turn on your intercom when leaving the room so you can hear if new
e-mail arrives.
/// 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 ///

357
7.4.401 Normal file
View File

@ -0,0 +1,357 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.401
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.4.401 (after 7.4.399)
Problem: Can't build on MS-Windows.
Solution: Include the new files in all the Makefiles.
Files: src/Make_bc3.mak, src/Make_bc5.mak, src/Make_cyg.mak,
src/Make_dice.mak, src/Make_djg.mak, src/Make_ivc.mak,
src/Make_manx.mak, src/Make_ming.mak, src/Make_morph.mak,
src/Make_mvc.mak, src/Make_os2.mak, src/Make_sas.mak,
Make_vms.mms
*** ../vim-7.4.400/src/Make_bc3.mak 2010-05-18 20:27:58.000000000 +0200
--- src/Make_bc3.mak 2014-08-10 16:20:20.068714153 +0200
***************
*** 54,59 ****
--- 54,61 ----
blowfish.obj \
buffer.obj \
charset.obj \
+ crypt.obj \
+ crypt_zip.obj \
diff.obj \
digraph.obj \
edit.obj \
*** ../vim-7.4.400/src/Make_bc5.mak 2014-01-10 18:16:00.000000000 +0100
--- src/Make_bc5.mak 2014-08-10 16:20:39.684714012 +0200
***************
*** 580,585 ****
--- 580,587 ----
$(OBJDIR)\blowfish.obj \
$(OBJDIR)\buffer.obj \
$(OBJDIR)\charset.obj \
+ $(OBJDIR)\crypt.obj \
+ $(OBJDIR)\crypt_zip.obj \
$(OBJDIR)\diff.obj \
$(OBJDIR)\digraph.obj \
$(OBJDIR)\edit.obj \
*** ../vim-7.4.400/src/Make_cyg.mak 2014-08-06 14:52:05.039236174 +0200
--- src/Make_cyg.mak 2014-08-10 16:30:48.656709635 +0200
***************
*** 1,6 ****
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2013 Dec 11
#
# Also read INSTALLpc.txt!
#
--- 1,7 ----
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Updated by Dan Sharp.
! # Last Change: 2014 Aug 10
#
# Also read INSTALLpc.txt!
#
***************
*** 546,551 ****
--- 547,554 ----
$(OUTDIR)/blowfish.o \
$(OUTDIR)/buffer.o \
$(OUTDIR)/charset.o \
+ $(OUTDIR)/crypt.o \
+ $(OUTDIR)/crypt_zip.o \
$(OUTDIR)/diff.o \
$(OUTDIR)/digraph.o \
$(OUTDIR)/edit.o \
*** ../vim-7.4.400/src/Make_dice.mak 2010-05-18 20:29:00.000000000 +0200
--- src/Make_dice.mak 2014-08-10 16:21:53.740713479 +0200
***************
*** 29,34 ****
--- 29,36 ----
blowfish.c \
buffer.c \
charset.c \
+ crypt.c \
+ crypt_zip.c \
diff.c \
digraph.c \
edit.c \
***************
*** 75,80 ****
--- 77,84 ----
OBJ = o/blowfish.o \
o/buffer.o \
o/charset.o \
+ o/crypt.o \
+ o/crypt_zip.o \
o/diff.o \
o/digraph.o \
o/edit.o \
***************
*** 143,148 ****
--- 147,156 ----
o/charset.o: charset.c $(SYMS)
+ o/crypt.o: crypt.c $(SYMS)
+
+ o/crypt_zip.o: crypt_zip.c $(SYMS)
+
o/diff.o: diff.c $(SYMS)
o/digraph.o: digraph.c $(SYMS)
*** ../vim-7.4.400/src/Make_djg.mak 2010-05-18 20:29:18.000000000 +0200
--- src/Make_djg.mak 2014-08-10 16:22:13.084713340 +0200
***************
*** 22,27 ****
--- 22,29 ----
obj/blowfish.o \
obj/buffer.o \
obj/charset.o \
+ obj/crypt.o \
+ obj/crypt_zip.o \
obj/diff.o \
obj/digraph.o \
obj/edit.o \
*** ../vim-7.4.400/src/Make_ivc.mak 2013-02-26 14:18:19.000000000 +0100
--- src/Make_ivc.mak 2014-08-10 16:22:46.268713102 +0200
***************
*** 213,218 ****
--- 213,220 ----
"$(INTDIR)/blowfish.obj" \
"$(INTDIR)/buffer.obj" \
"$(INTDIR)/charset.obj" \
+ "$(INTDIR)/crypt.obj" \
+ "$(INTDIR)/crypt_zip.obj" \
"$(INTDIR)/diff.obj" \
"$(INTDIR)/digraph.obj" \
"$(INTDIR)/edit.obj" \
***************
*** 339,344 ****
--- 341,354 ----
# End Source File
# Begin Source File
+ SOURCE=.\crypt.c
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\crypt_zip.c
+ # End Source File
+ # Begin Source File
+
SOURCE=.\diff.c
# End Source File
# Begin Source File
*** ../vim-7.4.400/src/Make_manx.mak 2010-05-18 20:30:54.000000000 +0200
--- src/Make_manx.mak 2014-08-10 16:23:43.648712689 +0200
***************
*** 37,42 ****
--- 37,44 ----
SRC = blowfish.c \
buffer.c \
charset.c \
+ crypt.c \
+ crypt_zip.c \
diff.c \
digraph.c \
edit.c \
***************
*** 85,90 ****
--- 87,94 ----
OBJ = obj/blowfish.o \
obj/buffer.o \
obj/charset.o \
+ obj/crypt.o \
+ obj/crypt_zip.o \
obj/diff.o \
obj/digraph.o \
obj/edit.o \
***************
*** 131,136 ****
--- 135,142 ----
PRO = proto/blowfish.pro \
proto/buffer.pro \
proto/charset.pro \
+ proto/crypt.pro \
+ proto/crypt_zip.pro \
proto/diff.pro \
proto/digraph.pro \
proto/edit.pro \
***************
*** 227,232 ****
--- 233,244 ----
obj/charset.o: charset.c
$(CCSYM) $@ charset.c
+ obj/crypt.o: crypt.c
+ $(CCSYM) $@ crypt.c
+
+ obj/crypt_zip.o: crypt_zip.c
+ $(CCSYM) $@ crypt_zip.c
+
obj/diff.o: diff.c
$(CCSYM) $@ diff.c
*** ../vim-7.4.400/src/Make_ming.mak 2014-08-06 14:52:05.039236174 +0200
--- src/Make_ming.mak 2014-08-10 16:24:07.064712521 +0200
***************
*** 517,522 ****
--- 517,524 ----
$(OUTDIR)/blowfish.o \
$(OUTDIR)/buffer.o \
$(OUTDIR)/charset.o \
+ $(OUTDIR)/crypt.o \
+ $(OUTDIR)/crypt_zip.o \
$(OUTDIR)/diff.o \
$(OUTDIR)/digraph.o \
$(OUTDIR)/edit.o \
*** ../vim-7.4.400/src/Make_morph.mak 2010-05-18 20:31:26.000000000 +0200
--- src/Make_morph.mak 2014-08-10 16:24:39.900712285 +0200
***************
*** 27,32 ****
--- 27,34 ----
SRC = blowfish.c \
buffer.c \
charset.c \
+ crypt.c \
+ crypt_zip.c \
diff.c \
digraph.c \
edit.c \
*** ../vim-7.4.400/src/Make_mvc.mak 2014-08-06 14:52:05.039236174 +0200
--- src/Make_mvc.mak 2014-08-10 16:25:19.752711999 +0200
***************
*** 547,552 ****
--- 547,554 ----
$(OUTDIR)\blowfish.obj \
$(OUTDIR)\buffer.obj \
$(OUTDIR)\charset.obj \
+ $(OUTDIR)\crypt.obj \
+ $(OUTDIR)\crypt_zip.obj \
$(OUTDIR)\diff.obj \
$(OUTDIR)\digraph.obj \
$(OUTDIR)\edit.obj \
***************
*** 1092,1097 ****
--- 1094,1103 ----
$(OUTDIR)/charset.obj: $(OUTDIR) charset.c $(INCL)
+ $(OUTDIR)/crypt.obj: $(OUTDIR) crypt.c $(INCL)
+
+ $(OUTDIR)/crypt_zip.obj: $(OUTDIR) crypt_zip.c $(INCL)
+
$(OUTDIR)/diff.obj: $(OUTDIR) diff.c $(INCL)
$(OUTDIR)/digraph.obj: $(OUTDIR) digraph.c $(INCL)
***************
*** 1278,1283 ****
--- 1284,1291 ----
proto/blowfish.pro \
proto/buffer.pro \
proto/charset.pro \
+ proto/crypt.pro \
+ proto/crypt_zip.pro \
proto/diff.pro \
proto/digraph.pro \
proto/edit.pro \
*** ../vim-7.4.400/src/Make_os2.mak 2010-05-18 20:32:32.000000000 +0200
--- src/Make_os2.mak 2014-08-10 16:25:47.928711796 +0200
***************
*** 42,47 ****
--- 42,49 ----
blowfish.o \
buffer.o \
charset.o \
+ crypt.o \
+ crypt_zip.o \
diff.o \
digraph.o \
edit.o \
***************
*** 117,122 ****
--- 119,126 ----
blowfish.o: blowfish.c $(INCL)
buffer.o: buffer.c $(INCL)
charset.o: charset.c $(INCL)
+ crypt.o: crypt.c $(INCL)
+ crypt_zip.o: crypt_zip.c $(INCL)
diff.o: diff.c $(INCL)
digraph.o: digraph.c $(INCL)
edit.o: edit.c $(INCL)
*** ../vim-7.4.400/src/Make_sas.mak 2013-05-06 04:06:04.000000000 +0200
--- src/Make_sas.mak 2014-08-10 16:26:41.536711411 +0200
***************
*** 92,97 ****
--- 92,99 ----
blowfish.c \
buffer.c \
charset.c \
+ crypt.c \
+ crypt_zip.c \
diff.c \
digraph.c \
edit.c \
***************
*** 139,144 ****
--- 141,148 ----
blowfish.o \
buffer.o \
charset.o \
+ crypt.o \
+ crypt_zip.o \
diff.o \
digraph.o \
edit.o \
***************
*** 186,191 ****
--- 190,197 ----
proto/blowfish.pro \
proto/buffer.pro \
proto/charset.pro \
+ proto/crypt.pro \
+ proto/crypt_zip.pro \
proto/diff.pro \
proto/digraph.pro \
proto/edit.pro \
***************
*** 290,295 ****
--- 296,305 ----
proto/buffer.pro: buffer.c
charset.o: charset.c
proto/charset.pro: charset.c
+ crypt.o: crypt.c
+ proto/crypt.pro: crypt.c
+ crypt_zip.o: crypt_zip.c
+ proto/crypt_zip.pro: crypt_zip.c
diff.o: diff.c
proto/diff.pro: diff.c
digraph.o: digraph.c
*** ../vim-7.4.400/src/version.c 2014-08-10 13:46:30.424780490 +0200
--- src/version.c 2014-08-10 16:27:26.380711088 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 401,
/**/
--
When a fly lands on the ceiling, does it do a half roll or
a half loop?
/// 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 ///

103
7.4.402 Normal file
View File

@ -0,0 +1,103 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.402
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.4.402
Problem: Test 72 crashes under certain conditions. (Kazunobu Kuriyama)
Solution: Clear the whole bufinfo_T early.
Files: src/undo.c
*** ../vim-7.4.401/src/undo.c 2014-08-10 13:34:59.064785459 +0200
--- src/undo.c 2014-08-12 20:08:23.915373819 +0200
***************
*** 929,935 ****
undo_flush(bi)
bufinfo_T *bi;
{
! if (bi->bi_used > 0)
{
crypt_encode_inplace(bi->bi_state, bi->bi_buffer, bi->bi_used);
if (fwrite(bi->bi_buffer, bi->bi_used, (size_t)1, bi->bi_fp) != 1)
--- 929,935 ----
undo_flush(bi)
bufinfo_T *bi;
{
! if (bi->bi_buffer != NULL && bi->bi_used > 0)
{
crypt_encode_inplace(bi->bi_state, bi->bi_buffer, bi->bi_used);
if (fwrite(bi->bi_buffer, bi->bi_used, (size_t)1, bi->bi_fp) != 1)
***************
*** 1573,1582 ****
#endif
bufinfo_T bi;
! #ifdef FEAT_CRYPT
! bi.bi_state = NULL;
! bi.bi_buffer = NULL;
! #endif
if (name == NULL)
{
--- 1573,1579 ----
#endif
bufinfo_T bi;
! vim_memset(&bi, 0, sizeof(bi));
if (name == NULL)
{
***************
*** 1861,1866 ****
--- 1858,1864 ----
#endif
bufinfo_T bi;
+ vim_memset(&bi, 0, sizeof(bi));
if (name == NULL)
{
file_name = u_get_undo_file_name(curbuf->b_ffname, TRUE);
***************
*** 1905,1914 ****
}
bi.bi_buf = curbuf;
bi.bi_fp = fp;
- #ifdef FEAT_CRYPT
- bi.bi_state = NULL;
- bi.bi_buffer = NULL;
- #endif
/*
* Read the undo file header.
--- 1903,1908 ----
*** ../vim-7.4.401/src/version.c 2014-08-10 16:31:47.376709213 +0200
--- src/version.c 2014-08-12 20:11:13.879372598 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 402,
/**/
--
Far back in the mists of ancient time, in the great and glorious days of the
former Galactic Empire, life was wild, rich and largely tax free.
Mighty starships plied their way between exotic suns, seeking adventure and
reward among the furthest reaches of Galactic space. In those days, spirits
were brave, the stakes were high, men were real men, women were real women
and small furry creatures from Alpha Centauri were real small furry creatures
from Alpha Centauri. And all dared to brave unknown terrors, to do mighty
deeds, to boldly split infinitives that no man had split before -- and thus
was the Empire forged.
-- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
/// 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 ///

View File

@ -331,3 +331,97 @@ Individual patches for Vim 7.4:
7820 7.4.305 making 'ttymouse' empty causes problems
2660 7.4.306 getchar(0) does not return Esc
4150 7.4.307 can't build without the +termresponse feature
1420 7.4.308 ":diffsplit" on empty file cursor is displayed on command line
2095 7.4.309 increasing size of lower window, upper window jumps to the top
11194 7.4.310 getpos()/setpos() don't include curswant
4740 7.4.311 can't use winrestview to only restore part of the view
6272 7.4.312 cannot know what argument list is being used for a window
10912 7.4.313 (after 7.4.310) changing return value of getpos() causes error
5875 7.4.314 completion messages can get in the way of a plugin
8020 7.4.315 (after 7.4.309) fixes for computation of topline not tested
1537 7.4.316 warning from 64-bit compiler
1434 7.4.317 crash when starting gvim, issue 230
1748 7.4.318 fg/bg color settings ignored when checking syntax attributes
1764 7.4.319 crash when putting zero bytes on the clipboard
4439 7.4.320 possible crash when an BufLeave autocommand deletes the buffer
2515 7.4.321 can't build with strawberry perl 5.20 + mingw-w64-4.9.0
3274 7.4.322 using "msgfmt" is hard coded, cannot use "gmsgfmt"
2898 7.4.323 substitute() with zero width pattern breaks multi-byte char
4631 7.4.324 in Ex mode, cyrillic characters are not handled
2070 7.4.325 incorrect display when starting GUI and setting 'laststatus'
1384 7.4.326 can't build Tiny version
4330 7.4.327 when 'verbose' is set may get E724 repeatedly
2580 7.4.328 selection of inner block is inconsistent
1945 7.4.329 window not scrolled if moving cursor and go to another window
32746 7.4.330 using regexp pattern to show a position match can be slow
1506 7.4.331 relative numbering not updated after a linewise yank
4079 7.4.332 GTK: ugly gaps when a sign icon doesn't fit exactly
2036 7.4.333 compiler warning for unused function
3295 7.4.334 (after 7.4.330) unitialized variables, causing some problems
3313 7.4.335 no digraph for the new rouble sign
3536 7.4.336 setting 'history' to a big value causes out-of-memory errors
1589 7.4.337 can't execute command line if there was an error before
52480 7.4.338 cannot wrap lines taking indent into account
2655 7.4.339 local function is available globally
3140 7.4.340 error from sed about illegal bytes when installing Vim
6001 7.4.341 sort() doesn't handle numbers well
1988 7.4.342 clang gives warnings
1850 7.4.343 matchdelete() does not always update the right lines
5304 7.4.344 small issues related to matchaddpos()
2618 7.4.345 (after 7.4.338) indent is not updated when deleting indent
1963 7.4.346 (after 7.4.338) indent is not updated when changing 'briopt'
3209 7.4.347 test55 fails on some systems
1738 7.4.348 Using "J1" in 'cinoptions' may cause too much indent
2967 7.4.349 avoid redrawing the whole window with highlighted matches
3909 7.4.350 C-indenting for Javascript fails for a {} block inside parens
6034 7.4.351 sort() is not stable
2637 7.4.352 with 'linebreak' a Tab causes a missing line break
14437 7.4.353 'linebreak' doesn't work with the 'list' option
1891 7.4.354 compiler warning
21483 7.4.355 several problems with Javascript indenting
1247 7.4.356 mercurial does not ignore memfile_test
1654 7.4.357 after completion some characters are not redrawn
8040 7.4.358 (after 7.4.351) sort is not always stable
2942 7.4.359 if 'ttymouse' set to 'uxterm' xterm version is not requested
2461 7.4.360 pattern with "$" followed by \[vV] is not used as end-of-line
1487 7.4.361 flickering when filling the preview window for 'omnifunc'
1608 7.4.362 short length in matchaddpos() highlights until end of the line
4445 7.4.363 in Windows console typing 0xCE does not work
2425 7.4.364 no error message when the viminfo file can't be renamed
3973 7.4.365 crash when using ":botright split" when there isn't much space
1602 7.4.366 can't run the linebreak test on MS-Windows
2165 7.4.367 (after 7.4.357) other solution for redrawing after completion
2581 7.4.368 window sizes not restored properly when closing cmdline window
2331 7.4.369 using freed memory when exiting while compiled with EXITFREE
9476 7.4.370 linebreak test fails when encoding is not utf-8
1880 7.4.371 with 'linebreak' set control characters displayed wrong
5628 7.4.372 with 'winminheight' zero current window might be zero height
2668 7.4.373 compiler warning for unused argument and unused variable
2461 7.4.374 character after "fb" command sometimes not mapped
1967 7.4.375 test 63 fails when run with GUI-only Vim
1877 7.4.376 (after 7.4.367) popup menu flickers too much
4200 7.4.377 with 'equalalways' set a split may report "no room"
9720 7.4.378 title of quickfist list is not kept for setqflist(list, 'r')
1382 7.4.379 accessing freed memory after using setqflist(list, 'r')
3324 7.4.380 loading python may cause Vim to exit
1359 7.4.381 u_undo error when backspacing in Insert mode deletes 2 lines
1876 7.4.382 mapping chars may not work after typing Esc in Insert mode
1744 7.4.383 bad interaction between preview window and omnifunc
1522 7.4.384 test 102 fails when compiled with small features
2559 7.4.385 when building with tiny/small features .mo files build fails
5536 7.4.386 when splitting a window the changelist position is wrong
6083 7.4.387 "4gro" replaces one character then executes "ooo"
2972 7.4.388 with 'linebreak' set and 'list' unset Tab not counted properly
13930 7.4.389 still sometimes Vim enters Replace mode when starting up
1411 7.4.390 advancing pointer over end of a string
3316 7.4.391 no 'cul' highlight with cursor on a line with diff highlight
2701 7.4.392 not easy to detect type of command line window
53004 7.4.393 text drawing on newer MS-Windows systems is suboptimal
1890 7.4.394 (after 7.4.393) with DirectX last italic char is incomplete
2600 7.4.395 C indent wrong below an if with wrapped () followed by {}
8881 7.4.396 when 'clipboard' is "unnamed", :g/pat/d is very slow
5060 7.4.397 matchparen only uses the topmost syntax item
1533 7.4.398 (after 7.4.393) gcc error for argument of InterlockedIncrement
136105 7.4.399 crypt implementation is messy; blowfish crypt has a weakness
1848 7.4.400 list of distributed files is incomplete
8581 7.4.401 (after 7.4.399) new files missing in Makefiles

245
vim.spec
View File

@ -1,4 +1,4 @@
%define patchlevel 307
%define patchlevel 402
%if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1}
%define WITH_SELINUX 1
%endif
@ -21,7 +21,7 @@ Summary: The VIM editor
URL: http://www.vim.org/
Name: vim
Version: %{baseversion}.%{patchlevel}
Release: 3%{?dist}
Release: 1%{?dist}
License: Vim
Group: Applications/Editors
Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2
@ -355,6 +355,101 @@ Patch304: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.304
Patch305: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.305
Patch306: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.306
Patch307: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.307
Patch308: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.308
Patch309: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.309
Patch310: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.310
Patch311: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.311
Patch312: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.312
Patch313: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.313
Patch314: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.314
Patch315: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.315
Patch316: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.316
Patch317: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.317
Patch318: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.318
Patch319: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.319
Patch320: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.320
Patch321: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.321
Patch322: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.322
Patch323: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.323
Patch324: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.324
Patch325: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.325
Patch326: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.326
Patch327: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.327
Patch328: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.328
Patch329: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.329
Patch330: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.330
Patch331: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.331
Patch332: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.332
Patch333: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.333
Patch334: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.334
Patch335: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.335
Patch336: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.336
Patch337: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.337
Patch338: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.338
Patch339: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.339
Patch340: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.340
Patch341: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.341
Patch342: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.342
Patch343: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.343
Patch344: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.344
Patch345: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.345
Patch346: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.346
Patch347: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.347
Patch348: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.348
Patch349: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.349
Patch350: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.350
Patch351: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.351
Patch352: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.352
Patch353: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.353
Patch354: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.354
Patch355: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.355
Patch356: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.356
Patch357: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.357
Patch358: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.358
Patch359: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.359
Patch360: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.360
Patch361: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.361
Patch362: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.362
Patch363: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.363
Patch364: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.364
Patch365: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.365
Patch366: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.366
Patch367: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.367
Patch368: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.368
Patch369: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.369
Patch370: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.370
Patch371: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.371
Patch372: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.372
Patch373: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.373
Patch374: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.374
Patch375: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.375
Patch376: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.376
Patch377: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.377
Patch378: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.378
Patch379: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.379
Patch380: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.380
Patch381: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.381
Patch382: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.382
Patch383: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.383
Patch384: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.384
Patch385: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.385
Patch386: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.386
Patch387: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.387
Patch388: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.388
Patch389: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.389
Patch390: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.390
Patch391: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.391
Patch392: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.392
Patch393: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.393
Patch394: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.394
Patch395: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.395
Patch396: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.396
Patch397: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.397
Patch398: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.398
Patch399: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.399
Patch400: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.400
Patch401: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.401
Patch402: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.402
Patch3000: vim-7.4-syntax.patch
Patch3002: vim-7.1-nowarnings.patch
@ -810,6 +905,101 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
%patch305 -p0
%patch306 -p0
%patch307 -p0
%patch308 -p0
%patch309 -p0
%patch310 -p0
%patch311 -p0
%patch312 -p0
%patch313 -p0
%patch314 -p0
%patch315 -p0
%patch316 -p0
%patch317 -p0
%patch318 -p0
%patch319 -p0
%patch320 -p0
%patch321 -p0
%patch322 -p0
%patch323 -p0
%patch324 -p0
%patch325 -p0
%patch326 -p0
%patch327 -p0
%patch328 -p0
%patch329 -p0
%patch330 -p0
%patch331 -p0
%patch332 -p0
%patch333 -p0
%patch334 -p0
%patch335 -p0
%patch336 -p0
%patch337 -p0
%patch338 -p0
%patch339 -p0
%patch340 -p0
%patch341 -p0
%patch342 -p0
%patch343 -p0
%patch344 -p0
%patch345 -p0
%patch346 -p0
%patch347 -p0
%patch348 -p0
%patch349 -p0
%patch350 -p0
%patch351 -p0
%patch352 -p0
%patch353 -p0
%patch354 -p0
%patch355 -p0
%patch356 -p0
%patch357 -p0
%patch358 -p0
%patch359 -p0
%patch360 -p0
%patch361 -p0
%patch362 -p0
%patch363 -p0
%patch364 -p0
%patch365 -p0
%patch366 -p0
%patch367 -p0
%patch368 -p0
%patch369 -p0
%patch370 -p0
%patch371 -p0
%patch372 -p0
%patch373 -p0
%patch374 -p0
%patch375 -p0
%patch376 -p0
%patch377 -p0
%patch378 -p0
%patch379 -p0
%patch380 -p0
%patch381 -p0
%patch382 -p0
%patch383 -p0
%patch384 -p0
%patch385 -p0
%patch386 -p0
%patch387 -p0
%patch388 -p0
%patch389 -p0
%patch390 -p0
%patch391 -p0
%patch392 -p0
%patch393 -p0
%patch394 -p0
%patch395 -p0
%patch396 -p0
%patch397 -p0
%patch398 -p0
%patch399 -p0
%patch400 -p0
%patch401 -p0
%patch402 -p0
# install spell files
%if %{withvimspell}
@ -843,6 +1033,26 @@ mv -f Makefile.tmp Makefile
export CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2"
export CXXFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2"
perl -pi -e "s/help.txt/vi_help.txt/" os_unix.h ex_cmds.c
perl -pi -e "s/\/etc\/vimrc/\/etc\/virc/" os_unix.h
%configure --prefix=%{_prefix} --with-features=small --with-x=no \
--enable-multibyte \
--disable-netbeans \
%if %{WITH_SELINUX}
--enable-selinux \
%else
--disable-selinux \
%endif
--disable-pythoninterp --disable-perlinterp --disable-tclinterp \
--with-tlib=ncurses --enable-gui=no --disable-gpm --exec-prefix=/ \
--with-compiledby="<bugzilla@redhat.com>" \
--with-modified-by="<bugzilla@redhat.com>"
make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags}
cp vim minimal-vim
make clean
%configure --with-features=huge \
--enable-pythoninterp=dynamic \
--enable-perlinterp \
@ -909,24 +1119,6 @@ make clean
make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags}
cp vim enhanced-vim
make clean
perl -pi -e "s/help.txt/vi_help.txt/" os_unix.h ex_cmds.c
perl -pi -e "s/\/etc\/vimrc/\/etc\/virc/" os_unix.h
%configure --prefix=%{_prefix} --with-features=small --with-x=no \
--enable-multibyte \
--disable-netbeans \
%if %{WITH_SELINUX}
--enable-selinux \
%else
--disable-selinux \
%endif
--disable-pythoninterp --disable-perlinterp --disable-tclinterp \
--with-tlib=ncurses --enable-gui=no --disable-gpm --exec-prefix=/ \
--with-compiledby="<bugzilla@redhat.com>" \
--with-modified-by="<bugzilla@redhat.com>"
make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags}
%install
rm -rf %{buildroot}
@ -948,7 +1140,7 @@ cd src
make install DESTDIR=%{buildroot} BINDIR=%{_bindir} VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir}
make installgtutorbin DESTDIR=%{buildroot} BINDIR=%{_bindir} VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir}
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64}/apps
install -m755 vim %{buildroot}%{_bindir}/vi
install -m755 minimal-vim %{buildroot}%{_bindir}/vi
install -m755 enhanced-vim %{buildroot}%{_bindir}/vim
install -m755 gvim %{buildroot}%{_bindir}/gvim
install -p -m644 %{SOURCE7} \
@ -1322,9 +1514,18 @@ rm -rf %{buildroot}
%{_datadir}/icons/hicolor/*/apps/*
%changelog
* Wed Aug 6 2014 Tom Callaway <spot@fedoraproject.org> 2:7.4.307-3
* Wed Aug 13 2014 Karsten Hopp <karsten@redhat.com> 7.4.402-1
- patchlevel 402
* Tue Aug 12 2014 Karsten Hopp <karsten@redhat.com> 7.4.401-1
- patchlevel 401
* Wed Aug 6 2014 Tom Callaway <spot@fedoraproject.org> 2:7.4.373-2
- fix license handling
* Tue Jul 22 2014 Karsten Hopp <karsten@redhat.com> 7.4.373-1
- patchlevel 373
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:7.4.307-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild