vim: Update from 7.4.23 -> 7.4.131
Instead of applying all of the patches, this build pulls an archive from the source code repo with all of the patches already applied. This is the preferred way from http://www.vim.org/sources.php
This commit is contained in:
parent
2ffab7ba6a
commit
a2ff906257
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
|
||||
{ stdenv, fetchhg, ncurses, gettext, pkgconfig }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
patchLevel = "23";
|
||||
name = "vim-7.4.${patchLevel}";
|
||||
name = "vim-7.4.131";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
|
||||
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
|
||||
src = fetchhg {
|
||||
url = "https://vim.googlecode.com/hg/";
|
||||
tag = "v7-4-131";
|
||||
sha256 = "1akr0i4pykbrkqwrglm0dfn5nwpncb9pgg4h7fl6a8likbr5f3wb";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -44,16 +44,6 @@ stdenv.mkDerivation rec {
|
||||
# sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
|
||||
# '';
|
||||
|
||||
prePatch = "cd src";
|
||||
|
||||
patches =
|
||||
[ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
|
||||
./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
|
||||
./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
|
||||
./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
|
||||
./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
|
||||
./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The most popular clone of the VI editor";
|
||||
homepage = http://www.vim.org;
|
||||
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
@ -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 ///
|
Loading…
x
Reference in New Issue
Block a user