Merge commit '7472552781d3bae854fe8045c0f073a2bd1e87b5' into f19

Conflicts:
	README.patches
	vim.spec
This commit is contained in:
Karsten Hopp 2013-12-17 14:42:56 +01:00
commit f391a66896
39 changed files with 4279 additions and 1 deletions

73
7.4.095 Normal file
View File

@ -0,0 +1,73 @@
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 Normal file
View File

@ -0,0 +1,96 @@
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 Normal file
View File

@ -0,0 +1,50 @@
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 Normal file
View File

@ -0,0 +1,243 @@
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 Normal file
View File

@ -0,0 +1,113 @@
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 ///

82
7.4.100 Normal file
View File

@ -0,0 +1,82 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.100
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.100
Problem: NFA regexp doesn't handle backreference correctly. (Ryuichi
Hayashida, Urtica Dioica)
Solution: Always add NFA_SKIP, also when it already exists at the start
position.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.099/src/regexp_nfa.c 2013-10-06 15:46:06.000000000 +0200
--- src/regexp_nfa.c 2013-11-21 15:58:58.000000000 +0100
***************
*** 4278,4284 ****
* endless loop for "\(\)*" */
default:
! if (state->lastlist[nfa_ll_index] == l->id)
{
/* This state is already in the list, don't add it again,
* unless it is an MOPEN that is used for a backreference or
--- 4278,4284 ----
* endless loop for "\(\)*" */
default:
! if (state->lastlist[nfa_ll_index] == l->id && state->c != NFA_SKIP)
{
/* This state is already in the list, don't add it again,
* unless it is an MOPEN that is used for a backreference or
*** ../vim-7.4.099/src/testdir/test64.in 2013-09-25 18:16:34.000000000 +0200
--- src/testdir/test64.in 2013-11-21 15:58:19.000000000 +0100
***************
*** 406,411 ****
--- 406,412 ----
:call add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
:call add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo.bat', 'bat', 'bat'])
:call add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '${0}', '0'])
+ :call add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
:"
:"""" Look-behind with limit
:call add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
*** ../vim-7.4.099/src/testdir/test64.ok 2013-09-25 18:16:34.000000000 +0200
--- src/testdir/test64.ok 2013-11-21 15:59:04.000000000 +0100
***************
*** 944,949 ****
--- 944,952 ----
OK 0 - \\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}
OK 1 - \\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}
OK 2 - \\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}
+ OK 0 - ^\(a*\)\1$
+ OK 1 - ^\(a*\)\1$
+ OK 2 - ^\(a*\)\1$
OK 0 - <\@<=span.
OK 1 - <\@<=span.
OK 2 - <\@<=span.
*** ../vim-7.4.099/src/version.c 2013-11-21 14:39:58.000000000 +0100
--- src/version.c 2013-11-21 16:02:27.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 100,
/**/
--
Sometimes you can protect millions of dollars in your budget simply by buying
a bag of cookies, dropping it on the budget anylyst's desk, and saying
something deeply personal such as "How was your weekend, big guy?"
(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 ///

93
7.4.101 Normal file
View File

@ -0,0 +1,93 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.101
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.101
Problem: Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution: Only advance the match end for the matched characters in the last
line.
Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.4.100/src/regexp.c 2013-09-19 17:03:57.000000000 +0200
--- src/regexp.c 2013-11-21 16:58:38.000000000 +0100
***************
*** 6455,6461 ****
/*
* Check whether a backreference matches.
* Returns RA_FAIL, RA_NOMATCH or RA_MATCH.
! * If "bytelen" is not NULL, it is set to the bytelength of the whole match.
*/
static int
match_with_backref(start_lnum, start_col, end_lnum, end_col, bytelen)
--- 6455,6462 ----
/*
* Check whether a backreference matches.
* Returns RA_FAIL, RA_NOMATCH or RA_MATCH.
! * If "bytelen" is not NULL, it is set to the byte length of the match in the
! * last line.
*/
static int
match_with_backref(start_lnum, start_col, end_lnum, end_col, bytelen)
***************
*** 6511,6516 ****
--- 6512,6519 ----
/* Advance to next line. */
reg_nextline();
+ if (bytelen != NULL)
+ *bytelen = 0;
++clnum;
ccol = 0;
if (got_int)
*** ../vim-7.4.100/src/testdir/test64.in 2013-11-21 16:03:35.000000000 +0100
--- src/testdir/test64.in 2013-11-21 16:56:20.000000000 +0100
***************
*** 507,512 ****
--- 507,514 ----
:" Check a pattern with a line break and ^ and $
:call add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
:"
+ :call add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
+ :"
:"""" Run the multi-line tests
:"
:$put ='multi-line tests'
*** ../vim-7.4.100/src/testdir/test64.ok 2013-11-21 16:03:35.000000000 +0100
--- src/testdir/test64.ok 2013-11-21 16:57:41.000000000 +0100
***************
*** 1031,1036 ****
--- 1031,1039 ----
OK 0 - a\n^b$\n^c
OK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c
+ OK 0 - \(^.\+\n\)\1
+ OK 1 - \(^.\+\n\)\1
+ OK 2 - \(^.\+\n\)\1
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>
*** ../vim-7.4.100/src/version.c 2013-11-21 16:03:35.000000000 +0100
--- src/version.c 2013-11-21 16:44:00.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 101,
/**/
--
The budget process was invented by an alien race of sadistic beings who
resemble large cats.
(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 ///

84
7.4.102 Normal file
View File

@ -0,0 +1,84 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.102
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.102
Problem: Crash when interrupting "z=".
Solution: Add safety check for word length. (Christian Brabandt, Dominique
Pelle)
Files: src/spell.c
*** ../vim-7.4.101/src/spell.c 2013-11-14 03:54:02.000000000 +0100
--- src/spell.c 2013-11-21 17:37:04.000000000 +0100
***************
*** 13398,13406 ****
/* Lookup the word "orgnr" one of the two tries. */
n = 0;
- wlen = 0;
wordcount = 0;
! for (;;)
{
i = 1;
if (wordcount == orgnr && byts[n + 1] == NUL)
--- 13398,13405 ----
/* Lookup the word "orgnr" one of the two tries. */
n = 0;
wordcount = 0;
! for (wlen = 0; wlen < MAXWLEN - 3; ++wlen)
{
i = 1;
if (wordcount == orgnr && byts[n + 1] == NUL)
***************
*** 13414,13419 ****
--- 13413,13419 ----
if (i > byts[n]) /* safety check */
{
STRCPY(theword + wlen, "BAD");
+ wlen += 3;
goto badword;
}
***************
*** 13426,13432 ****
wordcount += wc;
}
! theword[wlen++] = byts[n + i];
n = idxs[n + i];
}
badword:
--- 13426,13432 ----
wordcount += wc;
}
! theword[wlen] = byts[n + i];
n = idxs[n + i];
}
badword:
*** ../vim-7.4.101/src/version.c 2013-11-21 17:12:55.000000000 +0100
--- src/version.c 2013-11-21 17:38:21.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 102,
/**/
--
Engineers will go without food and hygiene for days to solve a problem.
(Other times just because they forgot.)
(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 ///

93
7.4.103 Normal file
View File

@ -0,0 +1,93 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.103
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.103
Problem: Dos installer uses an old way to escape spaces in the diff
command.
Solution: Adjust the quoting to the new default shellxquote. (Ben Fritz)
Files: src/dosinst.c
*** ../vim-7.4.102/src/dosinst.c 2013-11-07 04:49:23.000000000 +0100
--- src/dosinst.c 2013-11-21 18:12:13.000000000 +0100
***************
*** 1192,1214 ****
fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n");
/* If the path has a space: When using cmd.exe (Win NT/2000/XP) put
! * quotes around the whole command and around the diff command.
* Otherwise put a double quote just before the space and at the
* end of the command. Putting quotes around the whole thing
* doesn't work on Win 95/98/ME. This is mostly guessed! */
- fprintf(fd, " let eq = ''\n");
fprintf(fd, " if $VIMRUNTIME =~ ' '\n");
fprintf(fd, " if &sh =~ '\\<cmd'\n");
! fprintf(fd, " let cmd = '\"\"' . $VIMRUNTIME . '\\diff\"'\n");
! fprintf(fd, " let eq = '\"'\n");
fprintf(fd, " else\n");
fprintf(fd, " let cmd = substitute($VIMRUNTIME, ' ', '\" ', '') . '\\diff\"'\n");
fprintf(fd, " endif\n");
fprintf(fd, " else\n");
fprintf(fd, " let cmd = $VIMRUNTIME . '\\diff'\n");
fprintf(fd, " endif\n");
! fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq\n");
!
fprintf(fd, "endfunction\n");
fprintf(fd, "\n");
}
--- 1192,1220 ----
fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n");
/* If the path has a space: When using cmd.exe (Win NT/2000/XP) put
! * quotes around the diff command and rely on the default value of
! * shellxquote to solve the quoting problem for the whole command.
! *
* Otherwise put a double quote just before the space and at the
* end of the command. Putting quotes around the whole thing
* doesn't work on Win 95/98/ME. This is mostly guessed! */
fprintf(fd, " if $VIMRUNTIME =~ ' '\n");
fprintf(fd, " if &sh =~ '\\<cmd'\n");
! fprintf(fd, " if empty(&shellxquote)\n");
! fprintf(fd, " let l:shxq_sav = ''\n");
! fprintf(fd, " set shellxquote&\n");
! fprintf(fd, " endif\n");
! fprintf(fd, " let cmd = '\"' . $VIMRUNTIME . '\\diff\"'\n");
fprintf(fd, " else\n");
fprintf(fd, " let cmd = substitute($VIMRUNTIME, ' ', '\" ', '') . '\\diff\"'\n");
fprintf(fd, " endif\n");
fprintf(fd, " else\n");
fprintf(fd, " let cmd = $VIMRUNTIME . '\\diff'\n");
fprintf(fd, " endif\n");
! fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3\n");
! fprintf(fd, " if exists('l:shxq_sav')\n");
! fprintf(fd, " let &shellxquote=l:shxq_sav\n");
! fprintf(fd, " endif\n");
fprintf(fd, "endfunction\n");
fprintf(fd, "\n");
}
*** ../vim-7.4.102/src/version.c 2013-11-21 17:42:26.000000000 +0100
--- src/version.c 2013-11-21 18:11:08.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 103,
/**/
--
The fastest way to get an engineer to solve a problem is to declare that the
problem is unsolvable. No engineer can walk away from an unsolvable problem
until it's solved.
(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 ///

107
7.4.104 Normal file
View File

@ -0,0 +1,107 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.104
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.104
Problem: ":help s/\_" reports an internal error. (John Beckett)
Solution: Check for NUL and invalid character classes.
Files: src/regexp_nfa.c
*** ../vim-7.4.103/src/regexp_nfa.c 2013-11-21 16:03:35.000000000 +0100
--- src/regexp_nfa.c 2013-11-28 14:05:34.000000000 +0100
***************
*** 239,245 ****
--- 239,247 ----
NFA_UPPER, NFA_NUPPER
};
+ static char_u e_nul_found[] = N_("E865: (NFA) Regexp end encountered prematurely");
static char_u e_misplaced[] = N_("E866: (NFA regexp) Misplaced %c");
+ static char_u e_ill_char_class[] = N_("E877: (NFA regexp) Invalid character class: %ld");
/* NFA regexp \ze operator encountered. */
static int nfa_has_zend;
***************
*** 1137,1143 ****
switch (c)
{
case NUL:
! EMSG_RET_FAIL(_("E865: (NFA) Regexp end encountered prematurely"));
case Magic('^'):
EMIT(NFA_BOL);
--- 1139,1145 ----
switch (c)
{
case NUL:
! EMSG_RET_FAIL(_(e_nul_found));
case Magic('^'):
EMIT(NFA_BOL);
***************
*** 1160,1165 ****
--- 1162,1170 ----
case Magic('_'):
c = no_Magic(getchr());
+ if (c == NUL)
+ EMSG_RET_FAIL(_(e_nul_found));
+
if (c == '^') /* "\_^" is start-of-line */
{
EMIT(NFA_BOL);
***************
*** 1216,1221 ****
--- 1221,1232 ----
p = vim_strchr(classchars, no_Magic(c));
if (p == NULL)
{
+ if (extra == NFA_ADD_NL)
+ {
+ EMSGN(_(e_ill_char_class), c);
+ rc_did_emsg = TRUE;
+ return FAIL;
+ }
EMSGN("INTERNAL: Unknown character class char: %ld", c);
return FAIL;
}
***************
*** 4733,4739 ****
default:
/* should not be here :P */
! EMSGN("E877: (NFA regexp) Invalid character class: %ld", class);
return FAIL;
}
return FAIL;
--- 4744,4750 ----
default:
/* should not be here :P */
! EMSGN(_(e_ill_char_class), class);
return FAIL;
}
return FAIL;
*** ../vim-7.4.103/src/version.c 2013-11-21 18:13:26.000000000 +0100
--- src/version.c 2013-11-28 14:06:59.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 104,
/**/
--
Everybody wants to go to heaven, but nobody wants to die.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

58
7.4.105 Normal file
View File

@ -0,0 +1,58 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.105
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.105
Problem: Completing a tag pattern may give an error for invalid pattern.
Solution: Suppress the error, just return no matches.
Files: src/tag.c
*** ../vim-7.4.104/src/tag.c 2013-11-08 04:30:06.000000000 +0100
--- src/tag.c 2013-11-28 14:27:38.000000000 +0100
***************
*** 1326,1331 ****
--- 1326,1332 ----
int match_no_ic = 0;/* matches with rm_ic == FALSE */
int match_re; /* match with regexp */
int matchoff = 0;
+ int save_emsg_off;
#ifdef FEAT_EMACS_TAGS
/*
***************
*** 1442,1448 ****
--- 1443,1452 ----
if (p_tl != 0 && orgpat.len > p_tl) /* adjust for 'taglength' */
orgpat.len = p_tl;
+ save_emsg_off = emsg_off;
+ emsg_off = TRUE; /* don't want error for invalid RE here */
prepare_pats(&orgpat, has_re);
+ emsg_off = save_emsg_off;
if (has_re && orgpat.regmatch.regprog == NULL)
goto findtag_end;
*** ../vim-7.4.104/src/version.c 2013-11-28 14:20:11.000000000 +0100
--- src/version.c 2013-11-28 14:30:35.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 105,
/**/
--
The goal of science is to build better mousetraps.
The goal of nature is to build better mice.
/// 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.106 Normal file
View File

@ -0,0 +1,68 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.106
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.106
Problem: Can't build with Ruby using Cygwin.
Solution: Fix library name in makefile. (Steve Hall)
Files: src/Make_cyg.mak
*** ../vim-7.4.105/src/Make_cyg.mak 2013-09-19 20:48:59.000000000 +0200
--- src/Make_cyg.mak 2013-11-28 16:29:52.000000000 +0100
***************
*** 1,6 ****
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2013 Sep 19
#
# Also read INSTALLpc.txt!
#
--- 1,6 ----
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2013 Nov 28
#
# Also read INSTALLpc.txt!
#
***************
*** 272,278 ****
DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
else
! EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
endif
endif
--- 272,278 ----
DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
else
! EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME)
endif
endif
*** ../vim-7.4.105/src/version.c 2013-11-28 14:36:24.000000000 +0100
--- src/version.c 2013-11-28 16:29:25.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 106,
/**/
--
hundred-and-one symptoms of being an internet addict:
7. You finally do take that vacation, but only after buying a cellular modem
and a 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 ///

639
7.4.107 Normal file
View File

@ -0,0 +1,639 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.107
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.107
Problem: Python: When vim.eval() encounters a Vim error, a try/catch in the
Python code doesn't catch it. (Yggdroot Chen)
Solution: Throw exceptions on errors in vim.eval(). (ZyX)
Files: src/ex_eval.c, src/if_py_both.h, src/proto/ex_eval.pro,
src/testdir/test86.in, src/testdir/test86.ok,
src/testdir/test87.in, src/testdir/test87.ok
*** ../vim-7.4.106/src/ex_eval.c 2013-06-08 15:50:28.000000000 +0200
--- src/ex_eval.c 2013-11-28 16:59:09.000000000 +0100
***************
*** 321,326 ****
--- 321,337 ----
}
/*
+ * Free global "*msg_list" and the messages it contains, then set "*msg_list"
+ * to NULL.
+ */
+ void
+ free_global_msglist()
+ {
+ free_msglist(*msg_list);
+ *msg_list = NULL;
+ }
+
+ /*
* Throw the message specified in the call to cause_errthrow() above as an
* error exception. If cstack is NULL, postpone the throw until do_cmdline()
* has returned (see do_one_cmd()).
***************
*** 410,475 ****
return TRUE;
}
-
/*
! * Throw a new exception. Return FAIL when out of memory or it was tried to
! * throw an illegal user exception. "value" is the exception string for a user
! * or interrupt exception, or points to a message list in case of an error
! * exception.
*/
! static int
! throw_exception(value, type, cmdname)
void *value;
int type;
char_u *cmdname;
{
! except_T *excp;
! char_u *p, *mesg, *val;
int cmdlen;
!
! /*
! * Disallow faking Interrupt or error exceptions as user exceptions. They
! * would be treated differently from real interrupt or error exceptions when
! * no active try block is found, see do_cmdline().
! */
! if (type == ET_USER)
! {
! if (STRNCMP((char_u *)value, "Vim", 3) == 0 &&
! (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':' ||
! ((char_u *)value)[3] == '('))
! {
! EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
! goto fail;
! }
! }
!
! excp = (except_T *)alloc((unsigned)sizeof(except_T));
! if (excp == NULL)
! goto nomem;
if (type == ET_ERROR)
{
! /* Store the original message and prefix the exception value with
! * "Vim:" or, if a command name is given, "Vim(cmdname):". */
! excp->messages = (struct msglist *)value;
! mesg = excp->messages->throw_msg;
if (cmdname != NULL && *cmdname != NUL)
{
cmdlen = (int)STRLEN(cmdname);
! excp->value = vim_strnsave((char_u *)"Vim(",
4 + cmdlen + 2 + (int)STRLEN(mesg));
! if (excp->value == NULL)
! goto nomem;
! STRCPY(&excp->value[4], cmdname);
! STRCPY(&excp->value[4 + cmdlen], "):");
! val = excp->value + 4 + cmdlen + 2;
}
else
{
! excp->value = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
! if (excp->value == NULL)
! goto nomem;
! val = excp->value + 4;
}
/* msg_add_fname may have been used to prefix the message with a file
--- 421,461 ----
return TRUE;
}
/*
! * Get an exception message that is to be stored in current_exception->value.
*/
! char_u *
! get_exception_string(value, type, cmdname, should_free)
void *value;
int type;
char_u *cmdname;
+ int *should_free;
{
! char_u *ret, *mesg;
int cmdlen;
! char_u *p, *val;
if (type == ET_ERROR)
{
! *should_free = FALSE;
! mesg = ((struct msglist *)value)->throw_msg;
if (cmdname != NULL && *cmdname != NUL)
{
cmdlen = (int)STRLEN(cmdname);
! ret = vim_strnsave((char_u *)"Vim(",
4 + cmdlen + 2 + (int)STRLEN(mesg));
! if (ret == NULL)
! return ret;
! STRCPY(&ret[4], cmdname);
! STRCPY(&ret[4 + cmdlen], "):");
! val = ret + 4 + cmdlen + 2;
}
else
{
! ret = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
! if (ret == NULL)
! return ret;
! val = ret + 4;
}
/* msg_add_fname may have been used to prefix the message with a file
***************
*** 506,519 ****
}
}
else
! excp->value = value;
excp->type = type;
excp->throw_name = vim_strsave(sourcing_name == NULL
? (char_u *)"" : sourcing_name);
if (excp->throw_name == NULL)
{
! if (type == ET_ERROR)
vim_free(excp->value);
goto nomem;
}
--- 492,556 ----
}
}
else
! {
! *should_free = FALSE;
! ret = (char_u *) value;
! }
!
! return ret;
! }
!
!
! /*
! * Throw a new exception. Return FAIL when out of memory or it was tried to
! * throw an illegal user exception. "value" is the exception string for a
! * user or interrupt exception, or points to a message list in case of an
! * error exception.
! */
! static int
! throw_exception(value, type, cmdname)
! void *value;
! int type;
! char_u *cmdname;
! {
! except_T *excp;
! int should_free;
!
! /*
! * Disallow faking Interrupt or error exceptions as user exceptions. They
! * would be treated differently from real interrupt or error exceptions
! * when no active try block is found, see do_cmdline().
! */
! if (type == ET_USER)
! {
! if (STRNCMP((char_u *)value, "Vim", 3) == 0
! && (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':'
! || ((char_u *)value)[3] == '('))
! {
! EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
! goto fail;
! }
! }
!
! excp = (except_T *)alloc((unsigned)sizeof(except_T));
! if (excp == NULL)
! goto nomem;
!
! if (type == ET_ERROR)
! /* Store the original message and prefix the exception value with
! * "Vim:" or, if a command name is given, "Vim(cmdname):". */
! excp->messages = (struct msglist *)value;
!
! excp->value = get_exception_string(value, type, cmdname, &should_free);
! if (excp->value == NULL && should_free)
! goto nomem;
excp->type = type;
excp->throw_name = vim_strsave(sourcing_name == NULL
? (char_u *)"" : sourcing_name);
if (excp->throw_name == NULL)
{
! if (should_free)
vim_free(excp->value);
goto nomem;
}
***************
*** 2033,2042 ****
/* If an error was about to be converted to an exception when
* enter_cleanup() was called, free the message list. */
if (msg_list != NULL)
! {
! free_msglist(*msg_list);
! *msg_list = NULL;
! }
}
/*
--- 2070,2076 ----
/* If an error was about to be converted to an exception when
* enter_cleanup() was called, free the message list. */
if (msg_list != NULL)
! free_global_msglist();
}
/*
*** ../vim-7.4.106/src/if_py_both.h 2013-11-11 01:05:43.000000000 +0100
--- src/if_py_both.h 2013-11-28 17:00:22.000000000 +0100
***************
*** 566,571 ****
--- 566,593 ----
PyErr_SetNone(PyExc_KeyboardInterrupt);
return -1;
}
+ else if (msg_list != NULL && *msg_list != NULL)
+ {
+ int should_free;
+ char_u *msg;
+
+ msg = get_exception_string(*msg_list, ET_ERROR, NULL, &should_free);
+
+ if (msg == NULL)
+ {
+ PyErr_NoMemory();
+ return -1;
+ }
+
+ PyErr_SetVim((char *) msg);
+
+ free_global_msglist();
+
+ if (should_free)
+ vim_free(msg);
+
+ return -1;
+ }
else if (!did_throw)
return (PyErr_Occurred() ? -1 : 0);
/* Python exception is preferred over vim one; unlikely to occur though */
*** ../vim-7.4.106/src/proto/ex_eval.pro 2013-08-10 13:37:10.000000000 +0200
--- src/proto/ex_eval.pro 2013-11-28 16:56:33.000000000 +0100
***************
*** 4,11 ****
--- 4,13 ----
int should_abort __ARGS((int retcode));
int aborted_in_try __ARGS((void));
int cause_errthrow __ARGS((char_u *mesg, int severe, int *ignore));
+ void free_global_msglist __ARGS((void));
void do_errthrow __ARGS((struct condstack *cstack, char_u *cmdname));
int do_intthrow __ARGS((struct condstack *cstack));
+ char_u *get_exception_string __ARGS((void *value, int type, char_u *cmdname, int *should_free));
void discard_current_exception __ARGS((void));
void report_make_pending __ARGS((int pending, void *value));
void report_resume_pending __ARGS((int pending, void *value));
*** ../vim-7.4.106/src/testdir/test86.in 2013-11-11 01:05:43.000000000 +0100
--- src/testdir/test86.in 2013-11-28 16:41:01.000000000 +0100
***************
*** 179,184 ****
--- 179,210 ----
:unlockvar! l
:"
:" Function calls
+ py << EOF
+ import sys
+ def ee(expr, g=globals(), l=locals()):
+ try:
+ exec(expr, g, l)
+ except:
+ ei = sys.exc_info()
+ msg = sys.exc_info()[0].__name__ + ':' + repr(sys.exc_info()[1].args)
+ msg = msg.replace('TypeError:(\'argument 1 ', 'TypeError:(\'')
+ if expr.find('None') > -1:
+ msg = msg.replace('TypeError:(\'iteration over non-sequence\',)',
+ 'TypeError:("\'NoneType\' object is not iterable",)')
+ if expr.find('FailingNumber') > -1:
+ msg = msg.replace(', not \'FailingNumber\'', '').replace('"', '\'')
+ msg = msg.replace('TypeError:(\'iteration over non-sequence\',)',
+ 'TypeError:("\'FailingNumber\' object is not iterable",)')
+ if msg.find('(\'\'') > -1 or msg.find('(\'can\'t') > -1:
+ msg = msg.replace('(\'', '("').replace('\',)', '",)')
+ if expr == 'fd(self=[])':
+ # HACK: PyMapping_Check changed meaning
+ msg = msg.replace('AttributeError:(\'keys\',)',
+ 'TypeError:(\'unable to convert list to vim dictionary\',)')
+ vim.current.buffer.append(expr + ':' + msg)
+ else:
+ vim.current.buffer.append(expr + ':NOT FAILED')
+ EOF
:fun New(...)
: return ['NewStart']+a:000+['NewEnd']
:endfun
***************
*** 193,210 ****
:$put =string(l)
:py l.extend([l[0].name])
:$put =string(l)
! :try
! : py l[1](1, 2, 3)
! :catch
! : $put =v:exception[:16]
! :endtry
:py f=l[0]
:delfunction New
! :try
! : py f(1, 2, 3)
! :catch
! : $put =v:exception[:16]
! :endtry
:if has('float')
: let l=[0.0]
: py l=vim.bindeval('l')
--- 219,228 ----
:$put =string(l)
:py l.extend([l[0].name])
:$put =string(l)
! :py ee('l[1](1, 2, 3)')
:py f=l[0]
:delfunction New
! :py ee('f(1, 2, 3)')
:if has('float')
: let l=[0.0]
: py l=vim.bindeval('l')
***************
*** 216,222 ****
:let messages=[]
:delfunction DictNew
py <<EOF
- import sys
d=vim.bindeval('{}')
m=vim.bindeval('messages')
def em(expr, g=globals(), l=locals()):
--- 234,239 ----
***************
*** 323,328 ****
--- 340,346 ----
:py l[0] = t.t > 8 # check if the background thread is working
:py del time
:py del threading
+ :py del t
:$put =string(l)
:"
:" settrace
***************
*** 882,910 ****
:fun D()
:endfun
py << EOF
- def ee(expr, g=globals(), l=locals()):
- try:
- exec(expr, g, l)
- except:
- ei = sys.exc_info()
- msg = sys.exc_info()[0].__name__ + ':' + repr(sys.exc_info()[1].args)
- msg = msg.replace('TypeError:(\'argument 1 ', 'TypeError:(\'')
- if expr.find('None') > -1:
- msg = msg.replace('TypeError:(\'iteration over non-sequence\',)',
- 'TypeError:("\'NoneType\' object is not iterable",)')
- if expr.find('FailingNumber') > -1:
- msg = msg.replace(', not \'FailingNumber\'', '').replace('"', '\'')
- msg = msg.replace('TypeError:(\'iteration over non-sequence\',)',
- 'TypeError:("\'FailingNumber\' object is not iterable",)')
- if msg.find('(\'\'') > -1 or msg.find('(\'can\'t') > -1:
- msg = msg.replace('(\'', '("').replace('\',)', '",)')
- if expr == 'fd(self=[])':
- # HACK: PyMapping_Check changed meaning
- msg = msg.replace('AttributeError:(\'keys\',)',
- 'TypeError:(\'unable to convert list to vim dictionary\',)')
- cb.append(expr + ':' + msg)
- else:
- cb.append(expr + ':NOT FAILED')
d = vim.Dictionary()
ned = vim.Dictionary(foo='bar', baz='abcD')
dl = vim.Dictionary(a=1)
--- 900,905 ----
***************
*** 1276,1281 ****
--- 1271,1277 ----
ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')
ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
+ ee('vim.eval("xxx_unknown_function_xxx()")')
ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
del Exe
EOF
*** ../vim-7.4.106/src/testdir/test86.ok 2013-11-11 01:05:43.000000000 +0100
--- src/testdir/test86.ok 2013-11-28 16:41:01.000000000 +0100
***************
*** 53,60 ****
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
! Vim(python):E725:
! Vim(python):E117:
[0.0, 0.0]
KeyError
TypeError
--- 53,60 ----
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
! l[1](1, 2, 3):error:('Vim:E725: Calling dict function without Dictionary: DictNew',)
! f(1, 2, 3):error:('Vim:E117: Unknown function: New',)
[0.0, 0.0]
KeyError
TypeError
***************
*** 1197,1202 ****
--- 1197,1203 ----
vim.eval("Exe('throw ''ghi''')"):error:('ghi',)
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.eval("xxx_unknown_function_xxx()"):error:('Vim:E117: Unknown function: xxx_unknown_function_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
*** ../vim-7.4.106/src/testdir/test87.in 2013-11-11 01:05:43.000000000 +0100
--- src/testdir/test87.in 2013-11-28 16:41:01.000000000 +0100
***************
*** 172,177 ****
--- 172,207 ----
:unlockvar! l
:"
:" Function calls
+ py3 << EOF
+ import sys
+ import re
+
+ py33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional argument but (\d+) were given$')
+
+ def ee(expr, g=globals(), l=locals()):
+ cb = vim.current.buffer
+ try:
+ try:
+ exec(expr, g, l)
+ except Exception as e:
+ if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):
+ cb.append(expr + ':' + repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1]))))
+ elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0:
+ cb.append(expr + ':' + repr((e.__class__, ImportError(str(e).replace("'", '')))))
+ elif sys.version_info >= (3, 3) and e.__class__ is TypeError:
+ m = py33_type_error_pattern.search(str(e))
+ if m:
+ msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2))
+ cb.append(expr + ':' + repr((e.__class__, TypeError(msg))))
+ else:
+ cb.append(expr + ':' + repr((e.__class__, e)))
+ else:
+ cb.append(expr + ':' + repr((e.__class__, e)))
+ else:
+ cb.append(expr + ':NOT FAILED')
+ except Exception as e:
+ cb.append(expr + '::' + repr((e.__class__, e)))
+ EOF
:fun New(...)
: return ['NewStart']+a:000+['NewEnd']
:endfun
***************
*** 186,203 ****
:$put =string(l)
:py3 l+=[l[0].name]
:$put =string(l)
! :try
! : py3 l[1](1, 2, 3)
! :catch
! : $put =v:exception[:13]
! :endtry
:py3 f=l[0]
:delfunction New
! :try
! : py3 f(1, 2, 3)
! :catch
! : $put =v:exception[:13]
! :endtry
:if has('float')
: let l=[0.0]
: py3 l=vim.bindeval('l')
--- 216,225 ----
:$put =string(l)
:py3 l+=[l[0].name]
:$put =string(l)
! :py3 ee('l[1](1, 2, 3)')
:py3 f=l[0]
:delfunction New
! :py3 ee('f(1, 2, 3)')
:if has('float')
: let l=[0.0]
: py3 l=vim.bindeval('l')
***************
*** 315,320 ****
--- 337,343 ----
:py3 l[0] = t.t > 8 # check if the background thread is working
:py3 del time
:py3 del threading
+ :py3 del t
:$put =string(l)
:"
:" settrace
***************
*** 829,861 ****
:fun D()
:endfun
py3 << EOF
- import re
-
- py33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional argument but (\d+) were given$')
-
- def ee(expr, g=globals(), l=locals()):
- try:
- try:
- exec(expr, g, l)
- except Exception as e:
- if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):
- cb.append(expr + ':' + repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1]))))
- elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0:
- cb.append(expr + ':' + repr((e.__class__, ImportError(str(e).replace("'", '')))))
- elif sys.version_info >= (3, 3) and e.__class__ is TypeError:
- m = py33_type_error_pattern.search(str(e))
- if m:
- msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2))
- cb.append(expr + ':' + repr((e.__class__, TypeError(msg))))
- else:
- cb.append(expr + ':' + repr((e.__class__, e)))
- else:
- cb.append(expr + ':' + repr((e.__class__, e)))
- else:
- cb.append(expr + ':NOT FAILED')
- except Exception as e:
- cb.append(expr + '::' + repr((e.__class__, e)))
-
d = vim.Dictionary()
ned = vim.Dictionary(foo='bar', baz='abcD')
dl = vim.Dictionary(a=1)
--- 852,857 ----
***************
*** 1227,1232 ****
--- 1223,1229 ----
ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')
ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
+ ee('vim.eval("xxx_unknown_function_xxx()")')
ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
del Exe
EOF
*** ../vim-7.4.106/src/testdir/test87.ok 2013-11-11 01:05:43.000000000 +0100
--- src/testdir/test87.ok 2013-11-28 16:41:01.000000000 +0100
***************
*** 53,60 ****
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
! Vim(py3):E725:
! Vim(py3):E117:
[0.0, 0.0]
KeyError
TypeError
--- 53,60 ----
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
! l[1](1, 2, 3):(<class 'vim.error'>, error('Vim:E725: Calling dict function without Dictionary: DictNew',))
! f(1, 2, 3):(<class 'vim.error'>, error('Vim:E117: Unknown function: New',))
[0.0, 0.0]
KeyError
TypeError
***************
*** 1186,1191 ****
--- 1186,1192 ----
vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
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.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unknown function: xxx_unknown_function_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
*** ../vim-7.4.106/src/version.c 2013-11-28 16:32:34.000000000 +0100
--- src/version.c 2013-11-28 16:41:43.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 107,
/**/
--
hundred-and-one symptoms of being an internet addict:
8. You spend half of the plane trip with your laptop on your lap...and your
child in the overhead compartment.
/// 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 ///

215
7.4.108 Normal file
View File

@ -0,0 +1,215 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.108
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.108
Problem: "zG" and "zW" leave temp files around on MS-Windows.
Solution: Delete the temp files when exiting. (Ken Takata)
Files: src/memline.c, src/proto/spell.pro, src/spell.c
*** ../vim-7.4.107/src/memline.c 2013-11-04 02:53:46.000000000 +0100
--- src/memline.c 2013-11-28 17:27:06.000000000 +0100
***************
*** 841,848 ****
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0
|| vim_strchr(p_cpo, CPO_PRESERVE) == NULL));
#ifdef TEMPDIRNAMES
! vim_deltempdir(); /* delete created temp directory */
#endif
}
--- 841,851 ----
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0
|| vim_strchr(p_cpo, CPO_PRESERVE) == NULL));
+ #ifdef FEAT_SPELL
+ spell_delete_wordlist(); /* delete the internal wordlist */
+ #endif
#ifdef TEMPDIRNAMES
! vim_deltempdir(); /* delete created temp directory */
#endif
}
*** ../vim-7.4.107/src/proto/spell.pro 2013-08-10 13:37:26.000000000 +0200
--- src/proto/spell.pro 2013-11-28 17:25:59.000000000 +0100
***************
*** 3,8 ****
--- 3,9 ----
int spell_move_to __ARGS((win_T *wp, int dir, int allwords, int curline, hlf_T *attrp));
void spell_cat_line __ARGS((char_u *buf, char_u *line, int maxlen));
char_u *did_set_spelllang __ARGS((win_T *wp));
+ void spell_delete_wordlist __ARGS((void));
void spell_free_all __ARGS((void));
void spell_reload __ARGS((void));
int spell_check_msm __ARGS((void));
*** ../vim-7.4.107/src/spell.c 2013-11-21 17:42:26.000000000 +0100
--- src/spell.c 2013-11-28 17:25:59.000000000 +0100
***************
*** 2180,2188 ****
char_u *endp;
hlf_T attr;
int len;
! # ifdef FEAT_SYN_HL
int has_syntax = syntax_present(wp);
! # endif
int col;
int can_spell;
char_u *buf = NULL;
--- 2180,2188 ----
char_u *endp;
hlf_T attr;
int len;
! #ifdef FEAT_SYN_HL
int has_syntax = syntax_present(wp);
! #endif
int col;
int can_spell;
char_u *buf = NULL;
***************
*** 2280,2286 ****
: p - buf)
> wp->w_cursor.col)))
{
! # ifdef FEAT_SYN_HL
if (has_syntax)
{
col = (int)(p - buf);
--- 2280,2286 ----
: p - buf)
> wp->w_cursor.col)))
{
! #ifdef FEAT_SYN_HL
if (has_syntax)
{
col = (int)(p - buf);
***************
*** 4701,4707 ****
return flags;
}
! # if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO)
/*
* Free all languages.
*/
--- 4701,4725 ----
return flags;
}
! /*
! * Delete the internal wordlist and its .spl file.
! */
! void
! spell_delete_wordlist()
! {
! char_u fname[MAXPATHL];
!
! if (int_wordlist != NULL)
! {
! mch_remove(int_wordlist);
! int_wordlist_spl(fname);
! mch_remove(fname);
! vim_free(int_wordlist);
! int_wordlist = NULL;
! }
! }
!
! #if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO)
/*
* Free all languages.
*/
***************
*** 4710,4716 ****
{
slang_T *slang;
buf_T *buf;
- char_u fname[MAXPATHL];
/* Go through all buffers and handle 'spelllang'. <VN> */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
--- 4728,4733 ----
***************
*** 4723,4746 ****
slang_free(slang);
}
! if (int_wordlist != NULL)
! {
! /* Delete the internal wordlist and its .spl file */
! mch_remove(int_wordlist);
! int_wordlist_spl(fname);
! mch_remove(fname);
! vim_free(int_wordlist);
! int_wordlist = NULL;
! }
vim_free(repl_to);
repl_to = NULL;
vim_free(repl_from);
repl_from = NULL;
}
! # endif
! # if defined(FEAT_MBYTE) || defined(PROTO)
/*
* Clear all spelling tables and reload them.
* Used after 'encoding' is set and when ":mkspell" was used.
--- 4740,4755 ----
slang_free(slang);
}
! spell_delete_wordlist();
vim_free(repl_to);
repl_to = NULL;
vim_free(repl_from);
repl_from = NULL;
}
! #endif
! #if defined(FEAT_MBYTE) || defined(PROTO)
/*
* Clear all spelling tables and reload them.
* Used after 'encoding' is set and when ":mkspell" was used.
***************
*** 4773,4779 ****
}
}
}
! # endif
/*
* Reload the spell file "fname" if it's loaded.
--- 4782,4788 ----
}
}
}
! #endif
/*
* Reload the spell file "fname" if it's loaded.
*** ../vim-7.4.107/src/version.c 2013-11-28 17:04:38.000000000 +0100
--- src/version.c 2013-11-28 17:26:31.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 108,
/**/
--
hundred-and-one symptoms of being an internet addict:
9. All your daydreaming is preoccupied with getting a faster connection to the
net: 28.8...ISDN...cable modem...T1...T3.
/// 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 ///

123
7.4.109 Normal file
View File

@ -0,0 +1,123 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.109
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.109
Problem: ColorScheme autocommand matches with the current buffer name.
Solution: Match with the colorscheme name. (Christian Brabandt)
Files: runtime/doc/autocmd.txt, src/fileio.c, src/syntax.c
*** ../vim-7.4.108/runtime/doc/autocmd.txt 2013-08-10 13:24:52.000000000 +0200
--- runtime/doc/autocmd.txt 2013-11-28 18:44:20.000000000 +0100
***************
*** 480,485 ****
--- 480,491 ----
|cmdwin-char|
*ColorScheme*
ColorScheme After loading a color scheme. |:colorscheme|
+ The pattern is matched against the
+ colorscheme name. <afile> can be used for the
+ name of the actual file where this option was
+ set, and <amatch> for the new colorscheme
+ name.
+
*CompleteDone*
CompleteDone After Insert mode completion is done. Either
*** ../vim-7.4.108/src/fileio.c 2013-11-12 18:09:20.000000000 +0100
--- src/fileio.c 2013-11-28 18:44:20.000000000 +0100
***************
*** 9330,9336 ****
*/
if (fname_io == NULL)
{
! if (fname != NULL && *fname != NUL)
autocmd_fname = fname;
else if (buf != NULL)
autocmd_fname = buf->b_ffname;
--- 9330,9338 ----
*/
if (fname_io == NULL)
{
! if (event == EVENT_COLORSCHEME)
! autocmd_fname = NULL;
! else if (fname != NULL && *fname != NUL)
autocmd_fname = fname;
else if (buf != NULL)
autocmd_fname = buf->b_ffname;
***************
*** 9383,9396 ****
else
{
sfname = vim_strsave(fname);
! /* Don't try expanding FileType, Syntax, FuncUndefined, WindowID or
! * QuickFixCmd* */
if (event == EVENT_FILETYPE
|| event == EVENT_SYNTAX
|| event == EVENT_FUNCUNDEFINED
|| event == EVENT_REMOTEREPLY
|| event == EVENT_SPELLFILEMISSING
|| event == EVENT_QUICKFIXCMDPRE
|| event == EVENT_QUICKFIXCMDPOST)
fname = vim_strsave(fname);
else
--- 9385,9399 ----
else
{
sfname = vim_strsave(fname);
! /* Don't try expanding FileType, Syntax, FuncUndefined, WindowID,
! * ColorScheme or QuickFixCmd* */
if (event == EVENT_FILETYPE
|| event == EVENT_SYNTAX
|| event == EVENT_FUNCUNDEFINED
|| event == EVENT_REMOTEREPLY
|| event == EVENT_SPELLFILEMISSING
|| event == EVENT_QUICKFIXCMDPRE
+ || event == EVENT_COLORSCHEME
|| event == EVENT_QUICKFIXCMDPOST)
fname = vim_strsave(fname);
else
*** ../vim-7.4.108/src/syntax.c 2013-06-08 16:10:08.000000000 +0200
--- src/syntax.c 2013-11-28 18:44:20.000000000 +0100
***************
*** 7071,7077 ****
retval = source_runtime(buf, FALSE);
vim_free(buf);
#ifdef FEAT_AUTOCMD
! apply_autocmds(EVENT_COLORSCHEME, NULL, NULL, FALSE, curbuf);
#endif
}
recursive = FALSE;
--- 7071,7077 ----
retval = source_runtime(buf, FALSE);
vim_free(buf);
#ifdef FEAT_AUTOCMD
! apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, FALSE, curbuf);
#endif
}
recursive = FALSE;
*** ../vim-7.4.108/src/version.c 2013-11-28 17:41:41.000000000 +0100
--- src/version.c 2013-11-28 18:48:42.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 109,
/**/
--
"How is your new girlfriend?"
"90-60-90 man!"
"What, pale purple?"
/// 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.110 Normal file
View File

@ -0,0 +1,102 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.110
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.110
Problem: "gUgn" cannot be repeeated. (Dimitar Dimitrov)
Solution: Don't put "gn" in a different order in the redo buffer. Restore
'wrapscan' when the pattern isn't found. (Christian Wellenbrock)
Files: src/normal.c, src/search.c, src/test53.in, src/test53.ok
*** ../vim-7.4.109/src/normal.c 2013-11-04 01:41:11.000000000 +0100
--- src/normal.c 2013-11-28 19:02:45.000000000 +0100
***************
*** 962,972 ****
#ifdef FEAT_CMDL_INFO
need_flushbuf |= add_to_showcmd(ca.nchar);
#endif
- /* For "gn" from redo, need to get one more char to determine the
- * operator */
if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
! || ca.nchar == Ctrl_BSL
! || ((ca.nchar == 'n' || ca.nchar == 'N') && !stuff_empty()))
{
cp = &ca.extra_char; /* need to get a third character */
if (ca.nchar != 'r')
--- 962,969 ----
#ifdef FEAT_CMDL_INFO
need_flushbuf |= add_to_showcmd(ca.nchar);
#endif
if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
! || ca.nchar == Ctrl_BSL)
{
cp = &ca.extra_char; /* need to get a third character */
if (ca.nchar != 'r')
***************
*** 1797,1806 ****
* otherwise it might be the second char of the operator. */
if (cap->cmdchar == 'g' && (cap->nchar == 'n'
|| cap->nchar == 'N'))
! /* "gn" and "gN" are a bit different */
! prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar,
! get_op_char(oap->op_type),
! get_extra_op_char(oap->op_type));
else if (cap->cmdchar != ':')
prep_redo(oap->regname, 0L, NUL, 'v',
get_op_char(oap->op_type),
--- 1794,1802 ----
* otherwise it might be the second char of the operator. */
if (cap->cmdchar == 'g' && (cap->nchar == 'n'
|| cap->nchar == 'N'))
! prep_redo(oap->regname, cap->count0,
! get_op_char(oap->op_type), get_extra_op_char(oap->op_type),
! oap->motion_force, cap->cmdchar, cap->nchar);
else if (cap->cmdchar != ':')
prep_redo(oap->regname, 0L, NUL, 'v',
get_op_char(oap->op_type),
*** ../vim-7.4.109/src/search.c 2013-11-08 04:30:06.000000000 +0100
--- src/search.c 2013-11-28 19:05:16.000000000 +0100
***************
*** 4544,4550 ****
/* Is the pattern is zero-width? */
one_char = is_one_char(spats[last_idx].pat);
if (one_char == -1)
! return FAIL; /* invalid pattern */
/*
* The trick is to first search backwards and then search forward again,
--- 4544,4553 ----
/* Is the pattern is zero-width? */
one_char = is_one_char(spats[last_idx].pat);
if (one_char == -1)
! {
! p_ws = old_p_ws;
! return FAIL; /* pattern not found */
! }
/*
* The trick is to first search backwards and then search forward again,
*** ../vim-7.4.109/src/version.c 2013-11-28 18:53:47.000000000 +0100
--- src/version.c 2013-11-28 19:20:29.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 110,
/**/
--
hundred-and-one symptoms of being an internet addict:
10. And even your night dreams are in HTML.
/// 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.111 Normal file
View File

@ -0,0 +1,63 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.111
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.111
Problem: Memory leak in Python OptionsAssItem. (Ken Takata)
Solution: Call Py_XDECREF() where needed. (ZyX)
Files: src/if_py_both.h
*** ../vim-7.4.110/src/if_py_both.h 2013-11-28 17:04:38.000000000 +0100
--- src/if_py_both.h 2013-12-07 14:23:00.000000000 +0100
***************
*** 3005,3015 ****
else
{
char_u *val;
! PyObject *todecref;
! if ((val = StringToChars(valObject, &todecref)))
ret = set_option_value_for(key, 0, val, opt_flags,
self->opt_type, self->from);
else
ret = -1;
}
--- 3005,3018 ----
else
{
char_u *val;
! PyObject *todecref2;
! if ((val = StringToChars(valObject, &todecref2)))
! {
ret = set_option_value_for(key, 0, val, opt_flags,
self->opt_type, self->from);
+ Py_XDECREF(todecref2);
+ }
else
ret = -1;
}
*** ../vim-7.4.110/src/version.c 2013-11-28 19:27:18.000000000 +0100
--- src/version.c 2013-12-07 14:24:16.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 111,
/**/
--
How To Keep A Healthy Level Of Insanity:
12. Sing along at the opera.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

70
7.4.112 Normal file
View File

@ -0,0 +1,70 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.112
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.112
Problem: The defaults for 'directory' and 'backupdir' on MS-Windows do not
include a directory that exists.
Solution: Use $TEMP.
Files: src/os_dos.h
*** ../vim-7.4.111/src/os_dos.h 2013-06-12 20:09:44.000000000 +0200
--- src/os_dos.h 2013-12-04 15:23:22.000000000 +0100
***************
*** 109,115 ****
#endif
#ifndef DFLT_BDIR
! # define DFLT_BDIR ".,c:\\tmp,c:\\temp" /* default for 'backupdir' */
#endif
#ifndef DFLT_VDIR
--- 109,115 ----
#endif
#ifndef DFLT_BDIR
! # define DFLT_BDIR ".,$TEMP,c:\\tmp,c:\\temp" /* default for 'backupdir' */
#endif
#ifndef DFLT_VDIR
***************
*** 117,123 ****
#endif
#ifndef DFLT_DIR
! # define DFLT_DIR ".,c:\\tmp,c:\\temp" /* default for 'directory' */
#endif
#define DFLT_ERRORFILE "errors.err"
--- 117,123 ----
#endif
#ifndef DFLT_DIR
! # define DFLT_DIR ".,$TEMP,c:\\tmp,c:\\temp" /* default for 'directory' */
#endif
#define DFLT_ERRORFILE "errors.err"
*** ../vim-7.4.111/src/version.c 2013-12-07 14:28:37.000000000 +0100
--- src/version.c 2013-12-07 14:31:03.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 112,
/**/
--
How To Keep A Healthy Level Of Insanity:
13. Go to a poetry recital and ask why the poems don't rhyme.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

101
7.4.113 Normal file
View File

@ -0,0 +1,101 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.113
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.113
Problem: MSVC static analysis gives warnings.
Solution: Avoid the warnings and avoid possible bugs. (Ken Takata)
Files: src/os_win32.c
*** ../vim-7.4.112/src/os_win32.c 2013-11-21 12:34:07.000000000 +0100
--- src/os_win32.c 2013-12-07 14:41:35.000000000 +0100
***************
*** 2509,2515 ****
WCHAR *porig, *porigPrev;
int flen;
WIN32_FIND_DATAW fb;
! HANDLE hFind;
int c;
int slen;
--- 2509,2515 ----
WCHAR *porig, *porigPrev;
int flen;
WIN32_FIND_DATAW fb;
! HANDLE hFind = INVALID_HANDLE_VALUE;
int c;
int slen;
***************
*** 2528,2535 ****
/* copy leading drive letter */
*ptrue++ = *porig++;
*ptrue++ = *porig++;
- *ptrue = NUL; /* in case nothing follows */
}
while (*porig != NUL)
{
--- 2528,2535 ----
/* copy leading drive letter */
*ptrue++ = *porig++;
*ptrue++ = *porig++;
}
+ *ptrue = NUL; /* in case nothing follows */
while (*porig != NUL)
{
***************
*** 2673,2680 ****
/* copy leading drive letter */
*ptrue++ = *porig++;
*ptrue++ = *porig++;
- *ptrue = NUL; /* in case nothing follows */
}
while (*porig != NUL)
{
--- 2673,2680 ----
/* copy leading drive letter */
*ptrue++ = *porig++;
*ptrue++ = *porig++;
}
+ *ptrue = NUL; /* in case nothing follows */
while (*porig != NUL)
{
***************
*** 6272,6277 ****
--- 6272,6278 ----
while (i > 0)
free(argv[--i]);
free(argv);
+ argv = NULL;
argc = 0;
}
}
*** ../vim-7.4.112/src/version.c 2013-12-07 14:32:04.000000000 +0100
--- src/version.c 2013-12-07 14:37:48.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 113,
/**/
--
How To Keep A Healthy Level Of Insanity:
15. Five days in advance, tell your friends you can't attend their
party because you're not in the mood.
/// 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.114 Normal file
View File

@ -0,0 +1,56 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.114
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.114
Problem: New GNU make outputs messages about changing directory in another
format.
Solution: Recognize the new format.
Files: src/option.h
*** ../vim-7.4.113/src/option.h 2013-11-06 05:26:08.000000000 +0100
--- src/option.h 2013-12-04 12:43:03.000000000 +0100
***************
*** 31,39 ****
# define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m"
# else /* Unix, probably */
# ifdef EBCDIC
! #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
# else
! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
# endif
# endif
# endif
--- 31,39 ----
# define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m"
# else /* Unix, probably */
# ifdef EBCDIC
! #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: Leaving directory [`']%f',%DMaking %*\\a in %f,%f|%l| %m"
# else
! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: Leaving directory [`']%f',%D%*\\a: Entering directory [`']%f',%X%*\\a: Leaving directory [`']%f',%DMaking %*\\a in %f,%f|%l| %m"
# endif
# endif
# endif
*** ../vim-7.4.113/src/version.c 2013-12-07 14:48:06.000000000 +0100
--- src/version.c 2013-12-11 12:22:19.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 114,
/**/
--
Everyone has a photographic memory. Some don't have film.
/// 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.115 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.115
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.115
Problem: When using Zsh expanding ~abc doesn't work when the result
contains a space.
Solution: Off-by-one error in detecting the NUL. (Pavol Juhas)
Files: src/os_unix.c
*** ../vim-7.4.114/src/os_unix.c 2013-11-03 00:40:54.000000000 +0100
--- src/os_unix.c 2013-12-11 13:19:26.000000000 +0100
***************
*** 5990,5996 ****
{
/* If there is a NUL, set did_find_nul, else set check_spaces */
buffer[len] = NUL;
! if (len && (int)STRLEN(buffer) < (int)len - 1)
did_find_nul = TRUE;
else
check_spaces = TRUE;
--- 5990,5996 ----
{
/* If there is a NUL, set did_find_nul, else set check_spaces */
buffer[len] = NUL;
! if (len && (int)STRLEN(buffer) < (int)len)
did_find_nul = TRUE;
else
check_spaces = TRUE;
*** ../vim-7.4.114/src/version.c 2013-12-11 12:22:54.000000000 +0100
--- src/version.c 2013-12-11 13:20:29.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 115,
/**/
--
Change is inevitable, except from a vending machine.
/// 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 ///

46
7.4.116 Normal file
View File

@ -0,0 +1,46 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.116
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.116
Problem: When a mapping starts with a space, the typed space does not show
up for 'showcmd'.
Solution: Show "<20>". (Brook Hong)
Files: src/normal.c
*** ../vim-7.4.115/src/normal.c 2013-11-28 19:27:18.000000000 +0100
--- src/normal.c 2013-12-07 14:30:29.000000000 +0100
***************
*** 4021,4026 ****
--- 4021,4028 ----
#endif
p = transchar(c);
+ if (*p == ' ')
+ STRCPY(p, "<20>");
old_len = (int)STRLEN(showcmd_buf);
extra_len = (int)STRLEN(p);
overflow = old_len + extra_len - SHOWCMD_COLS;
*** ../vim-7.4.115/src/version.c 2013-12-11 13:21:44.000000000 +0100
--- src/version.c 2013-12-11 14:16:58.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 116,
/**/
--
Bumper sticker: Honk if you love peace and quiet.
/// 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 ///

263
7.4.117 Normal file
View File

@ -0,0 +1,263 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.117
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.117
Problem: Can't build with Cygwin/MingW and Perl 5.18.
Solution: Add a linker argument for the Perl library. (Cesar Romani)
Adjust CFLAGS and LIB. (Cesar Romani)
Move including inline.h further down. (Ken Takata)
Files: src/Make_cyg.mak, src/Make_ming.mak, src/if_perl.xs
*** ../vim-7.4.116/src/Make_cyg.mak 2013-11-28 16:32:34.000000000 +0100
--- src/Make_cyg.mak 2013-12-11 14:59:12.000000000 +0100
***************
*** 1,6 ****
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2013 Nov 28
#
# Also read INSTALLpc.txt!
#
--- 1,6 ----
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2013 Dec 11
#
# Also read INSTALLpc.txt!
#
***************
*** 155,161 ****
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
else
! EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
endif
endif
--- 155,161 ----
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
else
! EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
endif
endif
*** ../vim-7.4.116/src/Make_ming.mak 2013-07-06 13:32:11.000000000 +0200
--- src/Make_ming.mak 2013-12-07 20:02:52.000000000 +0100
***************
*** 359,364 ****
--- 359,365 ----
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
+ EXTRA_LIBS =
ifdef GETTEXT
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
***************
*** 377,385 ****
endif
ifdef PERL
! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -L$(PERLLIBS)
ifeq (yes, $(DYNAMIC_PERL))
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
endif
endif
--- 378,387 ----
endif
ifdef PERL
! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
ifeq (yes, $(DYNAMIC_PERL))
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+ EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
endif
endif
***************
*** 632,638 ****
ifdef PERL
ifeq (no, $(DYNAMIC_PERL))
! LIB += -lperl$(PERL_VER)
endif
endif
--- 634,640 ----
ifdef PERL
ifeq (no, $(DYNAMIC_PERL))
! LIB += -L$(PERLLIBS) -lperl$(PERL_VER)
endif
endif
*** ../vim-7.4.116/src/if_perl.xs 2013-08-02 19:28:50.000000000 +0200
--- src/if_perl.xs 2013-12-11 15:02:58.000000000 +0100
***************
*** 14,20 ****
#define IN_PERL_FILE /* don't include if_perl.pro from proto.h */
/*
! * Currently 32-bit version of ActivePerl is built with VC6.
* (http://community.activestate.com/faq/windows-compilers-perl-modules)
* It means that time_t should be 32-bit. However the default size of
* time_t is 64-bit since VC8. So we have to define _USE_32BIT_TIME_T.
--- 14,21 ----
#define IN_PERL_FILE /* don't include if_perl.pro from proto.h */
/*
! * Currently 32-bit version of ActivePerl is built with VC6 (or MinGW since
! * ActivePerl 5.18).
* (http://community.activestate.com/faq/windows-compilers-perl-modules)
* It means that time_t should be 32-bit. However the default size of
* time_t is 64-bit since VC8. So we have to define _USE_32BIT_TIME_T.
***************
*** 23,28 ****
--- 24,45 ----
# define _USE_32BIT_TIME_T
#endif
+ /* Work around for perl-5.18.
+ * Don't include "perl\lib\CORE\inline.h" for now,
+ * include it after Perl_sv_free2 is defined. */
+ #define PERL_NO_INLINE_FUNCTIONS
+
+ /*
+ * Prevent including winsock.h. perl.h tries to detect whether winsock.h is
+ * already included before including winsock2.h, because winsock2.h isn't
+ * compatible with winsock.h. However the detection doesn't work with some
+ * versions of MinGW. If WIN32_LEAN_AND_MEAN is defined, windows.h will not
+ * include winsock.h.
+ */
+ #ifdef WIN32
+ # define WIN32_LEAN_AND_MEAN
+ #endif
+
#include "vim.h"
#include <EXTERN.h>
***************
*** 81,90 ****
# define PERL5101_OR_LATER
#endif
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
- # define PERL5180_OR_LATER
- #endif
-
#ifndef pTHX
# define pTHX void
# define pTHX_
--- 98,103 ----
***************
*** 145,155 ****
# define perl_free dll_perl_free
# define Perl_get_context dll_Perl_get_context
# define Perl_croak dll_Perl_croak
- # ifndef PERL5180_OR_LATER
# ifdef PERL5101_OR_LATER
# define Perl_croak_xs_usage dll_Perl_croak_xs_usage
# endif
- # endif
# ifndef PROTO
# define Perl_croak_nocontext dll_Perl_croak_nocontext
# define Perl_call_argv dll_Perl_call_argv
--- 158,166 ----
***************
*** 262,271 ****
static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
static void* (*Perl_get_context)(void);
static void (*Perl_croak)(pTHX_ const char*, ...);
- #ifndef PERL5180_OR_LATER
#ifdef PERL5101_OR_LATER
static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
! #endif
#endif
static void (*Perl_croak_nocontext)(const char*, ...);
static I32 (*Perl_dowantarray)(pTHX);
--- 273,285 ----
static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
static void* (*Perl_get_context)(void);
static void (*Perl_croak)(pTHX_ const char*, ...);
#ifdef PERL5101_OR_LATER
+ /* Perl-5.18 has a different Perl_croak_xs_usage signature. */
+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
+ static void (*Perl_croak_xs_usage)(const CV *const, const char *const params);
+ # else
static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
! # endif
#endif
static void (*Perl_croak_nocontext)(const char*, ...);
static I32 (*Perl_dowantarray)(pTHX);
***************
*** 337,343 ****
--- 351,362 ----
static XPV** (*Perl_TXpv_ptr)(register PerlInterpreter*);
static STRLEN* (*Perl_Tna_ptr)(register PerlInterpreter*);
#else
+ /* Perl-5.18 has a different Perl_sv_free2 signature. */
+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
+ static void (*Perl_sv_free2)(pTHX_ SV*, const U32);
+ # else
static void (*Perl_sv_free2)(pTHX_ SV*);
+ # endif
static void (*Perl_sys_init)(int* argc, char*** argv);
static void (*Perl_sys_term)(void);
static void (*Perl_call_list)(pTHX_ I32, AV*);
***************
*** 384,394 ****
{"perl_parse", (PERL_PROC*)&perl_parse},
{"Perl_get_context", (PERL_PROC*)&Perl_get_context},
{"Perl_croak", (PERL_PROC*)&Perl_croak},
- #ifndef PERL5180_OR_LATER
#ifdef PERL5101_OR_LATER
{"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
#endif
- #endif
{"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
{"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray},
{"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps},
--- 403,411 ----
***************
*** 492,497 ****
--- 509,522 ----
{"", NULL},
};
+ /* Work around for perl-5.18.
+ * The definitions of S_SvREFCNT_inc and S_SvREFCNT_dec are needed, so include
+ * "perl\lib\CORE\inline.h", after Perl_sv_free2 is defined.
+ * The linker won't complain about undefined __impl_Perl_sv_free2. */
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 18)
+ # include <inline.h>
+ #endif
+
/*
* Make all runtime-links of perl.
*
*** ../vim-7.4.116/src/version.c 2013-12-11 14:54:58.000000000 +0100
--- src/version.c 2013-12-11 15:00:12.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 117,
/**/
--
Despite the cost of living, have you noticed how it remains so popular?
/// 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.118 Normal file
View File

@ -0,0 +1,90 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.118
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.118
Problem: It's possible that redrawing the status lines causes
win_redr_custom() to be called recursively.
Solution: Protect against recursiveness. (Yasuhiro Matsumoto)
Files: src/screen.c
*** ../vim-7.4.117/src/screen.c 2013-11-08 04:30:06.000000000 +0100
--- src/screen.c 2013-12-11 15:32:21.000000000 +0100
***************
*** 6653,6658 ****
--- 6653,6659 ----
win_T *wp;
int draw_ruler; /* TRUE or FALSE */
{
+ static int entered = FALSE;
int attr;
int curattr;
int row;
***************
*** 6671,6676 ****
--- 6672,6684 ----
win_T *ewp;
int p_crb_save;
+ /* There is a tiny chance that this gets called recursively: When
+ * redrawing a status line triggers redrawing the ruler or tabline.
+ * Avoid trouble by not allowing recursion. */
+ if (entered)
+ return;
+ entered = TRUE;
+
/* setup environment for the task at hand */
if (wp == NULL)
{
***************
*** 6746,6752 ****
}
if (maxwidth <= 0)
! return;
/* Temporarily reset 'cursorbind', we don't want a side effect from moving
* the cursor away and back. */
--- 6754,6760 ----
}
if (maxwidth <= 0)
! goto theend;
/* Temporarily reset 'cursorbind', we don't want a side effect from moving
* the cursor away and back. */
***************
*** 6827,6832 ****
--- 6835,6843 ----
while (col < Columns)
TabPageIdxs[col++] = fillchar;
}
+
+ theend:
+ entered = FALSE;
}
#endif /* FEAT_STL_OPT */
*** ../vim-7.4.117/src/version.c 2013-12-11 15:06:36.000000000 +0100
--- src/version.c 2013-12-11 15:32:16.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 118,
/**/
--
Nothing is fool-proof to a sufficiently talented fool.
/// 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 ///

245
7.4.119 Normal file
View File

@ -0,0 +1,245 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.119
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.119
Problem: Vim doesn't work well on OpenVMS.
Solution: Fix various problems. (Samuel Ferencik)
Files: src/os_unix.c, src/os_unix.h, src/os_vms.c
*** ../vim-7.4.118/src/os_unix.c 2013-12-11 13:21:44.000000000 +0100
--- src/os_unix.c 2013-12-11 16:16:03.000000000 +0100
***************
*** 168,174 ****
static pid_t wait4pid __ARGS((pid_t, waitstatus *));
static int WaitForChar __ARGS((long));
! #if defined(__BEOS__)
int RealWaitForChar __ARGS((int, long, int *));
#else
static int RealWaitForChar __ARGS((int, long, int *));
--- 168,174 ----
static pid_t wait4pid __ARGS((pid_t, waitstatus *));
static int WaitForChar __ARGS((long));
! #if defined(__BEOS__) || defined(VMS)
int RealWaitForChar __ARGS((int, long, int *));
#else
static int RealWaitForChar __ARGS((int, long, int *));
***************
*** 435,441 ****
/* Process the queued netbeans messages. */
netbeans_parse_messages();
#endif
- #ifndef VMS /* VMS: must try reading, WaitForChar() does nothing. */
/*
* We want to be interrupted by the winch signal
* or by an event on the monitored file descriptors.
--- 435,440 ----
***************
*** 446,452 ****
handle_resize();
return 0;
}
- #endif
/* If input was put directly in typeahead buffer bail out here. */
if (typebuf_changed(tb_change_cnt))
--- 445,450 ----
***************
*** 5039,5044 ****
--- 5037,5043 ----
return avail;
}
+ #ifndef VMS
/*
* Wait "msec" msec until a character is available from file descriptor "fd".
* "msec" == 0 will check for characters once.
***************
*** 5338,5350 ****
}
# endif
- # ifdef OLD_VMS
- /* Old VMS as v6.2 and older have broken select(). It waits more than
- * required. Should not be used */
- ret = 0;
- # else
ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
- # endif
# ifdef EINTR
if (ret == -1 && errno == EINTR)
{
--- 5337,5343 ----
***************
*** 5466,5473 ****
return (ret > 0);
}
- #ifndef VMS
-
#ifndef NO_EXPANDPATH
/*
* Expand a path into all matching files and/or directories. Handles "*",
--- 5459,5464 ----
*** ../vim-7.4.118/src/os_unix.h 2013-06-12 20:09:44.000000000 +0200
--- src/os_unix.h 2013-12-11 16:16:03.000000000 +0100
***************
*** 225,230 ****
--- 225,232 ----
# include <starlet.h>
# include <socket.h>
# include <lib$routines.h>
+ # include <libdef.h>
+ # include <libdtdef.h>
# ifdef FEAT_GUI_GTK
# include "gui_gtk_vms.h"
*** ../vim-7.4.118/src/os_vms.c 2010-06-26 06:03:31.000000000 +0200
--- src/os_vms.c 2013-12-11 17:10:24.000000000 +0100
***************
*** 11,16 ****
--- 11,33 ----
#include "vim.h"
+ /* define _generic_64 for use in time functions */
+ #ifndef VAX
+ # include <gen64def.h>
+ #else
+ /* based on Alpha's gen64def.h; the file is absent on VAX */
+ typedef struct _generic_64 {
+ # pragma __nomember_alignment
+ __union { /* You can treat me as... */
+ /* long long is not available on VAXen */
+ /* unsigned __int64 gen64$q_quadword; ...a single 64-bit value, or */
+
+ unsigned int gen64$l_longword [2]; /* ...two 32-bit values, or */
+ unsigned short int gen64$w_word [4]; /* ...four 16-bit values */
+ } gen64$r_quad_overlay;
+ } GENERIC_64;
+ #endif
+
typedef struct
{
char class;
***************
*** 669,671 ****
--- 686,777 ----
}
return ;
}
+
+ struct typeahead_st {
+ unsigned short numchars;
+ unsigned char firstchar;
+ unsigned char reserved0;
+ unsigned long reserved1;
+ } typeahead;
+
+ /*
+ * Wait "msec" msec until a character is available from file descriptor "fd".
+ * "msec" == 0 will check for characters once.
+ * "msec" == -1 will block until a character is available.
+ */
+ int
+ RealWaitForChar(fd, msec, check_for_gpm)
+ int fd UNUSED; /* always read from iochan */
+ long msec;
+ int *check_for_gpm UNUSED;
+ {
+ int status;
+ struct _generic_64 time_curr;
+ struct _generic_64 time_diff;
+ struct _generic_64 time_out;
+ unsigned int convert_operation = LIB$K_DELTA_SECONDS_F;
+ float sec = (float) msec / 1000;
+
+ /* make sure the iochan is set */
+ if (!iochan)
+ get_tty();
+
+ if (msec > 0) {
+ /* time-out specified; convert it to absolute time */
+
+ /* get current time (number of 100ns ticks since the VMS Epoch) */
+ status = sys$gettim(&time_curr);
+ if (status != SS$_NORMAL)
+ return 0; /* error */
+
+ /* construct the delta time */
+ status = lib$cvtf_to_internal_time(
+ &convert_operation, &sec, &time_diff);
+ if (status != LIB$_NORMAL)
+ return 0; /* error */
+
+ /* add them up */
+ status = lib$add_times(
+ &time_curr,
+ &time_diff,
+ &time_out);
+ if (status != LIB$_NORMAL)
+ return 0; /* error */
+ }
+
+ while (TRUE) {
+ /* select() */
+ status = sys$qiow(0, iochan, IO$_SENSEMODE | IO$M_TYPEAHDCNT, iosb,
+ 0, 0, &typeahead, 8, 0, 0, 0, 0);
+ if (status != SS$_NORMAL || (iosb[0] & 0xFFFF) != SS$_NORMAL)
+ return 0; /* error */
+
+ if (typeahead.numchars)
+ return 1; /* ready to read */
+
+ /* there's nothing to read; what now? */
+ if (msec == 0) {
+ /* immediate time-out; return impatiently */
+ return 0;
+ }
+ else if (msec < 0) {
+ /* no time-out; wait on indefinitely */
+ continue;
+ }
+ else {
+ /* time-out needs to be checked */
+ status = sys$gettim(&time_curr);
+ if (status != SS$_NORMAL)
+ return 0; /* error */
+
+ status = lib$sub_times(
+ &time_out,
+ &time_curr,
+ &time_diff);
+ if (status != LIB$_NORMAL)
+ return 0; /* error, incl. time_diff < 0 (i.e. time-out) */
+
+ /* otherwise wait some more */
+ }
+ }
+ }
*** ../vim-7.4.118/src/version.c 2013-12-11 15:51:54.000000000 +0100
--- src/version.c 2013-12-11 16:09:16.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 119,
/**/
--
It is hard to understand how a cemetery raised its burial
cost and blamed it on the cost of living.
/// 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.120 Normal file
View File

@ -0,0 +1,53 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.120
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.120 (after 7.4.117)
Problem: Can't build with Perl 5.18 on Linux. (Lcd 47)
Solution: Add #ifdef. (Ken Takata)
Files: src/if_perl.xs
*** ../vim-7.4.119/src/if_perl.xs 2013-12-11 15:06:36.000000000 +0100
--- src/if_perl.xs 2013-12-11 17:17:43.000000000 +0100
***************
*** 27,33 ****
/* Work around for perl-5.18.
* Don't include "perl\lib\CORE\inline.h" for now,
* include it after Perl_sv_free2 is defined. */
! #define PERL_NO_INLINE_FUNCTIONS
/*
* Prevent including winsock.h. perl.h tries to detect whether winsock.h is
--- 27,35 ----
/* Work around for perl-5.18.
* Don't include "perl\lib\CORE\inline.h" for now,
* include it after Perl_sv_free2 is defined. */
! #ifdef DYNAMIC_PERL
! # define PERL_NO_INLINE_FUNCTIONS
! #endif
/*
* Prevent including winsock.h. perl.h tries to detect whether winsock.h is
*** ../vim-7.4.119/src/version.c 2013-12-11 17:12:32.000000000 +0100
--- src/version.c 2013-12-11 17:19:34.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 120,
/**/
--
Just remember...if the world didn't suck, we'd all fall off.
/// 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.121 Normal file
View File

@ -0,0 +1,48 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.121
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.121
Problem: Completion doesn't work for ":py3d" and ":py3f". (Bohr Shaw)
Solution: Skip over letters after ":py3".
Files: src/ex_docmd.c
*** ../vim-7.4.120/src/ex_docmd.c 2013-11-21 14:21:25.000000000 +0100
--- src/ex_docmd.c 2013-12-11 17:41:50.000000000 +0100
***************
*** 3261,3267 ****
--- 3261,3271 ----
++p;
/* for python 3.x: ":py3*" commands completion */
if (cmd[0] == 'p' && cmd[1] == 'y' && p == cmd + 2 && *p == '3')
+ {
++p;
+ while (ASCII_ISALPHA(*p) || *p == '*')
+ ++p;
+ }
len = (int)(p - cmd);
if (len == 0)
*** ../vim-7.4.120/src/version.c 2013-12-11 17:20:14.000000000 +0100
--- src/version.c 2013-12-11 17:43:44.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 121,
/**/
--
It was recently discovered that research causes cancer in rats.
/// 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 ///

215
7.4.122 Normal file
View File

@ -0,0 +1,215 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.122
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.122
Problem: Win32: When 'encoding' is set to "utf-8" and the active codepage
is cp932 then ":grep" and other commands don't work for multi-byte
characters.
Solution: (Yasuhiro Matsumoto)
Files: src/os_win32.c
*** ../vim-7.4.121/src/os_win32.c 2013-12-07 14:48:06.000000000 +0100
--- src/os_win32.c 2013-12-11 17:57:48.000000000 +0100
***************
*** 3788,3793 ****
--- 3788,3837 ----
}
#endif /* FEAT_GUI_W32 */
+ static BOOL
+ vim_create_process(
+ const char *cmd,
+ DWORD flags,
+ BOOL inherit_handles,
+ STARTUPINFO *si,
+ PROCESS_INFORMATION *pi)
+ {
+ # ifdef FEAT_MBYTE
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+ {
+ WCHAR *wcmd = enc_to_utf16(cmd, NULL);
+
+ if (wcmd != NULL)
+ {
+ BOOL ret;
+ ret = CreateProcessW(
+ NULL, /* Executable name */
+ wcmd, /* Command to execute */
+ NULL, /* Process security attributes */
+ NULL, /* Thread security attributes */
+ inherit_handles, /* Inherit handles */
+ flags, /* Creation flags */
+ NULL, /* Environment */
+ NULL, /* Current directory */
+ si, /* Startup information */
+ pi); /* Process information */
+ vim_free(wcmd);
+ return ret;
+ }
+ }
+ #endif
+ return CreateProcess(
+ NULL, /* Executable name */
+ cmd, /* Command to execute */
+ NULL, /* Process security attributes */
+ NULL, /* Thread security attributes */
+ inherit_handles, /* Inherit handles */
+ flags, /* Creation flags */
+ NULL, /* Environment */
+ NULL, /* Current directory */
+ si, /* Startup information */
+ pi); /* Process information */
+ }
#if defined(FEAT_GUI_W32) || defined(PROTO)
***************
*** 3834,3851 ****
cmd += 3;
/* Now, run the command */
! CreateProcess(NULL, /* Executable name */
! cmd, /* Command to execute */
! NULL, /* Process security attributes */
! NULL, /* Thread security attributes */
! FALSE, /* Inherit handles */
! CREATE_DEFAULT_ERROR_MODE | /* Creation flags */
! CREATE_NEW_CONSOLE,
! NULL, /* Environment */
! NULL, /* Current directory */
! &si, /* Startup information */
! &pi); /* Process information */
!
/* Wait for the command to terminate before continuing */
if (g_PlatformId != VER_PLATFORM_WIN32s)
--- 3878,3885 ----
cmd += 3;
/* Now, run the command */
! vim_create_process(cmd, FALSE,
! CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_CONSOLE, &si, &pi);
/* Wait for the command to terminate before continuing */
if (g_PlatformId != VER_PLATFORM_WIN32s)
***************
*** 4177,4198 ****
p = cmd;
}
! /* Now, run the command */
! CreateProcess(NULL, /* Executable name */
! p, /* Command to execute */
! NULL, /* Process security attributes */
! NULL, /* Thread security attributes */
!
! // this command can be litigious, handle inheritance was
! // deactivated for pending temp file, but, if we deactivate
! // it, the pipes don't work for some reason.
! TRUE, /* Inherit handles, first deactivated,
! * but needed */
! CREATE_DEFAULT_ERROR_MODE, /* Creation flags */
! NULL, /* Environment */
! NULL, /* Current directory */
! &si, /* Startup information */
! &pi); /* Process information */
if (p != cmd)
vim_free(p);
--- 4211,4221 ----
p = cmd;
}
! /* Now, run the command.
! * About "Inherit handles" being TRUE: this command can be litigious,
! * handle inheritance was deactivated for pending temp file, but, if we
! * deactivate it, the pipes don't work for some reason. */
! vim_create_process(p, TRUE, CREATE_DEFAULT_ERROR_MODE, &si, &pi);
if (p != cmd)
vim_free(p);
***************
*** 4410,4416 ****
}
#else
! # define mch_system(c, o) system(c)
#endif
--- 4433,4457 ----
}
#else
! # ifdef FEAT_MBYTE
! static int
! mch_system(char *cmd, int options)
! {
! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! {
! WCHAR *wcmd = enc_to_utf16(cmd, NULL);
! if (wcmd != NULL)
! {
! int ret = _wsystem(wcmd);
! vim_free(wcmd);
! return ret;
! }
! }
! return system(cmd);
! }
! # else
! # define mch_system(c, o) system(c)
! # endif
#endif
***************
*** 4578,4593 ****
* inherit our handles which causes unpleasant dangling swap
* files if we exit before the spawned process
*/
! if (CreateProcess(NULL, // Executable name
! newcmd, // Command to execute
! NULL, // Process security attributes
! NULL, // Thread security attributes
! FALSE, // Inherit handles
! flags, // Creation flags
! NULL, // Environment
! NULL, // Current directory
! &si, // Startup information
! &pi)) // Process information
x = 0;
else
{
--- 4619,4625 ----
* inherit our handles which causes unpleasant dangling swap
* files if we exit before the spawned process
*/
! if (vim_create_process(newcmd, FALSE, flags, &si, &pi))
x = 0;
else
{
*** ../vim-7.4.121/src/version.c 2013-12-11 17:44:33.000000000 +0100
--- src/version.c 2013-12-11 17:48:09.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 122,
/**/
--
Never overestimate a man's ability to underestimate a woman.
/// 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.123 Normal file
View File

@ -0,0 +1,64 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.123
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.123
Problem: Win32: Getting user name does not use wide function.
Solution: Use GetUserNameW() if possible. (Ken Takata)
Files: src/os_win32.c
*** ../vim-7.4.122/src/os_win32.c 2013-12-11 17:58:29.000000000 +0100
--- src/os_win32.c 2013-12-11 18:14:29.000000000 +0100
***************
*** 2768,2773 ****
--- 2768,2793 ----
char szUserName[256 + 1]; /* UNLEN is 256 */
DWORD cch = sizeof szUserName;
+ #ifdef FEAT_MBYTE
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+ {
+ WCHAR wszUserName[256 + 1]; /* UNLEN is 256 */
+ DWORD wcch = sizeof(wszUserName) / sizeof(WCHAR);
+
+ if (GetUserNameW(wszUserName, &wcch))
+ {
+ char_u *p = utf16_to_enc(wszUserName, NULL);
+
+ if (p != NULL)
+ {
+ vim_strncpy(s, p, len - 1);
+ vim_free(p);
+ return OK;
+ }
+ }
+ /* Retry with non-wide function (for Windows 98). */
+ }
+ #endif
if (GetUserName(szUserName, &cch))
{
vim_strncpy(s, szUserName, len - 1);
*** ../vim-7.4.122/src/version.c 2013-12-11 17:58:29.000000000 +0100
--- src/version.c 2013-12-11 18:15:48.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 123,
/**/
--
Everybody lies, but it doesn't matter since nobody listens.
-- Lieberman's Law
/// 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.124 Normal file
View File

@ -0,0 +1,63 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.124
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.124
Problem: Win32: Getting host name does not use wide function.
Solution: Use GetComputerNameW() if possible. (Ken Takata)
Files: src/os_win32.c
*** ../vim-7.4.123/src/os_win32.c 2013-12-11 18:18:01.000000000 +0100
--- src/os_win32.c 2013-12-11 18:19:11.000000000 +0100
***************
*** 2808,2813 ****
--- 2808,2833 ----
{
DWORD cch = len;
+ #ifdef FEAT_MBYTE
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+ {
+ WCHAR wszHostName[256 + 1];
+ DWORD wcch = sizeof(wszHostName) / sizeof(WCHAR);
+
+ if (GetComputerNameW(wszHostName, &wcch))
+ {
+ char_u *p = utf16_to_enc(wszHostName, NULL);
+
+ if (p != NULL)
+ {
+ vim_strncpy(s, p, len - 1);
+ vim_free(p);
+ return;
+ }
+ }
+ /* Retry with non-wide function (for Windows 98). */
+ }
+ #endif
if (!GetComputerName(s, &cch))
vim_strncpy(s, "PC (Win32 Vim)", len - 1);
}
*** ../vim-7.4.123/src/version.c 2013-12-11 18:18:01.000000000 +0100
--- src/version.c 2013-12-11 18:20:03.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 124,
/**/
--
Don't read everything you believe.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

57
7.4.125 Normal file
View File

@ -0,0 +1,57 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.125
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.125
Problem: Win32: Dealing with messages may not work for multi-byte chars.
Solution: Use pDispatchMessage(). (Ken Takata)
Files: src/os_win32.c
*** ../vim-7.4.124/src/os_win32.c 2013-12-11 18:21:41.000000000 +0100
--- src/os_win32.c 2013-12-11 18:23:47.000000000 +0100
***************
*** 4282,4291 ****
{
MSG msg;
! if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
! DispatchMessage(&msg);
}
/* write pipe information in the window */
--- 4282,4291 ----
{
MSG msg;
! if (pPeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
! pDispatchMessage(&msg);
}
/* write pipe information in the window */
*** ../vim-7.4.124/src/version.c 2013-12-11 18:21:41.000000000 +0100
--- src/version.c 2013-12-11 18:35:44.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 125,
/**/
--
Don't believe everything you hear or anything you say.
/// 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.126 Normal file
View File

@ -0,0 +1,68 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.126
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.126
Problem: Compiler warnings for "const" and incompatible types.
Solution: Remove "const", add type cast. (Ken Takata)
Files: src/os_win32.c
*** ../vim-7.4.125/src/os_win32.c 2013-12-11 18:36:28.000000000 +0100
--- src/os_win32.c 2013-12-12 20:19:39.000000000 +0100
***************
*** 3830,3836 ****
static BOOL
vim_create_process(
! const char *cmd,
DWORD flags,
BOOL inherit_handles,
STARTUPINFO *si,
--- 3830,3836 ----
static BOOL
vim_create_process(
! char *cmd,
DWORD flags,
BOOL inherit_handles,
STARTUPINFO *si,
***************
*** 3853,3859 ****
flags, /* Creation flags */
NULL, /* Environment */
NULL, /* Current directory */
! si, /* Startup information */
pi); /* Process information */
vim_free(wcmd);
return ret;
--- 3853,3859 ----
flags, /* Creation flags */
NULL, /* Environment */
NULL, /* Current directory */
! (LPSTARTUPINFOW)si, /* Startup information */
pi); /* Process information */
vim_free(wcmd);
return ret;
*** ../vim-7.4.125/src/version.c 2013-12-11 18:36:28.000000000 +0100
--- src/version.c 2013-12-12 20:21:27.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 126,
/**/
--
Microsoft is to software what McDonalds is to gourmet cooking
/// 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.127 Normal file
View File

@ -0,0 +1,67 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.127
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.127
Problem: Perl 5.18 on Unix doesn't work.
Solution: Move workaround to after including vim.h. (Ken Takata)
Files: src/if_perl.xs
*** ../vim-7.4.126/src/if_perl.xs 2013-12-11 17:20:14.000000000 +0100
--- src/if_perl.xs 2013-12-14 11:41:56.000000000 +0100
***************
*** 24,36 ****
# define _USE_32BIT_TIME_T
#endif
- /* Work around for perl-5.18.
- * Don't include "perl\lib\CORE\inline.h" for now,
- * include it after Perl_sv_free2 is defined. */
- #ifdef DYNAMIC_PERL
- # define PERL_NO_INLINE_FUNCTIONS
- #endif
-
/*
* Prevent including winsock.h. perl.h tries to detect whether winsock.h is
* already included before including winsock2.h, because winsock2.h isn't
--- 24,29 ----
***************
*** 44,49 ****
--- 37,49 ----
#include "vim.h"
+ /* Work around for perl-5.18.
+ * Don't include "perl\lib\CORE\inline.h" for now,
+ * include it after Perl_sv_free2 is defined. */
+ #ifdef DYNAMIC_PERL
+ # define PERL_NO_INLINE_FUNCTIONS
+ #endif
+
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>
*** ../vim-7.4.126/src/version.c 2013-12-12 20:25:39.000000000 +0100
--- src/version.c 2013-12-14 11:43:54.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 127,
/**/
--
hundred-and-one symptoms of being an internet addict:
54. You start tilting your head sideways to smile. :-)
/// 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.128 Normal file
View File

@ -0,0 +1,66 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.128
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.128
Problem: Perl 5.18 for MSVC doesn't work.
Solution: Add check in makefile and define __inline. (Ken Takata)
Files: src/Make_mvc.mak, src/if_perl.xs
*** ../vim-7.4.127/src/Make_mvc.mak 2013-11-09 02:32:15.000000000 +0100
--- src/Make_mvc.mak 2013-12-14 11:47:37.000000000 +0100
***************
*** 825,831 ****
--- 825,836 ----
PERL_LIB = $(PERL_INCDIR)\perl.lib
!else
PERL_DLL = perl$(PERL_VER).dll
+ !if exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
+ !else
+ # For ActivePerl 5.18 and later
+ PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a
+ !endif
!endif
CFLAGS = $(CFLAGS) -DFEAT_PERL
*** ../vim-7.4.127/src/if_perl.xs 2013-12-14 11:46:04.000000000 +0100
--- src/if_perl.xs 2013-12-14 11:47:37.000000000 +0100
***************
*** 44,49 ****
--- 44,54 ----
# define PERL_NO_INLINE_FUNCTIONS
#endif
+ /* Work around for using MSVC and ActivePerl 5.18. */
+ #ifdef _MSC_VER
+ # define __inline__ __inline
+ #endif
+
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>
*** ../vim-7.4.127/src/version.c 2013-12-14 11:46:04.000000000 +0100
--- src/version.c 2013-12-14 11:48:51.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 128,
/**/
--
hundred-and-one symptoms of being an internet addict:
55. You ask your doctor to implant a gig in your brain.
/// 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.129 Normal file
View File

@ -0,0 +1,56 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.129
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.129
Problem: getline(-1) returns zero. (mvxxc)
Solution: Return an empty string.
Files: src/eval.c
*** ../vim-7.4.128/src/eval.c 2013-11-11 04:25:48.000000000 +0100
--- src/eval.c 2013-12-14 12:11:27.000000000 +0100
***************
*** 11119,11124 ****
--- 11119,11126 ----
{
char_u *p;
+ rettv->v_type = VAR_STRING;
+ rettv->vval.v_string = NULL;
if (retlist && rettv_list_alloc(rettv) == FAIL)
return;
***************
*** 11131,11138 ****
p = ml_get_buf(buf, start, FALSE);
else
p = (char_u *)"";
-
- rettv->v_type = VAR_STRING;
rettv->vval.v_string = vim_strsave(p);
}
else
--- 11133,11138 ----
*** ../vim-7.4.128/src/version.c 2013-12-14 11:50:28.000000000 +0100
--- src/version.c 2013-12-14 12:13:32.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 129,
/**/
--
Keyboard not found. Think ENTER 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 ///

69
7.4.130 Normal file
View File

@ -0,0 +1,69 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.130
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.130
Problem: Relative line numbers mix up windows when using folds.
Solution: Use hasFoldingWin() instead of hasFolding(). (Lech Lorens)
Files: src/misc2.c
*** ../vim-7.4.129/src/misc2.c 2013-09-08 16:07:03.000000000 +0200
--- src/misc2.c 2013-12-14 12:43:35.000000000 +0100
***************
*** 487,493 ****
{
while (lnum > cursor)
{
! (void)hasFolding(lnum, &lnum, NULL);
/* if lnum and cursor are in the same fold,
* now lnum <= cursor */
if (lnum > cursor)
--- 487,493 ----
{
while (lnum > cursor)
{
! (void)hasFoldingWin(wp, lnum, &lnum, NULL, TRUE, NULL);
/* if lnum and cursor are in the same fold,
* now lnum <= cursor */
if (lnum > cursor)
***************
*** 499,505 ****
{
while (lnum < cursor)
{
! (void)hasFolding(lnum, NULL, &lnum);
/* if lnum and cursor are in the same fold,
* now lnum >= cursor */
if (lnum < cursor)
--- 499,505 ----
{
while (lnum < cursor)
{
! (void)hasFoldingWin(wp, lnum, NULL, &lnum, TRUE, NULL);
/* if lnum and cursor are in the same fold,
* now lnum >= cursor */
if (lnum < cursor)
*** ../vim-7.4.129/src/version.c 2013-12-14 12:17:34.000000000 +0100
--- src/version.c 2013-12-14 12:44:27.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 130,
/**/
--
Over the years, I've developed my sense of deja vu so acutely that now
I can remember things that *have* happened before ...
/// 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.131 Normal file
View File

@ -0,0 +1,113 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.131
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.131
Problem: Syncbind causes E315 errors in some situations. (Liang Li)
Solution: Set and restore curbuf in ex_syncbind(). (Christian Brabandt)
Files: src/ex_docmd.c, src/testdir/test37.ok
*** ../vim-7.4.130/src/ex_docmd.c 2013-12-11 17:44:33.000000000 +0100
--- src/ex_docmd.c 2013-12-14 12:55:05.000000000 +0100
***************
*** 8054,8059 ****
--- 8054,8061 ----
{
#ifdef FEAT_SCROLLBIND
win_T *wp;
+ win_T *save_curwin = curwin;
+ buf_T *save_curbuf = curbuf;
long topline;
long y;
linenr_T old_linenr = curwin->w_cursor.lnum;
***************
*** 8085,8097 ****
/*
! * set all scrollbind windows to the same topline
*/
- wp = curwin;
for (curwin = firstwin; curwin; curwin = curwin->w_next)
{
if (curwin->w_p_scb)
{
y = topline - curwin->w_topline;
if (y > 0)
scrollup(y, TRUE);
--- 8087,8099 ----
/*
! * Set all scrollbind windows to the same topline.
*/
for (curwin = firstwin; curwin; curwin = curwin->w_next)
{
if (curwin->w_p_scb)
{
+ curbuf = curwin->w_buffer;
y = topline - curwin->w_topline;
if (y > 0)
scrollup(y, TRUE);
***************
*** 8105,8111 ****
#endif
}
}
! curwin = wp;
if (curwin->w_p_scb)
{
did_syncbind = TRUE;
--- 8107,8114 ----
#endif
}
}
! curwin = save_curwin;
! curbuf = save_curbuf;
if (curwin->w_p_scb)
{
did_syncbind = TRUE;
*** ../vim-7.4.130/src/testdir/test37.ok 2010-05-15 13:04:10.000000000 +0200
--- src/testdir/test37.ok 2013-12-14 12:54:57.000000000 +0100
***************
*** 27,33 ****
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
:set scrollbind
- zt:
- . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
:set scrollbind
! . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
--- 27,33 ----
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
:set scrollbind
:set scrollbind
! . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
! j:
! . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
*** ../vim-7.4.130/src/version.c 2013-12-14 12:48:55.000000000 +0100
--- src/version.c 2013-12-14 13:03:51.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 131,
/**/
--
hundred-and-one symptoms of being an internet addict:
57. You begin to wonder how on earth your service provider is allowed to call
200 hours per month "unlimited."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -117,3 +117,40 @@ Individual patches for Vim 7.4:
1697 7.4.092 (after 7.4.088) can't build small version
2993 7.4.093 configure can't use LuaJIT on ubuntu 12.04
4837 7.4.094 configure may not find that -lint is needed for gettext()
3138 7.4.095 (after 7.4.093) regexp for LuaJIT version doesn't work on BSD
2294 7.4.096 can't change directory to an UNC path
1615 7.4.097 unexpected behavior change related to 'virtualedit'
8357 7.4.098 error for line numbers out of range when using ":'<,'>del"
3122 7.4.099 append in blockwise Visual mode with "$" is wrong
3069 7.4.100 NFA regexp doesn't handle backreference correctly
2899 7.4.101 using \1 in pattern goes one line too far
2128 7.4.102 crash when interrupting "z="
3846 7.4.103 dos installer escapes spaces in the diff command wrong
2823 7.4.104 ":help s/\_" reports an internal error
1792 7.4.105 completing a tag pattern may give an error for invalid pattern
1971 7.4.106 can't build with Ruby using Cygwin
21498 7.4.107 Python try/catch doesn't catch Vim error in vim.eval()
5478 7.4.108 "zG" and "zW" leave temp files around on MS-Windows
3775 7.4.109 ColorScheme autocommand matches with the current buffer name
3703 7.4.110 "gUgn" cannot be repeeated
1709 7.4.111 memory leak in Python OptionsAssItem
1862 7.4.112 MS-Windows: defaults for 'dir' and 'bdir' do not include $TEMP
2561 7.4.113 MSVC static analysis gives warnings
3353 7.4.114 new GNU make directory change messages are different
1633 7.4.115 Zsh: expanding ~abc fails when the result contains a space
1381 7.4.116 'showcmd' does not show a typed space
8049 7.4.117 can't build with Cygwin/MingW and Perl 5.18
2394 7.4.118 redrawing status lines may causes recursive call
7060 7.4.119 Vim doesn't work well on OpenVMS
1702 7.4.120 (after 7.4.117) can't build with Perl 5.18 on Linux
1426 7.4.121 completion doesn't work for ":py3d" and ":py3f"
6071 7.4.122 Win32: :grep doesn't work when 'encoding' and ACP differ
1883 7.4.123 Win32: Getting user name does not use wide function
1730 7.4.124 Win32: Getting host name does not use wide function
1568 7.4.125 Win32: Dealing with messages may not work for multi-byte chars
1946 7.4.126 compiler warnings for "const" and incompatible types
1949 7.4.127 Perl 5.18 on Unix doesn't work
1948 7.4.128 Perl 5.18 for MSVC doesn't work
1499 7.4.129 getline(-1) returns zero
2064 7.4.130 relative line numbers mix up windows when using folds
3038 7.4.131 syncbind causes E315 errors in some situations

View File

@ -1,4 +1,4 @@
%define patchlevel 094
%define patchlevel 131
%if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1}
%define WITH_SELINUX 1
%endif
@ -141,6 +141,43 @@ Patch091: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.091
Patch092: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.092
Patch093: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.093
Patch094: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.094
Patch095: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.095
Patch096: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.096
Patch097: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.097
Patch098: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.098
Patch099: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.099
Patch100: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.100
Patch101: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.101
Patch102: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.102
Patch103: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.103
Patch104: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.104
Patch105: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.105
Patch106: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.106
Patch107: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.107
Patch108: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.108
Patch109: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.109
Patch110: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.110
Patch111: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.111
Patch112: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.112
Patch113: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.113
Patch114: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.114
Patch115: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.115
Patch116: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.116
Patch117: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.117
Patch118: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.118
Patch119: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.119
Patch120: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.120
Patch121: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.121
Patch122: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.122
Patch123: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.123
Patch124: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.124
Patch125: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.125
Patch126: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.126
Patch127: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.127
Patch128: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.128
Patch129: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.129
Patch130: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.130
Patch131: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.131
Patch3000: vim-7.4-syntax.patch
Patch3002: vim-7.1-nowarnings.patch
@ -380,6 +417,43 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
%patch092 -p0
%patch093 -p0
%patch094 -p0
%patch095 -p0
%patch096 -p0
%patch097 -p0
%patch098 -p0
%patch099 -p0
%patch100 -p0
%patch101 -p0
%patch102 -p0
%patch103 -p0
%patch104 -p0
%patch105 -p0
%patch106 -p0
%patch107 -p0
%patch108 -p0
%patch109 -p0
%patch110 -p0
%patch111 -p0
%patch112 -p0
%patch113 -p0
%patch114 -p0
%patch115 -p0
%patch116 -p0
%patch117 -p0
%patch118 -p0
%patch119 -p0
%patch120 -p0
%patch121 -p0
%patch122 -p0
%patch123 -p0
%patch124 -p0
%patch125 -p0
%patch126 -p0
%patch127 -p0
%patch128 -p0
%patch129 -p0
%patch130 -p0
%patch131 -p0
# install spell files
%if %{withvimspell}
@ -880,6 +954,9 @@ rm -rf %{buildroot}
%{_datadir}/icons/hicolor/*/apps/*
%changelog
* Tue Dec 17 2013 Karsten Hopp <karsten@redhat.com> 7.4.131-1
- patchlevel 131
* Wed Nov 20 2013 Karsten Hopp <karsten@redhat.com> 7.4.094-1
- patchlevel 094