- patchlevel 941

This commit is contained in:
Karsten Hopp 2015-11-25 11:20:50 +01:00
commit 31a482c277
905 changed files with 36545 additions and 163774 deletions

5
.gitignore vendored
View File

@ -3,3 +3,8 @@ vim-7.2-lang.tar.gz
vim-7.2.tar.bz2
/vim-7.3.tar.bz2
/vim-7.4.tar.bz2
/vim-7.4-909.tar.bz2
/vim-7.4-917.tar.bz2
/vim-7.4-922.tar.bz2
/vim-7.4-930.tar.bz2
/vim-7.4-941.tar.bz2

489
7.4.001
View File

@ -1,489 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.001
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.001
Problem: Character classes such as [a-z] to not react to 'ignorecase'.
Breaks man page highlighting. (Mario Grgic)
Solution: Add separate items for classes that react to 'ignorecase'. Clean
up logic handling character classes. Add more tests.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.000/src/regexp_nfa.c 2013-08-01 18:27:51.000000000 +0200
--- src/regexp_nfa.c 2013-08-14 11:49:50.000000000 +0200
***************
*** 29,34 ****
--- 29,37 ----
# define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log"
#endif
+ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
+ #define NFA_ADD_NL 31
+
enum
{
NFA_SPLIT = -1024,
***************
*** 183,188 ****
--- 186,198 ----
NFA_NLOWER, /* Match non-lowercase char */
NFA_UPPER, /* Match uppercase char */
NFA_NUPPER, /* Match non-uppercase char */
+ NFA_LOWER_IC, /* Match [a-z] */
+ NFA_NLOWER_IC, /* Match [^a-z] */
+ NFA_UPPER_IC, /* Match [A-Z] */
+ NFA_NUPPER_IC, /* Match [^A-Z] */
+
+ NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
+ NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
NFA_CURSOR, /* Match cursor pos */
NFA_LNUM, /* Match line number */
***************
*** 199,207 ****
NFA_MARK_LT, /* Match < mark */
NFA_VISUAL, /* Match Visual area */
- NFA_FIRST_NL = NFA_ANY + ADD_NL,
- NFA_LAST_NL = NFA_NUPPER + ADD_NL,
-
/* Character classes [:alnum:] etc */
NFA_CLASS_ALNUM,
NFA_CLASS_ALPHA,
--- 209,214 ----
***************
*** 578,583 ****
--- 585,592 ----
* On failure, return 0 (=FAIL)
* Start points to the first char of the range, while end should point
* to the closing brace.
+ * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may
+ * need to be interpreted as [a-zA-Z].
*/
static int
nfa_recognize_char_class(start, end, extra_newl)
***************
*** 681,687 ****
return FAIL;
if (newl == TRUE)
! extra_newl = ADD_NL;
switch (config)
{
--- 690,696 ----
return FAIL;
if (newl == TRUE)
! extra_newl = NFA_ADD_NL;
switch (config)
{
***************
*** 710,722 ****
case CLASS_not | CLASS_az | CLASS_AZ:
return extra_newl + NFA_NALPHA;
case CLASS_az:
! return extra_newl + NFA_LOWER;
case CLASS_not | CLASS_az:
! return extra_newl + NFA_NLOWER;
case CLASS_AZ:
! return extra_newl + NFA_UPPER;
case CLASS_not | CLASS_AZ:
! return extra_newl + NFA_NUPPER;
}
return FAIL;
}
--- 719,731 ----
case CLASS_not | CLASS_az | CLASS_AZ:
return extra_newl + NFA_NALPHA;
case CLASS_az:
! return extra_newl + NFA_LOWER_IC;
case CLASS_not | CLASS_az:
! return extra_newl + NFA_NLOWER_IC;
case CLASS_AZ:
! return extra_newl + NFA_UPPER_IC;
case CLASS_not | CLASS_AZ:
! return extra_newl + NFA_NUPPER_IC;
}
return FAIL;
}
***************
*** 914,920 ****
break;
}
! extra = ADD_NL;
/* "\_[" is collection plus newline */
if (c == '[')
--- 923,929 ----
break;
}
! extra = NFA_ADD_NL;
/* "\_[" is collection plus newline */
if (c == '[')
***************
*** 970,976 ****
}
#endif
EMIT(nfa_classcodes[p - classchars]);
! if (extra == ADD_NL)
{
EMIT(NFA_NEWL);
EMIT(NFA_OR);
--- 979,985 ----
}
#endif
EMIT(nfa_classcodes[p - classchars]);
! if (extra == NFA_ADD_NL)
{
EMIT(NFA_NEWL);
EMIT(NFA_OR);
***************
*** 1240,1260 ****
{
/*
* Try to reverse engineer character classes. For example,
! * recognize that [0-9] stands for \d and [A-Za-z_] with \h,
* and perform the necessary substitutions in the NFA.
*/
result = nfa_recognize_char_class(regparse, endp,
! extra == ADD_NL);
if (result != FAIL)
{
! if (result >= NFA_DIGIT && result <= NFA_NUPPER)
! EMIT(result);
! else /* must be char class + newline */
{
! EMIT(result - ADD_NL);
EMIT(NFA_NEWL);
EMIT(NFA_OR);
}
regparse = endp;
mb_ptr_adv(regparse);
return OK;
--- 1249,1269 ----
{
/*
* Try to reverse engineer character classes. For example,
! * recognize that [0-9] stands for \d and [A-Za-z_] for \h,
* and perform the necessary substitutions in the NFA.
*/
result = nfa_recognize_char_class(regparse, endp,
! extra == NFA_ADD_NL);
if (result != FAIL)
{
! if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL)
{
! EMIT(result - NFA_ADD_NL);
EMIT(NFA_NEWL);
EMIT(NFA_OR);
}
+ else
+ EMIT(result);
regparse = endp;
mb_ptr_adv(regparse);
return OK;
***************
*** 1504,1510 ****
* collection, add an OR below. But not for negated
* range. */
if (!negated)
! extra = ADD_NL;
}
else
{
--- 1513,1519 ----
* collection, add an OR below. But not for negated
* range. */
if (!negated)
! extra = NFA_ADD_NL;
}
else
{
***************
*** 1537,1543 ****
EMIT(NFA_END_COLL);
/* \_[] also matches \n but it's not negated */
! if (extra == ADD_NL)
{
EMIT(reg_string ? NL : NFA_NEWL);
EMIT(NFA_OR);
--- 1546,1552 ----
EMIT(NFA_END_COLL);
/* \_[] also matches \n but it's not negated */
! if (extra == NFA_ADD_NL)
{
EMIT(reg_string ? NL : NFA_NEWL);
EMIT(NFA_OR);
***************
*** 2011,2017 ****
if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
{
addnl = TRUE;
! c -= ADD_NL;
}
STRCPY(code, "");
--- 2020,2026 ----
if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
{
addnl = TRUE;
! c -= NFA_ADD_NL;
}
STRCPY(code, "");
***************
*** 2217,2222 ****
--- 2226,2235 ----
case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break;
case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break;
case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break;
+ case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break;
+ case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
+ case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break;
+ case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
default:
STRCPY(code, "CHAR(x)");
***************
*** 2687,2692 ****
--- 2700,2709 ----
case NFA_NLOWER:
case NFA_UPPER:
case NFA_NUPPER:
+ case NFA_LOWER_IC:
+ case NFA_NLOWER_IC:
+ case NFA_UPPER_IC:
+ case NFA_NUPPER_IC:
/* possibly non-ascii */
#ifdef FEAT_MBYTE
if (has_mbyte)
***************
*** 3841,3846 ****
--- 3858,3867 ----
case NFA_NLOWER:
case NFA_UPPER:
case NFA_NUPPER:
+ case NFA_LOWER_IC:
+ case NFA_NLOWER_IC:
+ case NFA_UPPER_IC:
+ case NFA_NUPPER_IC:
case NFA_START_COLL:
case NFA_START_NEG_COLL:
case NFA_NEWL:
***************
*** 5872,5877 ****
--- 5893,5920 ----
ADD_STATE_IF_MATCH(t->state);
break;
+ case NFA_LOWER_IC: /* [a-z] */
+ result = ri_lower(curc) || (ireg_ic && ri_upper(curc));
+ ADD_STATE_IF_MATCH(t->state);
+ break;
+
+ case NFA_NLOWER_IC: /* [^a-z] */
+ result = curc != NUL
+ && !(ri_lower(curc) || (ireg_ic && ri_upper(curc)));
+ ADD_STATE_IF_MATCH(t->state);
+ break;
+
+ case NFA_UPPER_IC: /* [A-Z] */
+ result = ri_upper(curc) || (ireg_ic && ri_lower(curc));
+ ADD_STATE_IF_MATCH(t->state);
+ break;
+
+ case NFA_NUPPER_IC: /* ^[A-Z] */
+ result = curc != NUL
+ && !(ri_upper(curc) || (ireg_ic && ri_lower(curc)));
+ ADD_STATE_IF_MATCH(t->state);
+ break;
+
case NFA_BACKREF1:
case NFA_BACKREF2:
case NFA_BACKREF3:
*** ../vim-7.4.000/src/testdir/test64.in 2013-08-01 17:45:33.000000000 +0200
--- src/testdir/test64.in 2013-08-14 11:50:11.000000000 +0200
***************
*** 289,303 ****
:call add(tl, [2, '.a\%$', " a\n "])
:call add(tl, [2, '.a\%$', " a\n_a", "_a"])
:"
! :"""" Test recognition of some character classes
! :call add(tl, [2, '[0-9]', '8', '8'])
! :call add(tl, [2, '[^0-9]', '8'])
! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7'])
! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7'])
! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij'])
! :call add(tl, [2, '[a-z]', 'a', 'a'])
! :call add(tl, [2, '[a-zA-Z]', 'a', 'a'])
! :call add(tl, [2, '[A-Z]', 'a'])
:call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
:"
:"""" Tests for \z features
--- 289,317 ----
:call add(tl, [2, '.a\%$', " a\n "])
:call add(tl, [2, '.a\%$', " a\n_a", "_a"])
:"
! :"""" Test recognition of character classes
! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
:call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
:"
:"""" Tests for \z features
*** ../vim-7.4.000/src/testdir/test64.ok 2013-08-01 18:28:56.000000000 +0200
--- src/testdir/test64.ok 2013-08-14 11:50:37.000000000 +0200
***************
*** 650,679 ****
OK 0 - .a\%$
OK 1 - .a\%$
OK 2 - .a\%$
! OK 0 - [0-9]
! OK 1 - [0-9]
! OK 2 - [0-9]
! OK 0 - [^0-9]
! OK 1 - [^0-9]
! OK 2 - [^0-9]
! OK 0 - [0-9a-fA-F]*
! OK 1 - [0-9a-fA-F]*
! OK 2 - [0-9a-fA-F]*
OK 0 - [^0-9A-Fa-f]\+
OK 1 - [^0-9A-Fa-f]\+
OK 2 - [^0-9A-Fa-f]\+
OK 0 - [a-z_A-Z0-9]\+
OK 1 - [a-z_A-Z0-9]\+
OK 2 - [a-z_A-Z0-9]\+
! OK 0 - [a-z]
! OK 1 - [a-z]
! OK 2 - [a-z]
! OK 0 - [a-zA-Z]
! OK 1 - [a-zA-Z]
! OK 2 - [a-zA-Z]
! OK 0 - [A-Z]
! OK 1 - [A-Z]
! OK 2 - [A-Z]
OK 0 - \C[^A-Z]\+
OK 1 - \C[^A-Z]\+
OK 2 - \C[^A-Z]\+
--- 650,721 ----
OK 0 - .a\%$
OK 1 - .a\%$
OK 2 - .a\%$
! OK 0 - [0-7]\+
! OK 1 - [0-7]\+
! OK 2 - [0-7]\+
! OK 0 - [^0-7]\+
! OK 1 - [^0-7]\+
! OK 2 - [^0-7]\+
! OK 0 - [0-9]\+
! OK 1 - [0-9]\+
! OK 2 - [0-9]\+
! OK 0 - [^0-9]\+
! OK 1 - [^0-9]\+
! OK 2 - [^0-9]\+
! OK 0 - [0-9a-fA-F]\+
! OK 1 - [0-9a-fA-F]\+
! OK 2 - [0-9a-fA-F]\+
OK 0 - [^0-9A-Fa-f]\+
OK 1 - [^0-9A-Fa-f]\+
OK 2 - [^0-9A-Fa-f]\+
OK 0 - [a-z_A-Z0-9]\+
OK 1 - [a-z_A-Z0-9]\+
OK 2 - [a-z_A-Z0-9]\+
! OK 0 - [^a-z_A-Z0-9]\+
! OK 1 - [^a-z_A-Z0-9]\+
! OK 2 - [^a-z_A-Z0-9]\+
! OK 0 - [a-z_A-Z]\+
! OK 1 - [a-z_A-Z]\+
! OK 2 - [a-z_A-Z]\+
! OK 0 - [^a-z_A-Z]\+
! OK 1 - [^a-z_A-Z]\+
! OK 2 - [^a-z_A-Z]\+
! OK 0 - [a-z]\+
! OK 1 - [a-z]\+
! OK 2 - [a-z]\+
! OK 0 - [a-z]\+
! OK 1 - [a-z]\+
! OK 2 - [a-z]\+
! OK 0 - [^a-z]\+
! OK 1 - [^a-z]\+
! OK 2 - [^a-z]\+
! OK 0 - [^a-z]\+
! OK 1 - [^a-z]\+
! OK 2 - [^a-z]\+
! OK 0 - [a-zA-Z]\+
! OK 1 - [a-zA-Z]\+
! OK 2 - [a-zA-Z]\+
! OK 0 - [^a-zA-Z]\+
! OK 1 - [^a-zA-Z]\+
! OK 2 - [^a-zA-Z]\+
! OK 0 - [A-Z]\+
! OK 1 - [A-Z]\+
! OK 2 - [A-Z]\+
! OK 0 - [^A-Z]\+
! OK 1 - [^A-Z]\+
! OK 2 - [^A-Z]\+
! OK 0 - [a-z]\+\c
! OK 1 - [a-z]\+\c
! OK 2 - [a-z]\+\c
! OK 0 - [A-Z]\+\c
! OK 1 - [A-Z]\+\c
! OK 2 - [A-Z]\+\c
! OK 0 - \c[^a-z]\+
! OK 1 - \c[^a-z]\+
! OK 2 - \c[^a-z]\+
! OK 0 - \c[^A-Z]\+
! OK 1 - \c[^A-Z]\+
! OK 2 - \c[^A-Z]\+
OK 0 - \C[^A-Z]\+
OK 1 - \C[^A-Z]\+
OK 2 - \C[^A-Z]\+
*** ../vim-7.4.000/src/version.c 2013-08-10 13:29:20.000000000 +0200
--- src/version.c 2013-08-14 11:54:57.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 1,
/**/
--
How many light bulbs does it take to change a person?
/// 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 ///

77
7.4.002
View File

@ -1,77 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.002
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.4b.002
Problem: Pattern with two alternative look-behind matches does not match.
(Amadeus Demarzi)
Solution: When comparing PIMs also compare their state ID to see if they are
different.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.001/src/regexp_nfa.c 2013-08-14 12:05:54.000000000 +0200
--- src/regexp_nfa.c 2013-08-14 13:12:09.000000000 +0200
***************
*** 3782,3787 ****
--- 3782,3790 ----
if (two_unused)
/* one is used and two is not: not equal */
return FALSE;
+ /* compare the state id */
+ if (one->state->id != two->state->id)
+ return FALSE;
/* compare the position */
if (REG_MULTI)
return one->end.pos.lnum == two->end.pos.lnum
*** ../vim-7.4.001/src/testdir/test64.in 2013-08-14 12:05:54.000000000 +0200
--- src/testdir/test64.in 2013-08-14 12:58:38.000000000 +0200
***************
*** 421,426 ****
--- 421,429 ----
:call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
:call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
:"
+ :" complicated look-behind match
+ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
+ :"
:""""" \@>
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
*** ../vim-7.4.001/src/testdir/test64.ok 2013-08-14 12:05:54.000000000 +0200
--- src/testdir/test64.ok 2013-08-14 13:14:09.000000000 +0200
***************
*** 974,979 ****
--- 974,982 ----
OK 0 - \(foo\)\@<=.*
OK 1 - \(foo\)\@<=.*
OK 2 - \(foo\)\@<=.*
+ OK 0 - \(r\@<=\|\w\@<!\)\/
+ OK 1 - \(r\@<=\|\w\@<!\)\/
+ OK 2 - \(r\@<=\|\w\@<!\)\/
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
*** ../vim-7.4.001/src/version.c 2013-08-14 12:05:54.000000000 +0200
--- src/version.c 2013-08-14 13:13:45.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 2,
/**/
--
From "know your smileys":
:-)-O Smiling doctor with stethoscope
/// 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.003
View File

@ -1,100 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.003
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.003
Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution: Refresh stale pointer. (James McCoy)
Files: src/regexp_nfa.c
*** ../vim-7.4.002/src/regexp_nfa.c 2013-08-14 13:31:03.000000000 +0200
--- src/regexp_nfa.c 2013-08-14 14:02:06.000000000 +0200
***************
*** 4120,4126 ****
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZOPEN)
{
subidx = state->c - NFA_ZOPEN;
sub = &subs->synt;
--- 4120,4126 ----
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
{
subidx = state->c - NFA_ZOPEN;
sub = &subs->synt;
***************
*** 4189,4194 ****
--- 4189,4201 ----
}
subs = addstate(l, state->out, subs, pim, off);
+ /* "subs" may have changed, need to set "sub" again */
+ #ifdef FEAT_SYN_HL
+ if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
+ sub = &subs->synt;
+ else
+ #endif
+ sub = &subs->norm;
if (save_in_use == -1)
{
***************
*** 4237,4243 ****
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZCLOSE)
{
subidx = state->c - NFA_ZCLOSE;
sub = &subs->synt;
--- 4244,4250 ----
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
{
subidx = state->c - NFA_ZCLOSE;
sub = &subs->synt;
***************
*** 4281,4286 ****
--- 4288,4300 ----
}
subs = addstate(l, state->out, subs, pim, off);
+ /* "subs" may have changed, need to set "sub" again */
+ #ifdef FEAT_SYN_HL
+ if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
+ sub = &subs->synt;
+ else
+ #endif
+ sub = &subs->norm;
if (REG_MULTI)
sub->list.multi[subidx].end = save_lpos;
*** ../vim-7.4.002/src/version.c 2013-08-14 13:31:03.000000000 +0200
--- src/version.c 2013-08-14 14:03:51.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 3,
/**/
--
Where do you want to crash today?
/// 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 ///

232
7.4.004
View File

@ -1,232 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.004
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.004
Problem: When closing a window fails ":bwipe" may hang.
Solution: Let win_close() return FAIL and break out of the loop.
Files: src/window.c, src/proto/window.pro, src/buffer.c
*** ../vim-7.4.003/src/window.c 2013-07-24 17:38:29.000000000 +0200
--- src/window.c 2013-08-14 16:52:44.000000000 +0200
***************
*** 2172,2179 ****
* If "free_buf" is TRUE related buffer may be unloaded.
*
* Called by :quit, :close, :xit, :wq and findtag().
*/
! void
win_close(win, free_buf)
win_T *win;
int free_buf;
--- 2172,2180 ----
* If "free_buf" is TRUE related buffer may be unloaded.
*
* Called by :quit, :close, :xit, :wq and findtag().
+ * Returns FAIL when the window was not closed.
*/
! int
win_close(win, free_buf)
win_T *win;
int free_buf;
***************
*** 2190,2210 ****
if (last_window())
{
EMSG(_("E444: Cannot close last window"));
! return;
}
#ifdef FEAT_AUTOCMD
if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
! return; /* window is already being closed */
if (win == aucmd_win)
{
EMSG(_("E813: Cannot close autocmd window"));
! return;
}
if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
{
EMSG(_("E814: Cannot close window, only autocmd window would remain"));
! return;
}
#endif
--- 2191,2211 ----
if (last_window())
{
EMSG(_("E444: Cannot close last window"));
! return FAIL;
}
#ifdef FEAT_AUTOCMD
if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
! return FAIL; /* window is already being closed */
if (win == aucmd_win)
{
EMSG(_("E813: Cannot close autocmd window"));
! return FAIL;
}
if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
{
EMSG(_("E814: Cannot close window, only autocmd window would remain"));
! return FAIL;
}
#endif
***************
*** 2212,2218 ****
* and then close the window and the tab page to avoid that curwin and
* curtab are invalid while we are freeing memory. */
if (close_last_window_tabpage(win, free_buf, prev_curtab))
! return;
/* When closing the help window, try restoring a snapshot after closing
* the window. Otherwise clear the snapshot, it's now invalid. */
--- 2213,2219 ----
* and then close the window and the tab page to avoid that curwin and
* curtab are invalid while we are freeing memory. */
if (close_last_window_tabpage(win, free_buf, prev_curtab))
! return FAIL;
/* When closing the help window, try restoring a snapshot after closing
* the window. Otherwise clear the snapshot, it's now invalid. */
***************
*** 2240,2261 ****
win->w_closing = TRUE;
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
if (!win_valid(win))
! return;
win->w_closing = FALSE;
if (last_window())
! return;
}
win->w_closing = TRUE;
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
if (!win_valid(win))
! return;
win->w_closing = FALSE;
if (last_window())
! return;
# ifdef FEAT_EVAL
/* autocmds may abort script processing */
if (aborting())
! return;
# endif
}
#endif
--- 2241,2262 ----
win->w_closing = TRUE;
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
if (!win_valid(win))
! return FAIL;
win->w_closing = FALSE;
if (last_window())
! return FAIL;
}
win->w_closing = TRUE;
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
if (!win_valid(win))
! return FAIL;
win->w_closing = FALSE;
if (last_window())
! return FAIL;
# ifdef FEAT_EVAL
/* autocmds may abort script processing */
if (aborting())
! return FAIL;
# endif
}
#endif
***************
*** 2303,2309 ****
* other window or moved to another tab page. */
else if (!win_valid(win) || last_window() || curtab != prev_curtab
|| close_last_window_tabpage(win, free_buf, prev_curtab))
! return;
/* Free the memory used for the window and get the window that received
* the screen space. */
--- 2304,2310 ----
* other window or moved to another tab page. */
else if (!win_valid(win) || last_window() || curtab != prev_curtab
|| close_last_window_tabpage(win, free_buf, prev_curtab))
! return FAIL;
/* Free the memory used for the window and get the window that received
* the screen space. */
***************
*** 2383,2388 ****
--- 2384,2390 ----
#endif
redraw_all_later(NOT_VALID);
+ return OK;
}
/*
*** ../vim-7.4.003/src/proto/window.pro 2013-08-10 13:37:30.000000000 +0200
--- src/proto/window.pro 2013-08-14 16:52:50.000000000 +0200
***************
*** 9,15 ****
void win_equal __ARGS((win_T *next_curwin, int current, int dir));
void close_windows __ARGS((buf_T *buf, int keep_curwin));
int one_window __ARGS((void));
! void win_close __ARGS((win_T *win, int free_buf));
void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
void win_free_all __ARGS((void));
win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
--- 9,15 ----
void win_equal __ARGS((win_T *next_curwin, int current, int dir));
void close_windows __ARGS((buf_T *buf, int keep_curwin));
int one_window __ARGS((void));
! int win_close __ARGS((win_T *win, int free_buf));
void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
void win_free_all __ARGS((void));
win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
*** ../vim-7.4.003/src/buffer.c 2013-07-17 16:39:00.000000000 +0200
--- src/buffer.c 2013-08-14 16:54:34.000000000 +0200
***************
*** 1186,1192 ****
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
# endif
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
! win_close(curwin, FALSE);
#endif
/*
--- 1186,1195 ----
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
# endif
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
! {
! if (win_close(curwin, FALSE) == FAIL)
! break;
! }
#endif
/*
*** ../vim-7.4.003/src/version.c 2013-08-14 14:18:37.000000000 +0200
--- src/version.c 2013-08-14 17:10:23.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 4,
/**/
--
From "know your smileys":
*<|:-) Santa Claus (Ho Ho Ho)
/// 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.005
View File

@ -1,48 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.005
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.005
Problem: Using "vaB" while 'virtualedit' is set selects the wrong area.
(Dimitar Dimitrov)
Solution: Reset coladd when finding a match.
Files: src/search.c
*** ../vim-7.4.004/src/search.c 2013-07-17 19:20:47.000000000 +0200
--- src/search.c 2013-08-14 17:32:38.000000000 +0200
***************
*** 1760,1765 ****
--- 1760,1768 ----
#endif
pos = curwin->w_cursor;
+ #ifdef FEAT_VIRTUALEDIT
+ pos.coladd = 0;
+ #endif
linep = ml_get(pos.lnum);
cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
*** ../vim-7.4.004/src/version.c 2013-08-14 17:11:14.000000000 +0200
--- src/version.c 2013-08-14 17:38:05.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 5,
/**/
--
You can't have everything. Where would you put it?
-- Steven Wright
/// 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 ///

66
7.4.006
View File

@ -1,66 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.006
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.006
Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett)
Solution: Remove the trailing slash. (lcd)
Files: src/eval.c
*** ../vim-7.4.005/src/eval.c 2013-07-05 18:23:42.000000000 +0200
--- src/eval.c 2013-08-22 12:00:28.000000000 +0200
***************
*** 14292,14297 ****
--- 14292,14301 ----
return;
dir = get_tv_string_buf(&argvars[0], buf);
+ if (*gettail(dir) == NUL)
+ /* remove trailing slashes */
+ *gettail_sep(dir) = NUL;
+
if (argvars[1].v_type != VAR_UNKNOWN)
{
if (argvars[2].v_type != VAR_UNKNOWN)
***************
*** 14299,14305 ****
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
}
! rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
}
#endif
--- 14303,14309 ----
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
}
! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
}
#endif
*** ../vim-7.4.005/src/version.c 2013-08-14 17:45:25.000000000 +0200
--- src/version.c 2013-08-22 12:02:46.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 6,
/**/
--
hundred-and-one symptoms of being an internet addict:
97. Your mother tells you to remember something, and you look for
a File/Save command.
/// 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 ///

95
7.4.007
View File

@ -1,95 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.007
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.007
Problem: Creating a preview window on startup leaves the screen layout in a
messed up state. (Marius Gedminas)
Solution: Don't change firstwin. (Christian Brabandt)
Files: src/main.c
*** ../vim-7.4.006/src/main.c 2013-07-03 12:36:49.000000000 +0200
--- src/main.c 2013-08-22 14:02:39.000000000 +0200
***************
*** 2727,2732 ****
--- 2727,2733 ----
int arg_idx; /* index in argument list */
int i;
int advance = TRUE;
+ win_T *win;
# ifdef FEAT_AUTOCMD
/*
***************
*** 2816,2839 ****
# ifdef FEAT_AUTOCMD
--autocmd_no_enter;
# endif
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
! /*
! * Avoid making a preview window the current window.
! */
! if (firstwin->w_p_pvw)
{
! win_T *win;
!
! for (win = firstwin; win != NULL; win = win->w_next)
! if (!win->w_p_pvw)
! {
! firstwin = win;
! break;
! }
}
#endif
! /* make the first window the current window */
! win_enter(firstwin, FALSE);
# ifdef FEAT_AUTOCMD
--autocmd_no_leave;
--- 2817,2838 ----
# ifdef FEAT_AUTOCMD
--autocmd_no_enter;
# endif
+
+ /* make the first window the current window */
+ win = firstwin;
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
! /* Avoid making a preview window the current window. */
! while (win->w_p_pvw)
{
! win = win->w_next;
! if (win == NULL)
! {
! win = firstwin;
! break;
! }
}
#endif
! win_enter(win, FALSE);
# ifdef FEAT_AUTOCMD
--autocmd_no_leave;
*** ../vim-7.4.006/src/version.c 2013-08-22 12:06:50.000000000 +0200
--- src/version.c 2013-08-22 14:04:11.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 7,
/**/
--
hundred-and-one symptoms of being an internet addict:
105. When someone asks you for your address, you tell them your URL.
/// 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.008
View File

@ -1,71 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.008
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.008
Problem: New regexp engine can't be interrupted.
Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
Files: src/regexp_nfa.c, src/regexp.c
*** ../vim-7.4.007/src/regexp_nfa.c 2013-08-14 14:18:37.000000000 +0200
--- src/regexp_nfa.c 2013-08-25 16:55:56.000000000 +0200
***************
*** 5089,5094 ****
--- 5089,5100 ----
return FALSE;
}
#endif
+ /* Some patterns may take a long time to match, especially when using
+ * recursive_regmatch(). Allow interrupting them with CTRL-C. */
+ fast_breakcheck();
+ if (got_int)
+ return FALSE;
+
nfa_match = FALSE;
/* Allocate memory for the lists of nodes. */
*** ../vim-7.4.007/src/regexp.c 2013-08-01 18:31:30.000000000 +0200
--- src/regexp.c 2013-08-25 16:57:35.000000000 +0200
***************
*** 4311,4318 ****
*/
for (;;)
{
! /* Some patterns may cause a long time to match, even though they are not
! * illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */
fast_breakcheck();
#ifdef DEBUG
--- 4311,4318 ----
*/
for (;;)
{
! /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
! * Allow interrupting them with CTRL-C. */
fast_breakcheck();
#ifdef DEBUG
*** ../vim-7.4.007/src/version.c 2013-08-22 14:14:23.000000000 +0200
--- src/version.c 2013-08-25 16:57:51.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 8,
/**/
--
hundred-and-one symptoms of being an internet addict:
124. You begin conversations with, "Who is your internet service provider?"
/// 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 ///

64
7.4.009
View File

@ -1,64 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.009
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.009
Problem: When a file was not decrypted (yet), writing it may destroy the
contents.
Solution: Mark the file as readonly until decryption was done. (Christian
Brabandt)
Files: src/fileio.c
*** ../vim-7.4.008/src/fileio.c 2013-08-05 21:58:03.000000000 +0200
--- src/fileio.c 2013-08-25 17:45:27.000000000 +0200
***************
*** 2926,2934 ****
--- 2926,2939 ----
int *did_ask; /* flag: whether already asked for key */
{
int method = crypt_method_from_magic((char *)ptr, *sizep);
+ int b_p_ro = curbuf->b_p_ro;
if (method >= 0)
{
+ /* Mark the buffer as read-only until the decryption has taken place.
+ * Avoids accidentally overwriting the file with garbage. */
+ curbuf->b_p_ro = TRUE;
+
set_crypt_method(curbuf, method);
if (method > 0)
(void)blowfish_self_test();
***************
*** 2977,2982 ****
--- 2982,2989 ----
*sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
(size_t)*sizep);
+ /* Restore the read-only flag. */
+ curbuf->b_p_ro = b_p_ro;
}
}
/* When starting to edit a new file which does not have encryption, clear
*** ../vim-7.4.008/src/version.c 2013-08-25 17:01:36.000000000 +0200
--- src/version.c 2013-08-25 17:44:30.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 9,
/**/
--
I have a watch cat! Just break in and she'll watch.
/// 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.010
View File

@ -1,79 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.010
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.010 (after 7.4.006)
Problem: Crash with invalid argument to mkdir().
Solution: Check for empty string. (lcd47)
Files: src/eval.c
*** ../vim-7.4.009/src/eval.c 2013-08-22 12:06:50.000000000 +0200
--- src/eval.c 2013-08-30 15:47:47.000000000 +0200
***************
*** 14292,14309 ****
return;
dir = get_tv_string_buf(&argvars[0], buf);
! if (*gettail(dir) == NUL)
! /* remove trailing slashes */
! *gettail_sep(dir) = NUL;
!
! if (argvars[1].v_type != VAR_UNKNOWN)
{
! if (argvars[2].v_type != VAR_UNKNOWN)
! prot = get_tv_number_chk(&argvars[2], NULL);
! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
! mkdir_recurse(dir, prot);
}
- rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
}
#endif
--- 14292,14314 ----
return;
dir = get_tv_string_buf(&argvars[0], buf);
! if (*dir == NUL)
! rettv->vval.v_number = FAIL;
! else
{
! if (*gettail(dir) == NUL)
! /* remove trailing slashes */
! *gettail_sep(dir) = NUL;
!
! if (argvars[1].v_type != VAR_UNKNOWN)
! {
! if (argvars[2].v_type != VAR_UNKNOWN)
! prot = get_tv_number_chk(&argvars[2], NULL);
! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
! mkdir_recurse(dir, prot);
! }
! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
}
}
#endif
*** ../vim-7.4.009/src/version.c 2013-08-25 17:46:05.000000000 +0200
--- src/version.c 2013-08-30 15:48:37.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 10,
/**/
--
I wish there was a knob on the TV to turn up the intelligence.
There's a knob called "brightness", but it doesn't seem to work.
/// 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.011
View File

@ -1,100 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.011
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.011
Problem: Cannot find out if "acl" and "xpm" features are supported.
Solution: Add "acl" and "xpm" to the list of features. (Ken Takata)
Files: src/eval.c, src/version.c
*** ../vim-7.4.010/src/eval.c 2013-08-30 16:00:04.000000000 +0200
--- src/eval.c 2013-08-30 16:34:12.000000000 +0200
***************
*** 12135,12140 ****
--- 12135,12143 ----
#ifndef CASE_INSENSITIVE_FILENAME
"fname_case",
#endif
+ #ifdef HAVE_ACL
+ "acl",
+ #endif
#ifdef FEAT_ARABIC
"arabic",
#endif
***************
*** 12538,12544 ****
"xfontset",
#endif
#ifdef FEAT_XPM_W32
! "xpm_w32",
#endif
#ifdef USE_XSMP
"xsmp",
--- 12541,12552 ----
"xfontset",
#endif
#ifdef FEAT_XPM_W32
! "xpm",
! "xpm_w32", /* for backward compatibility */
! #else
! # if defined(HAVE_XPM)
! "xpm",
! # endif
#endif
#ifdef USE_XSMP
"xsmp",
*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
--- src/version.c 2013-08-30 16:34:37.000000000 +0200
***************
*** 60,65 ****
--- 60,70 ----
static char *(features[]) =
{
+ #ifdef HAVE_ACL
+ "+acl",
+ #else
+ "-acl",
+ #endif
#ifdef AMIGA /* only for Amiga systems */
# ifdef FEAT_ARP
"+ARP",
***************
*** 721,726 ****
--- 726,737 ----
# else
"-xpm_w32",
# endif
+ #else
+ # ifdef HAVE_XPM
+ "+xpm",
+ # else
+ "-xpm",
+ # endif
#endif
NULL
};
*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
--- src/version.c 2013-08-30 16:34:37.000000000 +0200
***************
*** 729,730 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 11,
/**/
--
hundred-and-one symptoms of being an internet addict:
141. You'd rather go to http://www.weather.com/ than look out your window.
/// 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 ///

202
7.4.012
View File

@ -1,202 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.012
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.012
Problem: MS-Windows: resolving shortcut does not work properly with
multi-byte characters.
Solution: Use wide system functions. (Ken Takata)
Files: src/os_mswin.c
*** ../vim-7.4.011/src/os_mswin.c 2013-06-16 16:41:11.000000000 +0200
--- src/os_mswin.c 2013-08-30 16:43:23.000000000 +0200
***************
*** 1761,1769 ****
IPersistFile *ppf = NULL;
OLECHAR wsz[MAX_PATH];
WIN32_FIND_DATA ffd; // we get those free of charge
! TCHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
char_u *rfname = NULL;
int len;
/* Check if the file name ends in ".lnk". Avoid calling
* CoCreateInstance(), it's quite slow. */
--- 1761,1773 ----
IPersistFile *ppf = NULL;
OLECHAR wsz[MAX_PATH];
WIN32_FIND_DATA ffd; // we get those free of charge
! CHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
char_u *rfname = NULL;
int len;
+ # ifdef FEAT_MBYTE
+ IShellLinkW *pslw = NULL;
+ WIN32_FIND_DATAW ffdw; // we get those free of charge
+ # endif
/* Check if the file name ends in ".lnk". Avoid calling
* CoCreateInstance(), it's quite slow. */
***************
*** 1775,1792 ****
CoInitialize(NULL);
// create a link manager object and request its interface
hr = CoCreateInstance(
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
&IID_IShellLink, (void**)&psl);
if (hr != S_OK)
! goto shortcut_error;
// Get a pointer to the IPersistFile interface.
hr = psl->lpVtbl->QueryInterface(
psl, &IID_IPersistFile, (void**)&ppf);
if (hr != S_OK)
! goto shortcut_error;
// full path string must be in Unicode.
MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
--- 1779,1840 ----
CoInitialize(NULL);
+ # ifdef FEAT_MBYTE
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+ {
+ // create a link manager object and request its interface
+ hr = CoCreateInstance(
+ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
+ &IID_IShellLinkW, (void**)&pslw);
+ if (hr == S_OK)
+ {
+ WCHAR *p = enc_to_utf16(fname, NULL);
+
+ if (p != NULL)
+ {
+ // Get a pointer to the IPersistFile interface.
+ hr = pslw->lpVtbl->QueryInterface(
+ pslw, &IID_IPersistFile, (void**)&ppf);
+ if (hr != S_OK)
+ goto shortcut_errorw;
+
+ // "load" the name and resolve the link
+ hr = ppf->lpVtbl->Load(ppf, p, STGM_READ);
+ if (hr != S_OK)
+ goto shortcut_errorw;
+ # if 0 // This makes Vim wait a long time if the target does not exist.
+ hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI);
+ if (hr != S_OK)
+ goto shortcut_errorw;
+ # endif
+
+ // Get the path to the link target.
+ ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR));
+ hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0);
+ if (hr == S_OK && wsz[0] != NUL)
+ rfname = utf16_to_enc(wsz, NULL);
+
+ shortcut_errorw:
+ vim_free(p);
+ if (hr == S_OK)
+ goto shortcut_end;
+ }
+ }
+ /* Retry with non-wide function (for Windows 98). */
+ }
+ # endif
// create a link manager object and request its interface
hr = CoCreateInstance(
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
&IID_IShellLink, (void**)&psl);
if (hr != S_OK)
! goto shortcut_end;
// Get a pointer to the IPersistFile interface.
hr = psl->lpVtbl->QueryInterface(
psl, &IID_IPersistFile, (void**)&ppf);
if (hr != S_OK)
! goto shortcut_end;
// full path string must be in Unicode.
MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
***************
*** 1794,1805 ****
// "load" the name and resolve the link
hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
if (hr != S_OK)
! goto shortcut_error;
! #if 0 // This makes Vim wait a long time if the target doesn't exist.
hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
if (hr != S_OK)
! goto shortcut_error;
! #endif
// Get the path to the link target.
ZeroMemory(buf, MAX_PATH);
--- 1842,1853 ----
// "load" the name and resolve the link
hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
if (hr != S_OK)
! goto shortcut_end;
! # if 0 // This makes Vim wait a long time if the target doesn't exist.
hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
if (hr != S_OK)
! goto shortcut_end;
! # endif
// Get the path to the link target.
ZeroMemory(buf, MAX_PATH);
***************
*** 1807,1818 ****
if (hr == S_OK && buf[0] != NUL)
rfname = vim_strsave(buf);
! shortcut_error:
// Release all interface pointers (both belong to the same object)
if (ppf != NULL)
ppf->lpVtbl->Release(ppf);
if (psl != NULL)
psl->lpVtbl->Release(psl);
CoUninitialize();
return rfname;
--- 1855,1870 ----
if (hr == S_OK && buf[0] != NUL)
rfname = vim_strsave(buf);
! shortcut_end:
// Release all interface pointers (both belong to the same object)
if (ppf != NULL)
ppf->lpVtbl->Release(ppf);
if (psl != NULL)
psl->lpVtbl->Release(psl);
+ # ifdef FEAT_MBYTE
+ if (pslw != NULL)
+ pslw->lpVtbl->Release(pslw);
+ # endif
CoUninitialize();
return rfname;
*** ../vim-7.4.011/src/version.c 2013-08-30 16:35:41.000000000 +0200
--- src/version.c 2013-08-30 16:39:40.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 12,
/**/
--
hundred-and-one symptoms of being an internet addict:
142. You dream about creating the world's greatest web site.
/// 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.013
View File

@ -1,99 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.013
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.013
Problem: File name buffer too small for utf-8.
Solution: Use character count instead of byte count. (Ken Takata)
Files: src/os_mswin.c
*** ../vim-7.4.012/src/os_mswin.c 2013-08-30 16:44:15.000000000 +0200
--- src/os_mswin.c 2013-08-30 16:47:54.000000000 +0200
***************
*** 456,462 ****
--- 456,469 ----
int
mch_isFullName(char_u *fname)
{
+ #ifdef FEAT_MBYTE
+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
+ * UTF-8. */
+ char szName[_MAX_PATH * 3 + 1];
+ #else
char szName[_MAX_PATH + 1];
+ #endif
/* A name like "d:/foo" and "//server/share" is absolute */
if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\'))
***************
*** 464,470 ****
return TRUE;
/* A name that can't be made absolute probably isn't absolute. */
! if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL)
return FALSE;
return pathcmp(fname, szName, -1) == 0;
--- 471,477 ----
return TRUE;
/* A name that can't be made absolute probably isn't absolute. */
! if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL)
return FALSE;
return pathcmp(fname, szName, -1) == 0;
***************
*** 498,507 ****
int
vim_stat(const char *name, struct stat *stp)
{
char buf[_MAX_PATH + 1];
char *p;
! vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH);
p = buf + strlen(buf);
if (p > buf)
mb_ptr_back(buf, p);
--- 505,521 ----
int
vim_stat(const char *name, struct stat *stp)
{
+ #ifdef FEAT_MBYTE
+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
+ * UTF-8. */
+ char buf[_MAX_PATH * 3 + 1];
+ #else
char buf[_MAX_PATH + 1];
+ #endif
char *p;
! vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1);
p = buf + strlen(buf);
if (p > buf)
mb_ptr_back(buf, p);
*** ../vim-7.4.012/src/version.c 2013-08-30 16:44:15.000000000 +0200
--- src/version.c 2013-08-30 16:47:36.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 13,
/**/
--
hundred-and-one symptoms of being an internet addict:
143. You dream in pallettes of 216 websafe colors.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

102
7.4.014
View File

@ -1,102 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.014
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.014
Problem: MS-Windows: check for writing to device does not work.
Solution: Fix #ifdefs. (Ken Takata)
Files: src/fileio.c
*** ../vim-7.4.013/src/fileio.c 2013-08-25 17:46:05.000000000 +0200
--- src/fileio.c 2013-08-30 16:56:46.000000000 +0200
***************
*** 428,440 ****
}
}
- #ifdef UNIX
- /*
- * On Unix it is possible to read a directory, so we have to
- * check for it before the mch_open().
- */
if (!read_stdin && !read_buffer)
{
perm = mch_getperm(fname);
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
# ifdef S_ISFIFO
--- 428,440 ----
}
}
if (!read_stdin && !read_buffer)
{
+ #ifdef UNIX
+ /*
+ * On Unix it is possible to read a directory, so we have to
+ * check for it before the mch_open().
+ */
perm = mch_getperm(fname);
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
# ifdef S_ISFIFO
***************
*** 457,464 ****
msg_scroll = msg_save;
return FAIL;
}
!
! # if defined(MSDOS) || defined(MSWIN) || defined(OS2)
/*
* MS-Windows allows opening a device, but we will probably get stuck
* trying to read it.
--- 457,464 ----
msg_scroll = msg_save;
return FAIL;
}
! #endif
! #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
/*
* MS-Windows allows opening a device, but we will probably get stuck
* trying to read it.
***************
*** 470,478 ****
msg_scroll = msg_save;
return FAIL;
}
- # endif
- }
#endif
/* Set default or forced 'fileformat' and 'binary'. */
set_file_options(set_options, eap);
--- 470,477 ----
msg_scroll = msg_save;
return FAIL;
}
#endif
+ }
/* Set default or forced 'fileformat' and 'binary'. */
set_file_options(set_options, eap);
*** ../vim-7.4.013/src/version.c 2013-08-30 16:51:15.000000000 +0200
--- src/version.c 2013-08-30 16:54:33.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 14,
/**/
--
Drink wet cement and get really stoned.
/// 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 ///

106
7.4.015
View File

@ -1,106 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.015
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.015
Problem: MS-Windows: Detecting node type does not work for multi-byte
characters.
Solution: Use wide character function when needed. (Ken Takata)
Files: src/os_win32.c
*** ../vim-7.4.014/src/os_win32.c 2013-08-10 12:39:12.000000000 +0200
--- src/os_win32.c 2013-08-30 17:09:47.000000000 +0200
***************
*** 3107,3112 ****
--- 3107,3115 ----
{
HANDLE hFile;
int type;
+ #ifdef FEAT_MBYTE
+ WCHAR *wn = NULL;
+ #endif
/* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
* read from it later will cause Vim to hang. Thus return NODE_WRITABLE
***************
*** 3114,3127 ****
if (STRNCMP(name, "\\\\.\\", 4) == 0)
return NODE_WRITABLE;
! hFile = CreateFile(name, /* file name */
! GENERIC_WRITE, /* access mode */
! 0, /* share mode */
! NULL, /* security descriptor */
! OPEN_EXISTING, /* creation disposition */
! 0, /* file attributes */
! NULL); /* handle to template file */
if (hFile == INVALID_HANDLE_VALUE)
return NODE_NORMAL;
--- 3117,3157 ----
if (STRNCMP(name, "\\\\.\\", 4) == 0)
return NODE_WRITABLE;
! #ifdef FEAT_MBYTE
! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! {
! wn = enc_to_utf16(name, NULL);
! if (wn != NULL)
! {
! hFile = CreateFileW(wn, /* file name */
! GENERIC_WRITE, /* access mode */
! 0, /* share mode */
! NULL, /* security descriptor */
! OPEN_EXISTING, /* creation disposition */
! 0, /* file attributes */
! NULL); /* handle to template file */
! if (hFile == INVALID_HANDLE_VALUE
! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
! {
! /* Retry with non-wide function (for Windows 98). */
! vim_free(wn);
! wn = NULL;
! }
! }
! }
! if (wn == NULL)
! #endif
! hFile = CreateFile(name, /* file name */
! GENERIC_WRITE, /* access mode */
! 0, /* share mode */
! NULL, /* security descriptor */
! OPEN_EXISTING, /* creation disposition */
! 0, /* file attributes */
! NULL); /* handle to template file */
+ #ifdef FEAT_MBYTE
+ vim_free(wn);
+ #endif
if (hFile == INVALID_HANDLE_VALUE)
return NODE_NORMAL;
*** ../vim-7.4.014/src/version.c 2013-08-30 17:06:56.000000000 +0200
--- src/version.c 2013-08-30 17:09:35.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 15,
/**/
--
hundred-and-one symptoms of being an internet addict:
144. You eagerly await the update of the "Cool Site of the 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 ///

221
7.4.016
View File

@ -1,221 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.016
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.016
Problem: MS-Windows: File name completion doesn't work properly with
Chinese characters. (Yue Wu)
Solution: Add fname_casew(). (Ken Takata)
Files: src/os_win32.c
*** ../vim-7.4.015/src/os_win32.c 2013-08-30 17:11:29.000000000 +0200
--- src/os_win32.c 2013-08-30 17:28:30.000000000 +0200
***************
*** 2500,2508 ****
--- 2500,2624 ----
}
+ #ifdef FEAT_MBYTE
+ /*
+ * fname_casew(): Wide version of fname_case(). Set the case of the file name,
+ * if it already exists. When "len" is > 0, also expand short to long
+ * filenames.
+ * Return FAIL if wide functions are not available, OK otherwise.
+ * NOTE: much of this is identical to fname_case(), keep in sync!
+ */
+ static int
+ fname_casew(
+ WCHAR *name,
+ int len)
+ {
+ WCHAR szTrueName[_MAX_PATH + 2];
+ WCHAR szTrueNameTemp[_MAX_PATH + 2];
+ WCHAR *ptrue, *ptruePrev;
+ WCHAR *porig, *porigPrev;
+ int flen;
+ WIN32_FIND_DATAW fb;
+ HANDLE hFind;
+ int c;
+ int slen;
+
+ flen = (int)wcslen(name);
+ if (flen > _MAX_PATH)
+ return OK;
+
+ /* slash_adjust(name) not needed, already adjusted by fname_case(). */
+
+ /* Build the new name in szTrueName[] one component at a time. */
+ porig = name;
+ ptrue = szTrueName;
+
+ if (iswalpha(porig[0]) && porig[1] == L':')
+ {
+ /* copy leading drive letter */
+ *ptrue++ = *porig++;
+ *ptrue++ = *porig++;
+ *ptrue = NUL; /* in case nothing follows */
+ }
+
+ while (*porig != NUL)
+ {
+ /* copy \ characters */
+ while (*porig == psepc)
+ *ptrue++ = *porig++;
+
+ ptruePrev = ptrue;
+ porigPrev = porig;
+ while (*porig != NUL && *porig != psepc)
+ {
+ *ptrue++ = *porig++;
+ }
+ *ptrue = NUL;
+
+ /* To avoid a slow failure append "\*" when searching a directory,
+ * server or network share. */
+ wcscpy(szTrueNameTemp, szTrueName);
+ slen = (int)wcslen(szTrueNameTemp);
+ if (*porig == psepc && slen + 2 < _MAX_PATH)
+ wcscpy(szTrueNameTemp + slen, L"\\*");
+
+ /* Skip "", "." and "..". */
+ if (ptrue > ptruePrev
+ && (ptruePrev[0] != L'.'
+ || (ptruePrev[1] != NUL
+ && (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
+ && (hFind = FindFirstFileW(szTrueNameTemp, &fb))
+ != INVALID_HANDLE_VALUE)
+ {
+ c = *porig;
+ *porig = NUL;
+
+ /* Only use the match when it's the same name (ignoring case) or
+ * expansion is allowed and there is a match with the short name
+ * and there is enough room. */
+ if (_wcsicoll(porigPrev, fb.cFileName) == 0
+ || (len > 0
+ && (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
+ && (int)(ptruePrev - szTrueName)
+ + (int)wcslen(fb.cFileName) < len)))
+ {
+ wcscpy(ptruePrev, fb.cFileName);
+
+ /* Look for exact match and prefer it if found. Must be a
+ * long name, otherwise there would be only one match. */
+ while (FindNextFileW(hFind, &fb))
+ {
+ if (*fb.cAlternateFileName != NUL
+ && (wcscoll(porigPrev, fb.cFileName) == 0
+ || (len > 0
+ && (_wcsicoll(porigPrev,
+ fb.cAlternateFileName) == 0
+ && (int)(ptruePrev - szTrueName)
+ + (int)wcslen(fb.cFileName) < len))))
+ {
+ wcscpy(ptruePrev, fb.cFileName);
+ break;
+ }
+ }
+ }
+ FindClose(hFind);
+ *porig = c;
+ ptrue = ptruePrev + wcslen(ptruePrev);
+ }
+ else if (hFind == INVALID_HANDLE_VALUE
+ && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+ return FAIL;
+ }
+
+ wcscpy(name, szTrueName);
+ return OK;
+ }
+ #endif
+
/*
* fname_case(): Set the case of the file name, if it already exists.
* When "len" is > 0, also expand short to long filenames.
+ * NOTE: much of this is identical to fname_casew(), keep in sync!
*/
void
fname_case(
***************
*** 2520,2530 ****
int slen;
flen = (int)STRLEN(name);
! if (flen == 0 || flen > _MAX_PATH)
return;
slash_adjust(name);
/* Build the new name in szTrueName[] one component at a time. */
porig = name;
ptrue = szTrueName;
--- 2636,2679 ----
int slen;
flen = (int)STRLEN(name);
! if (flen == 0)
return;
slash_adjust(name);
+ #ifdef FEAT_MBYTE
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+ {
+ WCHAR *p = enc_to_utf16(name, NULL);
+
+ if (p != NULL)
+ {
+ char_u *q;
+ WCHAR buf[_MAX_PATH + 2];
+
+ wcscpy(buf, p);
+ vim_free(p);
+
+ if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
+ {
+ q = utf16_to_enc(buf, NULL);
+ if (q != NULL)
+ {
+ vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
+ vim_free(q);
+ return;
+ }
+ }
+ }
+ /* Retry with non-wide function (for Windows 98). */
+ }
+ #endif
+
+ /* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
+ * So we should check this after calling wide function. */
+ if (flen > _MAX_PATH)
+ return;
+
/* Build the new name in szTrueName[] one component at a time. */
porig = name;
ptrue = szTrueName;
*** ../vim-7.4.015/src/version.c 2013-08-30 17:11:29.000000000 +0200
--- src/version.c 2013-08-30 17:15:06.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 16,
/**/
--
Fingers not found - Pound head on keyboard to continue.
/// 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 ///

78
7.4.017
View File

@ -1,78 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.017
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.017
Problem: ":help !!" does not find the "!!" tag in the help file. (Ben
Fritz)
Solution: When reading the start of the tags file do parse lines that are
not header lines.
Files: src/tag.c
*** ../vim-7.4.016/src/tag.c 2013-06-15 22:26:26.000000000 +0200
--- src/tag.c 2013-09-05 12:03:38.000000000 +0200
***************
*** 1797,1809 ****
*/
if (state == TS_START)
{
! /* The header ends when the line sorts below "!_TAG_".
! * There may be non-header items before the header though,
! * e.g. "!" itself. When case is folded lower case letters
! * sort before "_". */
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
{
/*
* Read header line.
*/
--- 1797,1812 ----
*/
if (state == TS_START)
{
! /* The header ends when the line sorts below "!_TAG_". When
! * case is folded lower case letters sort before "_". */
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
{
+ if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
+ /* Non-header item before the header, e.g. "!" itself.
+ */
+ goto parse_line;
+
/*
* Read header line.
*/
***************
*** 1898,1903 ****
--- 1901,1907 ----
#endif
}
+ parse_line:
/*
* Figure out where the different strings are in this line.
* For "normal" tags: Do a quick check if the tag matches.
*** ../vim-7.4.016/src/version.c 2013-08-30 17:29:10.000000000 +0200
--- src/version.c 2013-09-05 12:02:01.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 17,
/**/
--
An error has occurred. Hit any user to continue.
/// 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.018
View File

@ -1,45 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.018
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.018
Problem: When completing item becomes unselected. (Shougo Matsu)
Solution: Revert patch 7.3.1269.
Files: src/edit.c
*** ../vim-7.4.017/src/edit.c 2013-07-04 20:22:25.000000000 +0200
--- src/edit.c 2013-09-05 12:39:53.000000000 +0200
***************
*** 3467,3473 ****
}
compl_enter_selects = !compl_used_match;
- compl_shown_match = compl_curr_match = compl_first_match;
/* Show the popup menu with a different set of matches. */
ins_compl_show_pum();
--- 3467,3472 ----
*** ../vim-7.4.017/src/version.c 2013-09-05 12:06:26.000000000 +0200
--- src/version.c 2013-09-05 12:40:34.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 18,
/**/
--
hundred-and-one symptoms of being an internet addict:
169. You hire a housekeeper for your home page.
/// 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.019
View File

@ -1,61 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.019
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.019
Problem: MS-Windows: File name completion doesn't work properly with
Chinese characters. (Yue Wu)
Solution: Take care of multi-byte characters when looking for the start of
the file name. (Ken Takata)
Files: src/edit.c
*** ../vim-7.4.018/src/edit.c 2013-09-05 12:49:48.000000000 +0200
--- src/edit.c 2013-09-05 13:45:27.000000000 +0200
***************
*** 5183,5190 ****
}
else if (ctrl_x_mode == CTRL_X_FILES)
{
! while (--startcol >= 0 && vim_isfilec(line[startcol]))
! ;
compl_col += ++startcol;
compl_length = (int)curs_col - startcol;
compl_pattern = addstar(line + compl_col, compl_length,
--- 5183,5196 ----
}
else if (ctrl_x_mode == CTRL_X_FILES)
{
! char_u *p = line + startcol;
!
! /* Go back to just before the first filename character. */
! mb_ptr_back(line, p);
! while (vim_isfilec(PTR2CHAR(p)) && p >= line)
! mb_ptr_back(line, p);
! startcol = p - line;
!
compl_col += ++startcol;
compl_length = (int)curs_col - startcol;
compl_pattern = addstar(line + compl_col, compl_length,
*** ../vim-7.4.018/src/version.c 2013-09-05 12:49:48.000000000 +0200
--- src/version.c 2013-09-05 13:41:47.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 19,
/**/
--
Very funny, Scotty. Now beam down my clothes.
/// 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.020
View File

@ -1,82 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.020
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.020
Problem: NFA engine matches too much with \@>. (John McGowan)
Solution: When a whole pattern match is found stop searching.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.019/src/regexp_nfa.c 2013-08-25 17:01:36.000000000 +0200
--- src/regexp_nfa.c 2013-09-05 15:59:44.000000000 +0200
***************
*** 5322,5328 ****
log_subsexpr(m);
#endif
nfa_match = TRUE;
! break;
case NFA_START_INVISIBLE:
case NFA_START_INVISIBLE_FIRST:
--- 5322,5331 ----
log_subsexpr(m);
#endif
nfa_match = TRUE;
! /* See comment above at "goto nextchar". */
! if (nextlist->n == 0)
! clen = 0;
! goto nextchar;
case NFA_START_INVISIBLE:
case NFA_START_INVISIBLE_FIRST:
*** ../vim-7.4.019/src/testdir/test64.in 2013-08-14 13:31:03.000000000 +0200
--- src/testdir/test64.in 2013-09-05 15:35:44.000000000 +0200
***************
*** 427,432 ****
--- 427,433 ----
:""""" \@>
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
+ :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
:" TODO: BT engine does not restore submatch after failure
:call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
:"
*** ../vim-7.4.019/src/testdir/test64.ok 2013-08-14 13:31:03.000000000 +0200
--- src/testdir/test64.ok 2013-09-05 16:03:34.000000000 +0200
***************
*** 983,988 ****
--- 983,991 ----
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
+ OK 0 - ^\(.\{-}b\)\@>.
+ OK 1 - ^\(.\{-}b\)\@>.
+ OK 2 - ^\(.\{-}b\)\@>.
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
*** ../vim-7.4.019/src/version.c 2013-09-05 13:50:49.000000000 +0200
--- src/version.c 2013-09-05 16:04:32.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 20,
/**/
--
hundred-and-one symptoms of being an internet addict:
173. You keep tracking down the email addresses of all your friends
(even childhood friends).
/// 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.021
View File

@ -1,86 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.021
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.021
Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
end of another branch to be wrong. (William Fugh)
Solution: Set end position if it wasn't set yet.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.020/src/regexp_nfa.c 2013-09-05 16:05:32.000000000 +0200
--- src/regexp_nfa.c 2013-09-05 20:56:25.000000000 +0200
***************
*** 4209,4218 ****
break;
case NFA_MCLOSE:
! if (nfa_has_zend)
{
! /* Do not overwrite the position set by \ze. If no \ze
! * encountered end will be set in nfa_regtry(). */
subs = addstate(l, state->out, subs, pim, off);
break;
}
--- 4209,4219 ----
break;
case NFA_MCLOSE:
! if (nfa_has_zend && (REG_MULTI
! ? subs->norm.list.multi[0].end.lnum >= 0
! : subs->norm.list.line[0].end != NULL))
{
! /* Do not overwrite the position set by \ze. */
subs = addstate(l, state->out, subs, pim, off);
break;
}
*** ../vim-7.4.020/src/testdir/test64.in 2013-09-05 16:05:32.000000000 +0200
--- src/testdir/test64.in 2013-09-05 20:55:18.000000000 +0200
***************
*** 328,333 ****
--- 328,334 ----
:call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
:call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])
:call add(tl, [2, '\>\zs.', 'aword. ', '.'])
+ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' '])
:"
:"""" Tests for \@= and \& features
:call add(tl, [2, 'abc\@=', 'abc', 'ab'])
*** ../vim-7.4.020/src/testdir/test64.ok 2013-09-05 16:05:32.000000000 +0200
--- src/testdir/test64.ok 2013-09-05 21:09:56.000000000 +0200
***************
*** 752,757 ****
--- 752,760 ----
OK 0 - \>\zs.
OK 1 - \>\zs.
OK 2 - \>\zs.
+ OK 0 - \s\+\ze\[/\|\s\zs\s\+
+ OK 1 - \s\+\ze\[/\|\s\zs\s\+
+ OK 2 - \s\+\ze\[/\|\s\zs\s\+
OK 0 - abc\@=
OK 1 - abc\@=
OK 2 - abc\@=
*** ../vim-7.4.020/src/version.c 2013-09-05 16:05:32.000000000 +0200
--- src/version.c 2013-09-05 21:11:38.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 21,
/**/
--
hundred-and-one symptoms of being an internet addict:
174. You know what a listserv is.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

148
7.4.022
View File

@ -1,148 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.022
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.022
Problem: Deadlock while exiting, because of allocating memory.
Solution: Do not use gettext() in deathtrap(). (James McCoy)
Files: src/os_unix.c, src/misc1.c
*** ../vim-7.4.021/src/os_unix.c 2013-07-03 16:32:32.000000000 +0200
--- src/os_unix.c 2013-09-05 21:40:06.000000000 +0200
***************
*** 957,964 ****
/*
* This function handles deadly signals.
! * It tries to preserve any swap file and exit properly.
* (partly from Elvis).
*/
static RETSIGTYPE
deathtrap SIGDEFARG(sigarg)
--- 957,966 ----
/*
* This function handles deadly signals.
! * It tries to preserve any swap files and exit properly.
* (partly from Elvis).
+ * NOTE: Avoid unsafe functions, such as allocating memory, they can result in
+ * a deadlock.
*/
static RETSIGTYPE
deathtrap SIGDEFARG(sigarg)
***************
*** 1090,1107 ****
}
if (entered == 2)
{
! OUT_STR(_("Vim: Double signal, exiting\n"));
out_flush();
getout(1);
}
#ifdef SIGHASARG
! sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
signal_info[i].name);
#else
! sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
#endif
! preserve_exit(); /* preserve files and exit */
#ifdef NBDEBUG
reset_signals();
--- 1092,1114 ----
}
if (entered == 2)
{
! /* No translation, it may call malloc(). */
! OUT_STR("Vim: Double signal, exiting\n");
out_flush();
getout(1);
}
+ /* No translation, it may call malloc(). */
#ifdef SIGHASARG
! sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
signal_info[i].name);
#else
! sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
#endif
!
! /* Preserve files and exit. This sets the really_exiting flag to prevent
! * calling free(). */
! preserve_exit();
#ifdef NBDEBUG
reset_signals();
*** ../vim-7.4.021/src/misc1.c 2013-08-03 17:29:33.000000000 +0200
--- src/misc1.c 2013-09-05 21:34:04.000000000 +0200
***************
*** 9174,9179 ****
--- 9174,9181 ----
/*
* Preserve files and exit.
* When called IObuff must contain a message.
+ * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
+ * functions, such as allocating memory.
*/
void
preserve_exit()
***************
*** 9196,9202 ****
{
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
{
! OUT_STR(_("Vim: preserving files...\n"));
screen_start(); /* don't know where cursor is now */
out_flush();
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
--- 9198,9204 ----
{
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
{
! OUT_STR("Vim: preserving files...\n");
screen_start(); /* don't know where cursor is now */
out_flush();
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
***************
*** 9206,9212 ****
ml_close_all(FALSE); /* close all memfiles, without deleting */
! OUT_STR(_("Vim: Finished.\n"));
getout(1);
}
--- 9208,9214 ----
ml_close_all(FALSE); /* close all memfiles, without deleting */
! OUT_STR("Vim: Finished.\n");
getout(1);
}
*** ../vim-7.4.021/src/version.c 2013-09-05 21:15:38.000000000 +0200
--- src/version.c 2013-09-05 21:30:18.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 22,
/**/
--
hundred-and-one symptoms of being an internet addict:
175. You send yourself e-mail before you go to bed to remind you
what to do when you wake up.
/// 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.023
View File

@ -1,53 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.023
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.023
Problem: Compiler warning on 64 bit windows.
Solution: Add type cast. (Mike Williams)
Files: src/edit.c
*** ../vim-7.4.022/src/edit.c 2013-09-05 13:50:49.000000000 +0200
--- src/edit.c 2013-09-06 17:32:55.000000000 +0200
***************
*** 5189,5195 ****
mb_ptr_back(line, p);
while (vim_isfilec(PTR2CHAR(p)) && p >= line)
mb_ptr_back(line, p);
! startcol = p - line;
compl_col += ++startcol;
compl_length = (int)curs_col - startcol;
--- 5189,5195 ----
mb_ptr_back(line, p);
while (vim_isfilec(PTR2CHAR(p)) && p >= line)
mb_ptr_back(line, p);
! startcol = (int)(p - line);
compl_col += ++startcol;
compl_length = (int)curs_col - startcol;
*** ../vim-7.4.022/src/version.c 2013-09-05 21:41:35.000000000 +0200
--- src/version.c 2013-09-06 17:33:41.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 23,
/**/
--
Wizards had always known that the act of observation changed the thing that
was observed, and sometimes forgot that it also changed the observer too.
Terry Pratchett - Interesting times
/// 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.024
View File

@ -1,61 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.024
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.024
Problem: When root edits a file the undo file is owned by root while the
edited file may be owned by another user, which is not allowed.
(cac2s)
Solution: Accept an undo file owned by the current user.
Files: src/undo.c
*** ../vim-7.4.023/src/undo.c 2013-06-10 20:13:37.000000000 +0200
--- src/undo.c 2013-09-07 15:45:56.000000000 +0200
***************
*** 1604,1613 ****
#ifdef UNIX
/* For safety we only read an undo file if the owner is equal to the
! * owner of the text file. */
if (mch_stat((char *)orig_name, &st_orig) >= 0
&& mch_stat((char *)file_name, &st_undo) >= 0
! && st_orig.st_uid != st_undo.st_uid)
{
if (p_verbose > 0)
{
--- 1604,1614 ----
#ifdef UNIX
/* For safety we only read an undo file if the owner is equal to the
! * owner of the text file or equal to the current user. */
if (mch_stat((char *)orig_name, &st_orig) >= 0
&& mch_stat((char *)file_name, &st_undo) >= 0
! && st_orig.st_uid != st_undo.st_uid
! && st_undo.st_uid != getuid())
{
if (p_verbose > 0)
{
*** ../vim-7.4.023/src/version.c 2013-09-07 16:35:38.000000000 +0200
--- src/version.c 2013-09-08 15:38:52.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 24,
/**/
--
hundred-and-one symptoms of being an internet addict:
186. You overstay in the office so you can have more time surfing the net.
/// 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.025
View File

@ -1,62 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.025
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.025 (after 7.4.019
Problem: Reading before start of a string.
Solution: Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
Files: src/edit.c
*** ../vim-7.4.024/src/edit.c 2013-09-07 16:35:38.000000000 +0200
--- src/edit.c 2013-09-08 15:57:20.000000000 +0200
***************
*** 5187,5197 ****
/* Go back to just before the first filename character. */
mb_ptr_back(line, p);
! while (vim_isfilec(PTR2CHAR(p)) && p >= line)
mb_ptr_back(line, p);
! startcol = (int)(p - line);
! compl_col += ++startcol;
compl_length = (int)curs_col - startcol;
compl_pattern = addstar(line + compl_col, compl_length,
EXPAND_FILES);
--- 5187,5199 ----
/* Go back to just before the first filename character. */
mb_ptr_back(line, p);
! while (p > line && vim_isfilec(PTR2CHAR(p)))
mb_ptr_back(line, p);
! startcol = (int)(p - line) + 1;
! if (p == line && vim_isfilec(PTR2CHAR(p)))
! startcol = 0;
! compl_col += startcol;
compl_length = (int)curs_col - startcol;
compl_pattern = addstar(line + compl_col, compl_length,
EXPAND_FILES);
*** ../vim-7.4.024/src/version.c 2013-09-08 15:40:45.000000000 +0200
--- src/version.c 2013-09-08 15:52:39.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 25,
/**/
--
hundred-and-one symptoms of being an internet addict:
188. You purchase a laptop so you can surf while sitting on the can.
/// 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 ///

65
7.4.026
View File

@ -1,65 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.026
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.026
Problem: Clang warning for int shift overflow.
Solution: Use unsigned and cast back to int. (Dominique Pelle)
Files: src/misc2.c
*** ../vim-7.4.025/src/misc2.c 2013-07-07 16:03:35.000000000 +0200
--- src/misc2.c 2013-09-08 16:04:54.000000000 +0200
***************
*** 6496,6508 ****
get4c(fd)
FILE *fd;
{
! int n;
! n = getc(fd);
! n = (n << 8) + getc(fd);
! n = (n << 8) + getc(fd);
! n = (n << 8) + getc(fd);
! return n;
}
/*
--- 6496,6510 ----
get4c(fd)
FILE *fd;
{
! /* Use unsigned rather than int otherwise result is undefined
! * when left-shift sets the MSB. */
! unsigned n;
! n = (unsigned)getc(fd);
! n = (n << 8) + (unsigned)getc(fd);
! n = (n << 8) + (unsigned)getc(fd);
! n = (n << 8) + (unsigned)getc(fd);
! return (int)n;
}
/*
*** ../vim-7.4.025/src/version.c 2013-09-08 16:03:40.000000000 +0200
--- src/version.c 2013-09-08 16:05:40.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 26,
/**/
--
A computer program does what you tell it to do, not what you want it to do.
/// 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 ///

89
7.4.027
View File

@ -1,89 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.027
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.027 (after 7.4.025)
Problem: Another valgrind error when using CTRL-X CTRL-F at the start of
the line. (Dominique Pelle)
Solution: Don't call mb_ptr_back() at the start of the line. Add a test.
Files: src/edit.c, src/testdir/test32.in
*** ../vim-7.4.026/src/edit.c 2013-09-08 16:03:40.000000000 +0200
--- src/edit.c 2013-09-08 18:18:32.000000000 +0200
***************
*** 5183,5197 ****
}
else if (ctrl_x_mode == CTRL_X_FILES)
{
- char_u *p = line + startcol;
-
/* Go back to just before the first filename character. */
! mb_ptr_back(line, p);
! while (p > line && vim_isfilec(PTR2CHAR(p)))
mb_ptr_back(line, p);
! startcol = (int)(p - line) + 1;
! if (p == line && vim_isfilec(PTR2CHAR(p)))
! startcol = 0;
compl_col += startcol;
compl_length = (int)curs_col - startcol;
--- 5183,5201 ----
}
else if (ctrl_x_mode == CTRL_X_FILES)
{
/* Go back to just before the first filename character. */
! if (startcol > 0)
! {
! char_u *p = line + startcol;
!
mb_ptr_back(line, p);
! while (p > line && vim_isfilec(PTR2CHAR(p)))
! mb_ptr_back(line, p);
! if (p == line && vim_isfilec(PTR2CHAR(p)))
! startcol = 0;
! else
! startcol = (int)(p - line) + 1;
! }
compl_col += startcol;
compl_length = (int)curs_col - startcol;
*** ../vim-7.4.026/src/testdir/test32.in 2010-05-15 13:04:10.000000000 +0200
--- src/testdir/test32.in 2013-09-08 18:08:07.000000000 +0200
***************
*** 36,41 ****
--- 36,44 ----
:w Xtest11.one
:w Xtest11.two
OIXA
+ :" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
+ :" CTRL-X CTRL-F again to verify this doesn't cause trouble.
+ OXddk
:se cpt=w
OST
:se cpt=u nohid
*** ../vim-7.4.026/src/version.c 2013-09-08 16:07:03.000000000 +0200
--- src/version.c 2013-09-08 18:14:17.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 27,
/**/
--
hundred-and-one symptoms of being an internet addict:
190. You quickly hand over your wallet, leather jacket, and car keys
during a mugging, then proceed to beat the crap out of your
assailant when he asks for your laptop.
/// 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 ///

753
7.4.028
View File

@ -1,753 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.028
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.028
Problem: Equivalence classes are not working for multi-byte characters.
Solution: Copy the rules from the old to the new regexp engine. Add a test
to check both engines.
Files: src/regexp_nfa.c, src/testdir/test44.in, src/testdir/test99.in,
src/testdir/test99.ok, 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
*** ../vim-7.4.027/src/regexp_nfa.c 2013-09-05 21:15:38.000000000 +0200
--- src/regexp_nfa.c 2013-09-19 16:40:08.000000000 +0200
***************
*** 742,748 ****
nfa_emit_equi_class(c)
int c;
{
! #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
#ifdef FEAT_MBYTE
if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
--- 742,753 ----
nfa_emit_equi_class(c)
int c;
{
! #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
! #ifdef FEAT_MBYTE
! # define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT);
! #else
! # define EMITMBC(c)
! #endif
#ifdef FEAT_MBYTE
if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
***************
*** 753,844 ****
{
case 'A': case 0300: case 0301: case 0302:
case 0303: case 0304: case 0305:
! EMIT2('A'); EMIT2(0300); EMIT2(0301);
! EMIT2(0302); EMIT2(0303); EMIT2(0304);
! EMIT2(0305);
return OK;
case 'C': case 0307:
! EMIT2('C'); EMIT2(0307);
return OK;
case 'E': case 0310: case 0311: case 0312: case 0313:
! EMIT2('E'); EMIT2(0310); EMIT2(0311);
! EMIT2(0312); EMIT2(0313);
return OK;
case 'I': case 0314: case 0315: case 0316: case 0317:
! EMIT2('I'); EMIT2(0314); EMIT2(0315);
! EMIT2(0316); EMIT2(0317);
return OK;
case 'N': case 0321:
! EMIT2('N'); EMIT2(0321);
return OK;
case 'O': case 0322: case 0323: case 0324: case 0325:
! case 0326:
! EMIT2('O'); EMIT2(0322); EMIT2(0323);
! EMIT2(0324); EMIT2(0325); EMIT2(0326);
return OK;
case 'U': case 0331: case 0332: case 0333: case 0334:
! EMIT2('U'); EMIT2(0331); EMIT2(0332);
! EMIT2(0333); EMIT2(0334);
return OK;
case 'Y': case 0335:
! EMIT2('Y'); EMIT2(0335);
return OK;
case 'a': case 0340: case 0341: case 0342:
case 0343: case 0344: case 0345:
! EMIT2('a'); EMIT2(0340); EMIT2(0341);
! EMIT2(0342); EMIT2(0343); EMIT2(0344);
! EMIT2(0345);
return OK;
case 'c': case 0347:
! EMIT2('c'); EMIT2(0347);
return OK;
case 'e': case 0350: case 0351: case 0352: case 0353:
! EMIT2('e'); EMIT2(0350); EMIT2(0351);
! EMIT2(0352); EMIT2(0353);
return OK;
case 'i': case 0354: case 0355: case 0356: case 0357:
! EMIT2('i'); EMIT2(0354); EMIT2(0355);
! EMIT2(0356); EMIT2(0357);
return OK;
case 'n': case 0361:
! EMIT2('n'); EMIT2(0361);
return OK;
case 'o': case 0362: case 0363: case 0364: case 0365:
! case 0366:
! EMIT2('o'); EMIT2(0362); EMIT2(0363);
! EMIT2(0364); EMIT2(0365); EMIT2(0366);
return OK;
case 'u': case 0371: case 0372: case 0373: case 0374:
! EMIT2('u'); EMIT2(0371); EMIT2(0372);
! EMIT2(0373); EMIT2(0374);
return OK;
case 'y': case 0375: case 0377:
! EMIT2('y'); EMIT2(0375); EMIT2(0377);
return OK;
! default:
! return FAIL;
}
}
! EMIT(c);
return OK;
#undef EMIT2
}
/*
--- 758,1095 ----
{
case 'A': case 0300: case 0301: case 0302:
case 0303: case 0304: case 0305:
! CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
! CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
! EMIT2('A'); EMIT2(0300); EMIT2(0301); EMIT2(0302);
! EMIT2(0303); EMIT2(0304); EMIT2(0305);
! EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104)
! EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0)
! EMITMBC(0x1ea2)
! return OK;
!
! case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
! EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06)
return OK;
case 'C': case 0307:
! CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
! EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108)
! EMITMBC(0x10a) EMITMBC(0x10c)
! return OK;
!
! case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
! CASEMBC(0x1e0e) CASEMBC(0x1e10)
! EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a)
! EMITMBC(0x1e0e) EMITMBC(0x1e10)
return OK;
case 'E': case 0310: case 0311: case 0312: case 0313:
! CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
! CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
! EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312);
! EMIT2(0313);
! EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116)
! EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba)
! EMITMBC(0x1ebc)
! return OK;
!
! case 'F': CASEMBC(0x1e1e)
! EMIT2('F'); EMITMBC(0x1e1e)
! return OK;
!
! case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
! CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
! CASEMBC(0x1e20)
! EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120)
! EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6)
! EMITMBC(0x1f4) EMITMBC(0x1e20)
! return OK;
!
! case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
! CASEMBC(0x1e26) CASEMBC(0x1e28)
! EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22)
! EMITMBC(0x1e26) EMITMBC(0x1e28)
return OK;
case 'I': case 0314: case 0315: case 0316: case 0317:
! CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
! CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
! EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316);
! EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a)
! EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130)
! EMITMBC(0x1cf) EMITMBC(0x1ec8)
! return OK;
!
! case 'J': CASEMBC(0x134)
! EMIT2('J'); EMITMBC(0x134)
! return OK;
!
! case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
! CASEMBC(0x1e34)
! EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30)
! EMITMBC(0x1e34)
! return OK;
!
! case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
! CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
! EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d)
! EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a)
! return OK;
!
! case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
! EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40)
return OK;
case 'N': case 0321:
! CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
! CASEMBC(0x1e48)
! EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145)
! EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48)
return OK;
case 'O': case 0322: case 0323: case 0324: case 0325:
! case 0326: case 0330:
! CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
! CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
! EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324);
! EMIT2(0325); EMIT2(0326); EMIT2(0330);
! EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150)
! EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea)
! EMITMBC(0x1ec) EMITMBC(0x1ece)
! return OK;
!
! case 'P': case 0x1e54: case 0x1e56:
! EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56)
! return OK;
!
! case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
! CASEMBC(0x1e58) CASEMBC(0x1e5e)
! EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158)
! EMITMBC(0x1e58) EMITMBC(0x1e5e)
! return OK;
!
! case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
! CASEMBC(0x160) CASEMBC(0x1e60)
! EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e)
! EMITMBC(0x160) EMITMBC(0x1e60)
! return OK;
!
! case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
! CASEMBC(0x1e6a) CASEMBC(0x1e6e)
! EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166)
! EMITMBC(0x1e6a) EMITMBC(0x1e6e)
return OK;
case 'U': case 0331: case 0332: case 0333: case 0334:
! CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
! CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
! CASEMBC(0x1ee6)
! EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333);
! EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a)
! EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170)
! EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3)
! EMITMBC(0x1ee6)
! return OK;
!
! case 'V': CASEMBC(0x1e7c)
! EMIT2('V'); EMITMBC(0x1e7c)
! return OK;
!
! case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
! CASEMBC(0x1e84) CASEMBC(0x1e86)
! EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82)
! EMITMBC(0x1e84) EMITMBC(0x1e86)
! return OK;
!
! case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
! EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c)
return OK;
case 'Y': case 0335:
! CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
! CASEMBC(0x1ef6) CASEMBC(0x1ef8)
! EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178)
! EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6)
! EMITMBC(0x1ef8)
! return OK;
!
! case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
! CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
! EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d)
! EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94)
return OK;
case 'a': case 0340: case 0341: case 0342:
case 0343: case 0344: case 0345:
! CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
! CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
! EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342);
! EMIT2(0343); EMIT2(0344); EMIT2(0345);
! EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105)
! EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1)
! EMITMBC(0x1ea3)
! return OK;
!
! case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
! EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07)
return OK;
case 'c': case 0347:
! CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
! EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109)
! EMITMBC(0x10b) EMITMBC(0x10d)
! return OK;
!
! case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
! CASEMBC(0x1e11)
! EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b)
! EMITMBC(0x01e0f) EMITMBC(0x1e11)
return OK;
case 'e': case 0350: case 0351: case 0352: case 0353:
! CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
! CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
! EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352);
! EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115)
! EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b)
! EMITMBC(0x1ebb) EMITMBC(0x1ebd)
! return OK;
!
! case 'f': CASEMBC(0x1e1f)
! EMIT2('f'); EMITMBC(0x1e1f)
! return OK;
!
! case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
! CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
! CASEMBC(0x1e21)
! EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121)
! EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7)
! EMITMBC(0x1f5) EMITMBC(0x1e21)
! return OK;
!
! case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
! CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
! EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23)
! EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96)
return OK;
case 'i': case 0354: case 0355: case 0356: case 0357:
! CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
! CASEMBC(0x1d0) CASEMBC(0x1ec9)
! EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356);
! EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b)
! EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0)
! EMITMBC(0x1ec9)
! return OK;
!
! case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
! EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0)
! return OK;
!
! case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
! CASEMBC(0x1e35)
! EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31)
! EMITMBC(0x1e35)
! return OK;
!
! case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
! CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
! EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e)
! EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b)
! return OK;
!
! case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
! EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41)
return OK;
case 'n': case 0361:
! CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
! CASEMBC(0x1e45) CASEMBC(0x1e49)
! EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146)
! EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45)
! EMITMBC(0x1e49)
return OK;
case 'o': case 0362: case 0363: case 0364: case 0365:
! case 0366: case 0370:
! CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
! CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
! EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364);
! EMIT2(0365); EMIT2(0366); EMIT2(0370);
! EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151)
! EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb)
! EMITMBC(0x1ed) EMITMBC(0x1ecf)
! return OK;
!
! case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
! EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57)
! return OK;
!
! case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
! CASEMBC(0x1e59) CASEMBC(0x1e5f)
! EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159)
! EMITMBC(0x1e59) EMITMBC(0x1e5f)
! return OK;
!
! case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
! CASEMBC(0x161) CASEMBC(0x1e61)
! EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f)
! EMITMBC(0x161) EMITMBC(0x1e61)
! return OK;
!
! case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
! CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
! EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167)
! EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97)
return OK;
case 'u': case 0371: case 0372: case 0373: case 0374:
! CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
! CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
! CASEMBC(0x1ee7)
! EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373);
! EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b)
! EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171)
! EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4)
! EMITMBC(0x1ee7)
! return OK;
!
! case 'v': CASEMBC(0x1e7d)
! EMIT2('v'); EMITMBC(0x1e7d)
! return OK;
!
! case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
! CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
! EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83)
! EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98)
! return OK;
!
! case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
! EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d)
return OK;
case 'y': case 0375: case 0377:
! CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
! CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
! EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177)
! EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3)
! EMITMBC(0x1ef7) EMITMBC(0x1ef9)
! return OK;
!
! case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
! CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
! EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e)
! EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95)
return OK;
! /* default: character itself */
}
}
! EMIT2(c);
return OK;
#undef EMIT2
+ #undef EMITMBC
}
/*
*** ../vim-7.4.027/src/testdir/test44.in 2013-05-26 14:16:31.000000000 +0200
--- src/testdir/test44.in 2013-09-19 16:49:14.000000000 +0200
***************
*** 1,9 ****
--- 1,11 ----
Tests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
+ See test99 for exactly the same test with re=2.
STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
+ :set re=1
/^1
/a*b\{2}c\+/e
x/\Md\*e\{2}f\+/e
*** ../vim-7.4.027/src/testdir/test99.in 2013-09-19 16:59:30.000000000 +0200
--- src/testdir/test99.in 2013-09-19 16:50:00.000000000 +0200
***************
*** 0 ****
--- 1,68 ----
+ Tests for regexp with multi-byte encoding and various magic settings.
+ Test matchstr() with a count and multi-byte chars.
+ See test44 for exactly the same test with re=1.
+
+ STARTTEST
+ :so mbyte.vim
+ :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
+ :set re=2
+ /^1
+ /a*b\{2}c\+/e
+ x/\Md\*e\{2}f\+/e
+ x:set nomagic
+ /g\*h\{2}i\+/e
+ x/\mj*k\{2}l\+/e
+ x/\vm*n{2}o+/e
+ x/\V^aa$
+ x:set magic
+ /\v(a)(b)\2\1\1/e
+ x/\V[ab]\(\[xy]\)\1
+ x:" Now search for multi-byte without composing char
+ /ม
+ x:" Now search for multi-byte with composing char
+ /ม่
+ x:" find word by change of word class
+ /ã<>¡\<カヨ\>ã<>¯
+ x:" Test \%u, [\u] and friends
+ /\%u20ac
+ x/[\u4f7f\u5929]\+
+ x/\%U12345678
+ x/[\U1234abcd\u1234\uabcd]
+ x/\%d21879b
+ x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
+ x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
+ x:" Test backwards search from a multi-byte char
+ /x
+ x?.
+ x:let @w=':%s#comb[i]nations#œ̄ṣÌ<C2A3>m̥̄ᾱ̆Ì<E280A0>#g'
+ :@w
+ :?^1?,$w! test.out
+ :e! test.out
+ G:put =matchstr(\"×<>××ד\", \".\", 0, 2) " ×
+ :put =matchstr(\"×<>××ד\", \"..\", 0, 2) " ××
+ :put =matchstr(\"×<>××ד\", \".\", 0, 0) " ×<>
+ :put =matchstr(\"×<>××ד\", \".\", 4, -1) " ×
+ :w!
+ :qa!
+ ENDTEST
+
+ 1 a aa abb abbccc
+ 2 d dd dee deefff
+ 3 g gg ghh ghhiii
+ 4 j jj jkk jkklll
+ 5 m mm mnn mnnooo
+ 6 x ^aa$ x
+ 7 (a)(b) abbaa
+ 8 axx [ab]xx
+ 9 หม่x อมx
+ a อมx หม่x
+ b ã<>¡ã«ãƒ¨ã<C2A8>¯
+ c x ¬â¬x
+ d 天使x
+ e ü<C3BC>…™¸y
+ f ü<C3BC>Н<C5A0>z
+ g aå•·bb
+ h AÀÃ<E282AC>ÃÃÄÅĀÄÄ„Ç<E2809E>ǞǠẢ Bá¸á¸† CÇĆĈĊČ DÄŽÄ<C5BD>ḊḎá¸<C3A1>ˆÃ‰ÃŠÃÄÄ”ÄĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃ<C592>ÃŽÃ<C5BD>ĨĪĬĮİÇ<C2B0>Ỉ´ KĶǨḰḴ LĹĻĽĿÅ<C2BF>Ḻ MḾṀ NÃŃŅŇṄṈÓÔÕÃØŌŎÅ<C5BD>Æ ÇǪǬỎ PṔṠQ RÅ”ÅŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÃÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀáºáº„Ẇ XẊẌ YÃ<59>ŶŸẎỲỶỸ ZŹŻŽƵáº<C3A1>Ẕ
+ i aàáâãäåÄ<C2A5>ăąǎǟǡả bḃḇ cçćĉÄÄ<E280B9><64>Äá¸á¸<C3A1>ḠeèéêëēĕėęÄẻẽ fḟ gÄ<67>ğġģǥǧǵḡ hĥħḣḧḩẠiìíîïĩīĭįÇ<C2AF>ỉ jĵǰ kķǩḱḵ lĺļľŀÅḻ mḿá¹<C3A1> nñńņňʼnṅṉ oòóôõöøÅ<C2B8>Å<EFBFBD>ÅÆ¡Çǫǭá»<C3A1> pṕṗ q rŕŗřṙṟ sÅÅ<E280BA>şšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáº<C3A1>ẃẅẇẘ xáºáº<C3A1> yýÿŷáº<C3A1>ẙỳỷỹ zźżžƶáºáº•
+ j 0123â<33>¤x
+ k combinations
*** ../vim-7.4.027/src/testdir/test99.ok 2013-09-19 16:59:30.000000000 +0200
--- src/testdir/test99.ok 2013-09-19 16:50:16.000000000 +0200
***************
*** 0 ****
--- 1,24 ----
+ 1 a aa abb abbcc
+ 2 d dd dee deeff
+ 3 g gg ghh ghhii
+ 4 j jj jkk jkkll
+ 5 m mm mnn mnnoo
+ 6 x aa$ x
+ 7 (a)(b) abba
+ 8 axx ab]xx
+ 9 หม่x อx
+ a อมx หx
+ b ã«ãƒ¨ã<C2A8>¯
+ c x ¬x
+ d 使x
+ e y
+ f z
+ g abb
+ h AÀÃ<E282AC>ÃÃÄÅĀÄÄ„Ç<E2809E>ǞǠẢ Bá¸á¸† CÇĆĈĊČ DÄŽÄ<C5BD>ḊḎá¸<C3A1>ˆÃ‰ÃŠÃÄÄ”ÄĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃ<C592>ÃŽÃ<C5BD>ĨĪĬĮİÇ<C2B0>Ỉ´ KĶǨḰḴ LĹĻĽĿÅ<C2BF>Ḻ MḾṀ NÃŃŅŇṄṈÓÔÕÃØŌŎÅ<C5BD>Æ ÇǪǬỎ PṔṠQ RÅ”ÅŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÃÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀáºáº„Ẇ XẊẌ YÃ<59>ŶŸẎỲỶỸ ZŹŻŽƵáº<C3A1>
+ i aàáâãäåÄ<C2A5>ăąǎǟǡả bḃḇ cçćĉÄÄ<E280B9><64>Äá¸á¸<C3A1>ḠeèéêëēĕėęÄẻẽ fḟ gÄ<67>ğġģǥǧǵḡ hĥħḣḧḩẠiìíîïĩīĭįÇ<C2AF>ỉ jĵǰ kķǩḱḵ lĺļľŀÅḻ mḿá¹<C3A1> nñńņňʼnṅṉ oòóôõöøÅ<C2B8>Å<EFBFBD>ÅÆ¡Çǫǭá»<C3A1> pṕṗ q rŕŗřṙṟ sÅÅ<E280BA>şšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáº<C3A1>ẃẅẇẘ xáºáº<C3A1> yýÿŷáº<C3A1>ẙỳỷỹ zźżžƶáº
+ j 012â<32>¤
+ k œ̄ṣÌ<C2A3>m̥̄ᾱ̆Ì<E280A0>
+ ×
+ ××
+ ×<>
+ ×
*** ../vim-7.4.027/src/testdir/Make_amiga.mak 2013-07-09 13:40:02.000000000 +0200
--- src/testdir/Make_amiga.mak 2013-09-19 16:51:48.000000000 +0200
***************
*** 33,39 ****
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test97.out test98.out
.SUFFIXES: .in .out
--- 33,40 ----
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test97.out test98.out \
! test99.out
.SUFFIXES: .in .out
***************
*** 148,150 ****
--- 149,152 ----
test96.out: test96.in
test97.out: test97.in
test98.out: test98.in
+ test99.out: test99.in
*** ../vim-7.4.027/src/testdir/Make_dos.mak 2013-07-09 13:40:30.000000000 +0200
--- src/testdir/Make_dos.mak 2013-09-19 16:51:56.000000000 +0200
***************
*** 32,38 ****
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out
SCRIPTS32 = test50.out test70.out
--- 32,38 ----
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.027/src/testdir/Make_ming.mak 2013-07-09 13:40:38.000000000 +0200
--- src/testdir/Make_ming.mak 2013-09-19 16:52:01.000000000 +0200
***************
*** 52,58 ****
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out
SCRIPTS32 = test50.out test70.out
--- 52,58 ----
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.027/src/testdir/Make_os2.mak 2013-07-09 13:40:43.000000000 +0200
--- src/testdir/Make_os2.mak 2013-09-19 16:52:07.000000000 +0200
***************
*** 34,40 ****
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out
.SUFFIXES: .in .out
--- 34,40 ----
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out
.SUFFIXES: .in .out
*** ../vim-7.4.027/src/testdir/Make_vms.mms 2013-07-09 13:40:47.000000000 +0200
--- src/testdir/Make_vms.mms 2013-09-19 16:52:13.000000000 +0200
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2013 Jul 09
#
# 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: 2013 Sep 19
#
# 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.
***************
*** 78,84 ****
test77.out test78.out test79.out test80.out test81.out \
test82.out test83.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
! test95.out test96.out test97.out test98.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 78,84 ----
test77.out test78.out test79.out test80.out test81.out \
test82.out test83.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
! test95.out test96.out test97.out test98.out test99.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.4.027/src/testdir/Makefile 2013-08-10 14:20:20.000000000 +0200
--- src/testdir/Makefile 2013-09-19 16:52:22.000000000 +0200
***************
*** 29,35 ****
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test97.out test98.out
SCRIPTS_GUI = test16.out
--- 29,36 ----
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test97.out test98.out \
! test99.out
SCRIPTS_GUI = test16.out
*** ../vim-7.4.027/src/version.c 2013-09-08 20:00:45.000000000 +0200
--- src/version.c 2013-09-19 13:54:35.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 28,
/**/
--
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 ///

63
7.4.029
View File

@ -1,63 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.029
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.029
Problem: An error in a pattern is reported twice.
Solution: Remove the retry with the backtracking engine, it won't work.
Files: src/regexp.c
*** ../vim-7.4.028/src/regexp.c 2013-08-25 17:01:36.000000000 +0200
--- src/regexp.c 2013-09-19 17:03:31.000000000 +0200
***************
*** 8016,8027 ****
}
#endif
/*
! * If NFA engine failed, then revert to the backtracking engine.
! * Except when there was a syntax error, which was properly handled by
! * NFA engine.
! */
if (regexp_engine == AUTOMATIC_ENGINE)
prog = bt_regengine.regcomp(expr, re_flags);
}
return prog;
--- 8016,8026 ----
}
#endif
/*
! * If the NFA engine failed, the backtracking engine won't work either.
! *
if (regexp_engine == AUTOMATIC_ENGINE)
prog = bt_regengine.regcomp(expr, re_flags);
+ */
}
return prog;
*** ../vim-7.4.028/src/version.c 2013-09-19 17:00:14.000000000 +0200
--- src/version.c 2013-09-19 17:01:13.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 29,
/**/
--
The term "free software" is defined by Richard M. Stallman as
being software that isn't necessarily for free. Confusing?
Let's call it "Stallman software" then!
-- 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 ///

109
7.4.030
View File

@ -1,109 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.030
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.030
Problem: The -mno-cygwin argument is no longer supported by Cygwin.
Solution: Remove the arguments. (Steve Hall)
Files: src/GvimExt/Make_cyg.mak, src/Make_cyg.mak, src/xxd/Make_cyg.mak
*** ../vim-7.4.029/src/GvimExt/Make_cyg.mak 2011-09-30 16:45:49.000000000 +0200
--- src/GvimExt/Make_cyg.mak 2013-09-19 20:46:46.000000000 +0200
***************
*** 31,42 ****
ifeq ($(CROSS),yes)
DEL = rm
ifeq ($(MINGWOLD),yes)
! CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
else
! CXXFLAGS := -O2 -mno-cygwin
endif
else
! CXXFLAGS := -O2 -mno-cygwin
ifneq (sh.exe, $(SHELL))
DEL = rm
else
--- 31,42 ----
ifeq ($(CROSS),yes)
DEL = rm
ifeq ($(MINGWOLD),yes)
! CXXFLAGS := -O2 -fvtable-thunks
else
! CXXFLAGS := -O2
endif
else
! CXXFLAGS := -O2
ifneq (sh.exe, $(SHELL))
DEL = rm
else
*** ../vim-7.4.029/src/Make_cyg.mak 2013-07-06 13:32:11.000000000 +0200
--- src/Make_cyg.mak 2013-09-19 20:46:55.000000000 +0200
***************
*** 1,6 ****
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2013 Apr 22
#
# Also read INSTALLpc.txt!
#
--- 1,6 ----
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2013 Sep 19
#
# Also read INSTALLpc.txt!
#
***************
*** 439,446 ****
##############################
ifeq (yes, $(USEDLL))
DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
- else
- INCLUDES += -mno-cygwin
endif
##############################
--- 439,444 ----
*** ../vim-7.4.029/src/xxd/Make_cyg.mak 2010-05-15 13:04:06.000000000 +0200
--- src/xxd/Make_cyg.mak 2013-09-19 20:47:05.000000000 +0200
***************
*** 8,14 ****
DEFINES =
LIBS = -lc
else
! DEFINES = -mno-cygwin
LIBS =
endif
--- 8,14 ----
DEFINES =
LIBS = -lc
else
! DEFINES =
LIBS =
endif
*** ../vim-7.4.029/src/version.c 2013-09-19 17:03:57.000000000 +0200
--- src/version.c 2013-09-19 20:46:32.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 30,
/**/
--
hundred-and-one symptoms of being an internet addict:
237. You tattoo your email address on your forehead.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.4.031
View File

@ -1,54 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.031
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.031
Problem: ":diffoff!" resets options even when 'diff' is not set. (Charles
Cooper)
Solution: Only resets related options in a window where 'diff' is set.
Files: src/diff.c
*** ../vim-7.4.030/src/diff.c 2013-07-17 13:43:15.000000000 +0200
--- src/diff.c 2013-09-20 19:58:47.000000000 +0200
***************
*** 1203,1209 ****
for (wp = firstwin; wp != NULL; wp = wp->w_next)
{
! if (wp == curwin || (eap->forceit && wp->w_p_diff))
{
/* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
* were saved in diff_win_options() restore them. */
--- 1203,1209 ----
for (wp = firstwin; wp != NULL; wp = wp->w_next)
{
! if (eap->forceit ? wp->w_p_diff : wp == curwin)
{
/* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
* were saved in diff_win_options() restore them. */
*** ../vim-7.4.030/src/version.c 2013-09-19 20:48:59.000000000 +0200
--- src/version.c 2013-09-20 19:59:45.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 31,
/**/
--
"Marriage is a wonderful institution...
but who wants to live in an institution?"
- Groucho Marx
/// 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.032
View File

@ -1,82 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.032
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.032
Problem: NFA engine does not match the NUL character. (Jonathon Merz)
Solution: Ues 0x0a instead of NUL. (Christian Brabandt)
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.031/src/regexp_nfa.c 2013-09-19 17:00:14.000000000 +0200
--- src/regexp_nfa.c 2013-09-22 13:53:46.000000000 +0200
***************
*** 1383,1390 ****
EMSG2_RET_FAIL(
_("E678: Invalid character after %s%%[dxouU]"),
reg_magic == MAGIC_ALL);
/* TODO: what if a composing character follows? */
! EMIT(nr);
}
break;
--- 1383,1391 ----
EMSG2_RET_FAIL(
_("E678: Invalid character after %s%%[dxouU]"),
reg_magic == MAGIC_ALL);
+ /* A NUL is stored in the text as NL */
/* TODO: what if a composing character follows? */
! EMIT(nr == 0 ? 0x0a : nr);
}
break;
*** ../vim-7.4.031/src/testdir/test64.in 2013-09-05 21:15:38.000000000 +0200
--- src/testdir/test64.in 2013-09-22 13:51:53.000000000 +0200
***************
*** 373,378 ****
--- 373,379 ----
:call add(tl, [2, '\%x20', 'yes no', ' '])
:call add(tl, [2, '\%u0020', 'yes no', ' '])
:call add(tl, [2, '\%U00000020', 'yes no', ' '])
+ :call add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
:"
:""""" \%[abc]
:call add(tl, [2, 'foo\%[bar]', 'fobar'])
*** ../vim-7.4.031/src/testdir/test64.ok 2013-09-05 21:15:38.000000000 +0200
--- src/testdir/test64.ok 2013-09-22 13:52:41.000000000 +0200
***************
*** 863,868 ****
--- 863,871 ----
OK 0 - \%U00000020
OK 1 - \%U00000020
OK 2 - \%U00000020
+ OK 0 - \%d0
+ OK 1 - \%d0
+ OK 2 - \%d0
OK 0 - foo\%[bar]
OK 1 - foo\%[bar]
OK 2 - foo\%[bar]
*** ../vim-7.4.031/src/version.c 2013-09-20 20:13:48.000000000 +0200
--- src/version.c 2013-09-22 13:56:45.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 32,
/**/
--
hundred-and-one symptoms of being an internet addict:
247. You use www.switchboard.com instead of dialing 411 and 555-12-12
for directory assistance.
/// 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 ///

116
7.4.033
View File

@ -1,116 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.033
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.033
Problem: When the terminal has only 20 lines test 92 and 93 overwrite the
input file.
Solution: Explicitly write test.out. Check that the terminal is large enough
to run the tests. (Hirohito Higashi)
Files: src/testdir/test92.in, src/testdir/test93.in,
src/testdir/test1.in, src/testdir/Makefile
*** ../vim-7.4.032/src/testdir/test92.in 2013-04-18 23:33:45.000000000 +0200
--- src/testdir/test92.in 2013-09-22 14:45:06.000000000 +0200
***************
*** 33,39 ****
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
! :w
:qa!
ENDTEST
--- 33,39 ----
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
! :w! test.out
:qa!
ENDTEST
*** ../vim-7.4.032/src/testdir/test93.in 2013-02-26 17:13:01.000000000 +0100
--- src/testdir/test93.in 2013-09-22 14:45:17.000000000 +0200
***************
*** 33,39 ****
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
! :w
:qa!
ENDTEST
--- 33,39 ----
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
! :w! test.out
:qa!
ENDTEST
*** ../vim-7.4.032/src/testdir/test1.in 2012-04-05 16:37:37.000000000 +0200
--- src/testdir/test1.in 2013-09-22 14:52:43.000000000 +0200
***************
*** 18,23 ****
--- 18,27 ----
Similar logic is applied to the +lua feature, using lua.vim.
STARTTEST
+ :" If columns or lines are too small, create wrongtermsize.
+ :" (Some tests will fail. When columns and/or lines are small)
+ :if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
+ :"
:" Write a single line to test.out to check if testing works at all.
:%d
athis is a test:w! test.out
*** ../vim-7.4.032/src/testdir/Makefile 2013-09-19 17:00:14.000000000 +0200
--- src/testdir/Makefile 2013-09-22 14:54:39.000000000 +0200
***************
*** 58,66 ****
-rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.*
test1.out: test1.in
! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START)
$(RUN_VIM) $*.in
! @/bin/sh -c "if diff test.out $*.ok; \
then mv -f test.out $*.out; \
else echo; \
echo test1 FAILED - Something basic is wrong; \
--- 58,70 ----
-rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.*
test1.out: test1.in
! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize
$(RUN_VIM) $*.in
! @/bin/sh -c "if test -e wrongtermsize; \
! then echo; \
! echo test1 FAILED - terminal size must be 80x24 or larger; \
! echo; exit 1; \
! elif diff test.out $*.ok; \
then mv -f test.out $*.out; \
else echo; \
echo test1 FAILED - Something basic is wrong; \
*** ../vim-7.4.032/src/version.c 2013-09-22 13:57:19.000000000 +0200
--- src/version.c 2013-09-22 15:02:04.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 33,
/**/
--
hundred-and-one symptoms of being an internet addict:
248. You sign your letters with your e-mail address instead of your name.
/// 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.034
View File

@ -1,180 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.034
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.034
Problem: Using "p" in Visual block mode only changes the first line.
Solution: Repeat the put in all text in the block. (Christian Brabandt)
Files: runtime/doc/change.txt, src/ops.c, src/normal.c,
src/testdir/test20.in, src/testdir/test20.ok
*** ../vim-7.4.033/runtime/doc/change.txt 2013-08-10 13:24:52.000000000 +0200
--- runtime/doc/change.txt 2013-09-22 15:12:20.000000000 +0200
***************
*** 1069,1074 ****
--- 1069,1079 ----
replace and use "0p . You can repeat this as many times as you like, the
unnamed register will be changed each time.
+ When you use a blockwise Visual mode command and yank only a single line into
+ a register, a paste on a visual selected area will paste that single line on
+ each of the selected lines (thus replacing the blockwise selected region by a
+ block of the pasted line).
+
*blockwise-register*
If you use a blockwise Visual mode command to get the text into the register,
the block of text will be inserted before ("P") or after ("p") the cursor
*** ../vim-7.4.033/src/ops.c 2013-08-09 19:34:32.000000000 +0200
--- src/ops.c 2013-09-22 15:18:03.000000000 +0200
***************
*** 3776,3800 ****
*/
if (y_type == MCHAR && y_size == 1)
{
! totlen = count * yanklen;
! if (totlen)
! {
! oldp = ml_get(lnum);
! newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1));
! if (newp == NULL)
! goto end; /* alloc() will give error message */
! mch_memmove(newp, oldp, (size_t)col);
! ptr = newp + col;
! for (i = 0; i < count; ++i)
{
! mch_memmove(ptr, y_array[0], (size_t)yanklen);
! ptr += yanklen;
}
! STRMOVE(ptr, oldp + col);
! ml_replace(lnum, newp, FALSE);
! /* Put cursor on last putted char. */
! curwin->w_cursor.col += (colnr_T)(totlen - 1);
! }
curbuf->b_op_end = curwin->w_cursor;
/* For "CTRL-O p" in Insert mode, put cursor after last char */
if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND)))
--- 3776,3817 ----
*/
if (y_type == MCHAR && y_size == 1)
{
! do {
! totlen = count * yanklen;
! if (totlen > 0)
{
! oldp = ml_get(lnum);
! newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1));
! if (newp == NULL)
! goto end; /* alloc() gave an error message */
! mch_memmove(newp, oldp, (size_t)col);
! ptr = newp + col;
! for (i = 0; i < count; ++i)
! {
! mch_memmove(ptr, y_array[0], (size_t)yanklen);
! ptr += yanklen;
! }
! STRMOVE(ptr, oldp + col);
! ml_replace(lnum, newp, FALSE);
! /* Place cursor on last putted char. */
! if (lnum == curwin->w_cursor.lnum)
! curwin->w_cursor.col += (colnr_T)(totlen - 1);
}
! #ifdef FEAT_VISUAL
! if (VIsual_active)
! lnum++;
! #endif
! } while (
! #ifdef FEAT_VISUAL
! VIsual_active && lnum <= curbuf->b_visual.vi_end.lnum
! #else
! FALSE /* stop after 1 paste */
! #endif
! );
! #ifdef FEAT_VISUAL
! VIsual_active = FALSE;
! #endif
!
curbuf->b_op_end = curwin->w_cursor;
/* For "CTRL-O p" in Insert mode, put cursor after last char */
if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND)))
*** ../vim-7.4.033/src/normal.c 2013-07-14 13:24:37.000000000 +0200
--- src/normal.c 2013-09-22 15:15:18.000000000 +0200
***************
*** 9518,9523 ****
--- 9518,9525 ----
/* cursor is at the end of the line or end of file, put
* forward. */
dir = FORWARD;
+ /* May have been reset in do_put(). */
+ VIsual_active = TRUE;
}
#endif
do_put(cap->oap->regname, dir, cap->count1, flags);
*** ../vim-7.4.033/src/testdir/test20.in 2010-05-15 13:04:10.000000000 +0200
--- src/testdir/test20.in 2013-09-22 15:11:37.000000000 +0200
***************
*** 9,19 ****
@auY:quit!
GP
/start here$
! jjlld
! :/here$/,$-1w! test.out
:qa!
ENDTEST
test text test tex start here
some text
test text
--- 9,25 ----
@auY:quit!
GP
/start here$
! "by$jjlld
! /456$
! jj"bP
! :/56$/,$-1w! test.out
:qa!
ENDTEST
+ 123456
+ 234567
+ 345678
+
test text test tex start here
some text
test text
*** ../vim-7.4.033/src/testdir/test20.ok 2010-05-15 13:04:10.000000000 +0200
--- src/testdir/test20.ok 2013-09-22 15:11:37.000000000 +0200
***************
*** 1,3 ****
--- 1,7 ----
+ 123start here56
+ 234start here67
+ 345start here78
+
test text test tex rt here
somext
tesext
*** ../vim-7.4.033/src/version.c 2013-09-22 15:03:34.000000000 +0200
--- src/version.c 2013-09-22 15:14:04.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 34,
/**/
--
hundred-and-one symptoms of being an internet addict:
249. You've forgotten what the outside looks like.
/// 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.035
View File

@ -1,53 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.035
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.035
Problem: MS-Windows: The mouse pointer flickers when going from command
line mode to Normal mode.
Solution: Check for WM_NCMOUSEMOVE. (Ken Takata)
Files: src/gui_w48.c
*** ../vim-7.4.034/src/gui_w48.c 2013-08-10 13:36:45.000000000 +0200
--- src/gui_w48.c 2013-09-22 15:41:56.000000000 +0200
***************
*** 1008,1014 ****
static LPARAM last_lParam = 0L;
/* We sometimes get a mousemove when the mouse didn't move... */
! if (uMsg == WM_MOUSEMOVE)
{
if (lParam == last_lParam)
return;
--- 1008,1014 ----
static LPARAM last_lParam = 0L;
/* We sometimes get a mousemove when the mouse didn't move... */
! if (uMsg == WM_MOUSEMOVE || uMsg == WM_NCMOUSEMOVE)
{
if (lParam == last_lParam)
return;
*** ../vim-7.4.034/src/version.c 2013-09-22 15:23:38.000000000 +0200
--- src/version.c 2013-09-22 15:41:29.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 35,
/**/
--
hundred-and-one symptoms of being an internet addict:
251. You've never seen your closest friends who usually live WAY too far away.
/// 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 ///

273
7.4.036
View File

@ -1,273 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.036
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.036
Problem: NFA engine does not capture group correctly when using \@>. (ZyX)
Solution: Copy submatches before doing the recursive match.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.035/src/regexp_nfa.c 2013-09-22 13:57:19.000000000 +0200
--- src/regexp_nfa.c 2013-09-25 16:35:54.000000000 +0200
***************
*** 36,42 ****
{
NFA_SPLIT = -1024,
NFA_MATCH,
! NFA_SKIP_CHAR, /* matches a 0-length char */
NFA_START_COLL, /* [abc] start */
NFA_END_COLL, /* [abc] end */
--- 36,42 ----
{
NFA_SPLIT = -1024,
NFA_MATCH,
! NFA_EMPTY, /* matches 0-length */
NFA_START_COLL, /* [abc] start */
NFA_END_COLL, /* [abc] end */
***************
*** 2005,2012 ****
{
/* Ignore result of previous call to nfa_regatom() */
post_ptr = post_start + my_post_start;
! /* NFA_SKIP_CHAR has 0-length and works everywhere */
! EMIT(NFA_SKIP_CHAR);
return OK;
}
--- 2005,2012 ----
{
/* Ignore result of previous call to nfa_regatom() */
post_ptr = post_start + my_post_start;
! /* NFA_EMPTY is 0-length and works everywhere */
! EMIT(NFA_EMPTY);
return OK;
}
***************
*** 2170,2185 ****
old_post_pos = (int)(post_ptr - post_start);
if (nfa_regconcat() == FAIL)
return FAIL;
! /* if concat is empty, skip a input char. But do emit a node */
if (old_post_pos == (int)(post_ptr - post_start))
! EMIT(NFA_SKIP_CHAR);
EMIT(NFA_CONCAT);
ch = peekchr();
}
! /* Even if a branch is empty, emit one node for it */
if (old_post_pos == (int)(post_ptr - post_start))
! EMIT(NFA_SKIP_CHAR);
return OK;
}
--- 2170,2185 ----
old_post_pos = (int)(post_ptr - post_start);
if (nfa_regconcat() == FAIL)
return FAIL;
! /* if concat is empty do emit a node */
if (old_post_pos == (int)(post_ptr - post_start))
! EMIT(NFA_EMPTY);
EMIT(NFA_CONCAT);
ch = peekchr();
}
! /* if a branch is empty, emit one node for it */
if (old_post_pos == (int)(post_ptr - post_start))
! EMIT(NFA_EMPTY);
return OK;
}
***************
*** 2423,2429 ****
case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break;
case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break;
case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break;
! case NFA_SKIP_CHAR: STRCPY(code, "NFA_SKIP_CHAR"); break;
case NFA_OR: STRCPY(code, "NFA_OR"); break;
case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break;
--- 2423,2429 ----
case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break;
case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break;
case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break;
! case NFA_EMPTY: STRCPY(code, "NFA_EMPTY"); break;
case NFA_OR: STRCPY(code, "NFA_OR"); break;
case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break;
***************
*** 3067,3073 ****
case NFA_ZSTART:
case NFA_ZEND:
case NFA_OPT_CHARS:
! case NFA_SKIP_CHAR:
case NFA_START_PATTERN:
case NFA_END_PATTERN:
case NFA_COMPOSING:
--- 3067,3073 ----
case NFA_ZSTART:
case NFA_ZEND:
case NFA_OPT_CHARS:
! case NFA_EMPTY:
case NFA_START_PATTERN:
case NFA_END_PATTERN:
case NFA_COMPOSING:
***************
*** 3265,3279 ****
PUSH(frag(e1.start, e2.out));
break;
! case NFA_SKIP_CHAR:
! /* Symbol of 0-length, Used in a repetition
! * with max/min count of 0 */
if (nfa_calc_size == TRUE)
{
nstate++;
break;
}
! s = alloc_state(NFA_SKIP_CHAR, NULL, NULL);
if (s == NULL)
goto theend;
PUSH(frag(s, list1(&s->out)));
--- 3265,3278 ----
PUSH(frag(e1.start, e2.out));
break;
! case NFA_EMPTY:
! /* 0-length, used in a repetition with max/min count of 0 */
if (nfa_calc_size == TRUE)
{
nstate++;
break;
}
! s = alloc_state(NFA_EMPTY, NULL, NULL);
if (s == NULL)
goto theend;
PUSH(frag(s, list1(&s->out)));
***************
*** 4209,4215 ****
case NFA_MOPEN:
case NFA_ZEND:
case NFA_SPLIT:
! case NFA_SKIP_CHAR:
/* These nodes are not added themselves but their "out" and/or
* "out1" may be added below. */
break;
--- 4208,4214 ----
case NFA_MOPEN:
case NFA_ZEND:
case NFA_SPLIT:
! case NFA_EMPTY:
/* These nodes are not added themselves but their "out" and/or
* "out1" may be added below. */
break;
***************
*** 4337,4343 ****
subs = addstate(l, state->out1, subs, pim, off);
break;
! case NFA_SKIP_CHAR:
case NFA_NOPEN:
case NFA_NCLOSE:
subs = addstate(l, state->out, subs, pim, off);
--- 4336,4342 ----
subs = addstate(l, state->out1, subs, pim, off);
break;
! case NFA_EMPTY:
case NFA_NOPEN:
case NFA_NCLOSE:
subs = addstate(l, state->out, subs, pim, off);
***************
*** 5604,5612 ****
{
int in_use = m->norm.in_use;
! /* Copy submatch info for the recursive call, so that
! * \1 can be matched. */
copy_sub_off(&m->norm, &t->subs.norm);
/*
* First try matching the invisible match, then what
--- 5603,5615 ----
{
int in_use = m->norm.in_use;
! /* Copy submatch info for the recursive call, opposite
! * of what happens on success below. */
copy_sub_off(&m->norm, &t->subs.norm);
+ #ifdef FEAT_SYN_HL
+ if (nfa_has_zsubexpr)
+ copy_sub_off(&m->synt, &t->subs.synt);
+ #endif
/*
* First try matching the invisible match, then what
***************
*** 5713,5718 ****
--- 5716,5728 ----
#endif
break;
}
+ /* Copy submatch info to the recursive call, opposite of what
+ * happens afterwards. */
+ copy_sub_off(&m->norm, &t->subs.norm);
+ #ifdef FEAT_SYN_HL
+ if (nfa_has_zsubexpr)
+ copy_sub_off(&m->synt, &t->subs.synt);
+ #endif
/* First try matching the pattern. */
result = recursive_regmatch(t->state, NULL, prog,
*** ../vim-7.4.035/src/testdir/test64.in 2013-09-22 13:57:19.000000000 +0200
--- src/testdir/test64.in 2013-09-25 15:51:12.000000000 +0200
***************
*** 430,435 ****
--- 430,436 ----
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
:call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
+ :call add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
:" TODO: BT engine does not restore submatch after failure
:call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
:"
*** ../vim-7.4.035/src/testdir/test64.ok 2013-09-22 13:57:19.000000000 +0200
--- src/testdir/test64.ok 2013-09-25 16:39:31.000000000 +0200
***************
*** 992,997 ****
--- 992,1000 ----
OK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.
OK 2 - ^\(.\{-}b\)\@>.
+ OK 0 - \(.\{-}\)\(\)\@>$
+ OK 1 - \(.\{-}\)\(\)\@>$
+ OK 2 - \(.\{-}\)\(\)\@>$
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
*** ../vim-7.4.035/src/version.c 2013-09-22 15:43:34.000000000 +0200
--- src/version.c 2013-09-25 16:40:01.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 36,
/**/
--
There is a fine line between courage and foolishness.
Unfortunately, it's not a fence.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

130
7.4.037
View File

@ -1,130 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.037
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.037
Problem: Using "\ze" in a sub-pattern does not result in the end of the
match to be set. (Axel Bender)
Solution: Copy the end of match position when a recursive match was
successful.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.036/src/regexp_nfa.c 2013-09-25 16:41:50.000000000 +0200
--- src/regexp_nfa.c 2013-09-25 18:09:59.000000000 +0200
***************
*** 3822,3827 ****
--- 3822,3828 ----
static void clear_sub __ARGS((regsub_T *sub));
static void copy_sub __ARGS((regsub_T *to, regsub_T *from));
static void copy_sub_off __ARGS((regsub_T *to, regsub_T *from));
+ static void copy_ze_off __ARGS((regsub_T *to, regsub_T *from));
static int sub_equal __ARGS((regsub_T *sub1, regsub_T *sub2));
static int match_backref __ARGS((regsub_T *sub, int subidx, int *bytelen));
static int has_state_with_pos __ARGS((nfa_list_T *l, nfa_state_T *state, regsubs_T *subs, nfa_pim_T *pim));
***************
*** 3909,3914 ****
--- 3910,3938 ----
}
/*
+ * Like copy_sub() but only do the end of the main match if \ze is present.
+ */
+ static void
+ copy_ze_off(to, from)
+ regsub_T *to;
+ regsub_T *from;
+ {
+ if (nfa_has_zend)
+ {
+ if (REG_MULTI)
+ {
+ if (from->list.multi[0].end.lnum >= 0)
+ to->list.multi[0].end = from->list.multi[0].end;
+ }
+ else
+ {
+ if (from->list.line[0].end != NULL)
+ to->list.line[0].end = from->list.line[0].end;
+ }
+ }
+ }
+
+ /*
* Return TRUE if "sub1" and "sub2" have the same start positions.
*/
static int
***************
*** 5308,5313 ****
--- 5332,5338 ----
* When "nfa_endp" is not NULL it is a required end-of-match position.
*
* Return TRUE if there is a match, FALSE otherwise.
+ * When there is a match "submatch" contains the positions.
* Note: Caller must ensure that: start != NULL.
*/
static int
***************
*** 5633,5638 ****
--- 5658,5666 ----
if (nfa_has_zsubexpr)
copy_sub_off(&t->subs.synt, &m->synt);
#endif
+ /* If the pattern has \ze and it matched in the
+ * sub pattern, use it. */
+ copy_ze_off(&t->subs.norm, &m->norm);
/* t->state->out1 is the corresponding
* END_INVISIBLE node; Add its out to the current
*** ../vim-7.4.036/src/testdir/test64.in 2013-09-25 16:41:50.000000000 +0200
--- src/testdir/test64.in 2013-09-25 18:09:16.000000000 +0200
***************
*** 425,430 ****
--- 425,431 ----
:"
:" complicated look-behind match
:call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
+ :call add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
:"
:""""" \@>
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
*** ../vim-7.4.036/src/testdir/test64.ok 2013-09-25 16:41:50.000000000 +0200
--- src/testdir/test64.ok 2013-09-25 18:10:05.000000000 +0200
***************
*** 983,988 ****
--- 983,991 ----
OK 0 - \(r\@<=\|\w\@<!\)\/
OK 1 - \(r\@<=\|\w\@<!\)\/
OK 2 - \(r\@<=\|\w\@<!\)\/
+ OK 0 - ^[a-z]\+\ze \&\(asdf\)\@<!
+ OK 1 - ^[a-z]\+\ze \&\(asdf\)\@<!
+ OK 2 - ^[a-z]\+\ze \&\(asdf\)\@<!
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
*** ../vim-7.4.036/src/version.c 2013-09-25 16:41:50.000000000 +0200
--- src/version.c 2013-09-25 18:14:36.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 37,
/**/
--
MAN: You don't frighten us, English pig-dog! Go and boil your bottoms,
son of a silly person. I blow my nose on you, so-called Arthur-king,
you and your silly English K...kaniggets.
He puts hands to his ears and blows a raspberry.
"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 ///

116
7.4.038
View File

@ -1,116 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.038
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.038
Problem: Using "zw" and "zg" when 'spell' is off give a confusing error
message. (Gary Johnson)
Solution: Ignore the error when locating the word. Explicitly mention what
word was added. (Christian Brabandt)
Files: src/normal.c, src/spell.c
*** ../vim-7.4.037/src/normal.c 2013-09-22 15:23:38.000000000 +0200
--- src/normal.c 2013-09-25 18:54:08.000000000 +0200
***************
*** 5246,5253 ****
{
pos_T pos = curwin->w_cursor;
! /* Find bad word under the cursor. */
len = spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL);
if (len != 0 && curwin->w_cursor.col <= pos.col)
ptr = ml_get_pos(&curwin->w_cursor);
curwin->w_cursor = pos;
--- 5246,5257 ----
{
pos_T pos = curwin->w_cursor;
! /* Find bad word under the cursor. When 'spell' is
! * off this fails and find_ident_under_cursor() is
! * used below. */
! emsg_off++;
len = spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL);
+ emsg_off--;
if (len != 0 && curwin->w_cursor.col <= pos.col)
ptr = ml_get_pos(&curwin->w_cursor);
curwin->w_cursor = pos;
*** ../vim-7.4.037/src/spell.c 2013-07-17 17:28:28.000000000 +0200
--- src/spell.c 2013-09-25 18:48:55.000000000 +0200
***************
*** 9479,9485 ****
if (undo)
{
home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
! smsg((char_u *)_("Word removed from %s"), NameBuff);
}
}
fseek(fd, fpos_next, SEEK_SET);
--- 9479,9486 ----
if (undo)
{
home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
! smsg((char_u *)_("Word '%.*s' removed from %s"),
! len, word, NameBuff);
}
}
fseek(fd, fpos_next, SEEK_SET);
***************
*** 9525,9531 ****
fclose(fd);
home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
! smsg((char_u *)_("Word added to %s"), NameBuff);
}
}
--- 9526,9532 ----
fclose(fd);
home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
! smsg((char_u *)_("Word '%.*s' added to %s"), len, word, NameBuff);
}
}
***************
*** 10135,10141 ****
}
/*
! * "z?": Find badly spelled word under or after the cursor.
* Give suggestions for the properly spelled word.
* In Visual mode use the highlighted word as the bad word.
* When "count" is non-zero use that suggestion.
--- 10136,10142 ----
}
/*
! * "z=": Find badly spelled word under or after the cursor.
* Give suggestions for the properly spelled word.
* In Visual mode use the highlighted word as the bad word.
* When "count" is non-zero use that suggestion.
*** ../vim-7.4.037/src/version.c 2013-09-25 18:16:34.000000000 +0200
--- src/version.c 2013-09-25 18:52:47.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 38,
/**/
--
MAN: Fetchez la vache!
GUARD: Quoi?
MAN: Fetchez la vache!
"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 ///

217
7.4.039
View File

@ -1,217 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.039
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.039
Problem: MS-Windows: MSCV10 and earlier can't handle symlinks to a
directory properly.
Solution: Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
Files: src/os_mswin.c, src/os_win32.c, src/os_win32.h
*** ../vim-7.4.038/src/os_mswin.c 2013-08-30 16:51:15.000000000 +0200
--- src/os_mswin.c 2013-09-25 19:09:53.000000000 +0200
***************
*** 498,503 ****
--- 498,595 ----
}
}
+ static int
+ stat_symlink_aware(const char *name, struct stat *stp)
+ {
+ #if defined(_MSC_VER) && _MSC_VER < 1700
+ /* Work around for VC10 or earlier. stat() can't handle symlinks properly.
+ * VC9 or earlier: stat() doesn't support a symlink at all. It retrieves
+ * status of a symlink itself.
+ * VC10: stat() supports a symlink to a normal file, but it doesn't support
+ * a symlink to a directory (always returns an error). */
+ WIN32_FIND_DATA findData;
+ HANDLE hFind, h;
+ DWORD attr = 0;
+ BOOL is_symlink = FALSE;
+
+ hFind = FindFirstFile(name, &findData);
+ if (hFind != INVALID_HANDLE_VALUE)
+ {
+ attr = findData.dwFileAttributes;
+ if ((attr & FILE_ATTRIBUTE_REPARSE_POINT)
+ && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK))
+ is_symlink = TRUE;
+ FindClose(hFind);
+ }
+ if (is_symlink)
+ {
+ h = CreateFile(name, FILE_READ_ATTRIBUTES,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING,
+ (attr & FILE_ATTRIBUTE_DIRECTORY)
+ ? FILE_FLAG_BACKUP_SEMANTICS : 0,
+ NULL);
+ if (h != INVALID_HANDLE_VALUE)
+ {
+ int fd, n;
+
+ fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
+ n = _fstat(fd, (struct _stat*)stp);
+ _close(fd);
+ return n;
+ }
+ }
+ #endif
+ return stat(name, stp);
+ }
+
+ #ifdef FEAT_MBYTE
+ static int
+ wstat_symlink_aware(const WCHAR *name, struct _stat *stp)
+ {
+ # if defined(_MSC_VER) && _MSC_VER < 1700
+ /* Work around for VC10 or earlier. _wstat() can't handle symlinks properly.
+ * VC9 or earlier: _wstat() doesn't support a symlink at all. It retrieves
+ * status of a symlink itself.
+ * VC10: _wstat() supports a symlink to a normal file, but it doesn't
+ * support a symlink to a directory (always returns an error). */
+ int n;
+ BOOL is_symlink = FALSE;
+ HANDLE hFind, h;
+ DWORD attr = 0;
+ WIN32_FIND_DATAW findDataW;
+
+ hFind = FindFirstFileW(name, &findDataW);
+ if (hFind != INVALID_HANDLE_VALUE)
+ {
+ attr = findDataW.dwFileAttributes;
+ if ((attr & FILE_ATTRIBUTE_REPARSE_POINT)
+ && (findDataW.dwReserved0 == IO_REPARSE_TAG_SYMLINK))
+ is_symlink = TRUE;
+ FindClose(hFind);
+ }
+ if (is_symlink)
+ {
+ h = CreateFileW(name, FILE_READ_ATTRIBUTES,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING,
+ (attr & FILE_ATTRIBUTE_DIRECTORY)
+ ? FILE_FLAG_BACKUP_SEMANTICS : 0,
+ NULL);
+ if (h != INVALID_HANDLE_VALUE)
+ {
+ int fd;
+
+ fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
+ n = _fstat(fd, stp);
+ _close(fd);
+ return n;
+ }
+ }
+ # endif
+ return _wstat(name, stp);
+ }
+ #endif
/*
* stat() can't handle a trailing '/' or '\', remove it first.
***************
*** 534,540 ****
if (wp != NULL)
{
! n = _wstat(wp, (struct _stat *)stp);
vim_free(wp);
if (n >= 0)
return n;
--- 626,632 ----
if (wp != NULL)
{
! n = wstat_symlink_aware(wp, (struct _stat *)stp);
vim_free(wp);
if (n >= 0)
return n;
***************
*** 544,550 ****
}
}
#endif
! return stat(buf, stp);
}
#if defined(FEAT_GUI_MSWIN) || defined(PROTO)
--- 636,642 ----
}
}
#endif
! return stat_symlink_aware(buf, stp);
}
#if defined(FEAT_GUI_MSWIN) || defined(PROTO)
*** ../vim-7.4.038/src/os_win32.c 2013-08-30 17:29:10.000000000 +0200
--- src/os_win32.c 2013-09-25 19:09:53.000000000 +0200
***************
*** 78,93 ****
# endif
#endif
- /*
- * Reparse Point
- */
- #ifndef FILE_ATTRIBUTE_REPARSE_POINT
- # define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
- #endif
- #ifndef IO_REPARSE_TAG_SYMLINK
- # define IO_REPARSE_TAG_SYMLINK 0xA000000C
- #endif
-
/* Record all output and all keyboard & mouse input */
/* #define MCH_WRITE_DUMP */
--- 78,83 ----
*** ../vim-7.4.038/src/os_win32.h 2013-07-21 17:53:13.000000000 +0200
--- src/os_win32.h 2013-09-25 19:09:53.000000000 +0200
***************
*** 130,135 ****
--- 130,148 ----
# define DFLT_MAXMEMTOT (5*1024) /* use up to 5 Mbyte for Vim */
#endif
+ /*
+ * Reparse Point
+ */
+ #ifndef FILE_ATTRIBUTE_REPARSE_POINT
+ # define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
+ #endif
+ #ifndef IO_REPARSE_TAG_MOUNT_POINT
+ # define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003
+ #endif
+ #ifndef IO_REPARSE_TAG_SYMLINK
+ # define IO_REPARSE_TAG_SYMLINK 0xA000000C
+ #endif
+
#if defined(_MSC_VER) || defined(__BORLANDC__)
/* Support for __try / __except. All versions of MSVC and Borland C are
* expected to have this. Any other compilers that support it? */
*** ../vim-7.4.038/src/version.c 2013-09-25 18:54:20.000000000 +0200
--- src/version.c 2013-09-25 19:08:55.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 39,
/**/
--
A cow comes flying over the battlements, lowing aggressively. The cow
lands on GALAHAD'S PAGE, squashing him completely.
"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 ///

68
7.4.040
View File

@ -1,68 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.040
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.040
Problem: Valgrind error on exit when a script-local variable holds a
reference to the scope of another script.
Solution: First clear all variables, then free the scopes. (ZyX)
Files: src/eval.c
*** ../vim-7.4.039/src/eval.c 2013-08-30 16:35:41.000000000 +0200
--- src/eval.c 2013-09-25 20:28:15.000000000 +0200
***************
*** 915,926 ****
/* autoloaded script names */
ga_clear_strings(&ga_loaded);
! /* script-local variables */
for (i = 1; i <= ga_scripts.ga_len; ++i)
- {
vars_clear(&SCRIPT_VARS(i));
vim_free(SCRIPT_SV(i));
- }
ga_clear(&ga_scripts);
/* unreferenced lists and dicts */
--- 915,927 ----
/* autoloaded script names */
ga_clear_strings(&ga_loaded);
! /* Script-local variables. First clear all the variables and in a second
! * loop free the scriptvar_T, because a variable in one script might hold
! * a reference to the whole scope of another script. */
for (i = 1; i <= ga_scripts.ga_len; ++i)
vars_clear(&SCRIPT_VARS(i));
+ for (i = 1; i <= ga_scripts.ga_len; ++i)
vim_free(SCRIPT_SV(i));
ga_clear(&ga_scripts);
/* unreferenced lists and dicts */
*** ../vim-7.4.039/src/version.c 2013-09-25 19:13:32.000000000 +0200
--- src/version.c 2013-09-25 20:30:06.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 40,
/**/
--
A KNIGHT rides into shot and hacks him to the ground. He rides off.
We stay for a moment on the glade. A MIDDLE-AGED LADY in a C. & A.
twin-set emerges from the trees and looks in horror at the body of her
HUSBAND.
MRS HISTORIAN: FRANK!
"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 ///

61
7.4.041
View File

@ -1,61 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.041
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.041 (after 7.4.034)
Problem: Visual selection does not remain after being copied over. (Axel
Bender)
Solution: Move when VIsual_active is reset. (Christian Brabandt)
Files: src/ops.c
*** ../vim-7.4.040/src/ops.c 2013-09-22 15:23:38.000000000 +0200
--- src/ops.c 2013-09-25 23:20:37.000000000 +0200
***************
*** 3808,3816 ****
FALSE /* stop after 1 paste */
#endif
);
- #ifdef FEAT_VISUAL
- VIsual_active = FALSE;
- #endif
curbuf->b_op_end = curwin->w_cursor;
/* For "CTRL-O p" in Insert mode, put cursor after last char */
--- 3808,3813 ----
***************
*** 3972,3977 ****
--- 3969,3978 ----
if (regname == '=')
vim_free(y_array);
+ #ifdef FEAT_VISUAL
+ VIsual_active = FALSE;
+ #endif
+
/* If the cursor is past the end of the line put it at the end. */
adjust_cursor_eol();
}
*** ../vim-7.4.040/src/version.c 2013-09-25 21:00:24.000000000 +0200
--- src/version.c 2013-09-25 23:20:46.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 41,
/**/
--
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 ///

71
7.4.042
View File

@ -1,71 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.042
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.042
Problem: When using ":setlocal" for 'spell' and 'spellang' then :spelldump
doesn't work. (Dimitar Dimitrov)
Solution: Copy the option variables to the new window used to show the dump.
(Christian Brabandt)
Files: src/spell.c
*** ../vim-7.4.041/src/spell.c 2013-09-25 18:54:20.000000000 +0200
--- src/spell.c 2013-09-29 13:15:51.000000000 +0200
***************
*** 15569,15579 ****
ex_spelldump(eap)
exarg_T *eap;
{
if (no_spell_checking(curwin))
return;
! /* Create a new empty buffer by splitting the window. */
do_cmdline_cmd((char_u *)"new");
if (!bufempty() || !buf_valid(curbuf))
return;
--- 15569,15589 ----
ex_spelldump(eap)
exarg_T *eap;
{
+ char_u *spl;
+ long dummy;
+
if (no_spell_checking(curwin))
return;
+ get_option_value((char_u*)"spl", &dummy, &spl, OPT_LOCAL);
! /* Create a new empty buffer in a new window. */
do_cmdline_cmd((char_u *)"new");
+
+ /* enable spelling locally in the new window */
+ set_option_value((char_u*)"spell", TRUE, (char_u*)"", OPT_LOCAL);
+ set_option_value((char_u*)"spl", dummy, spl, OPT_LOCAL);
+ vim_free(spl);
+
if (!bufempty() || !buf_valid(curbuf))
return;
*** ../vim-7.4.041/src/version.c 2013-09-25 23:24:54.000000000 +0200
--- src/version.c 2013-09-29 13:15:17.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 42,
/**/
--
Experience is what you get when you don't get what you want.
/// 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 ///

89
7.4.043
View File

@ -1,89 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.043
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.043
Problem: VMS can't handle long function names.
Solution: Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
Files: src/main.c, src/term.c, src/proto/term.pro
*** ../vim-7.4.042/src/main.c 2013-08-22 14:14:23.000000000 +0200
--- src/main.c 2013-09-29 16:23:49.000000000 +0200
***************
*** 812,818 ****
starttermcap(); /* start termcap if not done by wait_return() */
TIME_MSG("start termcap");
#if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
! may_req_ambiguous_character_width();
#endif
#ifdef FEAT_MOUSE
--- 812,818 ----
starttermcap(); /* start termcap if not done by wait_return() */
TIME_MSG("start termcap");
#if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
! may_req_ambiguous_char_width();
#endif
#ifdef FEAT_MOUSE
*** ../vim-7.4.042/src/term.c 2013-07-04 22:29:28.000000000 +0200
--- src/term.c 2013-09-29 16:27:12.000000000 +0200
***************
*** 3356,3362 ****
* it must be called immediately after entering termcap mode.
*/
void
! may_req_ambiguous_character_width()
{
if (u7_status == U7_GET
&& cur_tmode == TMODE_RAW
--- 3356,3362 ----
* it must be called immediately after entering termcap mode.
*/
void
! may_req_ambiguous_char_width()
{
if (u7_status == U7_GET
&& cur_tmode == TMODE_RAW
*** ../vim-7.4.042/src/proto/term.pro 2013-08-10 13:37:28.000000000 +0200
--- src/proto/term.pro 2013-09-29 16:25:02.000000000 +0200
***************
*** 35,41 ****
void starttermcap __ARGS((void));
void stoptermcap __ARGS((void));
void may_req_termresponse __ARGS((void));
! void may_req_ambiguous_character_width __ARGS((void));
int swapping_screen __ARGS((void));
void setmouse __ARGS((void));
int mouse_has __ARGS((int c));
--- 35,41 ----
void starttermcap __ARGS((void));
void stoptermcap __ARGS((void));
void may_req_termresponse __ARGS((void));
! void may_req_ambiguous_char_width __ARGS((void));
int swapping_screen __ARGS((void));
void setmouse __ARGS((void));
int mouse_has __ARGS((int c));
*** ../vim-7.4.042/src/version.c 2013-09-29 13:38:25.000000000 +0200
--- src/version.c 2013-09-29 16:25:16.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 43,
/**/
--
Back up my hard drive? I can't find the reverse switch!
/// 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 ///

83
7.4.044
View File

@ -1,83 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.044
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.044 (after 7.4.039)
Problem: Can't build with old MSVC. (Wang Shoulin)
Solution: Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
Files: src/os_mswin.c
*** ../vim-7.4.043/src/os_mswin.c 2013-09-25 19:13:32.000000000 +0200
--- src/os_mswin.c 2013-09-26 20:37:38.000000000 +0200
***************
*** 498,503 ****
--- 498,509 ----
}
}
+ #if (_MSC_VER >= 1300)
+ # define OPEN_OH_ARGTYPE intptr_t
+ #else
+ # define OPEN_OH_ARGTYPE long
+ #endif
+
static int
stat_symlink_aware(const char *name, struct stat *stp)
{
***************
*** 533,539 ****
{
int fd, n;
! fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
n = _fstat(fd, (struct _stat*)stp);
_close(fd);
return n;
--- 539,545 ----
{
int fd, n;
! fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY);
n = _fstat(fd, (struct _stat*)stp);
_close(fd);
return n;
***************
*** 580,586 ****
{
int fd;
! fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
n = _fstat(fd, stp);
_close(fd);
return n;
--- 586,592 ----
{
int fd;
! fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY);
n = _fstat(fd, stp);
_close(fd);
return n;
*** ../vim-7.4.043/src/version.c 2013-09-29 16:27:42.000000000 +0200
--- src/version.c 2013-09-29 18:27:58.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 44,
/**/
--
I'd like to meet the man who invented sex and see what he's working on now.
/// 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.045
View File

@ -1,111 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.045
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.045
Problem: substitute() does not work properly when the pattern starts with
"\ze".
Solution: Detect an empty match. (Christian Brabandt)
Files: src/eval.c, src/testdir/test80.in, src/testdir/test80.ok
*** ../vim-7.4.044/src/eval.c 2013-09-25 21:00:24.000000000 +0200
--- src/eval.c 2013-09-29 21:03:22.000000000 +0200
***************
*** 24301,24306 ****
--- 24301,24307 ----
garray_T ga;
char_u *ret;
char_u *save_cpo;
+ int zero_width;
/* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */
save_cpo = p_cpo;
***************
*** 24339,24358 ****
(void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data
+ ga.ga_len + i, TRUE, TRUE, FALSE);
ga.ga_len += i + sublen - 1;
! /* avoid getting stuck on a match with an empty string */
! if (tail == regmatch.endp[0])
{
! if (*tail == NUL)
! break;
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
++ga.ga_len;
}
- else
- {
- tail = regmatch.endp[0];
- if (*tail == NUL)
- break;
- }
if (!do_all)
break;
}
--- 24340,24356 ----
(void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data
+ ga.ga_len + i, TRUE, TRUE, FALSE);
ga.ga_len += i + sublen - 1;
! zero_width = (tail == regmatch.endp[0]
! || regmatch.startp[0] == regmatch.endp[0]);
! tail = regmatch.endp[0];
! if (*tail == NUL)
! break;
! if (zero_width)
{
! /* avoid getting stuck on a match with an empty string */
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
++ga.ga_len;
}
if (!do_all)
break;
}
*** ../vim-7.4.044/src/testdir/test80.in 2013-03-19 17:30:51.000000000 +0100
--- src/testdir/test80.in 2013-09-29 20:59:00.000000000 +0200
***************
*** 142,147 ****
--- 142,149 ----
:$put =\"\n\nTEST_7:\"
:$put =substitute('A A', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
+ :$put =substitute('-bb', '\zeb', 'a', 'g')
+ :$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
ENDTEST
*** ../vim-7.4.044/src/testdir/test80.ok 2013-03-19 17:31:45.000000000 +0100
--- src/testdir/test80.ok 2013-09-29 20:59:35.000000000 +0200
***************
*** 103,108 ****
--- 103,110 ----
A A
B
B
+ -abab
+ c-cbcbc
TEST_8:
*** ../vim-7.4.044/src/version.c 2013-09-29 19:05:17.000000000 +0200
--- src/version.c 2013-09-29 21:04:50.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 45,
/**/
--
Just think of all the things we haven't thought of yet.
/// 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.046
View File

@ -1,80 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.046
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.046
Problem: Can't use Tcl 8.6.
Solution: Change how Tcl_FindExecutable is called. (Jan Nijtmans)
Files: src/if_tcl.c
*** ../vim-7.4.045/src/if_tcl.c 2013-08-02 19:31:15.000000000 +0200
--- src/if_tcl.c 2013-10-02 13:44:48.000000000 +0200
***************
*** 165,170 ****
--- 165,171 ----
*/
static HANDLE hTclLib = NULL;
Tcl_Interp* (*dll_Tcl_CreateInterp)();
+ void (*dll_Tcl_FindExecutable)(const void *);
/*
* Table of name to function pointer of tcl.
***************
*** 175,180 ****
--- 176,182 ----
TCL_PROC* ptr;
} tcl_funcname_table[] = {
{"Tcl_CreateInterp", (TCL_PROC*)&dll_Tcl_CreateInterp},
+ {"Tcl_FindExecutable", (TCL_PROC*)&dll_Tcl_FindExecutable},
{NULL, NULL},
};
***************
*** 248,258 ****
{
Tcl_Interp *interp;
if (interp = dll_Tcl_CreateInterp())
{
if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0))
{
- Tcl_FindExecutable(find_executable_arg);
Tcl_DeleteInterp(interp);
stubs_initialized = TRUE;
}
--- 250,261 ----
{
Tcl_Interp *interp;
+ dll_Tcl_FindExecutable(find_executable_arg);
+
if (interp = dll_Tcl_CreateInterp())
{
if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0))
{
Tcl_DeleteInterp(interp);
stubs_initialized = TRUE;
}
*** ../vim-7.4.045/src/version.c 2013-09-29 21:11:00.000000000 +0200
--- src/version.c 2013-10-02 13:46:47.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 46,
/**/
--
Not too long ago, a program was something you watched on TV...
/// 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.047
View File

@ -1,56 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.047
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.047
Problem: When using input() in a function invoked by a mapping it doesn't
work.
Solution: Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
Files: src/eval.c
*** ../vim-7.4.046/src/eval.c 2013-09-29 21:11:00.000000000 +0200
--- src/eval.c 2013-10-02 16:40:52.000000000 +0200
***************
*** 13054,13062 ****
--- 13054,13071 ----
}
if (defstr != NULL)
+ {
+ # ifdef FEAT_EX_EXTRA
+ int save_ex_normal_busy = ex_normal_busy;
+ ex_normal_busy = 0;
+ # endif
rettv->vval.v_string =
getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
xp_type, xp_arg);
+ # ifdef FEAT_EX_EXTRA
+ ex_normal_busy = save_ex_normal_busy;
+ # endif
+ }
if (inputdialog && rettv->vval.v_string == NULL
&& argvars[1].v_type != VAR_UNKNOWN
&& argvars[2].v_type != VAR_UNKNOWN)
*** ../vim-7.4.046/src/version.c 2013-10-02 14:25:39.000000000 +0200
--- src/version.c 2013-10-02 16:45:45.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 47,
/**/
--
Not too long ago, a keyboard was something to make music with...
/// 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.048
View File

@ -1,96 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.048
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.048
Problem: Recent clang version complains about -fno-strength-reduce.
Solution: Add a configure check for the clang version. (Kazunobu Kuriyama)
Files: src/configure.in, src/auto/configure
*** ../vim-7.4.047/src/configure.in 2013-08-04 20:00:50.000000000 +0200
--- src/configure.in 2013-10-02 17:56:25.000000000 +0200
***************
*** 62,67 ****
--- 62,90 ----
fi
fi
+ dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a
+ dnl warning when that flag is passed to. Accordingly, adjust CFLAGS based on
+ dnl the version number of the clang in use.
+ dnl Note that this does not work to get the version of clang 3.1 or 3.2.
+ AC_MSG_CHECKING(for recent clang version)
+ CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\).*$/\1/p'`
+ if test x"$CLANG_VERSION_STRING" != x"" ; then
+ CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*/\1/p'`
+ CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/p'`
+ CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)/\1/p'`
+ CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
+ AC_MSG_RESULT($CLANG_VERSION)
+ dnl If you find the same issue with versions earlier than 500.2.75,
+ dnl change the constant 500002075 below appropriately. To get the
+ dnl integer corresponding to a version number, refer to the
+ dnl definition of CLANG_VERSION above.
+ if test "$CLANG_VERSION" -ge 500002075 ; then
+ CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
+ fi
+ else
+ AC_MSG_RESULT(no)
+ fi
+
dnl If configure thinks we are cross compiling, there might be something
dnl wrong with the CC or CFLAGS settings, give a useful warning message
if test "$cross_compiling" = yes; then
*** ../vim-7.4.047/src/auto/configure 2013-08-04 20:01:06.000000000 +0200
--- src/auto/configure 2013-10-02 17:56:52.000000000 +0200
***************
*** 3989,3994 ****
--- 3989,4012 ----
fi
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent clang version" >&5
+ $as_echo_n "checking for recent clang version... " >&6; }
+ CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'`
+ if test x"$CLANG_VERSION_STRING" != x"" ; then
+ CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*/\1/p'`
+ CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*/\1/p'`
+ CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)/\1/p'`
+ CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CLANG_VERSION" >&5
+ $as_echo "$CLANG_VERSION" >&6; }
+ if test "$CLANG_VERSION" -ge 500002075 ; then
+ CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
if test "$cross_compiling" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&5
$as_echo "cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&6; }
*** ../vim-7.4.047/src/version.c 2013-10-02 16:46:23.000000000 +0200
--- src/version.c 2013-10-02 17:19:31.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 48,
/**/
--
I have to exercise early in the morning before my brain
figures out what I'm doing.
/// 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.049
View File

@ -1,67 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.049
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.049
Problem: In Ex mode, when line numbers are enabled the substitute prompt is
wrong.
Solution: Adjust for the line number size. (Benoit Pierre)
Files: src/ex_cmds.c
*** ../vim-7.4.048/src/ex_cmds.c 2013-08-07 15:15:51.000000000 +0200
--- src/ex_cmds.c 2013-10-02 18:31:24.000000000 +0200
***************
*** 4740,4750 ****
char_u *resp;
colnr_T sc, ec;
! print_line_no_prefix(lnum, FALSE, FALSE);
getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL);
curwin->w_cursor.col = regmatch.endpos[0].col - 1;
getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec);
msg_start();
for (i = 0; i < (long)sc; ++i)
msg_putchar(' ');
--- 4740,4756 ----
char_u *resp;
colnr_T sc, ec;
! print_line_no_prefix(lnum, do_number, do_list);
getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL);
curwin->w_cursor.col = regmatch.endpos[0].col - 1;
getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec);
+ if (do_number || curwin->w_p_nu)
+ {
+ int numw = number_width(curwin) + 1;
+ sc += numw;
+ ec += numw;
+ }
msg_start();
for (i = 0; i < (long)sc; ++i)
msg_putchar(' ');
*** ../vim-7.4.048/src/version.c 2013-10-02 18:22:58.000000000 +0200
--- src/version.c 2013-10-02 18:33:22.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 49,
/**/
--
What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics'
meaning 'bloodsucking creatures'.
/// 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 ///

90
7.4.050
View File

@ -1,90 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.050
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.050
Problem: "gn" selects too much for the pattern "\d" when there are two
lines with a single digit. (Ryan Carney)
Solution: Adjust the logic of is_one_char(). (Christian Brabandt)
Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok
*** ../vim-7.4.049/src/search.c 2013-08-14 17:45:25.000000000 +0200
--- src/search.c 2013-10-02 21:49:40.000000000 +0200
***************
*** 4680,4687 ****
&& regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
&& regmatch.startpos[0].col == regmatch.endpos[0].col);
! if (!result && incl(&pos) == 0 && pos.col == regmatch.endpos[0].col)
! result = TRUE;
}
called_emsg |= save_called_emsg;
--- 4680,4687 ----
&& regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
&& regmatch.startpos[0].col == regmatch.endpos[0].col);
! if (!result && inc(&pos) >= 0 && pos.col == regmatch.endpos[0].col)
! result = TRUE;
}
called_emsg |= save_called_emsg;
*** ../vim-7.4.049/src/testdir/test53.in 2013-06-30 14:31:56.000000000 +0200
--- src/testdir/test53.in 2013-10-02 21:47:10.000000000 +0200
***************
*** 46,51 ****
--- 46,54 ----
:set selection=exclusive
$cgNmongoose/i
cgnj
+ :" Make sure there is no other match y uppercase.
+ /x59
+ gggnd
:/^start:/,/^end:/wq! test.out
ENDTEST
***************
*** 75,78 ****
--- 78,84 ----
uniquepattern uniquepattern
my very excellent mother just served us nachos
for (i=0; i<=10; i++)
+ Y
+ text
+ Y
end:
*** ../vim-7.4.049/src/testdir/test53.ok 2013-06-30 14:31:56.000000000 +0200
--- src/testdir/test53.ok 2013-10-02 21:47:34.000000000 +0200
***************
*** 27,30 ****
--- 27,33 ----
uniquepattern
my very excellent mongoose just served us nachos
for (j=0; i<=10; i++)
+
+ text
+ Y
end:
*** ../vim-7.4.049/src/version.c 2013-10-02 18:43:00.000000000 +0200
--- src/version.c 2013-10-02 21:51:34.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 50,
/**/
--
Why doesn't Tarzan have a beard?
/// 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.051
View File

@ -1,67 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.051
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.051
Problem: Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution: Copy the pim structure before calling addstate() to avoid it
becoming invalide when the state list is reallocated.
Files: src/regexp_nfa.c
*** ../vim-7.4.050/src/regexp_nfa.c 2013-09-25 18:16:34.000000000 +0200
--- src/regexp_nfa.c 2013-10-06 15:44:31.000000000 +0200
***************
*** 6458,6463 ****
--- 6458,6464 ----
if (add_state != NULL)
{
nfa_pim_T *pim;
+ nfa_pim_T pim_copy;
if (t->pim.result == NFA_PIM_UNUSED)
pim = NULL;
***************
*** 6531,6536 ****
--- 6532,6546 ----
pim = NULL;
}
+ /* If "pim" points into l->t it will become invalid when
+ * adding the state causes the list to be reallocated. Make a
+ * local copy to avoid that. */
+ if (pim == &t->pim)
+ {
+ copy_pim(&pim_copy, pim);
+ pim = &pim_copy;
+ }
+
if (add_here)
addstate_here(thislist, add_state, &t->subs, pim, &listidx);
else
*** ../vim-7.4.050/src/version.c 2013-10-02 21:54:57.000000000 +0200
--- src/version.c 2013-10-06 15:21:16.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 51,
/**/
--
GUARD #2: It could be carried by an African swallow!
GUARD #1: Oh, yeah, an African swallow maybe, but not a European swallow,
that's my point.
GUARD #2: Oh, yeah, I agree with that...
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 ///

197
7.4.052
View File

@ -1,197 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.052
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.052
Problem: With 'fo' set to "a2" inserting a space in the first column may
cause the cursor to jump to the previous line.
Solution: Handle the case when there is no comment leader properly. (Tor
Perkins) Also fix that cursor is in the wrong place when spaces
get replaced with a Tab.
Files: src/misc1.c, src/ops.c, src/testdir/test68.in,
src/testdir/test68.ok
*** ../vim-7.4.051/src/misc1.c 2013-09-05 21:41:35.000000000 +0200
--- src/misc1.c 2013-10-06 17:46:18.000000000 +0200
***************
*** 303,312 ****
ml_replace(curwin->w_cursor.lnum, newline, FALSE);
if (flags & SIN_CHANGED)
changed_bytes(curwin->w_cursor.lnum, 0);
! /* Correct saved cursor position if it's after the indent. */
! if (saved_cursor.lnum == curwin->w_cursor.lnum
! && saved_cursor.col >= (colnr_T)(p - oldline))
! saved_cursor.col += ind_len - (colnr_T)(p - oldline);
retval = TRUE;
}
else
--- 303,320 ----
ml_replace(curwin->w_cursor.lnum, newline, FALSE);
if (flags & SIN_CHANGED)
changed_bytes(curwin->w_cursor.lnum, 0);
! /* Correct saved cursor position if it is in this line. */
! if (saved_cursor.lnum == curwin->w_cursor.lnum)
! {
! if (saved_cursor.col >= (colnr_T)(p - oldline))
! /* cursor was after the indent, adjust for the number of
! * bytes added/removed */
! saved_cursor.col += ind_len - (colnr_T)(p - oldline);
! else if (saved_cursor.col >= (colnr_T)(s - newline))
! /* cursor was in the indent, and is now after it, put it back
! * at the start of the indent (replacing spaces with TAB) */
! saved_cursor.col = (colnr_T)(s - newline);
! }
retval = TRUE;
}
else
***************
*** 1581,1589 ****
#if defined(FEAT_COMMENTS) || defined(PROTO)
/*
! * get_leader_len() returns the length of the prefix of the given string
! * which introduces a comment. If this string is not a comment then 0 is
! * returned.
* When "flags" is not NULL, it is set to point to the flags of the recognized
* comment leader.
* "backward" must be true for the "O" command.
--- 1589,1597 ----
#if defined(FEAT_COMMENTS) || defined(PROTO)
/*
! * get_leader_len() returns the length in bytes of the prefix of the given
! * string which introduces a comment. If this string is not a comment then
! * 0 is returned.
* When "flags" is not NULL, it is set to point to the flags of the recognized
* comment leader.
* "backward" must be true for the "O" command.
*** ../vim-7.4.051/src/ops.c 2013-09-25 23:24:54.000000000 +0200
--- src/ops.c 2013-10-06 17:11:51.000000000 +0200
***************
*** 4989,4995 ****
/*
* When still in same paragraph, join the lines together. But
! * first delete the comment leader from the second line.
*/
if (!is_end_par)
{
--- 4989,4995 ----
/*
* When still in same paragraph, join the lines together. But
! * first delete the leader from the second line.
*/
if (!is_end_par)
{
***************
*** 4999,5009 ****
if (line_count < 0 && u_save_cursor() == FAIL)
break;
#ifdef FEAT_COMMENTS
- (void)del_bytes((long)next_leader_len, FALSE, FALSE);
if (next_leader_len > 0)
mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
(long)-next_leader_len);
#endif
curwin->w_cursor.lnum--;
if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
{
--- 4999,5023 ----
if (line_count < 0 && u_save_cursor() == FAIL)
break;
#ifdef FEAT_COMMENTS
if (next_leader_len > 0)
+ {
+ (void)del_bytes((long)next_leader_len, FALSE, FALSE);
mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
(long)-next_leader_len);
+ } else
#endif
+ if (second_indent > 0) /* the "leader" for FO_Q_SECOND */
+ {
+ char_u *p = ml_get_curline();
+ int indent = skipwhite(p) - p;
+
+ if (indent > 0)
+ {
+ (void)del_bytes(indent, FALSE, FALSE);
+ mark_col_adjust(curwin->w_cursor.lnum,
+ (colnr_T)0, 0L, (long)-indent);
+ }
+ }
curwin->w_cursor.lnum--;
if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
{
*** ../vim-7.4.051/src/testdir/test68.in 2012-07-25 15:57:06.000000000 +0200
--- src/testdir/test68.in 2013-10-06 16:20:33.000000000 +0200
***************
*** 62,67 ****
--- 62,81 ----
}
STARTTEST
+ /^{/+3
+ :set tw=5 fo=t2a si
+ i A_
+ ENDTEST
+
+ {
+
+ x a
+ b
+ c
+
+ }
+
+ STARTTEST
/^{/+1
:set tw=5 fo=qn comments=:#
gwap
*** ../vim-7.4.051/src/testdir/test68.ok 2012-07-25 16:03:05.000000000 +0200
--- src/testdir/test68.ok 2013-10-06 16:20:33.000000000 +0200
***************
*** 43,48 ****
--- 43,57 ----
{
+
+ x a
+ b_
+ c
+
+ }
+
+
+ {
# 1 a
# b
}
*** ../vim-7.4.051/src/version.c 2013-10-06 15:46:06.000000000 +0200
--- src/version.c 2013-10-06 17:25:27.000000000 +0200
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 52,
/**/
--
ARTHUR: Will you ask your master if he wants to join my court at Camelot?!
GUARD #1: But then of course African swallows are not migratory.
GUARD #2: Oh, yeah...
GUARD #1: So they couldn't bring a coconut back anyway...
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 ///

45
7.4.053
View File

@ -1,45 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.053
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.053
Problem: Test75 has a wrong header. (ZyX)
Solution: Fix the text and remove leading ".
Files: src/testdir/test75.in
*** ../vim-7.4.052/src/testdir/test75.in 2013-06-29 13:48:42.000000000 +0200
--- src/testdir/test75.in 2013-10-19 20:28:53.000000000 +0200
***************
*** 1,4 ****
! " Tests for functions.
STARTTEST
:so small.vim
--- 1,4 ----
! Tests for maparg().
STARTTEST
:so small.vim
*** ../vim-7.4.052/src/version.c 2013-10-06 17:46:48.000000000 +0200
--- src/version.c 2013-11-02 04:18:07.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 53,
/**/
--
Every exit is an entrance into something else.
/// 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.054
View File

@ -1,53 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.054
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.054
Problem: Reading past end of the 'stl' string.
Solution: Don't increment pointer when already at the NUL. (Christian
Brabandt)
Files: src/buffer.c
*** ../vim-7.4.053/src/buffer.c 2013-08-14 17:11:14.000000000 +0200
--- src/buffer.c 2013-11-02 04:34:26.000000000 +0100
***************
*** 4062,4068 ****
item[curitem].minwid = -syn_namen2id(t, (int)(s - t));
curitem++;
}
! ++s;
continue;
}
--- 4062,4069 ----
item[curitem].minwid = -syn_namen2id(t, (int)(s - t));
curitem++;
}
! if (*s != NUL)
! ++s;
continue;
}
*** ../vim-7.4.053/src/version.c 2013-11-02 04:19:10.000000000 +0100
--- src/version.c 2013-11-02 04:31:50.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 54,
/**/
--
Every person is responsible for the choices he makes.
/// 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 ///

138
7.4.055
View File

@ -1,138 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.055
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.055
Problem: Mac: Where availability macros are defined depends on the system.
Solution: Add a configure check. (Felix Bünemann)
Files: src/config.h.in, src/configure.in, src/auto/configure,
src/os_mac.h
*** ../vim-7.4.054/src/config.h.in 2013-02-26 14:18:19.000000000 +0100
--- src/config.h.in 2013-11-02 20:52:08.000000000 +0100
***************
*** 442,444 ****
--- 442,447 ----
/* Define if you want Cygwin to use the WIN32 clipboard, not compatible with X11*/
#undef FEAT_CYGWIN_WIN32_CLIPBOARD
+
+ /* Define if we have AvailabilityMacros.h on Mac OS X */
+ #undef HAVE_AVAILABILITYMACROS_H
*** ../vim-7.4.054/src/configure.in 2013-10-02 18:22:58.000000000 +0200
--- src/configure.in 2013-11-02 20:58:58.000000000 +0100
***************
*** 206,211 ****
--- 206,215 ----
dnl TODO: use -arch i386 on Intel machines
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon
+ dnl so we need to include it to have access to version macros.
+ AC_CHECK_HEADER(AvailabilityMacros.h, [AC_DEFINE(HAVE_AVAILABILITYMACROS_H, 1, [ Define if we have AvailabilityMacros.h on Mac OS X ])])
+
dnl If Carbon is found, assume we don't want X11
dnl unless it was specifically asked for (--with-x)
dnl or Motif, Athena or GTK GUI is used.
*** ../vim-7.4.054/src/auto/configure 2013-10-02 18:22:58.000000000 +0200
--- src/auto/configure 2013-11-02 21:00:40.000000000 +0100
***************
*** 4223,4229 ****
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
! # On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h
do :
--- 4223,4229 ----
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
! # On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h
do :
***************
*** 4241,4247 ****
done
! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default"
if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then :
CARBON=yes
fi
--- 4241,4256 ----
done
! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default"
! if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then :
!
! $as_echo "#define HAVE_AVAILABILITYMACROS_H 1" >>confdefs.h
!
! fi
!
!
!
! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default"
if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then :
CARBON=yes
fi
*** ../vim-7.4.054/src/os_mac.h 2013-05-06 04:06:04.000000000 +0200
--- src/os_mac.h 2013-11-02 20:59:46.000000000 +0100
***************
*** 16,21 ****
--- 16,26 ----
# define OPAQUE_TOOLBOX_STRUCTS 0
#endif
+ /* Include MAC_OS_X_VERSION_* macros */
+ #ifdef HAVE_AVAILABILITYMACROS_H
+ # include <AvailabilityMacros.h>
+ #endif
+
/*
* Macintosh machine-dependent things.
*
***************
*** 263,269 ****
#endif
/* Some "prep work" definition to be able to compile the MacOS X
! * version with os_unix.x instead of os_mac.c. Based on the result
* of ./configure for console MacOS X.
*/
--- 268,274 ----
#endif
/* Some "prep work" definition to be able to compile the MacOS X
! * version with os_unix.c instead of os_mac.c. Based on the result
* of ./configure for console MacOS X.
*/
*** ../vim-7.4.054/src/version.c 2013-11-02 04:39:34.000000000 +0100
--- src/version.c 2013-11-02 21:01:10.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 55,
/**/
--
You can be stopped by the police for biking over 65 miles per hour.
You are not allowed to walk across a street on your hands.
[real standing laws in Connecticut, 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 ///

51
7.4.056
View File

@ -1,51 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.056
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.056
Problem: Mac: Compilation problem with OS X 10.9 Mavericks.
Solution: Include AvailabilityMacros.h when available. (Kazunobu Kuriyama)
Files: src/os_unix.c
*** ../vim-7.4.055/src/os_unix.c 2013-09-05 21:41:35.000000000 +0200
--- src/os_unix.c 2013-11-02 21:46:05.000000000 +0100
***************
*** 804,809 ****
--- 804,815 ----
* completely full.
*/
+ #if defined(HAVE_AVAILABILITYMACROS_H) \
+ && defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
+ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090)
+ # include <AvailabilityMacros.h>
+ #endif
+
#ifndef SIGSTKSZ
# define SIGSTKSZ 8000 /* just a guess of how much stack is needed... */
#endif
*** ../vim-7.4.055/src/version.c 2013-11-02 21:04:32.000000000 +0100
--- src/version.c 2013-11-02 21:44:10.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 56,
/**/
--
If an elephant is left tied to a parking meter, the parking fee has to be paid
just as it would for a vehicle.
[real standing law in Florida, 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 ///

252
7.4.057
View File

@ -1,252 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.057
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.057
Problem: byteidx() does not work for composing characters.
Solution: Add byteidxcomp().
Files: src/eval.c, src/testdir/test69.in, src/testdir/test69.ok,
runtime/doc/eval.txt
*** ../vim-7.4.056/src/eval.c 2013-10-02 16:46:23.000000000 +0200
--- src/eval.c 2013-11-02 22:30:08.000000000 +0100
***************
*** 474,480 ****
--- 474,482 ----
static void f_bufnr __ARGS((typval_T *argvars, typval_T *rettv));
static void f_bufwinnr __ARGS((typval_T *argvars, typval_T *rettv));
static void f_byte2line __ARGS((typval_T *argvars, typval_T *rettv));
+ static void byteidx __ARGS((typval_T *argvars, typval_T *rettv, int comp));
static void f_byteidx __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_byteidxcomp __ARGS((typval_T *argvars, typval_T *rettv));
static void f_call __ARGS((typval_T *argvars, typval_T *rettv));
#ifdef FEAT_FLOAT
static void f_ceil __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 7861,7866 ****
--- 7863,7869 ----
{"bufwinnr", 1, 1, f_bufwinnr},
{"byte2line", 1, 1, f_byte2line},
{"byteidx", 2, 2, f_byteidx},
+ {"byteidxcomp", 2, 2, f_byteidxcomp},
{"call", 2, 3, f_call},
#ifdef FEAT_FLOAT
{"ceil", 1, 1, f_ceil},
***************
*** 9177,9189 ****
#endif
}
- /*
- * "byteidx()" function
- */
static void
! f_byteidx(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
{
#ifdef FEAT_MBYTE
char_u *t;
--- 9180,9190 ----
#endif
}
static void
! byteidx(argvars, rettv, comp)
typval_T *argvars;
typval_T *rettv;
+ int comp;
{
#ifdef FEAT_MBYTE
char_u *t;
***************
*** 9203,9209 ****
{
if (*t == NUL) /* EOL reached */
return;
! t += (*mb_ptr2len)(t);
}
rettv->vval.v_number = (varnumber_T)(t - str);
#else
--- 9204,9213 ----
{
if (*t == NUL) /* EOL reached */
return;
! if (enc_utf8 && comp)
! t += utf_ptr2len(t);
! else
! t += (*mb_ptr2len)(t);
}
rettv->vval.v_number = (varnumber_T)(t - str);
#else
***************
*** 9212,9217 ****
--- 9216,9243 ----
#endif
}
+ /*
+ * "byteidx()" function
+ */
+ static void
+ f_byteidx(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+ byteidx(argvars, rettv, FALSE);
+ }
+
+ /*
+ * "byteidxcomp()" function
+ */
+ static void
+ f_byteidxcomp(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+ byteidx(argvars, rettv, TRUE);
+ }
+
int
func_call(name, args, selfdict, rettv)
char_u *name;
*** ../vim-7.4.056/src/testdir/test69.in 2013-03-07 18:30:50.000000000 +0100
--- src/testdir/test69.in 2013-11-02 22:46:02.000000000 +0100
***************
*** 1,6 ****
--- 1,7 ----
Test for multi-byte text formatting.
Also test, that 'mps' with multibyte chars works.
And test "ra" on multi-byte characters.
+ Also test byteidx() and byteidxcomp()
STARTTEST
:so mbyte.vim
***************
*** 154,159 ****
--- 155,175 ----
b
STARTTEST
+ :let a = '.é.' " one char of two bytes
+ :let b = '.é.' " normal e with composing char
+ /^byteidx
+ :put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)])
+ :put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)])
+ /^byteidxcomp
+ :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)])
+ :let b = '.é.'
+ :put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
+ ENDTEST
+
+ byteidx
+ byteidxcomp
+
+ STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out
ENDTEST
*** ../vim-7.4.056/src/testdir/test69.ok 2013-03-07 18:31:32.000000000 +0100
--- src/testdir/test69.ok 2013-11-02 22:43:25.000000000 +0100
***************
*** 149,151 ****
--- 149,159 ----
aaaa
aaa
+
+ byteidx
+ [0, 1, 3, 4, -1]
+ [0, 1, 4, 5, -1]
+ byteidxcomp
+ [0, 1, 3, 4, -1]
+ [0, 1, 2, 4, 5, -1]
+
*** ../vim-7.4.056/runtime/doc/eval.txt 2013-08-10 13:24:53.000000000 +0200
--- runtime/doc/eval.txt 2013-11-02 23:27:24.000000000 +0100
***************
*** 1712,1717 ****
--- 1713,1719 ----
bufwinnr( {expr}) Number window number of buffer {expr}
byte2line( {byte}) Number line number at byte count {byte}
byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
+ byteidxcomp( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
call( {func}, {arglist} [, {dict}])
any call {func} with arguments {arglist}
ceil( {expr}) Float round {expr} up
***************
*** 2260,2266 ****
{expr}. Use zero for the first character, it returns zero.
This function is only useful when there are multibyte
characters, otherwise the returned value is equal to {nr}.
! Composing characters are counted as a separate character.
Example : >
echo matchstr(str, ".", byteidx(str, 3))
< will display the fourth character. Another way to do the
--- 2262,2271 ----
{expr}. Use zero for the first character, it returns zero.
This function is only useful when there are multibyte
characters, otherwise the returned value is equal to {nr}.
! Composing characters are not counted separately, their byte
! length is added to the preceding base character. See
! |byteidxcomp()| below for counting composing characters
! separately.
Example : >
echo matchstr(str, ".", byteidx(str, 3))
< will display the fourth character. Another way to do the
***************
*** 2269,2275 ****
echo strpart(s, 0, byteidx(s, 1))
< If there are less than {nr} characters -1 is returned.
If there are exactly {nr} characters the length of the string
! is returned.
call({func}, {arglist} [, {dict}]) *call()* *E699*
Call function {func} with the items in |List| {arglist} as
--- 2274,2293 ----
echo strpart(s, 0, byteidx(s, 1))
< If there are less than {nr} characters -1 is returned.
If there are exactly {nr} characters the length of the string
! in bytes is returned.
!
! byteidxcomp({expr}, {nr}) *byteidxcomp()*
! Like byteidx(), except that a composing character is counted
! as a separate character. Example: >
! let s = 'e' . nr2char(0x301)
! echo byteidx(s, 1)
! echo byteidxcomp(s, 1)
! echo byteidxcomp(s, 2)
! < The first and third echo result in 3 ('e' plus composing
! character is 3 bytes), the second echo results in 1 ('e' is
! one byte).
! Only works different from byteidx() when 'encoding' is set to
! a Unicode encoding.
call({func}, {arglist} [, {dict}]) *call()* *E699*
Call function {func} with the items in |List| {arglist} as
*** ../vim-7.4.056/src/version.c 2013-11-02 21:49:28.000000000 +0100
--- src/version.c 2013-11-02 22:45:13.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 57,
/**/
--
Any sufficiently advanced technology is indistinguishable from magic.
Arthur C. Clarke
Any sufficiently advanced bug is indistinguishable from a feature.
Rich Kulawiec
/// 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.058
View File

@ -1,67 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.058
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.058
Problem: Warnings on 64 bit Windows.
Solution: Add type casts. (Mike Williams)
Files: src/ops.c
*** ../vim-7.4.057/src/ops.c 2013-10-06 17:46:48.000000000 +0200
--- src/ops.c 2013-11-02 23:56:15.000000000 +0100
***************
*** 5009,5022 ****
if (second_indent > 0) /* the "leader" for FO_Q_SECOND */
{
char_u *p = ml_get_curline();
! int indent = skipwhite(p) - p;
if (indent > 0)
{
(void)del_bytes(indent, FALSE, FALSE);
mark_col_adjust(curwin->w_cursor.lnum,
(colnr_T)0, 0L, (long)-indent);
! }
}
curwin->w_cursor.lnum--;
if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
--- 5009,5022 ----
if (second_indent > 0) /* the "leader" for FO_Q_SECOND */
{
char_u *p = ml_get_curline();
! int indent = (int)(skipwhite(p) - p);
if (indent > 0)
{
(void)del_bytes(indent, FALSE, FALSE);
mark_col_adjust(curwin->w_cursor.lnum,
(colnr_T)0, 0L, (long)-indent);
! }
}
curwin->w_cursor.lnum--;
if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
*** ../vim-7.4.057/src/version.c 2013-11-02 23:29:17.000000000 +0100
--- src/version.c 2013-11-02 23:55:01.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 58,
/**/
--
Citizens are not allowed to attend a movie house or theater nor ride in a
public streetcar within at least four hours after eating garlic.
[real standing law in Indiana, 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 ///

53
7.4.059
View File

@ -1,53 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.059
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.059
Problem: set_last_cursor() may encounter w_buffer being NULL. (Matt
Mkaniaris)
Solution: Check for NULL.
Files: src/mark.c
*** ../vim-7.4.058/src/mark.c 2013-08-02 17:22:10.000000000 +0200
--- src/mark.c 2013-11-03 00:18:35.000000000 +0100
***************
*** 1374,1380 ****
set_last_cursor(win)
win_T *win;
{
! win->w_buffer->b_last_cursor = win->w_cursor;
}
#if defined(EXITFREE) || defined(PROTO)
--- 1374,1381 ----
set_last_cursor(win)
win_T *win;
{
! if (win->w_buffer != NULL)
! win->w_buffer->b_last_cursor = win->w_cursor;
}
#if defined(EXITFREE) || defined(PROTO)
*** ../vim-7.4.058/src/version.c 2013-11-02 23:59:30.000000000 +0100
--- src/version.c 2013-11-03 00:17:55.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 59,
/**/
--
How do you know when you have run out of invisible ink?
/// 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.060
View File

@ -1,71 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.060
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.060
Problem: Declaration has wrong return type for PyObject_SetAttrString().
Solution: Use int instead of PyObject. (Andreas Schwab)
Files: src/if_python.c, src/if_python3.c
*** ../vim-7.4.059/src/if_python.c 2013-07-09 21:40:11.000000000 +0200
--- src/if_python.c 2013-11-03 00:24:57.000000000 +0100
***************
*** 359,365 ****
static PyObject *(*dll_PyRun_String)(char *, int, PyObject *, PyObject *);
static PyObject* (*dll_PyObject_GetAttrString)(PyObject *, const char *);
static int (*dll_PyObject_HasAttrString)(PyObject *, const char *);
! static PyObject* (*dll_PyObject_SetAttrString)(PyObject *, const char *, PyObject *);
static PyObject* (*dll_PyObject_CallFunctionObjArgs)(PyObject *, ...);
static PyObject* (*dll_PyObject_CallFunction)(PyObject *, char *, ...);
static PyObject* (*dll_PyObject_Call)(PyObject *, PyObject *, PyObject *);
--- 359,365 ----
static PyObject *(*dll_PyRun_String)(char *, int, PyObject *, PyObject *);
static PyObject* (*dll_PyObject_GetAttrString)(PyObject *, const char *);
static int (*dll_PyObject_HasAttrString)(PyObject *, const char *);
! static int (*dll_PyObject_SetAttrString)(PyObject *, const char *, PyObject *);
static PyObject* (*dll_PyObject_CallFunctionObjArgs)(PyObject *, ...);
static PyObject* (*dll_PyObject_CallFunction)(PyObject *, char *, ...);
static PyObject* (*dll_PyObject_Call)(PyObject *, PyObject *, PyObject *);
*** ../vim-7.4.059/src/if_python3.c 2013-07-09 21:53:21.000000000 +0200
--- src/if_python3.c 2013-11-03 00:24:57.000000000 +0100
***************
*** 302,308 ****
static PyObject* (*py3_PyRun_String)(char *, int, PyObject *, PyObject *);
static PyObject* (*py3_PyObject_GetAttrString)(PyObject *, const char *);
static int (*py3_PyObject_HasAttrString)(PyObject *, const char *);
! static PyObject* (*py3_PyObject_SetAttrString)(PyObject *, const char *, PyObject *);
static PyObject* (*py3_PyObject_CallFunctionObjArgs)(PyObject *, ...);
static PyObject* (*py3__PyObject_CallFunction_SizeT)(PyObject *, char *, ...);
static PyObject* (*py3_PyObject_Call)(PyObject *, PyObject *, PyObject *);
--- 302,308 ----
static PyObject* (*py3_PyRun_String)(char *, int, PyObject *, PyObject *);
static PyObject* (*py3_PyObject_GetAttrString)(PyObject *, const char *);
static int (*py3_PyObject_HasAttrString)(PyObject *, const char *);
! static int (*py3_PyObject_SetAttrString)(PyObject *, const char *, PyObject *);
static PyObject* (*py3_PyObject_CallFunctionObjArgs)(PyObject *, ...);
static PyObject* (*py3__PyObject_CallFunction_SizeT)(PyObject *, char *, ...);
static PyObject* (*py3_PyObject_Call)(PyObject *, PyObject *, PyObject *);
*** ../vim-7.4.059/src/version.c 2013-11-03 00:20:46.000000000 +0100
--- src/version.c 2013-11-03 00:26:19.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 60,
/**/
--
Kisses may last for as much as, but no more than, five minutes.
[real standing law in Iowa, 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 ///

144
7.4.061
View File

@ -1,144 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.061
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.061 (after 7.4.055 and 7.4.056)
Problem: Availability macros configure check in wrong place.
Solution: Also check when not using Darwin. Remove version check.
Files: src/configure.in, src/auto/configure, src/os_unix.c
*** ../vim-7.4.060/src/configure.in 2013-11-02 21:04:32.000000000 +0100
--- src/configure.in 2013-11-03 00:34:07.000000000 +0100
***************
*** 206,215 ****
dnl TODO: use -arch i386 on Intel machines
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
- dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon
- dnl so we need to include it to have access to version macros.
- AC_CHECK_HEADER(AvailabilityMacros.h, [AC_DEFINE(HAVE_AVAILABILITYMACROS_H, 1, [ Define if we have AvailabilityMacros.h on Mac OS X ])])
-
dnl If Carbon is found, assume we don't want X11
dnl unless it was specifically asked for (--with-x)
dnl or Motif, Athena or GTK GUI is used.
--- 206,211 ----
***************
*** 232,237 ****
--- 228,237 ----
AC_MSG_RESULT(no)
fi
+ dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon
+ dnl so we need to include it to have access to version macros.
+ AC_CHECK_HEADER(AvailabilityMacros.h, HAVE_AVAILABILITYMACROS_H=1)
+
AC_SUBST(OS_EXTRA_SRC)
AC_SUBST(OS_EXTRA_OBJ)
*** ../vim-7.4.060/src/auto/configure 2013-11-02 21:04:32.000000000 +0100
--- src/auto/configure 2013-11-03 00:36:20.000000000 +0100
***************
*** 4223,4229 ****
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
! # On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h
do :
--- 4223,4229 ----
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
! # On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h
do :
***************
*** 4241,4256 ****
done
! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default"
! if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then :
!
! $as_echo "#define HAVE_AVAILABILITYMACROS_H 1" >>confdefs.h
!
! fi
!
!
!
! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default"
if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then :
CARBON=yes
fi
--- 4241,4247 ----
done
! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default"
if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then :
CARBON=yes
fi
***************
*** 4272,4277 ****
--- 4263,4275 ----
$as_echo "no" >&6; }
fi
+ ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default"
+ if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then :
+ HAVE_AVAILABILITYMACROS_H=1
+ fi
+
+
+
*** ../vim-7.4.060/src/os_unix.c 2013-11-02 21:49:28.000000000 +0100
--- src/os_unix.c 2013-11-03 00:34:29.000000000 +0100
***************
*** 804,812 ****
* completely full.
*/
! #if defined(HAVE_AVAILABILITYMACROS_H) \
! && defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
! && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090)
# include <AvailabilityMacros.h>
#endif
--- 804,810 ----
* completely full.
*/
! #if defined(HAVE_AVAILABILITYMACROS_H)
# include <AvailabilityMacros.h>
#endif
*** ../vim-7.4.060/src/version.c 2013-11-03 00:28:20.000000000 +0100
--- src/version.c 2013-11-03 00:37:02.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 61,
/**/
--
It is illegal to rob a bank and then shoot at the bank teller with a water
pistol.
[real standing law in Louisana, 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 ///

87
7.4.062
View File

@ -1,87 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.062
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.062 (after 7.4.061)
Problem: Configure check for AvailabilityMacros.h is wrong.
Solution: Use AC_CHECK_HEADERS().
Files: src/configure.in, src/auto/configure
*** ../vim-7.4.061/src/configure.in 2013-11-03 00:40:54.000000000 +0100
--- src/configure.in 2013-11-03 20:19:42.000000000 +0100
***************
*** 230,236 ****
dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon
dnl so we need to include it to have access to version macros.
! AC_CHECK_HEADER(AvailabilityMacros.h, HAVE_AVAILABILITYMACROS_H=1)
AC_SUBST(OS_EXTRA_SRC)
AC_SUBST(OS_EXTRA_OBJ)
--- 230,236 ----
dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon
dnl so we need to include it to have access to version macros.
! AC_CHECK_HEADERS(AvailabilityMacros.h)
AC_SUBST(OS_EXTRA_SRC)
AC_SUBST(OS_EXTRA_OBJ)
*** ../vim-7.4.061/src/auto/configure 2013-11-03 00:40:54.000000000 +0100
--- src/auto/configure 2013-11-03 20:22:56.000000000 +0100
***************
*** 4263,4273 ****
$as_echo "no" >&6; }
fi
! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default"
if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then :
! HAVE_AVAILABILITYMACROS_H=1
fi
--- 4263,4279 ----
$as_echo "no" >&6; }
fi
! for ac_header in AvailabilityMacros.h
! do :
! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default"
if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then :
! cat >>confdefs.h <<_ACEOF
! #define HAVE_AVAILABILITYMACROS_H 1
! _ACEOF
!
fi
+ done
*** ../vim-7.4.061/src/version.c 2013-11-03 00:40:54.000000000 +0100
--- src/version.c 2013-11-03 20:25:31.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 62,
/**/
--
Yesterday, all my deadlines seemed so far away
now it looks as though it's freeze in four days
oh I believe in cvs..
[ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]
/// 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 ///

105
7.4.063
View File

@ -1,105 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.063
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.063
Problem: Crash when using invalid key in Python dictionary.
Solution: Check for object to be NULL. Add tests. (ZyX)
Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
src/testdir/test87.in, src/testdir/test87.ok
*** ../vim-7.4.062/src/if_py_both.h 2013-07-24 17:09:19.000000000 +0200
--- src/if_py_both.h 2013-11-04 00:27:40.000000000 +0100
***************
*** 1624,1629 ****
--- 1624,1632 ----
PyObject *rObj = _DictionaryItem(self, keyObject, DICT_FLAG_RETURN_BOOL);
int ret;
+ if (rObj == NULL)
+ return -1;
+
ret = (rObj == Py_True);
Py_DECREF(rObj);
*** ../vim-7.4.062/src/testdir/test86.in 2013-07-13 14:00:31.000000000 +0200
--- src/testdir/test86.in 2013-11-04 00:27:11.000000000 +0100
***************
*** 1088,1093 ****
--- 1088,1096 ----
stringtochars_test('d.get(%s)')
ee('d.pop("a")')
ee('dl.pop("a")')
+ cb.append(">> DictionaryContains")
+ ee('"" in d')
+ ee('0 in d')
cb.append(">> DictionaryIterNext")
ee('for i in ned: ned["a"] = 1')
del i
*** ../vim-7.4.062/src/testdir/test86.ok 2013-06-23 16:38:39.000000000 +0200
--- src/testdir/test86.ok 2013-11-04 00:27:11.000000000 +0100
***************
*** 516,521 ****
--- 516,524 ----
<<< Finished
d.pop("a"):KeyError:('a',)
dl.pop("a"):error:('dictionary is locked',)
+ >> DictionaryContains
+ "" in d:ValueError:('empty keys are not allowed',)
+ 0 in d:TypeError:('expected str() or unicode() instance, but got int',)
>> DictionaryIterNext
for i in ned: ned["a"] = 1:RuntimeError:('hashtab changed during iteration',)
>> DictionaryAssItem
*** ../vim-7.4.062/src/testdir/test87.in 2013-07-06 13:41:30.000000000 +0200
--- src/testdir/test87.in 2013-11-04 00:27:11.000000000 +0100
***************
*** 1039,1044 ****
--- 1039,1047 ----
stringtochars_test('d.get(%s)')
ee('d.pop("a")')
ee('dl.pop("a")')
+ cb.append(">> DictionaryContains")
+ ee('"" in d')
+ ee('0 in d')
cb.append(">> DictionaryIterNext")
ee('for i in ned: ned["a"] = 1')
del i
*** ../vim-7.4.062/src/testdir/test87.ok 2013-06-23 16:38:39.000000000 +0200
--- src/testdir/test87.ok 2013-11-04 00:27:11.000000000 +0100
***************
*** 505,510 ****
--- 505,513 ----
<<< Finished
d.pop("a"):(<class 'KeyError'>, KeyError('a',))
dl.pop("a"):(<class 'vim.error'>, error('dictionary is locked',))
+ >> DictionaryContains
+ "" in d:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
+ 0 in d:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
>> DictionaryIterNext
for i in ned: ned["a"] = 1:(<class 'RuntimeError'>, RuntimeError('hashtab changed during iteration',))
>> DictionaryAssItem
*** ../vim-7.4.062/src/version.c 2013-11-03 20:26:27.000000000 +0100
--- src/version.c 2013-11-04 00:26:39.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 63,
/**/
--
A parent can be arrested if his child cannot hold back a burp during a church
service.
[real standing law in Nebraska, 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 ///

BIN
7.4.064

Binary file not shown.

70
7.4.065
View File

@ -1,70 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.065
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.065
Problem: When recording, the character typed at the hit-enter prompt is
recorded twice. (Urtica Dioica)
Solution: Avoid recording the character twice. (Christian Brabandt)
Files: src/message.c
*** ../vim-7.4.064/src/message.c 2013-08-09 20:30:45.000000000 +0200
--- src/message.c 2013-11-04 01:56:09.000000000 +0100
***************
*** 887,892 ****
--- 887,894 ----
int oldState;
int tmpState;
int had_got_int;
+ int save_Recording;
+ FILE *save_scriptout;
if (redraw == TRUE)
must_redraw = CLEAR;
***************
*** 957,967 ****
--- 959,979 ----
* typeahead buffer. */
++no_mapping;
++allow_keys;
+
+ /* Temporarily disable Recording. If Recording is active, the
+ * character will be recorded later, since it will be added to the
+ * typebuf after the loop */
+ save_Recording = Recording;
+ save_scriptout = scriptout;
+ Recording = FALSE;
+ scriptout = NULL;
c = safe_vgetc();
if (had_got_int && !global_busy)
got_int = FALSE;
--no_mapping;
--allow_keys;
+ Recording = save_Recording;
+ scriptout = save_scriptout;
#ifdef FEAT_CLIPBOARD
/* Strange way to allow copying (yanking) a modeless selection at
*** ../vim-7.4.064/src/version.c 2013-11-04 01:41:11.000000000 +0100
--- src/version.c 2013-11-04 01:53:19.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 65,
/**/
--
Zen Microsystems: we're the om in .commmmmmmmm
/// 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 ///

354
7.4.066
View File

@ -1,354 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.066
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.066
Problem: MS-Windows: When there is a colon in the file name (sub-stream
feature) the swap file name is wrong.
Solution: Change the colon to "%". (Yasuhiro Matsumoto)
Files: src/fileio.c, src/memline.c, src/misc1.c, src/proto/misc1.pro
*** ../vim-7.4.065/src/memline.c 2013-05-06 04:01:02.000000000 +0200
--- src/memline.c 2013-11-04 02:52:44.000000000 +0100
***************
*** 4014,4019 ****
--- 4014,4026 ----
else
retval = concat_fnames(dname, tail, TRUE);
+ #ifdef WIN3264
+ if (retval != NULL)
+ for (t = gettail(retval); *t != NUL; mb_ptr_adv(t))
+ if (*t == ':')
+ *t = '%';
+ #endif
+
return retval;
}
***************
*** 4137,4148 ****
#ifndef SHORT_FNAME
int r;
#endif
#if !defined(SHORT_FNAME) \
! && ((!defined(UNIX) && !defined(OS2)) || defined(ARCHIE))
# define CREATE_DUMMY_FILE
FILE *dummyfd = NULL;
/*
* If we start editing a new file, e.g. "test.doc", which resides on an
* MSDOS compatible filesystem, it is possible that the file
--- 4144,4172 ----
#ifndef SHORT_FNAME
int r;
#endif
+ char_u *buf_fname = buf->b_fname;
#if !defined(SHORT_FNAME) \
! && ((!defined(UNIX) && !defined(OS2)) || defined(ARCHIE))
# define CREATE_DUMMY_FILE
FILE *dummyfd = NULL;
+ # ifdef WIN3264
+ if (buf_fname != NULL && !mch_isFullName(buf_fname)
+ && vim_strchr(gettail(buf_fname), ':'))
+ {
+ char_u *t;
+
+ buf_fname = vim_strsave(buf_fname);
+ if (buf_fname == NULL)
+ buf_fname = buf->b_fname;
+ else
+ for (t = gettail(buf_fname); *t != NUL; mb_ptr_adv(t))
+ if (*t == ':')
+ *t = '%';
+ }
+ # endif
+
/*
* If we start editing a new file, e.g. "test.doc", which resides on an
* MSDOS compatible filesystem, it is possible that the file
***************
*** 4150,4158 ****
* this problem we temporarily create "test.doc". Don't do this when the
* check below for a 8.3 file name is used.
*/
! if (!(buf->b_p_sn || buf->b_shortname) && buf->b_fname != NULL
! && mch_getperm(buf->b_fname) < 0)
! dummyfd = mch_fopen((char *)buf->b_fname, "w");
#endif
/*
--- 4174,4182 ----
* this problem we temporarily create "test.doc". Don't do this when the
* check below for a 8.3 file name is used.
*/
! if (!(buf->b_p_sn || buf->b_shortname) && buf_fname != NULL
! && mch_getperm(buf_fname) < 0)
! dummyfd = mch_fopen((char *)buf_fname, "w");
#endif
/*
***************
*** 4171,4177 ****
if (dir_name == NULL) /* out of memory */
fname = NULL;
else
! fname = makeswapname(buf->b_fname, buf->b_ffname, buf, dir_name);
for (;;)
{
--- 4195,4201 ----
if (dir_name == NULL) /* out of memory */
fname = NULL;
else
! fname = makeswapname(buf_fname, buf->b_ffname, buf, dir_name);
for (;;)
{
***************
*** 4204,4210 ****
* It either contains two dots, is longer than 8 chars, or starts
* with a dot.
*/
! tail = gettail(buf->b_fname);
if ( vim_strchr(tail, '.') != NULL
|| STRLEN(tail) > (size_t)8
|| *gettail(fname) == '.')
--- 4228,4234 ----
* It either contains two dots, is longer than 8 chars, or starts
* with a dot.
*/
! tail = gettail(buf_fname);
if ( vim_strchr(tail, '.') != NULL
|| STRLEN(tail) > (size_t)8
|| *gettail(fname) == '.')
***************
*** 4273,4279 ****
{
buf->b_shortname = TRUE;
vim_free(fname);
! fname = makeswapname(buf->b_fname, buf->b_ffname,
buf, dir_name);
continue; /* try again with b_shortname set */
}
--- 4297,4303 ----
{
buf->b_shortname = TRUE;
vim_free(fname);
! fname = makeswapname(buf_fname, buf->b_ffname,
buf, dir_name);
continue; /* try again with b_shortname set */
}
***************
*** 4344,4350 ****
{
buf->b_shortname = TRUE;
vim_free(fname);
! fname = makeswapname(buf->b_fname, buf->b_ffname,
buf, dir_name);
continue; /* try again with '.' replaced with '_' */
}
--- 4368,4374 ----
{
buf->b_shortname = TRUE;
vim_free(fname);
! fname = makeswapname(buf_fname, buf->b_ffname,
buf, dir_name);
continue; /* try again with '.' replaced with '_' */
}
***************
*** 4356,4362 ****
* viewing a help file or when the path of the file is different
* (happens when all .swp files are in one directory).
*/
! if (!recoverymode && buf->b_fname != NULL
&& !buf->b_help && !(buf->b_flags & BF_DUMMY))
{
int fd;
--- 4380,4386 ----
* viewing a help file or when the path of the file is different
* (happens when all .swp files are in one directory).
*/
! if (!recoverymode && buf_fname != NULL
&& !buf->b_help && !(buf->b_flags & BF_DUMMY))
{
int fd;
***************
*** 4433,4439 ****
{
fclose(dummyfd);
dummyfd = NULL;
! mch_remove(buf->b_fname);
did_use_dummy = TRUE;
}
#endif
--- 4457,4463 ----
{
fclose(dummyfd);
dummyfd = NULL;
! mch_remove(buf_fname);
did_use_dummy = TRUE;
}
#endif
***************
*** 4448,4454 ****
* user anyway.
*/
if (swap_exists_action != SEA_NONE
! && has_autocmd(EVENT_SWAPEXISTS, buf->b_fname, buf))
choice = do_swapexists(buf, fname);
if (choice == 0)
--- 4472,4478 ----
* user anyway.
*/
if (swap_exists_action != SEA_NONE
! && has_autocmd(EVENT_SWAPEXISTS, buf_fname, buf))
choice = do_swapexists(buf, fname);
if (choice == 0)
***************
*** 4549,4555 ****
#ifdef CREATE_DUMMY_FILE
/* Going to try another name, need the dummy file again. */
if (did_use_dummy)
! dummyfd = mch_fopen((char *)buf->b_fname, "w");
#endif
}
}
--- 4573,4579 ----
#ifdef CREATE_DUMMY_FILE
/* Going to try another name, need the dummy file again. */
if (did_use_dummy)
! dummyfd = mch_fopen((char *)buf_fname, "w");
#endif
}
}
***************
*** 4581,4589 ****
if (dummyfd != NULL) /* file has been created temporarily */
{
fclose(dummyfd);
! mch_remove(buf->b_fname);
}
#endif
return fname;
}
--- 4605,4617 ----
if (dummyfd != NULL) /* file has been created temporarily */
{
fclose(dummyfd);
! mch_remove(buf_fname);
}
#endif
+ #ifdef WIN3264
+ if (buf_fname != buf->b_fname)
+ vim_free(buf_fname);
+ #endif
return fname;
}
*** ../vim-7.4.065/src/misc1.c 2013-10-06 17:46:48.000000000 +0200
--- src/misc1.c 2013-11-04 02:44:28.000000000 +0100
***************
*** 4808,4816 ****
if (fname == NULL)
return (char_u *)"";
! for (p1 = p2 = fname; *p2; ) /* find last part of path */
{
! if (vim_ispathsep(*p2))
p1 = p2 + 1;
mb_ptr_adv(p2);
}
--- 4808,4816 ----
if (fname == NULL)
return (char_u *)"";
! for (p1 = p2 = get_past_head(fname); *p2; ) /* find last part of path */
{
! if (vim_ispathsep_nocolon(*p2))
p1 = p2 + 1;
mb_ptr_adv(p2);
}
***************
*** 4929,4935 ****
}
/*
! * return TRUE if 'c' is a path separator.
*/
int
vim_ispathsep(c)
--- 4929,4936 ----
}
/*
! * Return TRUE if 'c' is a path separator.
! * Note that for MS-Windows this includes the colon.
*/
int
vim_ispathsep(c)
***************
*** 4952,4957 ****
--- 4953,4972 ----
#endif
}
+ /*
+ * Like vim_ispathsep(c), but exclude the colon for MS-Windows.
+ */
+ int
+ vim_ispathsep_nocolon(c)
+ int c;
+ {
+ return vim_ispathsep(c)
+ #ifdef BACKSLASH_IN_FILENAME
+ && c != ':'
+ #endif
+ ;
+ }
+
#if defined(FEAT_SEARCHPATH) || defined(PROTO)
/*
* return TRUE if 'c' is a path list separator.
*** ../vim-7.4.065/src/proto/misc1.pro 2013-08-10 13:37:20.000000000 +0200
--- src/proto/misc1.pro 2013-11-04 02:44:30.000000000 +0100
***************
*** 69,74 ****
--- 69,75 ----
char_u *getnextcomp __ARGS((char_u *fname));
char_u *get_past_head __ARGS((char_u *path));
int vim_ispathsep __ARGS((int c));
+ int vim_ispathsep_nocolon __ARGS((int c));
int vim_ispathlistsep __ARGS((int c));
void shorten_dir __ARGS((char_u *str));
int dir_of_file_exists __ARGS((char_u *fname));
*** ../vim-7.4.065/src/version.c 2013-11-04 02:00:55.000000000 +0100
--- src/version.c 2013-11-04 02:50:35.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 66,
/**/
--
Females are strictly forbidden to appear unshaven in public.
[real standing law in New Mexico, 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 ///

126
7.4.067
View File

@ -1,126 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.067
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.067
Problem: After inserting comment leader, CTRL-\ CTRL-O does move the
cursor. (Wiktor Ruben)
Solution: Avoid moving the cursor. (Christian Brabandt)
Files: src/edit.c
*** ../vim-7.4.066/src/edit.c 2013-09-08 20:00:45.000000000 +0200
--- src/edit.c 2013-11-04 03:57:43.000000000 +0100
***************
*** 199,205 ****
static void spell_back_to_badword __ARGS((void));
static int spell_bad_len = 0; /* length of located bad word */
#endif
! static void stop_insert __ARGS((pos_T *end_insert_pos, int esc));
static int echeck_abbr __ARGS((int));
static int replace_pop __ARGS((void));
static void replace_join __ARGS((int off));
--- 199,205 ----
static void spell_back_to_badword __ARGS((void));
static int spell_bad_len = 0; /* length of located bad word */
#endif
! static void stop_insert __ARGS((pos_T *end_insert_pos, int esc, int nomove));
static int echeck_abbr __ARGS((int));
static int replace_pop __ARGS((void));
static void replace_join __ARGS((int off));
***************
*** 6698,6704 ****
if (!arrow_used) /* something has been inserted */
{
AppendToRedobuff(ESC_STR);
! stop_insert(end_insert_pos, FALSE);
arrow_used = TRUE; /* this means we stopped the current insert */
}
#ifdef FEAT_SPELL
--- 6698,6704 ----
if (!arrow_used) /* something has been inserted */
{
AppendToRedobuff(ESC_STR);
! stop_insert(end_insert_pos, FALSE, FALSE);
arrow_used = TRUE; /* this means we stopped the current insert */
}
#ifdef FEAT_SPELL
***************
*** 6787,6795 ****
* to another window/buffer.
*/
static void
! stop_insert(end_insert_pos, esc)
pos_T *end_insert_pos;
int esc; /* called by ins_esc() */
{
int cc;
char_u *ptr;
--- 6787,6796 ----
* to another window/buffer.
*/
static void
! stop_insert(end_insert_pos, esc, nomove)
pos_T *end_insert_pos;
int esc; /* called by ins_esc() */
+ int nomove; /* <c-\><c-o>, don't move cursor */
{
int cc;
char_u *ptr;
***************
*** 6860,6866 ****
* Do this when ESC was used or moving the cursor up/down.
* Check for the old position still being valid, just in case the text
* got changed unexpectedly. */
! if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL
&& curwin->w_cursor.lnum != end_insert_pos->lnum))
&& end_insert_pos->lnum <= curbuf->b_ml.ml_line_count)
{
--- 6861,6867 ----
* Do this when ESC was used or moving the cursor up/down.
* Check for the old position still being valid, just in case the text
* got changed unexpectedly. */
! if (!nomove && did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL
&& curwin->w_cursor.lnum != end_insert_pos->lnum))
&& end_insert_pos->lnum <= curbuf->b_ml.ml_line_count)
{
***************
*** 8377,8383 ****
disabled_redraw = TRUE;
return FALSE; /* repeat the insert */
}
! stop_insert(&curwin->w_cursor, TRUE);
undisplay_dollar();
}
--- 8378,8384 ----
disabled_redraw = TRUE;
return FALSE; /* repeat the insert */
}
! stop_insert(&curwin->w_cursor, TRUE, nomove);
undisplay_dollar();
}
*** ../vim-7.4.066/src/version.c 2013-11-04 02:53:46.000000000 +0100
--- src/version.c 2013-11-04 03:57:29.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 67,
/**/
--
Beer & pretzels can't be served at the same time in any bar or restaurant.
[real standing law in North Dakota, 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 ///

131
7.4.068
View File

@ -1,131 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.068
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.068
Problem: Cannot build Vim on Mac with non-Apple compilers.
Solution: Remove the -no-cpp-precomp flag. (Misty De Meo)
Files: src/configure.in, src/auto/configure, src/osdef.sh
*** ../vim-7.4.067/src/configure.in 2013-11-03 20:26:26.000000000 +0100
--- src/configure.in 2013-11-04 04:53:51.000000000 +0100
***************
*** 204,210 ****
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
dnl TODO: use -arch i386 on Intel machines
! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
dnl If Carbon is found, assume we don't want X11
dnl unless it was specifically asked for (--with-x)
--- 204,211 ----
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
dnl TODO: use -arch i386 on Intel machines
! dnl Removed -no-cpp-precomp, only for very old compilers.
! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
dnl If Carbon is found, assume we don't want X11
dnl unless it was specifically asked for (--with-x)
***************
*** 262,269 ****
])
if test "$GCC" = yes -a "$local_dir" != no; then
echo 'void f(){}' > conftest.c
! dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
! have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
rm -f conftest.c conftest.o
fi
--- 263,270 ----
])
if test "$GCC" = yes -a "$local_dir" != no; then
echo 'void f(){}' > conftest.c
! dnl Removed -no-cpp-precomp, only needed for OS X 10.2 (Ben Fowler)
! have_local_include=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
rm -f conftest.c conftest.o
fi
*** ../vim-7.4.067/src/auto/configure 2013-11-03 20:26:27.000000000 +0100
--- src/auto/configure 2013-11-04 04:54:16.000000000 +0100
***************
*** 4221,4227 ****
MACOSX=yes
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
--- 4221,4227 ----
MACOSX=yes
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
***************
*** 4311,4317 ****
if test "$GCC" = yes -a "$local_dir" != no; then
echo 'void f(){}' > conftest.c
! have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
rm -f conftest.c conftest.o
fi
--- 4311,4317 ----
if test "$GCC" = yes -a "$local_dir" != no; then
echo 'void f(){}' > conftest.c
! have_local_include=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
rm -f conftest.c conftest.o
fi
*** ../vim-7.4.067/src/osdef.sh 2010-05-15 13:04:08.000000000 +0200
--- src/osdef.sh 2013-11-04 04:51:36.000000000 +0100
***************
*** 47,57 ****
#endif
EOF
! # Mac uses precompiled headers, but we need real headers here.
! case `uname` in
! Darwin) $CC -I. -I$srcdir -E -no-cpp-precomp osdef0.c >osdef0.cc;;
! *) $CC -I. -I$srcdir -E osdef0.c >osdef0.cc;;
! esac
# insert a space in front of each line, so that a function name at the
# start of the line is matched with "[)*, ]\1[ (]"
--- 47,53 ----
#endif
EOF
! $CC -I. -I$srcdir -E osdef0.c >osdef0.cc
# insert a space in front of each line, so that a function name at the
# start of the line is matched with "[)*, ]\1[ (]"
*** ../vim-7.4.067/src/version.c 2013-11-04 04:20:28.000000000 +0100
--- src/version.c 2013-11-04 04:51:51.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 68,
/**/
--
Violators can be fined, arrested or jailed for making ugly faces at a dog.
[real standing law in Oklahoma, 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 ///

2559
7.4.069

File diff suppressed because it is too large Load Diff

47
7.4.070
View File

@ -1,47 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.070
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.070 (after 7.4.069)
Problem: Can't compile with tiny features. (Tony Mechelynck)
Solution: Add #ifdef.
Files: src/buffer.c
*** ../vim-7.4.069/src/buffer.c 2013-11-05 07:12:59.000000000 +0100
--- src/buffer.c 2013-11-05 17:37:27.000000000 +0100
***************
*** 213,219 ****
--- 213,221 ----
if (curbuf->b_flags & BF_NEVERLOADED)
{
(void)buf_init_chartab(curbuf, FALSE);
+ #ifdef FEAT_CINDENT
parse_cino(curbuf);
+ #endif
}
/*
*** ../vim-7.4.069/src/version.c 2013-11-05 07:12:59.000000000 +0100
--- src/version.c 2013-11-05 17:38:56.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 70,
/**/
--
No man may purchase alcohol without written consent from his wife.
[real standing law in Pennsylvania, 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 ///

1302
7.4.071

File diff suppressed because it is too large Load Diff

61
7.4.072
View File

@ -1,61 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.072
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.072
Problem: Crash when using Insert mode completion.
Solution: Avoid going past the end of pum_array. (idea by Fransisco Lopes)
Files: src/popupmnu.c
*** ../vim-7.4.071/src/popupmnu.c 2011-08-17 18:04:28.000000000 +0200
--- src/popupmnu.c 2013-11-02 04:01:06.000000000 +0100
***************
*** 282,287 ****
--- 282,291 ----
int round;
int n;
+ /* Never display more than we have */
+ if (pum_first > pum_size - pum_height)
+ pum_first = pum_size - pum_height;
+
if (pum_scrollbar)
{
thumb_heigth = pum_height * pum_height / pum_size;
***************
*** 672,681 ****
#endif
}
- /* Never display more than we have */
- if (pum_first > pum_size - pum_height)
- pum_first = pum_size - pum_height;
-
if (!resized)
pum_redraw();
--- 676,681 ----
*** ../vim-7.4.071/src/version.c 2013-11-06 04:01:31.000000000 +0100
--- src/version.c 2013-11-06 04:03:18.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 72,
/**/
--
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 ///

404
7.4.073
View File

@ -1,404 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.073
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.073
Problem: Setting undolevels for one buffer changes undo in another.
Solution: Make 'undolevels' a global-local option. (Christian Brabandt)
Files: runtime/doc/options.txt, src/buffer.c, src/option.c, src/option.h
src/structs.h, src/undo.c
*** ../vim-7.4.072/runtime/doc/options.txt 2013-08-10 13:24:57.000000000 +0200
--- runtime/doc/options.txt 2013-11-06 04:18:43.000000000 +0100
***************
*** 7594,7600 ****
*'undolevels'* *'ul'*
'undolevels' 'ul' number (default 100, 1000 for Unix, VMS,
Win32 and OS/2)
! global
{not in Vi}
Maximum number of changes that can be undone. Since undo information
is kept in memory, higher numbers will cause more memory to be used
--- 7594,7600 ----
*'undolevels'* *'ul'*
'undolevels' 'ul' number (default 100, 1000 for Unix, VMS,
Win32 and OS/2)
! global or local to buffer |global-local|
{not in Vi}
Maximum number of changes that can be undone. Since undo information
is kept in memory, higher numbers will cause more memory to be used
***************
*** 7605,7612 ****
< But you can also get Vi compatibility by including the 'u' flag in
'cpoptions', and still be able to use CTRL-R to repeat undo.
Also see |undo-two-ways|.
! Set to a negative number for no undo at all: >
! set ul=-1
< This helps when you run out of memory for a single change.
Also see |clear-undo|.
--- 7605,7613 ----
< But you can also get Vi compatibility by including the 'u' flag in
'cpoptions', and still be able to use CTRL-R to repeat undo.
Also see |undo-two-ways|.
! Set to -1 for no undo at all. You might want to do this only for the
! current buffer: >
! setlocal ul=-1
< This helps when you run out of memory for a single change.
Also see |clear-undo|.
*** ../vim-7.4.072/src/buffer.c 2013-11-05 17:40:47.000000000 +0100
--- src/buffer.c 2013-11-06 04:25:27.000000000 +0100
***************
*** 1949,1954 ****
--- 1949,1955 ----
clear_string_option(&buf->b_p_qe);
#endif
buf->b_p_ar = -1;
+ buf->b_p_ul = NO_LOCAL_UNDOLEVEL;
}
/*
*** ../vim-7.4.072/src/option.c 2013-11-05 07:12:59.000000000 +0100
--- src/option.c 2013-11-06 04:34:23.000000000 +0100
***************
*** 234,239 ****
--- 234,240 ----
#ifdef FEAT_STL_OPT
# define PV_STL OPT_BOTH(OPT_WIN(WV_STL))
#endif
+ #define PV_UL OPT_BOTH(OPT_BUF(BV_UL))
#ifdef FEAT_WINDOWS
# define PV_WFH OPT_WIN(WV_WFH)
#endif
***************
*** 2683,2689 ****
#endif
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"undolevels", "ul", P_NUM|P_VI_DEF,
! (char_u *)&p_ul, PV_NONE,
{
#if defined(UNIX) || defined(WIN3264) || defined(OS2) || defined(VMS)
(char_u *)1000L,
--- 2684,2690 ----
#endif
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"undolevels", "ul", P_NUM|P_VI_DEF,
! (char_u *)&p_ul, PV_UL,
{
#if defined(UNIX) || defined(WIN3264) || defined(OS2) || defined(VMS)
(char_u *)1000L,
***************
*** 3313,3318 ****
--- 3314,3320 ----
curbuf->b_p_initialized = TRUE;
curbuf->b_p_ar = -1; /* no local 'autoread' value */
+ curbuf->b_p_ul = NO_LOCAL_UNDOLEVEL;
check_buf_options(curbuf);
check_win_options(curwin);
check_options();
***************
*** 4512,4519 ****
((flags & P_VI_DEF) || cp_val)
? VI_DEFAULT : VIM_DEFAULT];
else if (nextchar == '<')
! value = *(long *)get_varp_scope(&(options[opt_idx]),
! OPT_GLOBAL);
else if (((long *)varp == &p_wc
|| (long *)varp == &p_wcm)
&& (*arg == '<'
--- 4514,4529 ----
((flags & P_VI_DEF) || cp_val)
? VI_DEFAULT : VIM_DEFAULT];
else if (nextchar == '<')
! {
! /* For 'undolevels' NO_LOCAL_UNDOLEVEL means to
! * use the global value. */
! if ((long *)varp == &curbuf->b_p_ul
! && opt_flags == OPT_LOCAL)
! value = NO_LOCAL_UNDOLEVEL;
! else
! value = *(long *)get_varp_scope(
! &(options[opt_idx]), OPT_GLOBAL);
! }
else if (((long *)varp == &p_wc
|| (long *)varp == &p_wcm)
&& (*arg == '<'
***************
*** 8487,8492 ****
--- 8497,8509 ----
u_sync(TRUE);
p_ul = value;
}
+ else if (pp == &curbuf->b_p_ul)
+ {
+ /* use the old value, otherwise u_sync() may not work properly */
+ curbuf->b_p_ul = old_value;
+ u_sync(TRUE);
+ curbuf->b_p_ul = value;
+ }
#ifdef FEAT_LINEBREAK
/* 'numberwidth' must be positive */
***************
*** 9720,9726 ****
/*
* Unset local option value, similar to ":set opt<".
*/
-
void
unset_global_local_option(name, from)
char_u *name;
--- 9737,9742 ----
***************
*** 9793,9798 ****
--- 9809,9817 ----
clear_string_option(&((win_T *)from)->w_p_stl);
break;
#endif
+ case PV_UL:
+ buf->b_p_ul = NO_LOCAL_UNDOLEVEL;
+ break;
}
}
***************
*** 9841,9846 ****
--- 9860,9866 ----
#ifdef FEAT_STL_OPT
case PV_STL: return (char_u *)&(curwin->w_p_stl);
#endif
+ case PV_UL: return (char_u *)&(curbuf->b_p_ul);
}
return NULL; /* "cannot happen" */
}
***************
*** 9905,9910 ****
--- 9925,9932 ----
case PV_STL: return *curwin->w_p_stl != NUL
? (char_u *)&(curwin->w_p_stl) : p->var;
#endif
+ case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL
+ ? (char_u *)&(curbuf->b_p_ul) : p->var;
#ifdef FEAT_ARABIC
case PV_ARAB: return (char_u *)&(curwin->w_p_arab);
***************
*** 10445,10450 ****
--- 10467,10473 ----
/* options that are normally global but also have a local value
* are not copied, start using the global value */
buf->b_p_ar = -1;
+ buf->b_p_ul = NO_LOCAL_UNDOLEVEL;
#ifdef FEAT_QUICKFIX
buf->b_p_gp = empty_option;
buf->b_p_mp = empty_option;
*** ../vim-7.4.072/src/option.h 2013-06-26 18:41:39.000000000 +0200
--- src/option.h 2013-11-06 04:17:40.000000000 +0100
***************
*** 1031,1036 ****
--- 1031,1037 ----
, BV_TW
, BV_TX
, BV_UDF
+ , BV_UL
, BV_WM
, BV_COUNT /* must be the last one */
};
***************
*** 1109,1111 ****
--- 1110,1115 ----
, WV_WRAP
, WV_COUNT /* must be the last one */
};
+
+ /* Value for b_p_ul indicating the global value must be used. */
+ #define NO_LOCAL_UNDOLEVEL -123456
*** ../vim-7.4.072/src/structs.h 2013-11-05 07:12:59.000000000 +0100
--- src/structs.h 2013-11-06 04:26:17.000000000 +0100
***************
*** 1627,1632 ****
--- 1627,1633 ----
char_u *b_p_dict; /* 'dictionary' local value */
char_u *b_p_tsr; /* 'thesaurus' local value */
#endif
+ long b_p_ul; /* 'undolevels' local value */
#ifdef FEAT_PERSISTENT_UNDO
int b_p_udf; /* 'undofile' */
#endif
*** ../vim-7.4.072/src/undo.c 2013-09-08 15:40:45.000000000 +0200
--- src/undo.c 2013-11-06 04:33:12.000000000 +0100
***************
*** 83,88 ****
--- 83,89 ----
#include "vim.h"
+ static long get_undolevel __ARGS((void));
static void u_unch_branch __ARGS((u_header_T *uhp));
static u_entry_T *u_get_headentry __ARGS((void));
static void u_getbot __ARGS((void));
***************
*** 336,341 ****
--- 337,353 ----
}
/*
+ * Get the undolevle value for the current buffer.
+ */
+ static long
+ get_undolevel()
+ {
+ if (curbuf->b_p_ul == NO_LOCAL_UNDOLEVEL)
+ return p_ul;
+ return curbuf->b_p_ul;
+ }
+
+ /*
* Common code for various ways to save text before a change.
* "top" is the line above the first changed line.
* "bot" is the line below the last changed line.
***************
*** 419,425 ****
curbuf->b_new_change = TRUE;
#endif
! if (p_ul >= 0)
{
/*
* Make a new header entry. Do this first so that we don't mess
--- 431,437 ----
curbuf->b_new_change = TRUE;
#endif
! if (get_undolevel() >= 0)
{
/*
* Make a new header entry. Do this first so that we don't mess
***************
*** 449,455 ****
/*
* free headers to keep the size right
*/
! while (curbuf->b_u_numhead > p_ul && curbuf->b_u_oldhead != NULL)
{
u_header_T *uhfree = curbuf->b_u_oldhead;
--- 461,468 ----
/*
* free headers to keep the size right
*/
! while (curbuf->b_u_numhead > get_undolevel()
! && curbuf->b_u_oldhead != NULL)
{
u_header_T *uhfree = curbuf->b_u_oldhead;
***************
*** 530,536 ****
}
else
{
! if (p_ul < 0) /* no undo at all */
return OK;
/*
--- 543,549 ----
}
else
{
! if (get_undolevel() < 0) /* no undo at all */
return OK;
/*
***************
*** 1972,1978 ****
{
if (curbuf->b_u_curhead == NULL) /* first undo */
curbuf->b_u_curhead = curbuf->b_u_newhead;
! else if (p_ul > 0) /* multi level undo */
/* get next undo */
curbuf->b_u_curhead = curbuf->b_u_curhead->uh_next.ptr;
/* nothing to undo */
--- 1985,1991 ----
{
if (curbuf->b_u_curhead == NULL) /* first undo */
curbuf->b_u_curhead = curbuf->b_u_newhead;
! else if (get_undolevel() > 0) /* multi level undo */
/* get next undo */
curbuf->b_u_curhead = curbuf->b_u_curhead->uh_next.ptr;
/* nothing to undo */
***************
*** 1993,1999 ****
}
else
{
! if (curbuf->b_u_curhead == NULL || p_ul <= 0)
{
beep_flush(); /* nothing to redo */
if (count == startcount - 1)
--- 2006,2012 ----
}
else
{
! if (curbuf->b_u_curhead == NULL || get_undolevel() <= 0)
{
beep_flush(); /* nothing to redo */
if (count == startcount - 1)
***************
*** 2751,2757 ****
if (im_is_preediting())
return; /* XIM is busy, don't break an undo sequence */
#endif
! if (p_ul < 0)
curbuf->b_u_synced = TRUE; /* no entries, nothing to do */
else
{
--- 2764,2770 ----
if (im_is_preediting())
return; /* XIM is busy, don't break an undo sequence */
#endif
! if (get_undolevel() < 0)
curbuf->b_u_synced = TRUE; /* no entries, nothing to do */
else
{
***************
*** 2911,2917 ****
}
if (!curbuf->b_u_synced)
return; /* already unsynced */
! if (p_ul < 0)
return; /* no entries, nothing to do */
else
{
--- 2924,2930 ----
}
if (!curbuf->b_u_synced)
return; /* already unsynced */
! if (get_undolevel() < 0)
return; /* no entries, nothing to do */
else
{
*** ../vim-7.4.072/src/version.c 2013-11-06 04:04:29.000000000 +0100
--- src/version.c 2013-11-06 05:21:43.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 73,
/**/
--
Living on Earth includes an annual free trip around the Sun.
/// 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.074
View File

@ -1,67 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.074
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.074
Problem: When undo'ing all changes and creating a new change the undo
structure is incorrect. (Christian Brabandt)
Solution: When deleting the branch starting at the old header, delete the
whole branch, not just the first entry.
Files: src/undo.c
*** ../vim-7.4.073/src/undo.c 2013-11-06 05:26:08.000000000 +0100
--- src/undo.c 2013-11-07 03:01:42.000000000 +0100
***************
*** 3121,3127 ****
* all the pointers. */
if (uhp == buf->b_u_oldhead)
{
! u_freeheader(buf, uhp, uhpp);
return;
}
--- 3121,3128 ----
* all the pointers. */
if (uhp == buf->b_u_oldhead)
{
! while (buf->b_u_oldhead != NULL)
! u_freeheader(buf, buf->b_u_oldhead, uhpp);
return;
}
*** ../vim-7.4.073/src/version.c 2013-11-06 05:26:08.000000000 +0100
--- src/version.c 2013-11-07 03:03:02.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 74,
/**/
--
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 ///

290
7.4.075
View File

@ -1,290 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.075
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.075
Problem: Locally setting 'undolevels' is not tested.
Solution: Add a test. (Christian Brabandt)
Files: src/testdir/test100.in, src/testdir/test100.ok,
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/Makefile
*** ../vim-7.4.074/src/testdir/test100.in 2013-11-07 03:24:56.000000000 +0100
--- src/testdir/test100.in 2013-11-07 03:20:32.000000000 +0100
***************
*** 0 ****
--- 1,42 ----
+ Tests for 'undolevel' setting being global-local
+
+ STARTTEST
+ :so small.vim
+ :set nocompatible viminfo+=nviminfo ul=5
+ :fu! FillBuffer()
+ :for i in range(1,13)
+ :put=i
+ :exe "setg ul=" . &g:ul
+ :endfor
+ :endfu
+ :fu! UndoLevel()
+ :redir @a | setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |redir end
+ :$put a
+ :endfu
+ :new one
+ :0put ='ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'
+ :call FillBuffer()
+ :call feedkeys(":earlier 10\n", 't')
+ :call UndoLevel()
+ :%w! test.out
+ :new two
+ :0put ='TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)'
+ :setlocal ul=2
+ :call FillBuffer()
+ :call feedkeys(":earlier 10\n", 't')
+ :call UndoLevel()
+ :setlocal ul=10
+ :call UndoLevel()
+ :%w >> test.out
+ :wincmd p
+ :redir >>test.out | echo "global value shouldn't be changed and still be 5!" | echo 'ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'|:setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |echo "" |redir end
+ :new three
+ :setglobal ul=50
+ :1put ='global value should be changed to 50'
+ :2put ='THREE: expecting global undolevels: 50, local undolevels: -123456 (default)'
+ :call UndoLevel()
+ :%w >> test.out
+ :"sleep 10
+ :qa!
+ ENDTEST
+
*** ../vim-7.4.074/src/testdir/test100.ok 2013-11-07 03:24:56.000000000 +0100
--- src/testdir/test100.ok 2013-11-07 03:11:51.000000000 +0100
***************
*** 0 ****
--- 1,41 ----
+ ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+
+
+ undolevels=5 global
+ undolevels=-123456 local
+ TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+
+
+ undolevels=5 global
+ undolevels=2 local
+
+ undolevels=5 global
+ undolevels=10 local
+
+ global value shouldn't be changed and still be 5!
+ ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
+ undolevels=5 global
+ undolevels=-123456 local
+
+ global value should be changed to 50
+ THREE: expecting global undolevels: 50, local undolevels: -123456 (default)
+
+ undolevels=50 global
+ undolevels=-123456 local
*** ../vim-7.4.074/src/testdir/Make_amiga.mak 2013-09-19 17:00:14.000000000 +0200
--- src/testdir/Make_amiga.mak 2013-11-07 03:07:57.000000000 +0100
***************
*** 34,40 ****
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
! test99.out
.SUFFIXES: .in .out
--- 34,40 ----
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
! test99.out test100.out
.SUFFIXES: .in .out
***************
*** 150,152 ****
--- 150,153 ----
test97.out: test97.in
test98.out: test98.in
test99.out: test99.in
+ test100.out: test100.in
*** ../vim-7.4.074/src/testdir/Make_dos.mak 2013-09-19 17:00:14.000000000 +0200
--- src/testdir/Make_dos.mak 2013-11-07 03:08:05.000000000 +0100
***************
*** 32,38 ****
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out
SCRIPTS32 = test50.out test70.out
--- 32,39 ----
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out \
! test100.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.074/src/testdir/Make_ming.mak 2013-09-19 17:00:14.000000000 +0200
--- src/testdir/Make_ming.mak 2013-11-07 03:08:12.000000000 +0100
***************
*** 52,58 ****
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out
SCRIPTS32 = test50.out test70.out
--- 52,59 ----
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out \
! test100out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.074/src/testdir/Make_os2.mak 2013-09-19 17:00:14.000000000 +0200
--- src/testdir/Make_os2.mak 2013-11-07 03:08:18.000000000 +0100
***************
*** 34,40 ****
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out
.SUFFIXES: .in .out
--- 34,41 ----
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
! test94.out test95.out test96.out test98.out test99.out \
! test100.out
.SUFFIXES: .in .out
*** ../vim-7.4.074/src/testdir/Make_vms.mms 2013-09-19 17:00:14.000000000 +0200
--- src/testdir/Make_vms.mms 2013-11-07 03:08:24.000000000 +0100
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2013 Sep 19
#
# 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: 2013 Nov 07
#
# 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.
***************
*** 78,84 ****
test77.out test78.out test79.out test80.out test81.out \
test82.out test83.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
! test95.out test96.out test97.out test98.out test99.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 78,85 ----
test77.out test78.out test79.out test80.out test81.out \
test82.out test83.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
! test95.out test96.out test97.out test98.out test99.out \
! test100.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.4.074/src/testdir/Makefile 2013-09-22 15:03:34.000000000 +0200
--- src/testdir/Makefile 2013-11-07 03:08:31.000000000 +0100
***************
*** 30,36 ****
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
! test99.out
SCRIPTS_GUI = test16.out
--- 30,36 ----
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
! test99.out test100.out
SCRIPTS_GUI = test16.out
*** ../vim-7.4.074/src/Makefile 2013-08-10 14:21:15.000000000 +0200
--- src/Makefile 2013-11-07 03:10:40.000000000 +0100
***************
*** 1882,1888 ****
test60 test61 test62 test63 test64 test65 test66 test67 test68 test69 \
test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \
test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \
! test90 test91 test92 test93 test94 test95 test96 test97 test98 test99:
cd testdir; rm $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET)
testclean:
--- 1883,1890 ----
test60 test61 test62 test63 test64 test65 test66 test67 test68 test69 \
test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \
test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \
! test90 test91 test92 test93 test94 test95 test96 test97 test98 test99 \
! test100 test101 test102 test103 test104 test105 test106 test107:
cd testdir; rm $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET)
testclean:
*** ../vim-7.4.074/src/version.c 2013-11-07 03:04:06.000000000 +0100
--- src/version.c 2013-11-07 03:10:10.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 75,
/**/
--
Why is "abbreviation" such a long word?
/// 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 ///

66
7.4.076
View File

@ -1,66 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.076
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.076
Problem: "cgn" does not wrap around the end of the file. (Dimitrov
Dimitrov)
Solution: Restore 'wrapscan' earlier. (Christian Brabandt)
Files: src/search.c
*** ../vim-7.4.075/src/search.c 2013-10-02 21:54:57.000000000 +0200
--- src/search.c 2013-11-07 04:38:46.000000000 +0100
***************
*** 4592,4598 ****
ml_get(curwin->w_buffer->b_ml.ml_line_count));
}
}
!
}
start_pos = pos;
--- 4592,4598 ----
ml_get(curwin->w_buffer->b_ml.ml_line_count));
}
}
! p_ws = old_p_ws;
}
start_pos = pos;
***************
*** 4607,4613 ****
if (!VIsual_active)
VIsual = start_pos;
- p_ws = old_p_ws;
curwin->w_cursor = pos;
VIsual_active = TRUE;
VIsual_mode = 'v';
--- 4607,4612 ----
*** ../vim-7.4.075/src/version.c 2013-11-07 03:25:51.000000000 +0100
--- src/version.c 2013-11-07 04:44:44.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 76,
/**/
--
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 ///

63
7.4.077
View File

@ -1,63 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.077
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.077
Problem: DOS installer creates shortcut without a path, resulting in the
current directory to be C:\Windows\system32.
Solution: Use environment variables.
Files: src/dosinst.c
*** ../vim-7.4.076/src/dosinst.c 2013-05-06 04:06:04.000000000 +0200
--- src/dosinst.c 2013-11-06 18:18:47.000000000 +0100
***************
*** 1773,1781 ****
/*
* We used to use "homedir" as the working directory, but that is a bad choice
! * on multi-user systems. Not specifying a directory appears to work best.
*/
! #define WORKDIR ""
/*
* Create shortcut(s) in the Start Menu\Programs\Vim folder.
--- 1773,1783 ----
/*
* We used to use "homedir" as the working directory, but that is a bad choice
! * on multi-user systems. However, not specifying a directory results in the
! * current directory to be c:\Windows\system32 on Windows 7. Use environment
! * variables instead.
*/
! #define WORKDIR "%HOMEDRIVE%%HOMEPATH%"
/*
* Create shortcut(s) in the Start Menu\Programs\Vim folder.
*** ../vim-7.4.076/src/version.c 2013-11-07 04:46:43.000000000 +0100
--- src/version.c 2013-11-07 04:47:42.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 77,
/**/
--
JOHN CLEESE PLAYED: SECOND SOLDIER WITH A KEEN INTEREST IN BIRDS, LARGE MAN
WITH DEAD BODY, BLACK KNIGHT, MR NEWT (A VILLAGE
BLACKSMITH INTERESTED IN BURNING WITCHES), A QUITE
EXTRAORDINARILY RUDE FRENCHMAN, TIM THE WIZARD, SIR
LAUNCELOT
"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 ///

114
7.4.078
View File

@ -1,114 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.078
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.078
Problem: MSVC 2013 is not supported.
Solution: Recognize and support MSVC 2013. (Ed Brown)
Files: src/Make_mvc.mak
*** ../vim-7.4.077/src/Make_mvc.mak 2013-07-09 13:13:12.000000000 +0200
--- src/Make_mvc.mak 2013-11-08 03:12:48.000000000 +0100
***************
*** 424,429 ****
--- 424,432 ----
!if "$(_NMAKE_VER)" == "11.00.60610.1"
MSVCVER = 11.0
!endif
+ !if "$(_NMAKE_VER)" == "12.00.21005.1"
+ MSVCVER = 12.0
+ !endif
!endif
# Abort building VIM if version of VC is unrecognised.
***************
*** 438,444 ****
!endif
# Convert processor ID to MVC-compatible number
! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0")
!if "$(CPUNR)" == "i386"
CPUARG = /G3
!elseif "$(CPUNR)" == "i486"
--- 441,447 ----
!endif
# Convert processor ID to MVC-compatible number
! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0")
!if "$(CPUNR)" == "i386"
CPUARG = /G3
!elseif "$(CPUNR)" == "i486"
***************
*** 472,478 ****
OPTFLAG = /Ox
!endif
! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0")
# Use link time code generation if not worried about size
!if "$(OPTIMIZE)" != "SPACE"
OPTFLAG = $(OPTFLAG) /GL
--- 475,481 ----
OPTFLAG = /Ox
!endif
! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0")
# Use link time code generation if not worried about size
!if "$(OPTIMIZE)" != "SPACE"
OPTFLAG = $(OPTFLAG) /GL
***************
*** 485,491 ****
!endif
# Static code analysis generally available starting with VS2012
! !if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0")
CFLAGS=$(CFLAGS) /analyze
!endif
--- 488,494 ----
!endif
# Static code analysis generally available starting with VS2012
! !if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0") && ("$(MSVCVER)" == "12.0")
CFLAGS=$(CFLAGS) /analyze
!endif
***************
*** 943,949 ****
# Report link time code generation progress if used.
!ifdef NODEBUG
! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0")
!if "$(OPTIMIZE)" != "SPACE"
LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
!endif
--- 946,952 ----
# Report link time code generation progress if used.
!ifdef NODEBUG
! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0")
!if "$(OPTIMIZE)" != "SPACE"
LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
!endif
*** ../vim-7.4.077/src/version.c 2013-11-07 04:49:23.000000000 +0100
--- src/version.c 2013-11-08 03:13:56.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 78,
/**/
--
Every time I lose weight, it finds me again!
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

470
7.4.079
View File

@ -1,470 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.079
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.079
Problem: A script cannot detect whether 'hlsearch' highlighting is actually
displayed.
Solution: Add the "v:hlsearch" variable. (ZyX)
Files: src/runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c,
src/option.c, src/screen.c, src/search.c, src/tag.c, src/vim.h,
src/testdir/test101.in, src/testdir/test101.ok,
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
diff: ../vim-7.4.078/src/runtime/doc/eval.txt: No such file or directory
diff: src/runtime/doc/eval.txt: No such file or directory
*** ../vim-7.4.078/src/eval.c 2013-11-05 07:12:59.000000000 +0100
--- src/eval.c 2013-11-08 04:11:46.000000000 +0100
***************
*** 356,361 ****
--- 356,362 ----
{VV_NAME("mouse_col", VAR_NUMBER), 0},
{VV_NAME("operator", VAR_STRING), VV_RO},
{VV_NAME("searchforward", VAR_NUMBER), 0},
+ {VV_NAME("hlsearch", VAR_NUMBER), 0},
{VV_NAME("oldfiles", VAR_LIST), 0},
{VV_NAME("windowid", VAR_NUMBER), VV_RO},
};
***************
*** 871,876 ****
--- 872,878 ----
hash_add(&compat_hashtab, p->vv_di.di_key);
}
set_vim_var_nr(VV_SEARCHFORWARD, 1L);
+ set_vim_var_nr(VV_HLSEARCH, 1L);
set_reg_var(0); /* default for v:register is not 0 but '"' */
#ifdef EBCDIC
***************
*** 20613,20618 ****
--- 20615,20627 ----
v->di_tv.vval.v_number = get_tv_number(tv);
if (STRCMP(varname, "searchforward") == 0)
set_search_direction(v->di_tv.vval.v_number ? '/' : '?');
+ #ifdef FEAT_SEARCH_EXTRA
+ else if (STRCMP(varname, "hlsearch") == 0)
+ {
+ no_hlsearch = !v->di_tv.vval.v_number;
+ redraw_all_later(SOME_VALID);
+ }
+ #endif
}
return;
}
*** ../vim-7.4.078/src/ex_docmd.c 2013-07-24 15:09:37.000000000 +0200
--- src/ex_docmd.c 2013-11-08 04:17:01.000000000 +0100
***************
*** 11389,11395 ****
ex_nohlsearch(eap)
exarg_T *eap UNUSED;
{
! no_hlsearch = TRUE;
redraw_all_later(SOME_VALID);
}
--- 11389,11395 ----
ex_nohlsearch(eap)
exarg_T *eap UNUSED;
{
! SET_NO_HLSEARCH(TRUE);
redraw_all_later(SOME_VALID);
}
*** ../vim-7.4.078/src/option.c 2013-11-06 05:26:08.000000000 +0100
--- src/option.c 2013-11-08 04:17:32.000000000 +0100
***************
*** 7811,7817 ****
/* when 'hlsearch' is set or reset: reset no_hlsearch */
else if ((int *)varp == &p_hls)
{
! no_hlsearch = FALSE;
}
#endif
--- 7811,7817 ----
/* when 'hlsearch' is set or reset: reset no_hlsearch */
else if ((int *)varp == &p_hls)
{
! SET_NO_HLSEARCH(FALSE);
}
#endif
*** ../vim-7.4.078/src/screen.c 2013-07-13 12:23:00.000000000 +0200
--- src/screen.c 2013-11-08 04:17:48.000000000 +0100
***************
*** 7447,7453 ****
{
/* don't free regprog in the match list, it's a copy */
vim_regfree(shl->rm.regprog);
! no_hlsearch = TRUE;
}
shl->rm.regprog = NULL;
shl->lnum = 0;
--- 7447,7453 ----
{
/* don't free regprog in the match list, it's a copy */
vim_regfree(shl->rm.regprog);
! SET_NO_HLSEARCH(TRUE);
}
shl->rm.regprog = NULL;
shl->lnum = 0;
*** ../vim-7.4.078/src/search.c 2013-11-07 04:46:43.000000000 +0100
--- src/search.c 2013-11-08 04:18:57.000000000 +0100
***************
*** 289,295 ****
/* If 'hlsearch' set and search pat changed: need redraw. */
if (p_hls)
redraw_all_later(SOME_VALID);
! no_hlsearch = FALSE;
#endif
}
}
--- 289,295 ----
/* If 'hlsearch' set and search pat changed: need redraw. */
if (p_hls)
redraw_all_later(SOME_VALID);
! SET_NO_HLSEARCH(FALSE);
#endif
}
}
***************
*** 333,339 ****
spats[1] = saved_spats[1];
last_idx = saved_last_idx;
# ifdef FEAT_SEARCH_EXTRA
! no_hlsearch = saved_no_hlsearch;
# endif
}
}
--- 333,339 ----
spats[1] = saved_spats[1];
last_idx = saved_last_idx;
# ifdef FEAT_SEARCH_EXTRA
! SET_NO_HLSEARCH(saved_no_hlsearch);
# endif
}
}
***************
*** 1148,1154 ****
if (no_hlsearch && !(options & SEARCH_KEEP))
{
redraw_all_later(SOME_VALID);
! no_hlsearch = FALSE;
}
#endif
--- 1148,1154 ----
if (no_hlsearch && !(options & SEARCH_KEEP))
{
redraw_all_later(SOME_VALID);
! SET_NO_HLSEARCH(FALSE);
}
#endif
***************
*** 5561,5567 ****
spats[idx].off.off = off;
#ifdef FEAT_SEARCH_EXTRA
if (setlast)
! no_hlsearch = !hlsearch_on;
#endif
}
}
--- 5561,5569 ----
spats[idx].off.off = off;
#ifdef FEAT_SEARCH_EXTRA
if (setlast)
! {
! SET_NO_HLSEARCH(!hlsearch_on);
! }
#endif
}
}
*** ../vim-7.4.078/src/tag.c 2013-09-05 12:06:26.000000000 +0200
--- src/tag.c 2013-11-08 04:19:14.000000000 +0100
***************
*** 3330,3336 ****
#ifdef FEAT_SEARCH_EXTRA
/* restore no_hlsearch when keeping the old search pattern */
if (search_options)
! no_hlsearch = save_no_hlsearch;
#endif
/* Return OK if jumped to another file (at least we found the file!). */
--- 3330,3338 ----
#ifdef FEAT_SEARCH_EXTRA
/* restore no_hlsearch when keeping the old search pattern */
if (search_options)
! {
! SET_NO_HLSEARCH(save_no_hlsearch);
! }
#endif
/* Return OK if jumped to another file (at least we found the file!). */
*** ../vim-7.4.078/src/vim.h 2013-08-02 16:02:27.000000000 +0200
--- src/vim.h 2013-11-08 04:16:57.000000000 +0100
***************
*** 1864,1872 ****
#define VV_MOUSE_COL 51
#define VV_OP 52
#define VV_SEARCHFORWARD 53
! #define VV_OLDFILES 54
! #define VV_WINDOWID 55
! #define VV_LEN 56 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
--- 1864,1873 ----
#define VV_MOUSE_COL 51
#define VV_OP 52
#define VV_SEARCHFORWARD 53
! #define VV_HLSEARCH 54
! #define VV_OLDFILES 55
! #define VV_WINDOWID 56
! #define VV_LEN 57 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
***************
*** 2246,2249 ****
--- 2247,2256 ----
/* Character used as separated in autoload function/variable names. */
#define AUTOLOAD_CHAR '#'
+ #ifdef FEAT_EVAL
+ # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag); set_vim_var_nr(VV_HLSEARCH, !no_hlsearch)
+ #else
+ # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag)
+ #endif
+
#endif /* VIM__H */
*** ../vim-7.4.078/src/testdir/test101.in 2013-11-08 04:28:49.000000000 +0100
--- src/testdir/test101.in 2013-11-08 04:11:46.000000000 +0100
***************
*** 0 ****
--- 1,45 ----
+ Test for v:hlsearch vim: set ft=vim :
+
+ STARTTEST
+ :" Last abc: Q
+ :so small.vim
+ :new
+ :call setline(1, repeat(['aaa'], 10))
+ :set hlsearch nolazyredraw
+ :let r=[]
+ :command -nargs=0 -bar AddR :call add(r, [screenattr(1, 1), v:hlsearch])
+ /aaa
+ :AddR
+ :nohlsearch
+ :AddR
+ :let v:hlsearch=1
+ :AddR
+ :let v:hlsearch=0
+ :AddR
+ :set hlsearch
+ :AddR
+ :let v:hlsearch=0
+ :AddR
+ n:AddR
+ :let v:hlsearch=0
+ :AddR
+ /
+ :AddR
+ :let r1=r[0][0]
+ :" I guess it is not guaranteed that screenattr outputs always the same character
+ :call map(r, 'v:val[1].":".(v:val[0]==r1?"highlighted":"not highlighted")')
+ :try
+ : let v:hlsearch=[]
+ :catch
+ : call add(r, matchstr(v:exception,'^Vim(let):E\d\+:'))
+ :endtry
+ :bwipeout!
+ :$put=r
+ :call garbagecollect(1)
+ :"
+ :/^start:/,$wq! test.out
+ :" vim: et ts=4 isk-=\:
+ :call getchar()
+ ENDTEST
+
+ start:
*** ../vim-7.4.078/src/testdir/test101.ok 2013-11-08 04:28:49.000000000 +0100
--- src/testdir/test101.ok 2013-11-08 04:11:46.000000000 +0100
***************
*** 0 ****
--- 1,11 ----
+ start:
+ 1:highlighted
+ 0:not highlighted
+ 1:highlighted
+ 0:not highlighted
+ 1:highlighted
+ 0:not highlighted
+ 1:highlighted
+ 0:not highlighted
+ 1:highlighted
+ Vim(let):E706:
*** ../vim-7.4.078/src/testdir/Make_amiga.mak 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/Make_amiga.mak 2013-11-08 04:22:13.000000000 +0100
***************
*** 34,40 ****
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
! test99.out test100.out
.SUFFIXES: .in .out
--- 34,40 ----
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
***************
*** 151,153 ****
--- 151,154 ----
test98.out: test98.in
test99.out: test99.in
test100.out: test100.in
+ test101.out: test101.in
*** ../vim-7.4.078/src/testdir/Make_dos.mak 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/Make_dos.mak 2013-11-08 04:22:17.000000000 +0100
***************
*** 33,39 ****
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100.out
SCRIPTS32 = test50.out test70.out
--- 33,39 ----
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100.out test101.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.078/src/testdir/Make_ming.mak 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/Make_ming.mak 2013-11-08 04:22:19.000000000 +0100
***************
*** 53,59 ****
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100out
SCRIPTS32 = test50.out test70.out
--- 53,59 ----
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100out test101.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.078/src/testdir/Make_os2.mak 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/Make_os2.mak 2013-11-08 04:22:21.000000000 +0100
***************
*** 35,41 ****
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100.out
.SUFFIXES: .in .out
--- 35,41 ----
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100.out test101.out
.SUFFIXES: .in .out
*** ../vim-7.4.078/src/testdir/Make_vms.mms 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/Make_vms.mms 2013-11-08 04:22:23.000000000 +0100
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2013 Nov 07
#
# 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: 2013 Nov 08
#
# 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.
***************
*** 79,85 ****
test82.out test83.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
test95.out test96.out test97.out test98.out test99.out \
! test100.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 79,85 ----
test82.out test83.out test84.out test88.out 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
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.4.078/src/testdir/Makefile 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/Makefile 2013-11-08 04:22:26.000000000 +0100
***************
*** 30,36 ****
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
! test99.out test100.out
SCRIPTS_GUI = test16.out
--- 30,36 ----
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS_GUI = test16.out
*** ../vim-7.4.078/src/version.c 2013-11-08 03:15:39.000000000 +0100
--- src/version.c 2013-11-08 04:11:08.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 79,
/**/
--
Corn oil comes from corn and olive oil comes from olives, so where
does baby oil come from?
/// 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.080
View File

@ -1,52 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.080
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.080 (after 7.4.079)
Problem: Missing documentation for v:hlsearch.
Solution: Include the right file in the patch.
Files: runtime/doc/eval.txt
*** ../vim-7.4.079/runtime/doc/eval.txt 2013-11-02 23:29:17.000000000 +0100
--- runtime/doc/eval.txt 2013-11-08 04:20:27.000000000 +0100
***************
*** 1454,1459 ****
--- 1455,1467 ----
v:foldstart Used for 'foldtext': first line of closed fold.
Read-only in the |sandbox|. |fold-foldtext|
+ *v:hlsearch* *hlsearch-variable*
+ v:hlsearch Variable that determines whether search highlighting is on.
+ Makes sense only if 'hlsearch' is enabled which requires
+ |+extra_search|. Setting this variable to zero acts the like
+ |:nohlsearch| command, setting it to one acts like >
+ let &hlsearch = &hlsearch
+ <
*v:insertmode* *insertmode-variable*
v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
events. Values:
*** ../vim-7.4.079/src/version.c 2013-11-08 04:30:06.000000000 +0100
--- src/version.c 2013-11-09 01:42:56.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 80,
/**/
--
The chat program is in public domain. This is not the GNU public license.
If it breaks then you get to keep both pieces.
-- Copyright notice for the chat program
/// 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.081
View File

@ -1,52 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.081
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.081 (after 7.4.078)
Problem: Wrong logic when ANALYZE is "yes".
Solution: Use or instead of and. (KF Leong)
Files: src/Make_mvc.mak
*** ../vim-7.4.080/src/Make_mvc.mak 2013-11-08 03:15:39.000000000 +0100
--- src/Make_mvc.mak 2013-11-08 18:02:54.000000000 +0100
***************
*** 488,494 ****
!endif
# Static code analysis generally available starting with VS2012
! !if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0") && ("$(MSVCVER)" == "12.0")
CFLAGS=$(CFLAGS) /analyze
!endif
--- 488,494 ----
!endif
# Static code analysis generally available starting with VS2012
! !if ("$(ANALYZE)" == "yes") && (("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0"))
CFLAGS=$(CFLAGS) /analyze
!endif
*** ../vim-7.4.080/src/version.c 2013-11-09 01:44:38.000000000 +0100
--- src/version.c 2013-11-09 02:31:34.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 81,
/**/
--
Wi n0t trei a h0liday in Sweden thi yer?
"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 ///

344
7.4.082
View File

@ -1,344 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.082
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.082
Problem: Using "gf" in a changed buffer suggests adding "!", which is not
possible. (Tim Chase)
Solution: Pass a flag to check_changed() wether adding ! make sense.
Files: src/vim.h, src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/globals.h,
src/ex_cmds.c, src/ex_docmd.c
*** ../vim-7.4.081/src/vim.h 2013-11-08 04:30:06.000000000 +0100
--- src/vim.h 2013-11-09 03:00:00.000000000 +0100
***************
*** 1176,1181 ****
--- 1176,1190 ----
#define RESIZE_BOTH 15 /* resize in both directions */
/*
+ * flags for check_changed()
+ */
+ #define CCGD_AW 1 /* do autowrite if buffer was changed */
+ #define CCGD_MULTWIN 2 /* check also when several wins for the buf */
+ #define CCGD_FORCEIT 4 /* ! used */
+ #define CCGD_ALLBUF 8 /* may write all buffers */
+ #define CCGD_EXCMD 16 /* may suggest using ! */
+
+ /*
* "flags" values for option-setting functions.
* When OPT_GLOBAL and OPT_LOCAL are both missing, set both local and global
* values, get local value.
*** ../vim-7.4.081/src/ex_cmds2.c 2013-06-28 20:14:53.000000000 +0200
--- src/ex_cmds2.c 2013-11-09 03:14:44.000000000 +0100
***************
*** 1436,1455 ****
}
/*
! * return TRUE if buffer was changed and cannot be abandoned.
*/
int
! check_changed(buf, checkaw, mult_win, forceit, allbuf)
buf_T *buf;
! int checkaw; /* do autowrite if buffer was changed */
! int mult_win; /* check also when several wins for the buf */
! int forceit;
! int allbuf UNUSED; /* may write all buffers */
{
if ( !forceit
&& bufIsChanged(buf)
! && (mult_win || buf->b_nwindows <= 1)
! && (!checkaw || autowrite(buf, forceit) == FAIL))
{
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
if ((p_confirm || cmdmod.confirm) && p_write)
--- 1436,1455 ----
}
/*
! * Return TRUE if buffer was changed and cannot be abandoned.
! * For flags use the CCGD_ values.
*/
int
! check_changed(buf, flags)
buf_T *buf;
! int flags;
{
+ int forceit = (flags & CCGD_FORCEIT);
+
if ( !forceit
&& bufIsChanged(buf)
! && ((flags & CCGD_MULTWIN) || buf->b_nwindows <= 1)
! && (!(flags & CCGD_AW) || autowrite(buf, forceit) == FAIL))
{
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
if ((p_confirm || cmdmod.confirm) && p_write)
***************
*** 1457,1463 ****
buf_T *buf2;
int count = 0;
! if (allbuf)
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
if (bufIsChanged(buf2)
&& (buf2->b_ffname != NULL
--- 1457,1463 ----
buf_T *buf2;
int count = 0;
! if (flags & CCGD_ALLBUF)
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
if (bufIsChanged(buf2)
&& (buf2->b_ffname != NULL
***************
*** 1480,1486 ****
return bufIsChanged(buf);
}
#endif
! EMSG(_(e_nowrtmsg));
return TRUE;
}
return FALSE;
--- 1480,1489 ----
return bufIsChanged(buf);
}
#endif
! if (flags & CCGD_EXCMD)
! EMSG(_(e_nowrtmsg));
! else
! EMSG(_(e_nowrtmsg_nobang));
return TRUE;
}
return FALSE;
***************
*** 1690,1696 ****
{
/* Try auto-writing the buffer. If this fails but the buffer no
* longer exists it's not changed, that's OK. */
! if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
break; /* didn't save - still changes */
}
}
--- 1693,1701 ----
{
/* Try auto-writing the buffer. If this fails but the buffer no
* longer exists it's not changed, that's OK. */
! if (check_changed(buf, (p_awa ? CCGD_AW : 0)
! | CCGD_MULTWIN
! | CCGD_ALLBUF) && buf_valid(buf))
break; /* didn't save - still changes */
}
}
***************
*** 2274,2280 ****
vim_free(p);
}
if ((!P_HID(curbuf) || !other)
! && check_changed(curbuf, TRUE, !other, eap->forceit, FALSE))
return;
}
--- 2279,2288 ----
vim_free(p);
}
if ((!P_HID(curbuf) || !other)
! && check_changed(curbuf, CCGD_AW
! | (other ? 0 : CCGD_MULTWIN)
! | (eap->forceit ? CCGD_FORCEIT : 0)
! | CCGD_EXCMD))
return;
}
***************
*** 2315,2321 ****
*/
if ( P_HID(curbuf)
|| eap->cmdidx == CMD_snext
! || !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
{
if (*eap->arg != NUL) /* redefine file list */
{
--- 2323,2331 ----
*/
if ( P_HID(curbuf)
|| eap->cmdidx == CMD_snext
! || !check_changed(curbuf, CCGD_AW
! | (eap->forceit ? CCGD_FORCEIT : 0)
! | CCGD_EXCMD))
{
if (*eap->arg != NUL) /* redefine file list */
{
***************
*** 2458,2464 ****
if (eap->cmdidx == CMD_windo
|| eap->cmdidx == CMD_tabdo
|| P_HID(curbuf)
! || !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
{
/* start at the first argument/window/buffer */
i = 0;
--- 2468,2476 ----
if (eap->cmdidx == CMD_windo
|| eap->cmdidx == CMD_tabdo
|| P_HID(curbuf)
! || !check_changed(curbuf, CCGD_AW
! | (eap->forceit ? CCGD_FORCEIT : 0)
! | CCGD_EXCMD))
{
/* start at the first argument/window/buffer */
i = 0;
*** ../vim-7.4.081/src/proto/ex_cmds2.pro 2013-08-10 13:37:10.000000000 +0200
--- src/proto/ex_cmds2.pro 2013-11-09 03:18:02.000000000 +0100
***************
*** 35,41 ****
int prof_def_func __ARGS((void));
int autowrite __ARGS((buf_T *buf, int forceit));
void autowrite_all __ARGS((void));
! int check_changed __ARGS((buf_T *buf, int checkaw, int mult_win, int forceit, int allbuf));
void browse_save_fname __ARGS((buf_T *buf));
void dialog_changed __ARGS((buf_T *buf, int checkall));
int can_abandon __ARGS((buf_T *buf, int forceit));
--- 35,41 ----
int prof_def_func __ARGS((void));
int autowrite __ARGS((buf_T *buf, int forceit));
void autowrite_all __ARGS((void));
! int check_changed __ARGS((buf_T *buf, int flags));
void browse_save_fname __ARGS((buf_T *buf));
void dialog_changed __ARGS((buf_T *buf, int checkall));
int can_abandon __ARGS((buf_T *buf, int forceit));
*** ../vim-7.4.081/src/globals.h 2013-07-04 19:53:44.000000000 +0200
--- src/globals.h 2013-11-09 03:05:54.000000000 +0100
***************
*** 1490,1495 ****
--- 1490,1496 ----
EXTERN char_u e_notopen[] INIT(= N_("E484: Can't open file %s"));
EXTERN char_u e_notread[] INIT(= N_("E485: Can't read file %s"));
EXTERN char_u e_nowrtmsg[] INIT(= N_("E37: No write since last change (add ! to override)"));
+ EXTERN char_u e_nowrtmsg_nobang[] INIT(= N_("E37: No write since last change"));
EXTERN char_u e_null[] INIT(= N_("E38: Null argument"));
#ifdef FEAT_DIGRAPHS
EXTERN char_u e_number_exp[] INIT(= N_("E39: Number expected"));
*** ../vim-7.4.081/src/ex_cmds.c 2013-10-02 18:43:00.000000000 +0200
--- src/ex_cmds.c 2013-11-09 03:19:25.000000000 +0100
***************
*** 3253,3260 ****
if ( ((!other_file && !(flags & ECMD_OLDBUF))
|| (curbuf->b_nwindows == 1
&& !(flags & (ECMD_HIDE | ECMD_ADDBUF))))
! && check_changed(curbuf, p_awa, !other_file,
! (flags & ECMD_FORCEIT), FALSE))
{
if (fnum == 0 && other_file && ffname != NULL)
(void)setaltfname(ffname, sfname, newlnum < 0 ? 0 : newlnum);
--- 3253,3262 ----
if ( ((!other_file && !(flags & ECMD_OLDBUF))
|| (curbuf->b_nwindows == 1
&& !(flags & (ECMD_HIDE | ECMD_ADDBUF))))
! && check_changed(curbuf, (p_awa ? CCGD_AW : 0)
! | (other_file ? 0 : CCGD_MULTWIN)
! | ((flags & ECMD_FORCEIT) ? CCGD_FORCEIT : 0)
! | (eap == NULL ? 0 : CCGD_EXCMD)))
{
if (fnum == 0 && other_file && ffname != NULL)
(void)setaltfname(ffname, sfname, newlnum < 0 ? 0 : newlnum);
***************
*** 7664,7670 ****
# ifdef FEAT_WINDOWS
++emsg_off;
# endif
! split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
# ifdef FEAT_WINDOWS
--emsg_off;
# else
--- 7666,7672 ----
# ifdef FEAT_WINDOWS
++emsg_off;
# endif
! split = check_changed(curbuf, CCGD_AW | CCGD_EXCMD);
# ifdef FEAT_WINDOWS
--emsg_off;
# else
*** ../vim-7.4.081/src/ex_docmd.c 2013-11-08 04:30:06.000000000 +0100
--- src/ex_docmd.c 2013-11-09 03:30:10.000000000 +0100
***************
*** 6565,6571 ****
if (check_more(FALSE, eap->forceit) == OK && only_one_window())
exiting = TRUE;
if ((!P_HID(curbuf)
! && check_changed(curbuf, p_awa, FALSE, eap->forceit, FALSE))
|| check_more(TRUE, eap->forceit) == FAIL
|| (only_one_window() && check_changed_any(eap->forceit)))
{
--- 6565,6573 ----
if (check_more(FALSE, eap->forceit) == OK && only_one_window())
exiting = TRUE;
if ((!P_HID(curbuf)
! && check_changed(curbuf, (p_awa ? CCGD_AW : 0)
! | (eap->forceit ? CCGD_FORCEIT : 0)
! | CCGD_EXCMD))
|| check_more(TRUE, eap->forceit) == FAIL
|| (only_one_window() && check_changed_any(eap->forceit)))
{
***************
*** 7099,7105 ****
if (!P_HID(curbuf) && !split)
{
++emsg_off;
! split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
--emsg_off;
}
if (split)
--- 7101,7107 ----
if (!P_HID(curbuf) && !split)
{
++emsg_off;
! split = check_changed(curbuf, CCGD_AW);
--emsg_off;
}
if (split)
***************
*** 7361,7367 ****
{
/* Set recoverymode right away to avoid the ATTENTION prompt. */
recoverymode = TRUE;
! if (!check_changed(curbuf, p_awa, TRUE, eap->forceit, FALSE)
&& (*eap->arg == NUL
|| setfname(curbuf, eap->arg, NULL, TRUE) == OK))
ml_recover();
--- 7363,7373 ----
{
/* Set recoverymode right away to avoid the ATTENTION prompt. */
recoverymode = TRUE;
! if (!check_changed(curbuf, (p_awa ? CCGD_AW : 0)
! | CCGD_MULTWIN
! | (eap->forceit ? CCGD_FORCEIT : 0)
! | CCGD_EXCMD)
!
&& (*eap->arg == NUL
|| setfname(curbuf, eap->arg, NULL, TRUE) == OK))
ml_recover();
*** ../vim-7.4.081/src/version.c 2013-11-09 02:32:15.000000000 +0100
--- src/version.c 2013-11-09 03:26:06.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 82,
/**/
--
People who want to share their religious views with you
almost never want you to share yours with them.
/// 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 ///

136
7.4.083
View File

@ -1,136 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.083
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.083
Problem: It's hard to avoid adding a used pattern to the search history.
Solution: Add the ":keeppatterns" modifier. (Christian Brabandt)
Files: runtime/doc/cmdline.txt, src/ex_cmds.h, src/ex_docmd.c,
src/ex_getln.c, src/structs.h
*** ../vim-7.4.082/runtime/doc/cmdline.txt 2013-08-10 13:24:52.000000000 +0200
--- runtime/doc/cmdline.txt 2013-11-09 04:26:30.000000000 +0100
***************
*** 356,361 ****
--- 356,365 ----
List the recent five entries from all histories: >
:history all -5,
+ :keepp[atterns] {command} *:keepp* *:keeppatterns*
+ Execute {command}, without adding anything to the search
+ history
+
==============================================================================
2. Command-line completion *cmdline-completion*
*** ../vim-7.4.082/src/ex_cmds.h 2013-06-08 15:08:20.000000000 +0200
--- src/ex_cmds.h 2013-11-09 04:26:30.000000000 +0100
***************
*** 477,482 ****
--- 477,484 ----
NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_list, "list", ex_print,
*** ../vim-7.4.082/src/ex_docmd.c 2013-11-09 03:31:45.000000000 +0100
--- src/ex_docmd.c 2013-11-09 04:31:36.000000000 +0100
***************
*** 1843,1848 ****
--- 1843,1853 ----
cmdmod.keepalt = TRUE;
continue;
}
+ if (checkforcmd(&ea.cmd, "keeppatterns", 5))
+ {
+ cmdmod.keeppatterns = TRUE;
+ continue;
+ }
if (!checkforcmd(&ea.cmd, "keepjumps", 5))
break;
cmdmod.keepjumps = TRUE;
***************
*** 2584,2589 ****
--- 2589,2595 ----
case CMD_keepalt:
case CMD_keepjumps:
case CMD_keepmarks:
+ case CMD_keeppatterns:
case CMD_leftabove:
case CMD_let:
case CMD_lockmarks:
***************
*** 3089,3094 ****
--- 3095,3101 ----
{"keepalt", 5, FALSE},
{"keepjumps", 5, FALSE},
{"keepmarks", 3, FALSE},
+ {"keeppatterns", 5, FALSE},
{"leftabove", 5, FALSE},
{"lockmarks", 3, FALSE},
{"noautocmd", 3, FALSE},
***************
*** 3597,3602 ****
--- 3604,3610 ----
case CMD_keepalt:
case CMD_keepjumps:
case CMD_keepmarks:
+ case CMD_keeppatterns:
case CMD_leftabove:
case CMD_lockmarks:
case CMD_rightbelow:
*** ../vim-7.4.082/src/ex_getln.c 2013-11-05 07:12:59.000000000 +0100
--- src/ex_getln.c 2013-11-09 04:26:30.000000000 +0100
***************
*** 5498,5503 ****
--- 5498,5506 ----
if (hislen == 0) /* no history */
return;
+ if (cmdmod.keeppatterns && histype == HIST_SEARCH)
+ return;
+
/*
* Searches inside the same mapping overwrite each other, so that only
* the last line is kept. Be careful not to remove a line that was moved
*** ../vim-7.4.082/src/structs.h 2013-11-06 05:26:08.000000000 +0100
--- src/structs.h 2013-11-09 04:26:30.000000000 +0100
***************
*** 542,547 ****
--- 542,548 ----
int keepmarks; /* TRUE when ":keepmarks" was used */
int keepjumps; /* TRUE when ":keepjumps" was used */
int lockmarks; /* TRUE when ":lockmarks" was used */
+ int keeppatterns; /* TRUE when ":keeppatterns" was used */
# ifdef FEAT_AUTOCMD
char_u *save_ei; /* saved value of 'eventignore' */
# endif
*** ../vim-7.4.082/src/version.c 2013-11-09 03:31:45.000000000 +0100
--- src/version.c 2013-11-09 04:29:07.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 83,
/**/
--
I am always surprised in the Linux world how quickly solutions can be
obtained. (Imagine sending an email to Bill Gates, asking why Windows
crashed, and how to fix it... and then getting an answer that fixed the
problem... <0>_<0> !) -- Mark Langdon
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

184
7.4.084
View File

@ -1,184 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.084
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.084
Problem: Python: interrupt not being properly discarded. (Yggdroot Chen)
Solution: Discard interrupt in VimTryEnd. (ZyX)
Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
src/testdir/test87.in, src/testdir/test87.ok
*** ../vim-7.4.083/src/if_py_both.h 2013-11-04 00:34:47.000000000 +0100
--- src/if_py_both.h 2013-11-11 00:56:41.000000000 +0100
***************
*** 558,564 ****
/* Keyboard interrupt should be preferred over anything else */
if (got_int)
{
! did_throw = got_int = FALSE;
PyErr_SetNone(PyExc_KeyboardInterrupt);
return -1;
}
--- 558,568 ----
/* Keyboard interrupt should be preferred over anything else */
if (got_int)
{
! if (current_exception != NULL)
! discard_current_exception();
! else
! need_rethrow = did_throw = FALSE;
! got_int = FALSE;
PyErr_SetNone(PyExc_KeyboardInterrupt);
return -1;
}
***************
*** 567,573 ****
/* Python exception is preferred over vim one; unlikely to occur though */
else if (PyErr_Occurred())
{
! did_throw = FALSE;
return -1;
}
/* Finally transform VimL exception to python one */
--- 571,580 ----
/* Python exception is preferred over vim one; unlikely to occur though */
else if (PyErr_Occurred())
{
! if (current_exception != NULL)
! discard_current_exception();
! else
! need_rethrow = did_throw = FALSE;
return -1;
}
/* Finally transform VimL exception to python one */
*** ../vim-7.4.083/src/testdir/test86.in 2013-11-04 00:34:47.000000000 +0100
--- src/testdir/test86.in 2013-11-11 00:56:11.000000000 +0100
***************
*** 1281,1286 ****
--- 1281,1317 ----
EOF
:delfunction Exe
:"
+ :" Regression: interrupting vim.command propagates to next vim.command
+ py << EOF
+ def test_keyboard_interrupt():
+ try:
+ vim.command('while 1 | endwhile')
+ except KeyboardInterrupt:
+ cb.append('Caught KeyboardInterrupt')
+ except Exception:
+ cb.append('!!!!!!!! Caught exception: ' + repr(sys.exc_info))
+ else:
+ cb.append('!!!!!!!! No exception')
+ try:
+ vim.command('$ put =\'Running :put\'')
+ except KeyboardInterrupt:
+ cb.append('!!!!!!!! Caught KeyboardInterrupt')
+ except Exception:
+ cb.append('!!!!!!!! Caught exception: ' + repr(sys.exc_info))
+ else:
+ cb.append('No exception')
+ EOF
+ :debuggreedy
+ :call inputsave()
+ :call feedkeys("s\ns\ns\ns\nq\n")
+ :redir => output
+ :debug silent! py test_keyboard_interrupt()
+ :redir END
+ :0 debuggreedy
+ :silent $put =output
+ :unlet output
+ :py del test_keyboard_interrupt
+ :"
:" Cleanup
py << EOF
del cb
*** ../vim-7.4.083/src/testdir/test86.ok 2013-11-04 00:34:47.000000000 +0100
--- src/testdir/test86.ok 2013-11-11 00:56:11.000000000 +0100
***************
*** 1198,1200 ****
--- 1198,1204 ----
vim.eval("Exe('echoerr ''jkl''')"):error:('Vim(echoerr):jkl',)
vim.eval("Exe('xxx_non_existent_command_xxx')"):error:('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)
vim.bindeval("Exe('xxx_non_existent_command_xxx')"):error:('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)
+ Caught KeyboardInterrupt
+ Running :put
+ No exception
+
*** ../vim-7.4.083/src/testdir/test87.in 2013-11-04 00:34:47.000000000 +0100
--- src/testdir/test87.in 2013-11-11 00:56:11.000000000 +0100
***************
*** 1232,1237 ****
--- 1232,1268 ----
EOF
:delfunction Exe
:"
+ :" Regression: interrupting vim.command propagates to next vim.command
+ py3 << EOF
+ def test_keyboard_interrupt():
+ try:
+ vim.command('while 1 | endwhile')
+ except KeyboardInterrupt:
+ cb.append('Caught KeyboardInterrupt')
+ except Exception as e:
+ cb.append('!!!!!!!! Caught exception: ' + repr(e))
+ else:
+ cb.append('!!!!!!!! No exception')
+ try:
+ vim.command('$ put =\'Running :put\'')
+ except KeyboardInterrupt:
+ cb.append('!!!!!!!! Caught KeyboardInterrupt')
+ except Exception as e:
+ cb.append('!!!!!!!! Caught exception: ' + repr(e))
+ else:
+ cb.append('No exception')
+ EOF
+ :debuggreedy
+ :call inputsave()
+ :call feedkeys("s\ns\ns\ns\nq\n")
+ :redir => output
+ :debug silent! py3 test_keyboard_interrupt()
+ :redir END
+ :0 debuggreedy
+ :silent $put =output
+ :unlet output
+ :py3 del test_keyboard_interrupt
+ :"
:" Cleanup
py3 << EOF
del cb
*** ../vim-7.4.083/src/testdir/test87.ok 2013-11-04 00:34:47.000000000 +0100
--- src/testdir/test87.ok 2013-11-11 00:56:11.000000000 +0100
***************
*** 1187,1189 ****
--- 1187,1193 ----
vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
+ Caught KeyboardInterrupt
+ Running :put
+ No exception
+
*** ../vim-7.4.083/src/version.c 2013-11-09 05:30:18.000000000 +0100
--- src/version.c 2013-11-11 00:55:23.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 84,
/**/
--
Computers make very fast, very accurate, mistakes.
/// 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.085
View File

@ -1,118 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.085
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.085
Problem: When inserting text in Visual block mode and moving the cursor the
wrong text gets repeated in other lines.
Solution: Use the '[ mark to find the start of the actually inserted text.
(Christian Brabandt)
Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
*** ../vim-7.4.084/src/ops.c 2013-11-05 07:12:59.000000000 +0100
--- src/ops.c 2013-11-11 01:23:14.000000000 +0100
***************
*** 2640,2645 ****
--- 2640,2670 ----
{
struct block_def bd2;
+ /* The user may have moved the cursor before inserting something, try
+ * to adjust the block for that. */
+ if (oap->start.lnum == curbuf->b_op_start.lnum)
+ {
+ if (oap->op_type == OP_INSERT
+ && oap->start.col != curbuf->b_op_start.col)
+ {
+ oap->start.col = curbuf->b_op_start.col;
+ pre_textlen -= getviscol2(oap->start.col, oap->start.coladd)
+ - oap->start_vcol;
+ oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd);
+ }
+ else if (oap->op_type == OP_APPEND
+ && oap->end.col >= curbuf->b_op_start.col)
+ {
+ oap->start.col = curbuf->b_op_start.col;
+ /* reset pre_textlen to the value of OP_INSERT */
+ pre_textlen += bd.textlen;
+ pre_textlen -= getviscol2(oap->start.col, oap->start.coladd)
+ - oap->start_vcol;
+ oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd);
+ oap->op_type = OP_INSERT;
+ }
+ }
+
/*
* Spaces and tabs in the indent may have changed to other spaces and
* tabs. Get the starting column again and correct the length.
*** ../vim-7.4.084/src/testdir/test39.in 2013-11-04 01:41:11.000000000 +0100
--- src/testdir/test39.in 2013-11-11 01:20:51.000000000 +0100
***************
*** 19,24 ****
--- 19,28 ----
:" Test block-change
G$khhhhhkkcmno
:$-4,$w! test.out
+ :" Test block-insert using cursor keys for movement
+ /^aaaa/
+ :exe ":norm! l\<C-V>jjjlllI\<Right>\<Right> \<Esc>"
+ :/^aa/,/^$/w >> test.out
:" gUe must uppercase a whole word, also when ß changes to SS
Gothe youtußeuu endYpk0wgUe
:" gUfx must uppercase until x, inclusive.
***************
*** 40,45 ****
--- 44,54 ----
:qa!
ENDTEST
+ aaaaaa
+ bbbbbb
+ cccccc
+ dddddd
+
abcdefghijklm
abcdefghijklm
abcdefghijklm
*** ../vim-7.4.084/src/testdir/test39.ok 2013-11-04 01:41:11.000000000 +0100
--- src/testdir/test39.ok 2013-11-11 01:20:51.000000000 +0100
***************
*** 3,8 ****
--- 3,13 ----
axyzqqqqef mno ghijklm
axyzqqqqefgmnoklm
abcdqqqqijklm
+ aaa aaa
+ bbb bbb
+ ccc ccc
+ ddd ddd
+
the YOUTUSSEUU end
- yOUSSTUSSEXu -
THE YOUTUSSEUU END
*** ../vim-7.4.084/src/version.c 2013-11-11 01:05:43.000000000 +0100
--- src/version.c 2013-11-11 01:18:01.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 85,
/**/
--
SOLDIER: What? Ridden on a horse?
ARTHUR: Yes!
SOLDIER: You're using coconuts!
"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 ///

145
7.4.086
View File

@ -1,145 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.086
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.086
Problem: Skipping over an expression when not evaluating it does not work
properly for dict members.
Solution: Skip over unrecognized expression. (ZyX)
Files: src/eval.c, src/testdir/test34.in, src/testdir/test34.ok
*** ../vim-7.4.085/src/eval.c 2013-11-08 04:30:06.000000000 +0100
--- src/eval.c 2013-11-11 04:11:38.000000000 +0100
***************
*** 19845,19868 ****
while (ret == OK
&& (**arg == '['
|| (**arg == '.' && rettv->v_type == VAR_DICT)
! || (**arg == '(' && rettv->v_type == VAR_FUNC))
&& !vim_iswhite(*(*arg - 1)))
{
if (**arg == '(')
{
/* need to copy the funcref so that we can clear rettv */
! functv = *rettv;
! rettv->v_type = VAR_UNKNOWN;
! /* Invoke the function. Recursive! */
! s = functv.vval.v_string;
ret = get_func_tv(s, (int)STRLEN(s), rettv, arg,
curwin->w_cursor.lnum, curwin->w_cursor.lnum,
&len, evaluate, selfdict);
/* Clear the funcref afterwards, so that deleting it while
* evaluating the arguments is possible (see test55). */
! clear_tv(&functv);
/* Stop the expression evaluation when immediately aborting on
* error, or when an interrupt occurred or an exception was thrown
--- 19845,19874 ----
while (ret == OK
&& (**arg == '['
|| (**arg == '.' && rettv->v_type == VAR_DICT)
! || (**arg == '(' && (!evaluate || rettv->v_type == VAR_FUNC)))
&& !vim_iswhite(*(*arg - 1)))
{
if (**arg == '(')
{
/* need to copy the funcref so that we can clear rettv */
! if (evaluate)
! {
! functv = *rettv;
! rettv->v_type = VAR_UNKNOWN;
! /* Invoke the function. Recursive! */
! s = functv.vval.v_string;
! }
! else
! s = (char_u *)"";
ret = get_func_tv(s, (int)STRLEN(s), rettv, arg,
curwin->w_cursor.lnum, curwin->w_cursor.lnum,
&len, evaluate, selfdict);
/* Clear the funcref afterwards, so that deleting it while
* evaluating the arguments is possible (see test55). */
! if (evaluate)
! clear_tv(&functv);
/* Stop the expression evaluation when immediately aborting on
* error, or when an interrupt occurred or an exception was thrown
*** ../vim-7.4.085/src/testdir/test34.in 2012-07-16 16:51:29.000000000 +0200
--- src/testdir/test34.in 2013-11-11 04:10:13.000000000 +0100
***************
*** 1,6 ****
--- 1,7 ----
Test for user functions.
Also test an <expr> mapping calling a function.
Also test that a builtin function cannot be replaced.
+ Also test for regression when calling arbitrary expression.
STARTTEST
:so small.vim
***************
*** 62,68 ****
[(one again:call append(line('$'), max([1, 2, 3]))
:call extend(g:, {'max': function('min')})
:call append(line('$'), max([1, 2, 3]))
! :$-7,$w! test.out
:delfunc Table
:delfunc Compute
:delfunc Expr1
--- 63,79 ----
[(one again:call append(line('$'), max([1, 2, 3]))
:call extend(g:, {'max': function('min')})
:call append(line('$'), max([1, 2, 3]))
! :try
! : " Regression: the first line below used to throw ?E110: Missing ')'?
! : " Second is here just to prove that this line is correct when not skipping
! : " rhs of &&.
! : $put =(0&&(function('tr'))(1, 2, 3))
! : $put =(1&&(function('tr'))(1, 2, 3))
! :catch
! : $put ='!!! Unexpected exception:'
! : $put =v:exception
! :endtry
! :$-9,$w! test.out
:delfunc Table
:delfunc Compute
:delfunc Expr1
*** ../vim-7.4.085/src/testdir/test34.ok 2012-07-16 16:43:15.000000000 +0200
--- src/testdir/test34.ok 2013-11-11 04:10:13.000000000 +0100
***************
*** 6,8 ****
--- 6,10 ----
1. one again
3
3
+ 0
+ 1
*** ../vim-7.4.085/src/version.c 2013-11-11 01:29:16.000000000 +0100
--- src/version.c 2013-11-11 04:15:59.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 86,
/**/
--
ARTHUR: The swallow may fly south with the sun, or the house martin or the
plover seek warmer hot lands in winter, yet these are not strangers to
our land.
SOLDIER: Are you suggesting coconuts migrate?
"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.087
View File

@ -1,56 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.087
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.087
Problem: Compiler warning on 64 bit Windows systems.
Solution: Fix type cast. (Mike Williams)
Files: src/ops.c
*** ../vim-7.4.086/src/ops.c 2013-11-11 01:29:16.000000000 +0100
--- src/ops.c 2013-11-11 23:16:06.000000000 +0100
***************
*** 2193,2199 ****
else
{
/* Replacing with \r or \n means splitting the line. */
! after_p = alloc_check((unsigned)oldlen + 1 + n - STRLEN(newp));
if (after_p != NULL)
STRMOVE(after_p, oldp);
}
--- 2193,2200 ----
else
{
/* Replacing with \r or \n means splitting the line. */
! after_p = alloc_check(
! (unsigned)(oldlen + 1 + n - STRLEN(newp)));
if (after_p != NULL)
STRMOVE(after_p, oldp);
}
*** ../vim-7.4.086/src/version.c 2013-11-11 04:25:48.000000000 +0100
--- src/version.c 2013-11-11 23:16:23.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 87,
/**/
--
SECOND SOLDIER: It could be carried by an African swallow!
FIRST SOLDIER: Oh yes! An African swallow maybe ... but not a European
swallow. that's my point.
"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 ///

564
7.4.088
View File

@ -1,564 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.088
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.088
Problem: When spell checking is enabled Asian characters are always marked
as error.
Solution: When 'spelllang' contains "cjk" do not mark Asian characters as
error. (Ken Takata)
Files: runtime/doc/options.txt, runtime/doc/spell.txt, src/mbyte.c,
src/option.c, src/spell.c, src/structs.h
*** ../vim-7.4.087/runtime/doc/options.txt 2013-11-06 05:26:08.000000000 +0100
--- runtime/doc/options.txt 2013-11-12 04:00:51.000000000 +0100
***************
*** 6555,6560 ****
--- 6555,6563 ----
region by listing them: "en_us,en_ca" supports both US and Canadian
English, but not words specific for Australia, New Zealand or Great
Britain.
+ If the name "cjk" is included East Asian characters are excluded from
+ spell checking. This is useful when editing text that also has Asian
+ words.
*E757*
As a special case the name of a .spl file can be given as-is. The
first "_xx" in the name is removed and used as the region name
*** ../vim-7.4.087/runtime/doc/spell.txt 2013-08-10 13:25:01.000000000 +0200
--- runtime/doc/spell.txt 2013-11-12 04:02:27.000000000 +0100
***************
*** 269,274 ****
--- 269,281 ----
latin1 yi transliterated Yiddish
utf-8 yi-tr transliterated Yiddish
+ *spell-cjk*
+ Chinese, Japanese and other East Asian characters are normally marked as
+ errors, because spell checking of these characters is not supported. If
+ 'spelllang' includes "cjk", these characters are not marked as errors. This
+ is useful when editing text with spell checking while some Asian words are
+ present.
+
SPELL FILES *spell-load*
*** ../vim-7.4.087/src/mbyte.c 2013-07-05 20:07:21.000000000 +0200
--- src/mbyte.c 2013-11-12 03:55:50.000000000 +0100
***************
*** 947,954 ****
{
case 0x2121: /* ZENKAKU space */
return 0;
! case 0x2122: /* KU-TEN (Japanese comma) */
! case 0x2123: /* TOU-TEN (Japanese period) */
case 0x2124: /* ZENKAKU comma */
case 0x2125: /* ZENKAKU period */
return 1;
--- 947,954 ----
{
case 0x2121: /* ZENKAKU space */
return 0;
! case 0x2122: /* TOU-TEN (Japanese comma) */
! case 0x2123: /* KU-TEN (Japanese period) */
case 0x2124: /* ZENKAKU comma */
case 0x2125: /* ZENKAKU period */
return 1;
***************
*** 2477,2485 ****
/* sorted list of non-overlapping intervals */
static struct clinterval
{
! unsigned short first;
! unsigned short last;
! unsigned short class;
} classes[] =
{
{0x037e, 0x037e, 1}, /* Greek question mark */
--- 2477,2485 ----
/* sorted list of non-overlapping intervals */
static struct clinterval
{
! unsigned int first;
! unsigned int last;
! unsigned int class;
} classes[] =
{
{0x037e, 0x037e, 1}, /* Greek question mark */
***************
*** 2544,2549 ****
--- 2544,2553 ----
{0xff1a, 0xff20, 1}, /* half/fullwidth ASCII */
{0xff3b, 0xff40, 1}, /* half/fullwidth ASCII */
{0xff5b, 0xff65, 1}, /* half/fullwidth ASCII */
+ {0x20000, 0x2a6df, 0x4e00}, /* CJK Ideographs */
+ {0x2a700, 0x2b73f, 0x4e00}, /* CJK Ideographs */
+ {0x2b740, 0x2b81f, 0x4e00}, /* CJK Ideographs */
+ {0x2f800, 0x2fa1f, 0x4e00}, /* CJK Ideographs */
};
int bot = 0;
int top = sizeof(classes) / sizeof(struct clinterval) - 1;
***************
*** 2563,2571 ****
while (top >= bot)
{
mid = (bot + top) / 2;
! if (classes[mid].last < c)
bot = mid + 1;
! else if (classes[mid].first > c)
top = mid - 1;
else
return (int)classes[mid].class;
--- 2567,2575 ----
while (top >= bot)
{
mid = (bot + top) / 2;
! if (classes[mid].last < (unsigned int)c)
bot = mid + 1;
! else if (classes[mid].first > (unsigned int)c)
top = mid - 1;
else
return (int)classes[mid].class;
*** ../vim-7.4.087/src/option.c 2013-11-08 04:30:06.000000000 +0100
--- src/option.c 2013-11-12 04:34:46.000000000 +0100
***************
*** 7122,7127 ****
--- 7122,7132 ----
if (varp == &(curwin->w_s->b_p_spl))
{
char_u fname[200];
+ char_u *q = curwin->w_s->b_p_spl;
+
+ /* Skip the first name if it is "cjk". */
+ if (STRNCMP(q, "cjk,", 4) == 0)
+ q += 4;
/*
* Source the spell/LANG.vim in 'runtimepath'.
***************
*** 7129,7139 ****
* Use the first name in 'spelllang' up to '_region' or
* '.encoding'.
*/
! for (p = curwin->w_s->b_p_spl; *p != NUL; ++p)
if (vim_strchr((char_u *)"_.,", *p) != NULL)
break;
! vim_snprintf((char *)fname, 200, "spell/%.*s.vim",
! (int)(p - curwin->w_s->b_p_spl), curwin->w_s->b_p_spl);
source_runtime(fname, TRUE);
}
#endif
--- 7134,7143 ----
* Use the first name in 'spelllang' up to '_region' or
* '.encoding'.
*/
! for (p = q; *p != NUL; ++p)
if (vim_strchr((char_u *)"_.,", *p) != NULL)
break;
! vim_snprintf((char *)fname, 200, "spell/%.*s.vim", (int)(p - q), q);
source_runtime(fname, TRUE);
}
#endif
*** ../vim-7.4.087/src/spell.c 2013-09-29 13:38:25.000000000 +0200
--- src/spell.c 2013-11-12 04:37:33.000000000 +0100
***************
*** 754,762 ****
static void clear_spell_chartab __ARGS((spelltab_T *sp));
static int set_spell_finish __ARGS((spelltab_T *new_st));
static int spell_iswordp __ARGS((char_u *p, win_T *wp));
! static int spell_iswordp_nmw __ARGS((char_u *p));
#ifdef FEAT_MBYTE
! static int spell_mb_isword_class __ARGS((int cl));
static int spell_iswordp_w __ARGS((int *p, win_T *wp));
#endif
static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap));
--- 754,762 ----
static void clear_spell_chartab __ARGS((spelltab_T *sp));
static int set_spell_finish __ARGS((spelltab_T *new_st));
static int spell_iswordp __ARGS((char_u *p, win_T *wp));
! static int spell_iswordp_nmw __ARGS((char_u *p, win_T *wp));
#ifdef FEAT_MBYTE
! static int spell_mb_isword_class __ARGS((int cl, win_T *wp));
static int spell_iswordp_w __ARGS((int *p, win_T *wp));
#endif
static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap));
***************
*** 1149,1155 ****
/* When we are at a non-word character there is no error, just
* skip over the character (try looking for a word after it). */
! else if (!spell_iswordp_nmw(ptr))
{
if (capcol != NULL && wp->w_s->b_cap_prog != NULL)
{
--- 1149,1155 ----
/* When we are at a non-word character there is no error, just
* skip over the character (try looking for a word after it). */
! else if (!spell_iswordp_nmw(ptr, wp))
{
if (capcol != NULL && wp->w_s->b_cap_prog != NULL)
{
***************
*** 1561,1567 ****
* accept a no-caps word, even when the dictionary
* word specifies ONECAP. */
mb_ptr_back(mip->mi_word, p);
! if (spell_iswordp_nmw(p)
? capflags == WF_ONECAP
: (flags & WF_ONECAP) != 0
&& capflags != WF_ONECAP)
--- 1561,1567 ----
* accept a no-caps word, even when the dictionary
* word specifies ONECAP. */
mb_ptr_back(mip->mi_word, p);
! if (spell_iswordp_nmw(p, mip->mi_win)
? capflags == WF_ONECAP
: (flags & WF_ONECAP) != 0
&& capflags != WF_ONECAP)
***************
*** 4234,4240 ****
if (spl_copy == NULL)
goto theend;
! /* loop over comma separated language names. */
for (splp = spl_copy; *splp != NUL; )
{
/* Get one language name. */
--- 4234,4242 ----
if (spl_copy == NULL)
goto theend;
! wp->w_s->b_cjk = 0;
!
! /* Loop over comma separated language names. */
for (splp = spl_copy; *splp != NUL; )
{
/* Get one language name. */
***************
*** 4242,4247 ****
--- 4244,4255 ----
region = NULL;
len = (int)STRLEN(lang);
+ if (STRCMP(lang, "cjk") == 0)
+ {
+ wp->w_s->b_cjk = 1;
+ continue;
+ }
+
/* If the name ends in ".spl" use it as the name of the spell file.
* If there is a region name let "region" point to it and remove it
* from the name. */
***************
*** 4601,4607 ****
int past_second = FALSE; /* past second word char */
/* find first letter */
! for (p = word; !spell_iswordp_nmw(p); mb_ptr_adv(p))
if (end == NULL ? *p == NUL : p >= end)
return 0; /* only non-word characters, illegal word */
#ifdef FEAT_MBYTE
--- 4609,4615 ----
int past_second = FALSE; /* past second word char */
/* find first letter */
! for (p = word; !spell_iswordp_nmw(p, curwin); mb_ptr_adv(p))
if (end == NULL ? *p == NUL : p >= end)
return 0; /* only non-word characters, illegal word */
#ifdef FEAT_MBYTE
***************
*** 4617,4623 ****
* But a word with an upper char only at start is a ONECAP.
*/
for ( ; end == NULL ? *p != NUL : p < end; mb_ptr_adv(p))
! if (spell_iswordp_nmw(p))
{
c = PTR2CHAR(p);
if (!SPELL_ISUPPER(c))
--- 4625,4631 ----
* But a word with an upper char only at start is a ONECAP.
*/
for ( ; end == NULL ? *p != NUL : p < end; mb_ptr_adv(p))
! if (spell_iswordp_nmw(p, curwin))
{
c = PTR2CHAR(p);
if (!SPELL_ISUPPER(c))
***************
*** 9907,9913 ****
c = mb_ptr2char(s);
if (c > 255)
! return spell_mb_isword_class(mb_get_class(s));
return spelltab.st_isw[c];
}
#endif
--- 9915,9921 ----
c = mb_ptr2char(s);
if (c > 255)
! return spell_mb_isword_class(mb_get_class(s), wp);
return spelltab.st_isw[c];
}
#endif
***************
*** 9920,9927 ****
* Unlike spell_iswordp() this doesn't check for "midword" characters.
*/
static int
! spell_iswordp_nmw(p)
char_u *p;
{
#ifdef FEAT_MBYTE
int c;
--- 9928,9936 ----
* Unlike spell_iswordp() this doesn't check for "midword" characters.
*/
static int
! spell_iswordp_nmw(p, wp)
char_u *p;
+ win_T *wp;
{
#ifdef FEAT_MBYTE
int c;
***************
*** 9930,9936 ****
{
c = mb_ptr2char(p);
if (c > 255)
! return spell_mb_isword_class(mb_get_class(p));
return spelltab.st_isw[c];
}
#endif
--- 9939,9945 ----
{
c = mb_ptr2char(p);
if (c > 255)
! return spell_mb_isword_class(mb_get_class(p), wp);
return spelltab.st_isw[c];
}
#endif
***************
*** 9942,9952 ****
* Return TRUE if word class indicates a word character.
* Only for characters above 255.
* Unicode subscript and superscript are not considered word characters.
*/
static int
! spell_mb_isword_class(cl)
! int cl;
{
return cl >= 2 && cl != 0x2070 && cl != 0x2080;
}
--- 9951,9966 ----
* Return TRUE if word class indicates a word character.
* Only for characters above 255.
* Unicode subscript and superscript are not considered word characters.
+ * See also dbcs_class() and utf_class() in mbyte.c.
*/
static int
! spell_mb_isword_class(cl, wp)
! int cl;
! win_T *wp;
{
+ if (wp->w_s->b_cjk)
+ /* East Asian characters are not considered word characters. */
+ return cl == 2 || cl == 0x2800;
return cl >= 2 && cl != 0x2070 && cl != 0x2080;
}
***************
*** 9971,9979 ****
if (*s > 255)
{
if (enc_utf8)
! return spell_mb_isword_class(utf_class(*s));
if (enc_dbcs)
! return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
return 0;
}
return spelltab.st_isw[*s];
--- 9985,9994 ----
if (*s > 255)
{
if (enc_utf8)
! return spell_mb_isword_class(utf_class(*s), wp);
if (enc_dbcs)
! return spell_mb_isword_class(
! dbcs_class((unsigned)*s >> 8, *s & 0xff), wp);
return 0;
}
return spelltab.st_isw[*s];
***************
*** 10193,10205 ****
line = ml_get_curline();
p = line + curwin->w_cursor.col;
/* Backup to before start of word. */
! while (p > line && spell_iswordp_nmw(p))
mb_ptr_back(line, p);
/* Forward to start of word. */
! while (*p != NUL && !spell_iswordp_nmw(p))
mb_ptr_adv(p);
! if (!spell_iswordp_nmw(p)) /* No word found. */
{
beep_flush();
return;
--- 10208,10220 ----
line = ml_get_curline();
p = line + curwin->w_cursor.col;
/* Backup to before start of word. */
! while (p > line && spell_iswordp_nmw(p, curwin))
mb_ptr_back(line, p);
/* Forward to start of word. */
! while (*p != NUL && !spell_iswordp_nmw(p, curwin))
mb_ptr_adv(p);
! if (!spell_iswordp_nmw(p, curwin)) /* No word found. */
{
beep_flush();
return;
***************
*** 10436,10442 ****
for (;;)
{
mb_ptr_back(line, p);
! if (p == line || spell_iswordp_nmw(p))
break;
if (vim_regexec(&regmatch, p, 0)
&& regmatch.endp[0] == line + endcol)
--- 10451,10457 ----
for (;;)
{
mb_ptr_back(line, p);
! if (p == line || spell_iswordp_nmw(p, curwin))
break;
if (vim_regexec(&regmatch, p, 0)
&& regmatch.endp[0] == line + endcol)
***************
*** 11645,11651 ****
/* When appending a compound word after a word character don't
* use Onecap. */
! if (p != NULL && spell_iswordp_nmw(p))
c &= ~WF_ONECAP;
make_case_word(tword + sp->ts_splitoff,
preword + sp->ts_prewordlen, c);
--- 11660,11666 ----
/* When appending a compound word after a word character don't
* use Onecap. */
! if (p != NULL && spell_iswordp_nmw(p, curwin))
c &= ~WF_ONECAP;
make_case_word(tword + sp->ts_splitoff,
preword + sp->ts_prewordlen, c);
***************
*** 11895,11901 ****
* character when the word ends. But only when the
* good word can end. */
if (((!try_compound && !spell_iswordp_nmw(fword
! + sp->ts_fidx))
|| fword_ends)
&& fword[sp->ts_fidx] != NUL
&& goodword_ends)
--- 11910,11917 ----
* character when the word ends. But only when the
* good word can end. */
if (((!try_compound && !spell_iswordp_nmw(fword
! + sp->ts_fidx,
! curwin))
|| fword_ends)
&& fword[sp->ts_fidx] != NUL
&& goodword_ends)
***************
*** 14226,14232 ****
}
else
{
! if (spell_iswordp_nmw(s))
*t++ = *s;
++s;
}
--- 14242,14248 ----
}
else
{
! if (spell_iswordp_nmw(s, curwin))
*t++ = *s;
++s;
}
***************
*** 14521,14527 ****
else
{
did_white = FALSE;
! if (!spell_iswordp_nmw(t))
continue;
}
}
--- 14537,14543 ----
else
{
did_white = FALSE;
! if (!spell_iswordp_nmw(t, curwin))
continue;
}
}
***************
*** 16045,16051 ****
for (p = line + startcol; p > line; )
{
mb_ptr_back(line, p);
! if (spell_iswordp_nmw(p))
break;
}
--- 16061,16067 ----
for (p = line + startcol; p > line; )
{
mb_ptr_back(line, p);
! if (spell_iswordp_nmw(p, curwin))
break;
}
*** ../vim-7.4.087/src/structs.h 2013-11-09 05:30:18.000000000 +0100
--- src/structs.h 2013-11-12 03:55:50.000000000 +0100
***************
*** 1310,1315 ****
--- 1310,1318 ----
regprog_T *b_cap_prog; /* program for 'spellcapcheck' */
char_u *b_p_spf; /* 'spellfile' */
char_u *b_p_spl; /* 'spelllang' */
+ # ifdef FEAT_MBYTE
+ int b_cjk; /* all CJK letters as OK */
+ # endif
#endif
#if !defined(FEAT_SYN_HL) && !defined(FEAT_SPELL)
int dummy;
*** ../vim-7.4.087/src/version.c 2013-11-11 23:17:31.000000000 +0100
--- src/version.c 2013-11-12 03:59:03.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 88,
/**/
--
THEOREM: VI is perfect.
PROOF: VI in roman numerals is 6. The natural numbers < 6 which divide 6 are
1, 2, and 3. 1+2+3 = 6. So 6 is a perfect number. Therefore, VI is perfect.
QED
-- Arthur Tateishi
/// 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.089
View File

@ -1,47 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.089
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.089
Problem: When editing a file in a directory mounted through sshfs Vim
doesn't set the security context on a renamed file.
Solution: Add mch_copy_sec() to vim_rename(). (Peter Backes)
Files: src/fileio.c
*** ../vim-7.4.088/src/fileio.c 2013-08-30 17:06:56.000000000 +0200
--- src/fileio.c 2013-11-12 05:07:22.000000000 +0100
***************
*** 6707,6712 ****
--- 6707,6715 ----
mch_set_acl(to, acl);
mch_free_acl(acl);
#endif
+ #ifdef HAVE_SELINUX
+ mch_copy_sec(from, to)
+ #endif
if (errmsg != NULL)
{
EMSG2(errmsg, to);
*** ../vim-7.4.088/src/version.c 2013-11-12 04:43:57.000000000 +0100
--- src/version.c 2013-11-12 05:11:02.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 89,
/**/
--
Kiss me twice. I'm schizophrenic.
/// 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 ///

223
7.4.090
View File

@ -1,223 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.090
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.090
Problem: Win32: When a directory name contains an exclamation mark,
completion doesn't complete the contents of the directory.
Solution: Escape the exclamation mark. (Jan Stocker)
Files: src/ex_getln.c, src/testdir/test102.in, src/testdir/test102.ok
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
*** ../vim-7.4.089/src/ex_getln.c 2013-11-09 05:30:18.000000000 +0100
--- src/ex_getln.c 2013-11-12 05:23:15.000000000 +0100
***************
*** 3852,3860 ****
char_u buf[20];
int j = 0;
! /* Don't escape '[' and '{' if they are in 'isfname'. */
for (p = PATH_ESC_CHARS; *p != NUL; ++p)
! if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
buf[j++] = *p;
buf[j] = NUL;
p = vim_strsave_escaped(fname, buf);
--- 3852,3860 ----
char_u buf[20];
int j = 0;
! /* Don't escape '[', '{' and '!' if they are in 'isfname'. */
for (p = PATH_ESC_CHARS; *p != NUL; ++p)
! if ((*p != '[' && *p != '{' && *p != '!') || !vim_isfilec(*p))
buf[j++] = *p;
buf[j] = NUL;
p = vim_strsave_escaped(fname, buf);
*** ../vim-7.4.089/src/testdir/test102.in 2013-11-12 05:27:48.000000000 +0100
--- src/testdir/test102.in 2013-11-12 05:21:26.000000000 +0100
***************
*** 0 ****
--- 1,12 ----
+ Test if fnameescape is correct for special chars like !
+
+ STARTTEST
+ :%d
+ :let fname = 'Xspa ce'
+ :try | exe "w! " . fnameescape(fname) | put='Space' | endtry
+ :let fname = 'Xemark!'
+ :try | exe "w! " . fnameescape(fname) | put='ExclamationMark' | endtry
+ :w! test.out
+ :qa!
+ ENDTEST
+
*** ../vim-7.4.089/src/testdir/test102.ok 2013-11-12 05:27:48.000000000 +0100
--- src/testdir/test102.ok 2013-11-12 05:21:19.000000000 +0100
***************
*** 0 ****
--- 1,3 ----
+
+ Space
+ ExclamationMark
*** ../vim-7.4.089/src/testdir/Make_amiga.mak 2013-11-08 04:30:06.000000000 +0100
--- src/testdir/Make_amiga.mak 2013-11-12 05:20:03.000000000 +0100
***************
*** 34,40 ****
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
--- 34,40 ----
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
***************
*** 152,154 ****
--- 152,155 ----
test99.out: test99.in
test100.out: test100.in
test101.out: test101.in
+ test102.out: test102.in
*** ../vim-7.4.089/src/testdir/Make_dos.mak 2013-11-08 04:30:06.000000000 +0100
--- src/testdir/Make_dos.mak 2013-11-12 05:20:10.000000000 +0100
***************
*** 33,39 ****
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100.out test101.out
SCRIPTS32 = test50.out test70.out
--- 33,39 ----
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.089/src/testdir/Make_ming.mak 2013-11-08 04:30:06.000000000 +0100
--- src/testdir/Make_ming.mak 2013-11-12 05:20:14.000000000 +0100
***************
*** 53,59 ****
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100out test101.out
SCRIPTS32 = test50.out test70.out
--- 53,59 ----
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100out test101.out test102.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.089/src/testdir/Make_os2.mak 2013-11-08 04:30:06.000000000 +0100
--- src/testdir/Make_os2.mak 2013-11-12 05:20:18.000000000 +0100
***************
*** 35,41 ****
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100.out test101.out
.SUFFIXES: .in .out
--- 35,41 ----
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
*** ../vim-7.4.089/src/testdir/Make_vms.mms 2013-11-08 04:30:06.000000000 +0100
--- src/testdir/Make_vms.mms 2013-11-12 05:20:21.000000000 +0100
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2013 Nov 08
#
# 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: 2013 Nov 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.
***************
*** 79,85 ****
test82.out test83.out test84.out test88.out 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
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 79,85 ----
test82.out test83.out test84.out test88.out 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
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.4.089/src/testdir/Makefile 2013-11-08 04:30:06.000000000 +0100
--- src/testdir/Makefile 2013-11-12 05:20:32.000000000 +0100
***************
*** 30,36 ****
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS_GUI = test16.out
--- 30,36 ----
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS_GUI = test16.out
*** ../vim-7.4.089/src/version.c 2013-11-12 05:11:58.000000000 +0100
--- src/version.c 2013-11-12 05:24:24.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 90,
/**/
--
If you don't get everything you want, think of
everything you didn't get and don't want.
/// 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.091
View File

@ -1,59 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.091
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.091 (after 7.4.089)
Problem: Missing semicolon.
Solution: Add the semicolon.
Files: src/fileio.c
*** ../vim-7.4.090/src/fileio.c 2013-11-12 05:11:58.000000000 +0100
--- src/fileio.c 2013-11-12 18:07:47.000000000 +0100
***************
*** 6708,6714 ****
mch_free_acl(acl);
#endif
#ifdef HAVE_SELINUX
! mch_copy_sec(from, to)
#endif
if (errmsg != NULL)
{
--- 6708,6714 ----
mch_free_acl(acl);
#endif
#ifdef HAVE_SELINUX
! mch_copy_sec(from, to);
#endif
if (errmsg != NULL)
{
*** ../vim-7.4.090/src/version.c 2013-11-12 05:28:08.000000000 +0100
--- src/version.c 2013-11-12 18:08:33.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 91,
/**/
--
CART DRIVER: Bring out your dead!
We follow the cart through a wretched, impoverished plague-ridden village.
A few starved mongrels run about in the mud scavenging. In the open
doorway of one house perhaps we jug glimpse a pair of legs dangling from
the ceiling. In another doorway an OLD WOMAN is beating a cat against a
wall rather like one does with a mat. The cart passes round a dead donkey
or cow in the mud. And a MAN tied to a cart is being hammered to death by
four NUNS with huge mallets.
"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.092
View File

@ -1,62 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.092
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.092 (after 7.4.088)
Problem: Can't build small version.
Solution: Add #ifdef where the b_cjk flag is used. (Ken Takata)
Files: src/spell.c
*** ../vim-7.4.091/src/spell.c 2013-11-12 04:43:57.000000000 +0100
--- src/spell.c 2013-11-14 03:51:24.000000000 +0100
***************
*** 4234,4240 ****
--- 4234,4242 ----
if (spl_copy == NULL)
goto theend;
+ #ifdef FEAT_MBYTE
wp->w_s->b_cjk = 0;
+ #endif
/* Loop over comma separated language names. */
for (splp = spl_copy; *splp != NUL; )
***************
*** 4246,4252 ****
--- 4248,4256 ----
if (STRCMP(lang, "cjk") == 0)
{
+ #ifdef FEAT_MBYTE
wp->w_s->b_cjk = 1;
+ #endif
continue;
}
*** ../vim-7.4.091/src/version.c 2013-11-12 18:09:20.000000000 +0100
--- src/version.c 2013-11-14 03:52:18.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 92,
/**/
--
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 ///

72
7.4.093
View File

@ -1,72 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.093
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.093
Problem: Configure can't use LuaJIT on ubuntu 12.04.
Solution: Adjust the configure regexp that locates the version number.
(Charles Strahan)
Files: src/configure.in, src/auto/configure
*** ../vim-7.4.092/src/configure.in 2013-11-04 04:57:46.000000000 +0100
--- src/configure.in 2013-11-17 20:12:04.000000000 +0100
***************
*** 496,502 ****
if test "X$vi_cv_path_luajit" != "X"; then
dnl -- find LuaJIT version
AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit,
! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]] .*/\1/'` ])
AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit,
[ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ])
vi_cv_path_lua="$vi_cv_path_luajit"
--- 496,502 ----
if test "X$vi_cv_path_luajit" != "X"; then
dnl -- find LuaJIT version
AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit,
! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]\+\)\? .*/\1/'` ])
AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit,
[ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ])
vi_cv_path_lua="$vi_cv_path_luajit"
*** ../vim-7.4.092/src/auto/configure 2013-11-04 04:57:46.000000000 +0100
--- src/auto/configure 2013-11-17 20:13:30.000000000 +0100
***************
*** 4743,4749 ****
if test "${vi_cv_version_luajit+set}" = set; then :
$as_echo_n "(cached) " >&6
else
! vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([0-9.]*\)\.[0-9] .*/\1/'`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5
$as_echo "$vi_cv_version_luajit" >&6; }
--- 4743,4749 ----
if test "${vi_cv_version_luajit+set}" = set; then :
$as_echo_n "(cached) " >&6
else
! vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]\+\)\? .*/\1/'`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5
$as_echo "$vi_cv_version_luajit" >&6; }
*** ../vim-7.4.092/src/version.c 2013-11-14 03:54:02.000000000 +0100
--- src/version.c 2013-11-17 20:13:43.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 93,
/**/
--
"Beware of bugs in the above code; I have only proved
it correct, not tried it." -- Donald Knuth
/// 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.094
View File

@ -1,139 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.094
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.094
Problem: Configure may not find that -lint is needed for gettext().
Solution: Check for gettext() with empty $LIBS. (Thomas De Schampheleire)
Files: src/configure.in, src/auto/configure
*** ../vim-7.4.093/src/configure.in 2013-11-17 20:17:05.000000000 +0100
--- src/configure.in 2013-11-17 20:23:49.000000000 +0100
***************
*** 3725,3730 ****
--- 3725,3733 ----
fi
dnl Check if gettext() is working and if it needs -lintl
+ dnl We take care to base this on an empty LIBS: on some systems libelf would be
+ dnl in LIBS and implicitly take along libintl. The final LIBS would then not
+ dnl contain libintl, and the link step would fail due to -Wl,--as-needed.
AC_MSG_CHECKING(--disable-nls argument)
AC_ARG_ENABLE(nls,
[ --disable-nls Don't support NLS (gettext()).], ,
***************
*** 3743,3758 ****
if test -f po/Makefile; then
have_gettext="no"
if test -n "$MSGFMT"; then
AC_TRY_LINK(
[#include <libintl.h>],
[gettext("Test");],
! AC_MSG_RESULT([gettext() works]); have_gettext="yes",
! olibs=$LIBS
! LIBS="$LIBS -lintl"
AC_TRY_LINK(
[#include <libintl.h>],
[gettext("Test");],
! AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
AC_MSG_RESULT([gettext() doesn't work]);
LIBS=$olibs))
else
--- 3746,3763 ----
if test -f po/Makefile; then
have_gettext="no"
if test -n "$MSGFMT"; then
+ olibs=$LIBS
+ LIBS=""
AC_TRY_LINK(
[#include <libintl.h>],
[gettext("Test");],
! AC_MSG_RESULT([gettext() works]); have_gettext="yes"; LIBS=$olibs,
! LIBS="-lintl"
AC_TRY_LINK(
[#include <libintl.h>],
[gettext("Test");],
! AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes";
! LIBS="$olibs -lintl",
AC_MSG_RESULT([gettext() doesn't work]);
LIBS=$olibs))
else
*** ../vim-7.4.093/src/auto/configure 2013-11-17 20:17:05.000000000 +0100
--- src/auto/configure 2013-11-17 20:25:13.000000000 +0100
***************
*** 12690,12695 ****
--- 12690,12697 ----
if test -f po/Makefile; then
have_gettext="no"
if test -n "$MSGFMT"; then
+ olibs=$LIBS
+ LIBS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
***************
*** 12703,12712 ****
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works" >&5
! $as_echo "gettext() works" >&6; }; have_gettext="yes"
else
! olibs=$LIBS
! LIBS="$LIBS -lintl"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
--- 12705,12713 ----
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works" >&5
! $as_echo "gettext() works" >&6; }; have_gettext="yes"; LIBS=$olibs
else
! LIBS="-lintl"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
***************
*** 12720,12726 ****
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works with -lintl" >&5
! $as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() doesn't work" >&5
$as_echo "gettext() doesn't work" >&6; };
--- 12721,12728 ----
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works with -lintl" >&5
! $as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes";
! LIBS="$olibs -lintl"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() doesn't work" >&5
$as_echo "gettext() doesn't work" >&6; };
*** ../vim-7.4.093/src/version.c 2013-11-17 20:17:05.000000000 +0100
--- src/version.c 2013-11-17 20:27:43.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 94,
/**/
--
BLACK KNIGHT: The Black Knight always triumphs. Have at you!
ARTHUR takes his last leg off. The BLACK KNIGHT's body lands upright.
BLACK KNIGHT: All right, we'll call it a draw.
"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 ///

73
7.4.095
View File

@ -1,73 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.095
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.095 (after 7.4.093)
Problem: Regexp for LuaJIT version doesn't work on BSD.
Solution: Use "*" instead of "\+" and "\?". (Ozaki)
Files: src/configure.in, src/auto/configure
*** ../vim-7.4.094/src/configure.in 2013-11-17 20:32:49.000000000 +0100
--- src/configure.in 2013-11-21 12:04:46.000000000 +0100
***************
*** 496,502 ****
if test "X$vi_cv_path_luajit" != "X"; then
dnl -- find LuaJIT version
AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit,
! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]\+\)\? .*/\1/'` ])
AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit,
[ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ])
vi_cv_path_lua="$vi_cv_path_luajit"
--- 496,502 ----
if test "X$vi_cv_path_luajit" != "X"; then
dnl -- find LuaJIT version
AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit,
! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]*\)* .*/\1/'` ])
AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit,
[ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ])
vi_cv_path_lua="$vi_cv_path_luajit"
*** ../vim-7.4.094/src/auto/configure 2013-11-17 20:32:49.000000000 +0100
--- src/auto/configure 2013-11-21 12:07:39.000000000 +0100
***************
*** 4743,4749 ****
if test "${vi_cv_version_luajit+set}" = set; then :
$as_echo_n "(cached) " >&6
else
! vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]\+\)\? .*/\1/'`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5
$as_echo "$vi_cv_version_luajit" >&6; }
--- 4743,4749 ----
if test "${vi_cv_version_luajit+set}" = set; then :
$as_echo_n "(cached) " >&6
else
! vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]*\)* .*/\1/'`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5
$as_echo "$vi_cv_version_luajit" >&6; }
*** ../vim-7.4.094/src/version.c 2013-11-17 20:32:49.000000000 +0100
--- src/version.c 2013-11-21 12:06:26.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 95,
/**/
--
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 ///

96
7.4.096
View File

@ -1,96 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.096
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.096
Problem: Can't change directory to an UNC path.
Solution: Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
Files: src/os_win32.c
*** ../vim-7.4.095/src/os_win32.c 2013-09-25 19:13:32.000000000 +0200
--- src/os_win32.c 2013-11-21 12:31:52.000000000 +0100
***************
*** 2841,2858 ****
}
/*
! * get file permissions for `name'
! * -1 : error
! * else mode_t
*/
long
mch_getperm(char_u *name)
{
struct stat st;
! int n;
n = mch_stat(name, &st);
! return n == 0 ? (int)st.st_mode : -1;
}
--- 2841,2860 ----
}
/*
! * Get file permissions for "name".
! * Return mode_t or -1 for error.
*/
long
mch_getperm(char_u *name)
{
struct stat st;
! int n;
+ if (name[0] == '\\' && name[1] == '\\')
+ /* UNC path */
+ return (long)win32_getattrs(name);
n = mch_stat(name, &st);
! return n == 0 ? (long)st.st_mode : -1L;
}
***************
*** 3094,3101 ****
* -1 : error
* else FILE_ATTRIBUTE_* defined in winnt.h
*/
! static
! int
win32_getattrs(char_u *name)
{
int attr;
--- 3096,3102 ----
* -1 : error
* else FILE_ATTRIBUTE_* defined in winnt.h
*/
! static int
win32_getattrs(char_u *name)
{
int attr;
*** ../vim-7.4.095/src/version.c 2013-11-21 12:17:46.000000000 +0100
--- src/version.c 2013-11-21 12:32:46.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 96,
/**/
--
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 ///

50
7.4.097
View File

@ -1,50 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.097
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.097 (after 7.4.034)
Problem: Unexpected behavior change related to 'virtualedit'. (Ingo Karkat)
Solution: Update the valid cursor position. (Christian Brabandt)
Files: src/ops.c
*** ../vim-7.4.096/src/ops.c 2013-11-11 23:17:31.000000000 +0100
--- src/ops.c 2013-11-21 13:21:24.000000000 +0100
***************
*** 3844,3850 ****
--- 3844,3854 ----
ml_replace(lnum, newp, FALSE);
/* Place cursor on last putted char. */
if (lnum == curwin->w_cursor.lnum)
+ {
+ /* make sure curwin->w_virtcol is updated */
+ changed_cline_bef_curs();
curwin->w_cursor.col += (colnr_T)(totlen - 1);
+ }
}
#ifdef FEAT_VISUAL
if (VIsual_active)
*** ../vim-7.4.096/src/version.c 2013-11-21 12:34:07.000000000 +0100
--- src/version.c 2013-11-21 13:08:27.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 97,
/**/
--
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 ///

243
7.4.098
View File

@ -1,243 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.098
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.098
Problem: When using ":'<,'>del" errors may be given for the visual line
numbers being out of range.
Solution: Reset Visual mode in ":del". (Lech Lorens)
Files: src/ex_docmd.c, src/testdir/test103.in, src/testdir/test103.ok,
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
*** ../vim-7.4.097/src/ex_docmd.c 2013-11-09 05:30:18.000000000 +0100
--- src/ex_docmd.c 2013-11-21 14:04:55.000000000 +0100
***************
*** 8570,8575 ****
--- 8570,8580 ----
beginline(BL_SOL | BL_FIX);
}
+ #if defined(FEAT_VISUAL)
+ if (VIsual_active)
+ end_visual_mode();
+ #endif
+
switch (eap->cmdidx)
{
case CMD_delete:
*** ../vim-7.4.097/src/testdir/test103.in 2013-11-21 14:21:12.000000000 +0100
--- src/testdir/test103.in 2013-11-21 14:02:09.000000000 +0100
***************
*** 0 ****
--- 1,37 ----
+ Test for visual mode not being reset causing E315 error.
+ STARTTEST
+ :so small.vim
+ :enew
+ :let g:msg="Everything's fine."
+ :function! TriggerTheProblem()
+ : " At this point there is no visual selection because :call reset it.
+ : " Let's restore the selection:
+ : normal gv
+ : '<,'>del _
+ : try
+ : exe "normal \<Esc>"
+ : catch /^Vim\%((\a\+)\)\=:E315/
+ : echom 'Snap! E315 error!'
+ : let g:msg='Snap! E315 error!'
+ : endtry
+ :endfunction
+ :enew
+ :setl buftype=nofile
+ :call append(line('$'), 'Delete this line.')
+ :"
+ :"
+ :" NOTE: this has to be done by a call to a function because executing :del the
+ :" ex-way will require the colon operator which resets the visual mode thus
+ :" preventing the problem:
+ :"
+ GV:call TriggerTheProblem()
+ :%del _
+ :call append(line('$'), g:msg)
+ :w! test.out
+ :brewind
+ ENDTEST
+
+ STARTTEST
+ :qa!
+ ENDTEST
+
*** ../vim-7.4.097/src/testdir/test103.ok 2013-11-21 14:21:12.000000000 +0100
--- src/testdir/test103.ok 2013-11-21 14:02:28.000000000 +0100
***************
*** 0 ****
--- 1,2 ----
+
+ Everything's fine.
*** ../vim-7.4.097/src/testdir/Make_amiga.mak 2013-11-12 05:28:08.000000000 +0100
--- src/testdir/Make_amiga.mak 2013-11-21 14:02:51.000000000 +0100
***************
*** 34,40 ****
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
--- 34,40 ----
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
***************
*** 153,155 ****
--- 153,156 ----
test100.out: test100.in
test101.out: test101.in
test102.out: test102.in
+ test103.out: test103.in
*** ../vim-7.4.097/src/testdir/Make_dos.mak 2013-11-12 05:28:08.000000000 +0100
--- src/testdir/Make_dos.mak 2013-11-21 14:02:58.000000000 +0100
***************
*** 33,39 ****
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS32 = test50.out test70.out
--- 33,39 ----
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.097/src/testdir/Make_ming.mak 2013-11-12 05:28:08.000000000 +0100
--- src/testdir/Make_ming.mak 2013-11-21 14:03:01.000000000 +0100
***************
*** 53,59 ****
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100out test101.out test102.out
SCRIPTS32 = test50.out test70.out
--- 53,59 ----
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
! test100out test101.out test102.out test103.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.4.097/src/testdir/Make_os2.mak 2013-11-12 05:28:08.000000000 +0100
--- src/testdir/Make_os2.mak 2013-11-21 14:03:03.000000000 +0100
***************
*** 35,41 ****
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
--- 35,41 ----
test81.out test82.out test83.out test84.out test88.out \
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
.SUFFIXES: .in .out
*** ../vim-7.4.097/src/testdir/Make_vms.mms 2013-11-12 05:28:08.000000000 +0100
--- src/testdir/Make_vms.mms 2013-11-21 14:03:13.000000000 +0100
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2013 Nov 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: 2013 Nov 21
#
# 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.
***************
*** 79,85 ****
test82.out test83.out test84.out test88.out 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
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 79,85 ----
test82.out test83.out test84.out test88.out 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
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.4.097/src/testdir/Makefile 2013-11-12 05:28:08.000000000 +0100
--- src/testdir/Makefile 2013-11-21 14:03:23.000000000 +0100
***************
*** 30,36 ****
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS_GUI = test16.out
--- 30,36 ----
test84.out test85.out test86.out test87.out test88.out \
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
SCRIPTS_GUI = test16.out
*** ../vim-7.4.097/src/version.c 2013-11-21 13:24:36.000000000 +0100
--- src/version.c 2013-11-21 14:20:34.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 98,
/**/
--
I recommend ordering large cargo containers of paper towels to make up
whatever budget underruns you have. Paper products are always useful and they
have the advantage of being completely flushable if you need to make room in
the storage area later.
(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 ///

113
7.4.099
View File

@ -1,113 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.099
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.099
Problem: Append in blockwise Visual mode with "$" is wrong.
Solution: After "$" don't use the code that checks if the cursor was moved.
(Hirohito Higashi, Ken Takata)
Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
*** ../vim-7.4.098/src/ops.c 2013-11-21 13:24:36.000000000 +0100
--- src/ops.c 2013-11-21 14:33:57.000000000 +0100
***************
*** 2643,2649 ****
/* The user may have moved the cursor before inserting something, try
* to adjust the block for that. */
! if (oap->start.lnum == curbuf->b_op_start.lnum)
{
if (oap->op_type == OP_INSERT
&& oap->start.col != curbuf->b_op_start.col)
--- 2643,2649 ----
/* The user may have moved the cursor before inserting something, try
* to adjust the block for that. */
! if (oap->start.lnum == curbuf->b_op_start.lnum && !bd.is_MAX)
{
if (oap->op_type == OP_INSERT
&& oap->start.col != curbuf->b_op_start.col)
*** ../vim-7.4.098/src/testdir/test39.in 2013-11-11 01:29:16.000000000 +0100
--- src/testdir/test39.in 2013-11-21 14:25:55.000000000 +0100
***************
*** 23,28 ****
--- 23,40 ----
/^aaaa/
:exe ":norm! l\<C-V>jjjlllI\<Right>\<Right> \<Esc>"
:/^aa/,/^$/w >> test.out
+ :" Test for Visual block was created with the last <C-v>$
+ /^A23$/
+ :exe ":norm! l\<C-V>j$Aab\<Esc>"
+ :.,/^$/w >> test.out
+ :" Test for Visual block was created with the middle <C-v>$ (1)
+ /^B23$/
+ :exe ":norm! l\<C-V>j$hAab\<Esc>"
+ :.,/^$/w >> test.out
+ :" Test for Visual block was created with the middle <C-v>$ (2)
+ /^C23$/
+ :exe ":norm! l\<C-V>j$hhAab\<Esc>"
+ :.,/^$/w >> test.out
:" gUe must uppercase a whole word, also when ß changes to SS
Gothe youtußeuu endYpk0wgUe
:" gUfx must uppercase until x, inclusive.
***************
*** 49,54 ****
--- 61,75 ----
cccccc
dddddd
+ A23
+ 4567
+
+ B23
+ 4567
+
+ C23
+ 4567
+
abcdefghijklm
abcdefghijklm
abcdefghijklm
*** ../vim-7.4.098/src/testdir/test39.ok 2013-11-11 01:29:16.000000000 +0100
--- src/testdir/test39.ok 2013-11-21 14:25:10.000000000 +0100
***************
*** 8,13 ****
--- 8,22 ----
ccc ccc
ddd ddd
+ A23ab
+ 4567ab
+
+ B23 ab
+ 4567ab
+
+ C23ab
+ 456ab7
+
the YOUTUSSEUU end
- yOUSSTUSSEXu -
THE YOUTUSSEUU END
*** ../vim-7.4.098/src/version.c 2013-11-21 14:21:25.000000000 +0100
--- src/version.c 2013-11-21 14:34:28.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 99,
/**/
--
If the Universe is constantly expanding, why can't I ever find a parking space?
/// 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 ///

Some files were not shown because too many files have changed in this diff Show More