Compare commits

...
Sign in to create a new pull request.

104 commits

Author SHA1 Message Date
Karsten Hopp
51b9621f3a - patchlevel 30 2010-10-20 18:10:13 +02:00
Karsten Hopp
bfc7484aa0 - patchlevel 030 2010-10-20 18:10:12 +02:00
Karsten Hopp
7ea5d2d253 Merge branch 'master' into f12
* master: (260 commits)
  - patchlevel 29
  - patchlevel 029
  - patchlevel 28
  - patchlevel 028
  - patchlevel 27
  - patchlevel 027
  - patchlevel 26
  - patchlevel 026
  - patchlevel 025
  - patchlevel 024
  - patchlevel 023
  - patchlevel 022
  - patchlevel 21
  - patchlevel 021
  - patchlevel 20
  - patchlevel 020
  - patchlevel 19
  - patchlevel 019
  push changes to repository before build
  - commit spec file and README changes, too
  ...

Conflicts:
	README.patches
	vim-7.3-fstabsyntax.patch
	vim.spec
2010-10-18 12:47:50 +02:00
Fedora Release Engineering
1b5e1df4e7 dist-git conversion 2010-07-29 15:01:08 +00:00
Karsten Hopp
e71a303d34 - fix rvim manpage (#583180) 2010-04-20 10:17:24 +00:00
Karsten Hopp
f317085d4e - patchlevel 411 2010-03-25 18:05:34 +00:00
Karsten Hopp
e00d9c4123 - patchlevel 410 2010-03-25 18:05:10 +00:00
Karsten Hopp
1b74a17b10 - patchlevel 409 2010-03-25 18:04:57 +00:00
Karsten Hopp
9c34fb0fdf - patchlevel 408 2010-03-25 18:04:44 +00:00
Karsten Hopp
33a7c23f05 - patchlevel 407 2010-03-25 18:04:32 +00:00
Karsten Hopp
2aa7086bb9 - patchlevel 406 2010-03-25 18:04:18 +00:00
Karsten Hopp
6c57e9b1dc - patchlevel 405 2010-03-25 18:04:05 +00:00
Karsten Hopp
6322f82f1b - patchlevel 404 2010-03-25 18:03:51 +00:00
Karsten Hopp
e13bc63f70 - patchlevel 403 2010-03-25 18:03:38 +00:00
Karsten Hopp
3c08778571 - patchlevel 402 2010-03-25 18:03:26 +00:00
Karsten Hopp
cd234d8cda - patchlevel 401 2010-03-25 18:03:13 +00:00
Karsten Hopp
471762a348 - patchlevel 400 2010-03-25 18:02:59 +00:00
Karsten Hopp
3dbb4ec3ce - patchlevel 399 2010-03-25 18:02:45 +00:00
Karsten Hopp
8d08d267b7 - patchlevel 398 2010-03-25 18:02:33 +00:00
Karsten Hopp
9cb7a2ee4d - patchlevel 397 2010-03-25 18:02:20 +00:00
Karsten Hopp
f6a4ca8298 - patchlevel 396 2010-03-25 18:02:08 +00:00
Karsten Hopp
212e6b7f73 - patchlevel 395 2010-03-25 18:01:54 +00:00
Karsten Hopp
5587038bfb - patchlevel 394 2010-03-25 18:01:41 +00:00
Karsten Hopp
dcd884fe25 - patchlevel 393 2010-03-25 18:01:28 +00:00
Karsten Hopp
0c3c8dfba0 - patchlevel 392 2010-03-25 18:01:15 +00:00
Karsten Hopp
2f823cc840 - patchlevel 391 2010-03-25 18:01:02 +00:00
Karsten Hopp
d5107da85e - patchlevel 390 2010-03-25 18:00:50 +00:00
Karsten Hopp
e8c969aff0 - patchlevel 389 2010-03-25 18:00:37 +00:00
Karsten Hopp
85e1b04e9e - patchlevel 388 2010-03-25 18:00:24 +00:00
Karsten Hopp
f2af5ff1e4 - patchlevel 387 2010-03-25 18:00:11 +00:00
Karsten Hopp
f7238efc50 - patchlevel 386 2010-03-25 17:59:57 +00:00
Karsten Hopp
59ba3a16a4 - patchlevel 385 2010-03-25 17:59:43 +00:00
Karsten Hopp
373f78a4c1 - patchlevel 384 2010-03-25 17:59:30 +00:00
Karsten Hopp
6f7c6753d8 - patchlevel 383 2010-03-25 17:59:17 +00:00
Karsten Hopp
1cd41881d9 - patchlevel 382 2010-03-25 17:59:04 +00:00
Karsten Hopp
161843475d - patchlevel 381 2010-03-25 17:58:51 +00:00
Karsten Hopp
fa0a0122ad - patchlevel 380 2010-03-25 17:58:38 +00:00
Karsten Hopp
a29d7be6f8 - patchlevel 379 2010-03-25 17:58:25 +00:00
Karsten Hopp
29042bbfda - patchlevel 378 2010-03-25 17:58:12 +00:00
Karsten Hopp
354d6895cc - patchlevel 377 2010-03-25 17:57:58 +00:00
Karsten Hopp
5f53f17a86 - patchlevel 376 2010-03-25 17:57:44 +00:00
Karsten Hopp
52b3380e22 - patchlevel 375 2010-03-25 17:57:31 +00:00
Karsten Hopp
3c71714f8a - patchlevel 374 2010-03-25 17:57:17 +00:00
Karsten Hopp
278e0392af - patchlevel 373 2010-03-25 17:57:04 +00:00
Karsten Hopp
1e305379ee - patchlevel 372 2010-03-25 17:56:52 +00:00
Karsten Hopp
f4a31efb58 - patchlevel 371 2010-03-25 17:56:38 +00:00
Karsten Hopp
0a191ecccc - patchlevel 370 2010-03-25 17:56:24 +00:00
Karsten Hopp
f0b8bf96c6 - patchlevel 369 2010-03-25 17:56:11 +00:00
Karsten Hopp
5e5dae5b0a - patchlevel 368 2010-03-25 17:55:58 +00:00
Karsten Hopp
6a7d0722c8 - patchlevel 367 2010-03-25 17:55:45 +00:00
Karsten Hopp
a478a319b4 - patchlevel 366 2010-03-25 17:55:32 +00:00
Karsten Hopp
f6c277dc9d - patchlevel 365 2010-03-25 17:55:19 +00:00
Karsten Hopp
704925b6dd - patchlevel 364 2010-03-25 17:55:06 +00:00
Karsten Hopp
940c9f0e14 - patchlevel 363 2010-03-25 17:54:54 +00:00
Karsten Hopp
e061efe0a1 - patchlevel 362 2010-03-25 17:54:41 +00:00
Karsten Hopp
b124e9d76b - patchlevel 361 2010-03-25 17:54:28 +00:00
Karsten Hopp
0d8e2ade72 - patchlevel 360 2010-03-25 17:54:14 +00:00
Karsten Hopp
1d30b7bd2f - patchlevel 359 2010-03-25 17:54:01 +00:00
Karsten Hopp
496efe133d - patchlevel 358 2010-03-25 17:53:48 +00:00
Karsten Hopp
ce54ccd1e9 - patchlevel 357 2010-03-25 17:53:35 +00:00
Karsten Hopp
009c326fc1 - patchlevel 356 2010-03-25 17:53:22 +00:00
Karsten Hopp
5605b8a398 - patchlevel 355 2010-03-25 17:53:09 +00:00
Karsten Hopp
fac22a5449 - patchlevel 354 2010-03-25 17:52:56 +00:00
Karsten Hopp
b8eddd9781 - patchlevel 353 2010-03-25 17:52:43 +00:00
Karsten Hopp
8b9e97a133 - patchlevel 352 2010-03-25 17:52:30 +00:00
Karsten Hopp
cb3bd99cbd - patchlevel 351 2010-03-25 17:52:17 +00:00
Karsten Hopp
76f3bec159 - patchlevel 350 2010-03-25 17:52:05 +00:00
Karsten Hopp
024faf8e1a - patchlevel 349 2010-03-25 17:51:50 +00:00
Karsten Hopp
019f9e26aa - patchlevel 348 2010-03-25 17:51:37 +00:00
Karsten Hopp
f9196de243 - patchlevel 347 2010-03-25 17:51:24 +00:00
Karsten Hopp
a1c0bccf16 - patchlevel 346 2010-03-25 17:51:11 +00:00
Karsten Hopp
8e2222b51d - patchlevel 345 2010-03-25 17:50:58 +00:00
Karsten Hopp
a60b232223 - patchlevel 344 2010-03-25 17:50:45 +00:00
Karsten Hopp
c5a350850c - patchlevel 343 2010-03-25 17:50:32 +00:00
Karsten Hopp
9e2a427ea6 - patchlevel 342 2010-03-25 17:50:19 +00:00
Karsten Hopp
ab4870a562 - patchlevel 341 2010-03-25 17:50:07 +00:00
Karsten Hopp
0e3f8cb4d6 - patchlevel 340 2010-03-25 17:49:54 +00:00
Karsten Hopp
f1188b705c - patchlevel 339 2010-03-25 17:49:42 +00:00
Karsten Hopp
52f978837b - patchlevel 338 2010-03-25 17:49:29 +00:00
Karsten Hopp
92b7a06c77 - patchlevel 337 2010-03-25 17:49:16 +00:00
Karsten Hopp
08d32362d0 - patchlevel 336 2010-03-25 17:49:03 +00:00
Karsten Hopp
05b1a25411 - patchlevel 335 2010-03-25 17:48:50 +00:00
Karsten Hopp
153eb6c2d8 - patchlevel 334 2010-03-25 17:48:38 +00:00
Karsten Hopp
caeead3459 - patchlevel 333 2010-03-25 17:48:25 +00:00
Karsten Hopp
cd9377b70a - patchlevel 332 2010-03-25 17:48:12 +00:00
Karsten Hopp
fbf2fa4ff2 - patchlevel 331 2010-03-25 17:47:59 +00:00
Karsten Hopp
7573242303 - patchlevel 330 2010-03-25 17:47:46 +00:00
Karsten Hopp
c00f5b9b6f - patchlevel 329 2010-03-25 17:47:33 +00:00
Karsten Hopp
ac2a6fddbc - patchlevel 328 2010-03-25 17:47:20 +00:00
Karsten Hopp
578a5e39d2 - patchlevel 327 2010-03-25 17:47:07 +00:00
Karsten Hopp
6f988a890d - patchlevel 326 2010-03-25 17:46:54 +00:00
Karsten Hopp
33ffe73d66 - patchlevel 325 2010-03-25 17:46:41 +00:00
Karsten Hopp
87964d7b30 - patchlevel 324 2010-03-25 17:46:28 +00:00
Karsten Hopp
852dbff2c9 - patchlevel 323 2010-03-25 17:46:15 +00:00
Karsten Hopp
272ddd8974 - patchlevel 322 2010-03-25 17:46:03 +00:00
Karsten Hopp
0cfe74a00d - patchlevel 321 2010-03-25 17:45:50 +00:00
Karsten Hopp
67c1a66a9e - patchlevel 320 2010-03-25 17:45:38 +00:00
Karsten Hopp
7655359065 - patchlevel 319 2010-03-25 17:45:25 +00:00
Karsten Hopp
8666a102f5 - patchlevel 318 2010-03-25 17:45:12 +00:00
Karsten Hopp
d6eae6e533 - patchlevel 317 2010-03-25 17:44:59 +00:00
Karsten Hopp
2077ab5484 - patchlevel 316 2010-03-25 17:44:45 +00:00
Karsten Hopp
bcd06b3f1e - patchlevel 315
- fix vimrc location in man page (#456992)
- correct syntax highlighting of httpd config files in /etc/httpd (#499123)
- Buildrequire ruby, ruby-devel (#503872)
- Remove check for static gravity (#510307)
- sort tags file (#517725)
- use one gvim to open multiple file selections from nautilus (#519265)
- use elinks -source instead of elinks -dump (#518791)
- add ext4 keyword to /etc/fstab syntax highlighting (#498290)
2009-12-03 13:40:06 +00:00
Bill Nottingham
a7e91fa9d6 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:14:05 +00:00
Jesse Keating
2d88d39a57 Initialize branch F-12 for vim 2009-09-29 07:16:25 +00:00
169 changed files with 21472 additions and 2 deletions

53
7.2.246 Normal file
View file

@ -0,0 +1,53 @@
To: vim-dev@vim.org
Subject: Patch 7.2.246
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.2.246
Problem: Cscope home page link is wrong.
Solution: Update the URL. (Sergey Khorev)
Files: runtime/doc/if_cscop.txt
*** ../vim-7.2.245/runtime/doc/if_cscop.txt 2009-07-09 21:22:36.000000000 +0200
--- runtime/doc/if_cscop.txt 2009-09-11 11:19:31.000000000 +0200
***************
*** 481,487 ****
any problems, suggestions, patches, et al., you have for the usage of
cscope within Vim to him.
*cscope-win32*
! For a cscope version for Win32 see: http://iamphet.nm.ru/cscope/index.html
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
him if you have Win32-specific issues.
--- 481,488 ----
any problems, suggestions, patches, et al., you have for the usage of
cscope within Vim to him.
*cscope-win32*
! For a cscope version for Win32 see:
! http://code.google.com/p/cscope-win32/
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
him if you have Win32-specific issues.
*** ../vim-7.2.245/src/version.c 2009-07-29 18:24:59.000000000 +0200
--- src/version.c 2009-09-11 11:29:02.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 246,
/**/
--
hundred-and-one symptoms of being an internet addict:
221. Your wife melts your keyboard in the oven.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

86
7.2.247 Normal file
View file

@ -0,0 +1,86 @@
To: vim-dev@vim.org
Subject: Patch 7.2.247
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.2.247
Problem: Mzscheme interface minor problem.
Solution: Better error message when build fails. (Sergey Khorev)
Files: src/if_mzsch.c
*** ../vim-7.2.246/src/if_mzsch.c 2009-07-09 20:06:30.000000000 +0200
--- src/if_mzsch.c 2009-09-11 11:20:39.000000000 +0200
***************
*** 635,642 ****
#endif /* DYNAMIC_MZSCHEME */
/* need to put it here for dynamic stuff to work */
! #ifdef INCLUDE_MZSCHEME_BASE
# include "mzscheme_base.c"
#endif
/*
--- 635,644 ----
#endif /* DYNAMIC_MZSCHEME */
/* need to put it here for dynamic stuff to work */
! #if defined(INCLUDE_MZSCHEME_BASE)
# include "mzscheme_base.c"
+ #elif MZSCHEME_VERSION_MAJOR >= 400
+ # error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
#endif
/*
***************
*** 875,888 ****
#ifdef INCLUDE_MZSCHEME_BASE
{
/*
! * versions 4.x do not provide Scheme bindings by defaults
* we need to add them explicitly
*/
Scheme_Object *scheme_base_symbol = NULL;
MZ_GC_DECL_REG(1);
MZ_GC_VAR_IN_REG(0, scheme_base_symbol);
MZ_GC_REG();
! /* invoke function from generated and included base.c */
declare_modules(environment);
scheme_base_symbol = scheme_intern_symbol("scheme/base");
MZ_GC_CHECK();
--- 877,890 ----
#ifdef INCLUDE_MZSCHEME_BASE
{
/*
! * versions 4.x do not provide Scheme bindings by default
* we need to add them explicitly
*/
Scheme_Object *scheme_base_symbol = NULL;
MZ_GC_DECL_REG(1);
MZ_GC_VAR_IN_REG(0, scheme_base_symbol);
MZ_GC_REG();
! /* invoke function from generated and included mzscheme_base.c */
declare_modules(environment);
scheme_base_symbol = scheme_intern_symbol("scheme/base");
MZ_GC_CHECK();
*** ../vim-7.2.246/src/version.c 2009-09-11 11:30:12.000000000 +0200
--- src/version.c 2009-09-11 11:53:59.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 247,
/**/
--
Your fault: core dumped
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

158
7.2.248 Normal file
View file

@ -0,0 +1,158 @@
To: vim-dev@vim.org
Subject: Patch 7.2.248 (extra)
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.2.248 (extra)
Problem: Mzscheme interface building minor problems.
Solution: Update Win32 makefiles. (Sergey Khorev)
Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak
*** ../vim-7.2.247/src/Make_cyg.mak 2007-09-30 22:28:48.000000000 +0200
--- src/Make_cyg.mak 2009-09-11 11:23:23.000000000 +0200
***************
*** 212,224 ****
MZSCHEME_VER = 209_000
endif
ifeq (yes, $(DYNAMIC_MZSCHEME))
DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
else
ifndef MZSCHEME_DLLS
MZSCHEME_DLLS = $(MZSCHEME)
endif
! EXTRA_LIBS += -L$(MZSCHEME_DLLS) -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
endif
endif
--- 212,245 ----
MZSCHEME_VER = 209_000
endif
+ ifndef MZSCHEME_PRECISE_GC
+ MZSCHEME_PRECISE_GC=no
+ endif
+
+ # for version 4.x we need to generate byte-code for Scheme base
+ ifndef MZSCHEME_GENERATE_BASE
+ MZSCHEME_GENERATE_BASE=no
+ endif
+
ifeq (yes, $(DYNAMIC_MZSCHEME))
DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
else
ifndef MZSCHEME_DLLS
MZSCHEME_DLLS = $(MZSCHEME)
endif
! ifeq (yes,$(MZSCHEME_PRECISE_GC))
! MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
! else
! MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
! endif
! EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
! endif
! ifeq (yes,$(MZSCHEME_GENERATE_BASE))
! DEFINES += -DINCLUDE_MZSCHEME_BASE
! MZ_EXTRA_DEP += mzscheme_base.c
! endif
! ifeq (yes,$(MZSCHEME_PRECISE_GC))
! DEFINES += -DMZ_PRECISE_GC
endif
endif
***************
*** 473,478 ****
--- 494,502 ----
ifdef PERL
-$(DEL) if_perl.c
endif
+ ifdef MZSCHEME
+ -$(DEL) mzscheme_base.c
+ endif
-$(DEL) pathdef.c
$(MAKE) -C xxd -f Make_cyg.mak clean
$(MAKE) -C GvimExt -f Make_ming.mak clean
***************
*** 523,531 ****
--- 547,561 ----
$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_DEP)
$(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
+ $(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
+ $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
+
$(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
$(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o
+ mzscheme_base.c:
+ $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
+
pathdef.c: $(INCL)
ifneq (sh.exe, $(SHELL))
@echo creating pathdef.c
*** ../vim-7.2.247/src/Make_ming.mak 2009-05-26 22:58:43.000000000 +0200
--- src/Make_ming.mak 2009-09-11 11:23:28.000000000 +0200
***************
*** 135,141 ****
ifndef MZSCHEME_DLLS
MZSCHEME_DLLS=$(MZSCHEME)
endif
! MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS)
endif
endif
--- 135,141 ----
ifndef MZSCHEME_DLLS
MZSCHEME_DLLS=$(MZSCHEME)
endif
! MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)\lib
endif
endif
***************
*** 563,568 ****
--- 563,571 ----
ifdef PERL
-$(DEL) if_perl.c
endif
+ ifdef MZSCHEME
+ -$(DEL) mzscheme_base.c
+ endif
$(MAKE) -C GvimExt -f Make_ming.mak clean
$(MAKE) -C xxd -f Make_cyg.mak clean
*** ../vim-7.2.247/src/Make_mvc.mak 2009-06-16 16:45:14.000000000 +0200
--- src/Make_mvc.mak 2009-09-11 11:23:28.000000000 +0200
***************
*** 865,870 ****
--- 865,871 ----
- if exist dimm_i.c del dimm_i.c
- if exist dimm.tlb del dimm.tlb
- if exist dosinst.exe del dosinst.exe
+ - if exist mzscheme_base.c del mzscheme_base.c
cd xxd
$(MAKE) /NOLOGO -f Make_mvc.mak clean
cd ..
*** ../vim-7.2.247/src/version.c 2009-09-11 12:20:47.000000000 +0200
--- src/version.c 2009-09-11 12:48:26.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 248,
/**/
--
hundred-and-one symptoms of being an internet addict:
222. You send more than 20 personal e-mails a day.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

47
7.2.249 Normal file
View file

@ -0,0 +1,47 @@
To: vim-dev@vim.org
Subject: Patch 7.2.249
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.2.249
Problem: The script to check .po files can't handle '%' in plural forms.
Solution: Remove "Plural-Forms:" from the checked string.
Files: src/po/check.vim
*** ../vim-7.2.248/src/po/check.vim 2008-06-09 14:45:38.000000000 +0200
--- src/po/check.vim 2009-09-11 12:37:56.000000000 +0200
***************
*** 23,28 ****
--- 23,31 ----
" remove '%', not used for formatting.
let idline = substitute(idline, "'%'", '', 'g')
+ " remove '%' used for plural forms.
+ let idline = substitute(idline, '\\nPlural-Forms: .\+;\\n', '', '')
+
" remove everything but % items.
return substitute(idline, '[^%]*\(%[-+ #''.0-9*]*l\=[dsuxXpoc%]\)\=', '\1', 'g')
endfunc
*** ../vim-7.2.248/src/version.c 2009-09-11 12:48:56.000000000 +0200
--- src/version.c 2009-09-11 12:59:18.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 249,
/**/
--
If evolution theories are correct, humans will soon grow a third
hand for operating the mouse.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.2.250 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.2.250 (extra)
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.2.250 (extra)
Problem: Possible buffer overflow.
Solution: Compute the remaining space. (Dominique Pelle)
Files: src/GvimExt/gvimext.cpp
*** ../vim-7.2.249/src/GvimExt/gvimext.cpp 2008-07-24 20:51:11.000000000 +0200
--- src/GvimExt/gvimext.cpp 2009-09-11 13:26:27.000000000 +0200
***************
*** 635,641 ****
}
// Now concatenate
strncpy(temp, _("Edit with existing Vim - "), BUFSIZE - 1);
! strncat(temp, title, BUFSIZE - 1);
InsertMenu(hMenu,
indexMenu++,
MF_STRING|MF_BYPOSITION,
--- 635,643 ----
}
// Now concatenate
strncpy(temp, _("Edit with existing Vim - "), BUFSIZE - 1);
! temp[BUFSIZE - 1] = '\0';
! strncat(temp, title, BUFSIZE - 1 - strlen(temp));
! temp[BUFSIZE - 1] = '\0';
InsertMenu(hMenu,
indexMenu++,
MF_STRING|MF_BYPOSITION,
*** ../vim-7.2.249/src/version.c 2009-09-11 12:59:57.000000000 +0200
--- src/version.c 2009-09-11 13:23:45.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 250,
/**/
--
hundred-and-one symptoms of being an internet addict:
223. You set up a web-cam as your home's security system.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

71
7.2.251 Normal file
View file

@ -0,0 +1,71 @@
To: vim-dev@vim.org
Subject: Patch 7.2.251
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.2.251 (after 7.2.044)
Problem: Compiler adds invalid memory bounds check.
Solution: Remove _FORTIFY_SOURCE=2 from CFLAGS. (Dominique Pelle)
Files: src/auto/configure, src/configure.in
*** ../vim-7.2.250/src/auto/configure 2009-07-22 11:16:54.000000000 +0200
--- src/auto/configure 2009-08-07 14:49:52.000000000 +0200
***************
*** 17135,17141 ****
{ $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
$as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
if test "$gccmajor" -gt "3"; then
! CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
else
--- 17135,17141 ----
{ $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
$as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
if test "$gccmajor" -gt "3"; then
! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
else
*** ../vim-7.2.250/src/configure.in 2009-07-22 11:16:54.000000000 +0200
--- src/configure.in 2009-08-07 14:49:47.000000000 +0200
***************
*** 3233,3239 ****
dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
if test "$gccmajor" -gt "3"; then
! CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
--- 3233,3239 ----
dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
if test "$gccmajor" -gt "3"; then
! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
*** ../vim-7.2.250/src/version.c 2009-09-11 13:26:38.000000000 +0200
--- src/version.c 2009-09-11 13:43:46.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 251,
/**/
--
hundred-and-one symptoms of being an internet addict:
225. You sign up for free subscriptions for all the computer magazines
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

51
7.2.252 Normal file
View file

@ -0,0 +1,51 @@
To: vim-dev@vim.org
Subject: Patch 7.2.252
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.2.252
Problem: When using a multi-byte 'enc' the 'iskeyword' option cannot
contain characters above 128.
Solution: Use mb_ptr2char_adv().
Files: src/charset.c
*** ../vim-7.2.251/src/charset.c 2009-05-14 22:19:19.000000000 +0200
--- src/charset.c 2009-09-09 21:11:46.000000000 +0200
***************
*** 174,179 ****
--- 174,184 ----
if (VIM_ISDIGIT(*p))
c = getdigits(&p);
else
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ c = mb_ptr2char_adv(&p);
+ else
+ #endif
c = *p++;
c2 = -1;
if (*p == '-' && p[1] != NUL)
*** ../vim-7.2.251/src/version.c 2009-09-11 13:44:33.000000000 +0200
--- src/version.c 2009-09-11 14:01:48.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 252,
/**/
--
hundred-and-one symptoms of being an internet addict:
226. You sit down at the computer right after dinner and your spouse
says "See you in the morning."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

143
7.2.253 Normal file
View file

@ -0,0 +1,143 @@
To: vim-dev@vim.org
Subject: Patch 7.2.253
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.2.253
Problem: Netbeans interface: getLength always uses current buffer.
Solution: Use ml_get_buf() instead of ml_get(). (Xavier de Gaye)
Files: src/netbeans.c
*** ../vim-7.2.252/src/netbeans.c 2009-06-24 16:49:50.000000000 +0200
--- src/netbeans.c 2009-09-11 13:40:14.000000000 +0200
***************
*** 1499,1505 ****
return FAIL;
}
first = *pos;
! nbdebug((" FIRST POS: line %d, col %d\n", first.lnum, first.col));
pos = off2pos(buf->bufp, off+count-1);
if (!pos)
{
--- 1499,1506 ----
return FAIL;
}
first = *pos;
! nbdebug((" FIRST POS: line %d, col %d\n",
! first.lnum, first.col));
pos = off2pos(buf->bufp, off+count-1);
if (!pos)
{
***************
*** 1510,1516 ****
return FAIL;
}
last = *pos;
! nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col));
del_from_lnum = first.lnum;
del_to_lnum = last.lnum;
doupdate = 1;
--- 1511,1518 ----
return FAIL;
}
last = *pos;
! nbdebug((" LAST POS: line %d, col %d\n",
! last.lnum, last.col));
del_from_lnum = first.lnum;
del_to_lnum = last.lnum;
doupdate = 1;
***************
*** 1521,1527 ****
next = off2pos(buf->bufp, off + count);
/* Remove part of the first line. */
! if (first.col != 0 || (next != NULL && first.lnum == next->lnum))
{
if (first.lnum != last.lnum
|| (next != NULL && first.lnum != next->lnum))
--- 1523,1530 ----
next = off2pos(buf->bufp, off + count);
/* Remove part of the first line. */
! if (first.col != 0
! || (next != NULL && first.lnum == next->lnum))
{
if (first.lnum != last.lnum
|| (next != NULL && first.lnum != next->lnum))
***************
*** 1584,1590 ****
int id = buf_findsign_id(buf->bufp, (linenr_T)i);
if (id > 0)
{
! nbdebug((" Deleting sign %d on line %d\n", id, i));
buf_delsign(buf->bufp, id);
}
else
--- 1587,1594 ----
int id = buf_findsign_id(buf->bufp, (linenr_T)i);
if (id > 0)
{
! nbdebug((" Deleting sign %d on line %d\n",
! id, i));
buf_delsign(buf->bufp, id);
}
else
***************
*** 1593,1599 ****
}
}
! nbdebug((" Deleting lines %d through %d\n", del_from_lnum, del_to_lnum));
curwin->w_cursor.lnum = del_from_lnum;
curwin->w_cursor.col = 0;
del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
--- 1597,1604 ----
}
}
! nbdebug((" Deleting lines %d through %d\n",
! del_from_lnum, del_to_lnum));
curwin->w_cursor.lnum = del_from_lnum;
curwin->w_cursor.col = 0;
del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
***************
*** 3514,3520 ****
eol_size = 1;
for (lnum = 1; lnum <= bufp->b_ml.ml_line_count; ++lnum)
{
! char_count += (long)STRLEN(ml_get(lnum)) + eol_size;
/* Check for a CTRL-C every 100000 characters */
if (char_count > last_check)
{
--- 3519,3526 ----
eol_size = 1;
for (lnum = 1; lnum <= bufp->b_ml.ml_line_count; ++lnum)
{
! char_count += (long)STRLEN(ml_get_buf(bufp, lnum, FALSE))
! + eol_size;
/* Check for a CTRL-C every 100000 characters */
if (char_count > last_check)
{
*** ../vim-7.2.252/src/version.c 2009-09-11 14:02:25.000000000 +0200
--- src/version.c 2009-09-11 14:18:45.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 253,
/**/
--
hundred-and-one symptoms of being an internet addict:
227. You sleep next to your monitor. Or on top of it.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.2.254 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.2.254
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.2.254
Problem: Compiler warning for assigning size_t to int.
Solution: Use size_t for the variable. (George Reilly)
Files: src/fileio.c
*** ../vim-7.2.253/src/fileio.c 2009-07-29 18:24:59.000000000 +0200
--- src/fileio.c 2009-09-11 13:46:19.000000000 +0200
***************
*** 4568,4574 ****
c = TRUE;
if (write_info.bw_conv_error_lnum != 0)
{
! int l = STRLEN(IObuff);
vim_snprintf((char *)IObuff + l, IOSIZE - l, _(" in line %ld;"),
(long)write_info.bw_conv_error_lnum);
}
--- 4568,4574 ----
c = TRUE;
if (write_info.bw_conv_error_lnum != 0)
{
! size_t l = STRLEN(IObuff);
vim_snprintf((char *)IObuff + l, IOSIZE - l, _(" in line %ld;"),
(long)write_info.bw_conv_error_lnum);
}
*** ../vim-7.2.253/src/version.c 2009-09-11 14:19:41.000000000 +0200
--- src/version.c 2009-09-11 15:03:42.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 254,
/**/
--
hundred-and-one symptoms of being an internet addict:
230. You spend your Friday nights typing away at your keyboard
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

71
7.2.255 Normal file
View file

@ -0,0 +1,71 @@
To: vim-dev@vim.org
Subject: Patch 7.2.255
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.2.255 (after 7.2.242)
Problem: Setting 'rightleft', 'linebreak' and 'wrap' may cause cursor to be
in wrong place.
Solution: Recompute the cursor column for these options.
Files: src/option.c
*** ../vim-7.2.254/src/option.c 2009-07-29 15:41:32.000000000 +0200
--- src/option.c 2009-09-11 13:59:55.000000000 +0200
***************
*** 7430,7435 ****
--- 7430,7437 ----
{
if (curwin->w_p_wrap)
curwin->w_leftcol = 0;
+ if (curwin->w_curswant != MAXCOL)
+ curwin->w_set_curswant = TRUE;
}
#ifdef FEAT_WINDOWS
***************
*** 7664,7669 ****
--- 7666,7687 ----
}
#endif
+ #ifdef FEAT_LINEBREAK
+ if ((int *)varp == &curwin->w_p_lbr)
+ {
+ if (curwin->w_curswant != MAXCOL)
+ curwin->w_set_curswant = TRUE;
+ }
+ #endif
+
+ #ifdef FEAT_RIGHTLEFT
+ if ((int *)varp == &curwin->w_p_rl)
+ {
+ if (curwin->w_curswant != MAXCOL)
+ curwin->w_set_curswant = TRUE;
+ }
+ #endif
+
/*
* End of handling side effects for bool options.
*/
*** ../vim-7.2.254/src/version.c 2009-09-11 15:04:13.000000000 +0200
--- src/version.c 2009-09-11 15:19:40.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 255,
/**/
--
A computer without Windows is like a fish without a bicycle.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

59
7.2.256 Normal file
View file

@ -0,0 +1,59 @@
To: vim-dev@vim.org
Subject: Patch 7.2.256
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.2.256
Problem: When 'guifont' was not set GTK font dialog doesn't have a default.
(Andreas Metzler)
Solution: Set default to DEFAULT_FONT. (James Vega)
Files: src/gui_gtk_x11.c
*** ../vim-7.2.255/src/gui_gtk_x11.c 2009-07-01 18:04:30.000000000 +0200
--- src/gui_gtk_x11.c 2009-09-11 14:21:32.000000000 +0200
***************
*** 4729,4734 ****
--- 4729,4737 ----
if (oldval != NULL && *oldval != NUL)
gtk_font_selection_dialog_set_font_name(
GTK_FONT_SELECTION_DIALOG(gui.fontdlg), (char *)oldval);
+ else
+ gtk_font_selection_dialog_set_font_name(
+ GTK_FONT_SELECTION_DIALOG(gui.fontdlg), DEFAULT_FONT);
if (gui.fontname)
{
***************
*** 4816,4821 ****
--- 4819,4827 ----
if (oldname != oldval)
vim_free(oldname);
}
+ else
+ gtk_font_selection_dialog_set_font_name(
+ GTK_FONT_SELECTION_DIALOG(dialog), DEFAULT_FONT);
response = gtk_dialog_run(GTK_DIALOG(dialog));
*** ../vim-7.2.255/src/version.c 2009-09-11 15:20:22.000000000 +0200
--- src/version.c 2009-09-11 15:45:36.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 256,
/**/
--
Get a life? What is the URL where it can be downloaded?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

61
7.2.257 Normal file
View file

@ -0,0 +1,61 @@
To: vim-dev@vim.org
Subject: Patch 7.2.257
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.2.257
Problem: With GTK 2.17 lots of assertion error messages.
Solution: Remove check for static gravity. (Sebastian Droege)
Files: src/gui_gtk_f.c
*** ../vim-7.2.256/src/gui_gtk_f.c 2009-05-17 23:25:16.000000000 +0200
--- src/gui_gtk_f.c 2009-09-11 15:15:41.000000000 +0200
***************
*** 860,870 ****
gtk_form_set_static_gravity(GdkWindow *window, gboolean use_static)
{
#ifdef HAVE_GTK2
! gboolean static_gravity_supported;
!
! static_gravity_supported = gdk_window_set_static_gravities(window,
! use_static);
! g_return_if_fail(static_gravity_supported);
#else
XSetWindowAttributes xattributes;
--- 860,868 ----
gtk_form_set_static_gravity(GdkWindow *window, gboolean use_static)
{
#ifdef HAVE_GTK2
! /* We don't check if static gravity is actually supported, because it
! * results in an annoying assertion error message. */
! gdk_window_set_static_gravities(window, use_static);
#else
XSetWindowAttributes xattributes;
*** ../vim-7.2.256/src/version.c 2009-09-11 15:46:20.000000000 +0200
--- src/version.c 2009-09-11 16:16:52.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 257,
/**/
--
hundred-and-one symptoms of being an internet addict:
231. You sprinkle Carpet Fresh on the rugs and put your vacuum cleaner
in the front doorway permanently so it always looks like you are
actually attempting to do something about that mess that has amassed
since you discovered the Internet.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

74
7.2.258 Normal file
View file

@ -0,0 +1,74 @@
To: vim-dev@vim.org
Subject: Patch 7.2.258
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.2.258
Problem: v:beval_col and b:beval_text are wrong in UTF-8 text. (Tony
Mechelynck)
Solution: Use byte number instead of character number for the column.
Files: src/ui.c
*** ../vim-7.2.257/src/ui.c 2009-07-01 18:04:30.000000000 +0200
--- src/ui.c 2009-09-11 16:11:50.000000000 +0200
***************
*** 3055,3072 ****
int vcol;
{
/* try to advance to the specified column */
- int col = 0;
int count = 0;
char_u *ptr;
! ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
while (count <= vcol && *ptr != NUL)
{
- ++col;
count += win_lbr_chartabsize(wp, ptr, count, NULL);
mb_ptr_adv(ptr);
}
! return col;
}
#endif
--- 3055,3071 ----
int vcol;
{
/* try to advance to the specified column */
int count = 0;
char_u *ptr;
+ char_u *start;
! start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
while (count <= vcol && *ptr != NUL)
{
count += win_lbr_chartabsize(wp, ptr, count, NULL);
mb_ptr_adv(ptr);
}
! return (int)(ptr - start);
}
#endif
*** ../vim-7.2.257/src/version.c 2009-09-11 16:17:36.000000000 +0200
--- src/version.c 2009-09-11 16:45:48.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 258,
/**/
--
hundred-and-one symptoms of being an internet addict:
232. You start conversations with, "Have you gotten an ISDN line?"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

160
7.2.259 Normal file
View file

@ -0,0 +1,160 @@
To: vim-dev@vim.org
Subject: Patch 7.2.259
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.2.259
Problem: exists() doesn't work properly for an empty aucmd group.
Solution: Change how au_exists() handles a missing pattern. Also add a
test for this. (Bob Hiestand)
Files: src/fileio.c, src/testdir/Makefile, src/testdir/test67.in,
src/testdir/test67.ok
*** ../vim-7.2.258/src/fileio.c 2009-09-11 15:04:13.000000000 +0200
--- src/fileio.c 2009-09-11 16:37:08.000000000 +0200
***************
*** 9498,9512 ****
ap = first_autopat[(int)event];
if (ap == NULL)
goto theend;
- if (pattern == NULL)
- {
- retval = TRUE;
- goto theend;
- }
/* if pattern is "<buffer>", special handling is needed which uses curbuf */
/* for pattern "<buffer=N>, fnamecmp() will work fine */
! if (STRICMP(pattern, "<buffer>") == 0)
buflocal_buf = curbuf;
/* Check if there is an autocommand with the given pattern. */
--- 9498,9507 ----
ap = first_autopat[(int)event];
if (ap == NULL)
goto theend;
/* if pattern is "<buffer>", special handling is needed which uses curbuf */
/* for pattern "<buffer=N>, fnamecmp() will work fine */
! if (pattern != NULL && STRICMP(pattern, "<buffer>") == 0)
buflocal_buf = curbuf;
/* Check if there is an autocommand with the given pattern. */
***************
*** 9515,9523 ****
/* For buffer-local autocommands, fnamecmp() works fine. */
if (ap->pat != NULL && ap->cmds != NULL
&& (group == AUGROUP_ALL || ap->group == group)
! && (buflocal_buf == NULL
! ? fnamecmp(ap->pat, pattern) == 0
! : ap->buflocal_nr == buflocal_buf->b_fnum))
{
retval = TRUE;
break;
--- 9510,9519 ----
/* For buffer-local autocommands, fnamecmp() works fine. */
if (ap->pat != NULL && ap->cmds != NULL
&& (group == AUGROUP_ALL || ap->group == group)
! && (pattern == NULL
! || (buflocal_buf == NULL
! ? fnamecmp(ap->pat, pattern) == 0
! : ap->buflocal_nr == buflocal_buf->b_fnum)))
{
retval = TRUE;
break;
*** ../vim-7.2.258/src/testdir/Makefile 2009-06-24 18:07:55.000000000 +0200
--- src/testdir/Makefile 2009-09-11 16:31:33.000000000 +0200
***************
*** 22,28 ****
test48.out test49.out test51.out test52.out test53.out \
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
! test64.out test65.out test66.out
SCRIPTS_GUI = test16.out
--- 22,28 ----
test48.out test49.out test51.out test52.out test53.out \
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
! test64.out test65.out test66.out test67.out
SCRIPTS_GUI = test16.out
*** ../vim-7.2.258/src/testdir/test67.in 2009-09-11 17:23:47.000000000 +0200
--- src/testdir/test67.in 2009-09-11 16:43:11.000000000 +0200
***************
*** 0 ****
--- 1,33 ----
+ Test that groups and patterns are tested correctly when calling exists() for
+ autocommands.
+
+ STARTTEST
+ :so small.vim
+ :let results=[]
+ :augroup auexists
+ :augroup END
+ :call add(results, "##BufEnter: " . exists("##BufEnter"))
+ :call add(results, "#BufEnter: " . exists("#BufEnter"))
+ :au BufEnter * let g:entered=1
+ :call add(results, "#BufEnter: " . exists("#BufEnter"))
+ :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
+ :augroup auexists
+ :au BufEnter * let g:entered=1
+ :augroup END
+ :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
+ :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
+ :au BufEnter *.test let g:entered=1
+ :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
+ :edit testfile.test
+ :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
+ :au BufEnter <buffer> let g:entered=1
+ :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
+ :edit testfile2.test
+ :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
+ :e test.out
+ :call append(0, results)
+ :$d
+ :w
+ :qa!
+ ENDTEST
+
*** ../vim-7.2.258/src/testdir/test67.ok 2009-09-11 17:23:47.000000000 +0200
--- src/testdir/test67.ok 2009-09-11 16:43:15.000000000 +0200
***************
*** 0 ****
--- 1,10 ----
+ ##BufEnter: 1
+ #BufEnter: 0
+ #BufEnter: 1
+ #auexists#BufEnter: 0
+ #auexists#BufEnter: 1
+ #BufEnter#*.test: 0
+ #BufEnter#*.test: 1
+ #BufEnter#<buffer>: 0
+ #BufEnter#<buffer>: 1
+ #BufEnter#<buffer>: 0
*** ../vim-7.2.258/src/version.c 2009-09-11 16:48:06.000000000 +0200
--- src/version.c 2009-09-11 17:23:14.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 259,
/**/
--
hundred-and-one symptoms of being an internet addict:
234. You started college as a chemistry major, and walk out four years
later as an Internet provider.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

155
7.2.260 Normal file
View file

@ -0,0 +1,155 @@
To: vim-dev@vim.org
Subject: Patch 7.2.260 (extra)
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.2.260 (extra part of 7.2.259)
Problem: exists() doesn't work properly for empty aucmd group.
Solution: Change how au_exists() handles a missing pattern. Also add a
test for this. (Bob Hiestand)
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms
*** ../vim-7.2.259/src/testdir/Make_amiga.mak 2009-03-11 16:36:04.000000000 +0100
--- src/testdir/Make_amiga.mak 2009-09-11 16:29:54.000000000 +0200
***************
*** 26,32 ****
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out
.SUFFIXES: .in .out
--- 26,32 ----
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out
.SUFFIXES: .in .out
***************
*** 112,114 ****
--- 112,115 ----
test64.out: test64.in
test65.out: test65.in
test66.out: test66.in
+ test67.out: test67.in
*** ../vim-7.2.259/src/testdir/Make_dos.mak 2009-03-11 16:36:04.000000000 +0100
--- src/testdir/Make_dos.mak 2009-09-11 16:30:17.000000000 +0200
***************
*** 26,32 ****
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out
SCRIPTS32 = test50.out
--- 26,32 ----
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out test67.out
SCRIPTS32 = test50.out
*** ../vim-7.2.259/src/testdir/Make_ming.mak 2009-03-11 16:36:04.000000000 +0100
--- src/testdir/Make_ming.mak 2009-09-11 16:30:37.000000000 +0200
***************
*** 45,51 ****
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out
SCRIPTS32 = test50.out
--- 45,51 ----
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out test67.out
SCRIPTS32 = test50.out
*** ../vim-7.2.259/src/testdir/Make_os2.mak 2009-03-11 16:36:04.000000000 +0100
--- src/testdir/Make_os2.mak 2009-09-11 16:30:52.000000000 +0200
***************
*** 26,32 ****
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out
.SUFFIXES: .in .out
--- 26,32 ----
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out
.SUFFIXES: .in .out
*** ../vim-7.2.259/src/testdir/Make_vms.mms 2009-03-11 16:36:04.000000000 +0100
--- src/testdir/Make_vms.mms 2009-09-11 16:31:06.000000000 +0200
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2009 Mar 05
#
# 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: 2009 Sep 11
#
# 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.
***************
*** 69,75 ****
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out
.IFDEF WANT_GUI
SCRIPT_GUI = test16.out
--- 69,75 ----
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out
.IFDEF WANT_GUI
SCRIPT_GUI = test16.out
*** ../vim-7.2.259/src/version.c 2009-09-11 17:24:01.000000000 +0200
--- src/version.c 2009-09-18 14:57:05.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 260,
/**/
--
hundred-and-one symptoms of being an internet addict:
251. You've never seen your closest friends who usually live WAY too far away.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

83
7.2.261 Normal file
View file

@ -0,0 +1,83 @@
To: vim-dev@vim.org
Subject: Patch 7.2.261
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.2.261
Problem: When deleting lines with a specific folding configuration E38 may
appear. (Shahaf)
Solution: When adjusting nested folds for deleted lines take into account
that they don't start at the top of the enclosing fold.
Files: src/fold.c
*** ../vim-7.2.260/src/fold.c 2009-01-06 15:01:58.000000000 +0100
--- src/fold.c 2009-09-18 14:43:23.000000000 +0200
***************
*** 1607,1617 ****
}
else
{
- /* 2, 3, or 5: need to correct nested folds too */
- foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top,
- line2 - fp->fd_top, amount, amount_after);
if (fp->fd_top < top)
{
if (last <= line2)
{
/* 2. fold contains line1, line2 is below fold */
--- 1607,1617 ----
}
else
{
if (fp->fd_top < top)
{
+ /* 2 or 3: need to correct nested folds too */
+ foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top,
+ line2 - fp->fd_top, amount, amount_after);
if (last <= line2)
{
/* 2. fold contains line1, line2 is below fold */
***************
*** 1628,1634 ****
}
else
{
! /* 5. fold is below line1 and contains line2 */
if (amount == MAXLNUM)
{
fp->fd_len -= line2 - fp->fd_top + 1;
--- 1628,1638 ----
}
else
{
! /* 5. fold is below line1 and contains line2; need to
! * correct nested folds too */
! foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top,
! line2 - fp->fd_top, amount,
! amount_after + (fp->fd_top - top));
if (amount == MAXLNUM)
{
fp->fd_len -= line2 - fp->fd_top + 1;
*** ../vim-7.2.260/src/version.c 2009-09-18 14:58:26.000000000 +0200
--- src/version.c 2009-09-18 15:14:40.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 261,
/**/
--
Emacs is a nice OS - but it lacks a good text editor.
That's why I am using Vim. --Anonymous
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

189
7.2.262 Normal file
View file

@ -0,0 +1,189 @@
To: vim-dev@vim.org
Subject: Patch 7.2.262
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.2.262
Problem: When using custom completion for a user command the pattern string
goes beyond the cursor position. (Hari Krishna Dara)
Solution: Truncate the string at the cursor position.
Files: src/ex_getln.c, src/structs.h
*** ../vim-7.2.261/src/ex_getln.c 2009-06-24 17:04:40.000000000 +0200
--- src/ex_getln.c 2009-09-18 16:58:16.000000000 +0200
***************
*** 3266,3272 ****
int i, j;
char_u *p1;
char_u *p2;
- int oldlen;
int difflen;
int v;
--- 3266,3271 ----
***************
*** 3291,3297 ****
out_flush();
i = (int)(xp->xp_pattern - ccline.cmdbuff);
! oldlen = ccline.cmdpos - i;
if (type == WILD_NEXT || type == WILD_PREV)
{
--- 3290,3296 ----
out_flush();
i = (int)(xp->xp_pattern - ccline.cmdbuff);
! xp->xp_pattern_len = ccline.cmdpos - i;
if (type == WILD_NEXT || type == WILD_PREV)
{
***************
*** 3305,3322 ****
/*
* Translate string into pattern and expand it.
*/
! if ((p1 = addstar(&ccline.cmdbuff[i], oldlen, xp->xp_context)) == NULL)
p2 = NULL;
else
{
! p2 = ExpandOne(xp, p1, vim_strnsave(&ccline.cmdbuff[i], oldlen),
WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
|options, type);
vim_free(p1);
/* longest match: make sure it is not shorter (happens with :help */
if (p2 != NULL && type == WILD_LONGEST)
{
! for (j = 0; j < oldlen; ++j)
if (ccline.cmdbuff[i + j] == '*'
|| ccline.cmdbuff[i + j] == '?')
break;
--- 3304,3323 ----
/*
* Translate string into pattern and expand it.
*/
! if ((p1 = addstar(xp->xp_pattern, xp->xp_pattern_len,
! xp->xp_context)) == NULL)
p2 = NULL;
else
{
! p2 = ExpandOne(xp, p1,
! vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
|options, type);
vim_free(p1);
/* longest match: make sure it is not shorter (happens with :help */
if (p2 != NULL && type == WILD_LONGEST)
{
! for (j = 0; j < xp->xp_pattern_len; ++j)
if (ccline.cmdbuff[i + j] == '*'
|| ccline.cmdbuff[i + j] == '?')
break;
***************
*** 3331,3337 ****
if (p2 != NULL && !got_int)
{
! difflen = (int)STRLEN(p2) - oldlen;
if (ccline.cmdlen + difflen > ccline.cmdbufflen - 4)
{
v = realloc_cmdbuff(ccline.cmdlen + difflen);
--- 3332,3338 ----
if (p2 != NULL && !got_int)
{
! difflen = (int)STRLEN(p2) - xp->xp_pattern_len;
if (ccline.cmdlen + difflen > ccline.cmdbufflen - 4)
{
v = realloc_cmdbuff(ccline.cmdlen + difflen);
***************
*** 3620,3625 ****
--- 3621,3627 ----
expand_T *xp;
{
xp->xp_pattern = NULL;
+ xp->xp_pattern_len = 0;
xp->xp_backslash = XP_BS_NONE;
#ifndef BACKSLASH_IN_FILENAME
xp->xp_shell = FALSE;
***************
*** 4311,4318 ****
}
/* add star to file name, or convert to regexp if not exp. files. */
! file_str = addstar(xp->xp_pattern,
! (int)(str + col - xp->xp_pattern), xp->xp_context);
if (file_str == NULL)
return EXPAND_UNSUCCESSFUL;
--- 4313,4320 ----
}
/* add star to file name, or convert to regexp if not exp. files. */
! xp->xp_pattern_len = (int)(str + col - xp->xp_pattern);
! file_str = addstar(xp->xp_pattern, xp->xp_pattern_len, xp->xp_context);
if (file_str == NULL)
return EXPAND_UNSUCCESSFUL;
***************
*** 4781,4787 ****
sprintf((char *)num, "%d", ccline.cmdpos);
args[1] = ccline.cmdbuff;
}
! args[0] = xp->xp_pattern;
args[2] = num;
/* Save the cmdline, we don't know what the function may do. */
--- 4783,4789 ----
sprintf((char *)num, "%d", ccline.cmdpos);
args[1] = ccline.cmdbuff;
}
! args[0] = vim_strnsave(xp->xp_pattern, xp->xp_pattern_len);
args[2] = num;
/* Save the cmdline, we don't know what the function may do. */
***************
*** 4797,4802 ****
--- 4799,4805 ----
if (ccline.cmdbuff != NULL)
ccline.cmdbuff[ccline.cmdlen] = keep;
+ vim_free(args[0]);
return ret;
}
*** ../vim-7.2.261/src/structs.h 2009-07-29 12:09:49.000000000 +0200
--- src/structs.h 2009-09-18 15:33:15.000000000 +0200
***************
*** 432,437 ****
--- 432,438 ----
{
int xp_context; /* type of expansion */
char_u *xp_pattern; /* start of item to expand */
+ int xp_pattern_len; /* bytes in xp_pattern before cursor */
#if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
char_u *xp_arg; /* completion function */
int xp_scriptID; /* SID for completion function */
*** ../vim-7.2.261/src/version.c 2009-09-18 15:16:37.000000000 +0200
--- src/version.c 2009-09-18 17:23:20.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 262,
/**/
--
hundred-and-one symptoms of being an internet addict:
252. You vote for foreign officials.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

87
7.2.263 Normal file
View file

@ -0,0 +1,87 @@
To: vim-dev@vim.org
Subject: Patch 7.2.263
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.2.263
Problem: GTK2: when using the -geom argument with an offset from the right
edge and the size is smaller than the default, the Vim window is
not positioned properly.
Solution: Use another function to set the size. (Vitaly Minko)
Files: src/gui_gtk_x11.c
*** ../vim-7.2.262/src/gui_gtk_x11.c 2009-09-11 15:46:20.000000000 +0200
--- src/gui_gtk_x11.c 2009-09-23 15:43:52.000000000 +0200
***************
*** 4066,4071 ****
--- 4066,4073 ----
{
guicolor_T fg_pixel = INVALCOLOR;
guicolor_T bg_pixel = INVALCOLOR;
+ guint pixel_width;
+ guint pixel_height;
#ifdef HAVE_GTK2
/*
***************
*** 4106,4113 ****
unsigned int w, h;
int x = 0;
int y = 0;
- guint pixel_width;
- guint pixel_height;
mask = XParseGeometry((char *)gui.geom, &x, &y, &w, &h);
--- 4108,4113 ----
***************
*** 4160,4168 ****
}
}
! gtk_form_set_size(GTK_FORM(gui.formwin),
! (guint)(gui_get_base_width() + Columns * gui.char_width),
! (guint)(gui_get_base_height() + Rows * gui.char_height));
update_window_manager_hints(0, 0);
if (foreground_argument != NULL)
--- 4160,4175 ----
}
}
! pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width);
! pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height);
! #ifdef HAVE_GTK2
! /* For GTK2 changing the size of the form widget doesn't cause window
! * resizing. */
! if (gtk_socket_id == 0)
! gtk_window_resize(GTK_WINDOW(gui.mainwin), pixel_width, pixel_height);
! #else
! gtk_form_set_size(GTK_FORM(gui.formwin), pixel_width, pixel_height);
! #endif
update_window_manager_hints(0, 0);
if (foreground_argument != NULL)
*** ../vim-7.2.262/src/version.c 2009-09-18 17:24:54.000000000 +0200
--- src/version.c 2009-09-23 17:34:08.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 263,
/**/
--
hundred-and-one symptoms of being an internet addict:
267. You get an extra phone line so you can get phone calls.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

168
7.2.264 Normal file
View file

@ -0,0 +1,168 @@
To: vim-dev@vim.org
Subject: Patch 7.2.264
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.2.264
Problem: GTK2: When the Vim window is maximized setting 'columns' or
'lines' doesn't work.
Solution: Unmaximize the window before setting the size. (Vitaly Minko)
Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
*** ../vim-7.2.263/src/gui.c 2009-07-29 11:10:31.000000000 +0200
--- src/gui.c 2009-09-23 16:28:09.000000000 +0200
***************
*** 1386,1391 ****
--- 1386,1395 ----
int min_height;
int screen_w;
int screen_h;
+ #ifdef HAVE_GTK2
+ int un_maximize = mustset;
+ int did_adjust = 0;
+ #endif
if (!gui.shell_created)
return;
***************
*** 1425,1446 ****
if (Columns < MIN_COLUMNS)
Columns = MIN_COLUMNS;
width = Columns * gui.char_width + base_width;
}
if ((direction & RESIZE_VERT) && height > screen_h)
{
Rows = (screen_h - base_height) / gui.char_height;
check_shellsize();
height = Rows * gui.char_height + base_height;
}
}
gui.num_cols = Columns;
gui.num_rows = Rows;
min_width = base_width + MIN_COLUMNS * gui.char_width;
min_height = base_height + MIN_LINES * gui.char_height;
! # ifdef FEAT_WINDOWS
min_height += tabline_height() * gui.char_height;
! # endif
gui_mch_set_shellsize(width, height, min_width, min_height,
base_width, base_height, direction);
--- 1429,1475 ----
if (Columns < MIN_COLUMNS)
Columns = MIN_COLUMNS;
width = Columns * gui.char_width + base_width;
+ #ifdef HAVE_GTK2
+ ++did_adjust;
+ #endif
}
if ((direction & RESIZE_VERT) && height > screen_h)
{
Rows = (screen_h - base_height) / gui.char_height;
check_shellsize();
height = Rows * gui.char_height + base_height;
+ #ifdef HAVE_GTK2
+ ++did_adjust;
+ #endif
}
+ #ifdef HAVE_GTK2
+ if (did_adjust == 2 || (width + gui.char_width >= screen_w
+ && height + gui.char_height >= screen_h))
+ /* don't unmaximize if at maximum size */
+ un_maximize = FALSE;
+ #endif
}
gui.num_cols = Columns;
gui.num_rows = Rows;
min_width = base_width + MIN_COLUMNS * gui.char_width;
min_height = base_height + MIN_LINES * gui.char_height;
! #ifdef FEAT_WINDOWS
min_height += tabline_height() * gui.char_height;
! #endif
!
! #ifdef HAVE_GTK2
! if (un_maximize)
! {
! /* If the window size is smaller than the screen unmaximize the
! * window, otherwise resizing won't work. */
! gui_mch_get_screen_dimensions(&screen_w, &screen_h);
! if ((width + gui.char_width < screen_w
! || height + gui.char_height * 2 < screen_h)
! && gui_mch_maximized())
! gui_mch_unmaximize();
! }
! #endif
gui_mch_set_shellsize(width, height, min_width, min_height,
base_width, base_height, direction);
*** ../vim-7.2.263/src/gui_gtk_x11.c 2009-09-23 17:35:17.000000000 +0200
--- src/gui_gtk_x11.c 2009-09-23 15:43:52.000000000 +0200
***************
*** 4376,4381 ****
--- 4376,4404 ----
#endif
#endif /* HAVE_GTK2 */
+ #if defined(HAVE_GTK2) || defined(PROTO)
+ /*
+ * Return TRUE if the main window is maximized.
+ */
+ int
+ gui_mch_maximized()
+ {
+ return (gui.mainwin != NULL && gui.mainwin->window != NULL
+ && (gdk_window_get_state(gui.mainwin->window)
+ & GDK_WINDOW_STATE_MAXIMIZED));
+ }
+
+ /*
+ * Unmaximize the main window
+ */
+ void
+ gui_mch_unmaximize()
+ {
+ if (gui.mainwin != NULL)
+ gtk_window_unmaximize(GTK_WINDOW(gui.mainwin));
+ }
+ #endif
+
/*
* Set the windows size.
*/
*** ../vim-7.2.263/src/proto/gui_gtk_x11.pro 2007-05-05 19:18:54.000000000 +0200
--- src/proto/gui_gtk_x11.pro 2009-09-23 15:43:45.000000000 +0200
***************
*** 16,21 ****
--- 16,23 ----
void gui_mch_exit __ARGS((int rc));
int gui_mch_get_winpos __ARGS((int *x, int *y));
void gui_mch_set_winpos __ARGS((int x, int y));
+ int gui_mch_maximized __ARGS((void));
+ void gui_mch_unmaximize __ARGS((void));
void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
*** ../vim-7.2.263/src/version.c 2009-09-23 17:35:17.000000000 +0200
--- src/version.c 2009-09-23 18:12:21.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 264,
/**/
--
hundred-and-one symptoms of being an internet addict:
268. You get up in the morning and go online before getting your coffee.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

56
7.2.265 Normal file
View file

@ -0,0 +1,56 @@
To: vim-dev@vim.org
Subject: Patch 7.2.265
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.2.265
Problem: When using ":silent broken" inside try/catch silency may persist.
(dr-dr xp)
Solution: Set msg_silent when there is an error and it's bigger than the
saved value.
Files: src/ex_docmd.c
*** ../vim-7.2.264/src/ex_docmd.c 2009-07-09 20:13:59.000000000 +0200
--- src/ex_docmd.c 2009-09-30 11:40:53.000000000 +0200
***************
*** 2695,2701 ****
{
/* messages could be enabled for a serious error, need to check if the
* counters don't become negative */
! if (!did_emsg)
msg_silent = save_msg_silent;
emsg_silent -= did_esilent;
if (emsg_silent < 0)
--- 2695,2701 ----
{
/* messages could be enabled for a serious error, need to check if the
* counters don't become negative */
! if (!did_emsg || msg_silent > save_msg_silent)
msg_silent = save_msg_silent;
emsg_silent -= did_esilent;
if (emsg_silent < 0)
*** ../vim-7.2.264/src/version.c 2009-09-23 18:14:13.000000000 +0200
--- src/version.c 2009-09-30 13:22:47.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 265,
/**/
--
FIRST HEAD: Oh! quick! get the sword out I want to cut his head off.
THIRD HEAD: Oh, cut your own head off.
SECOND HEAD: Yes - do us all a favour.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

244
7.2.266 Normal file
View file

@ -0,0 +1,244 @@
To: vim-dev@vim.org
Subject: Patch 7.2.266
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.2.266
Problem: When an expression abbreviation is triggered, the typed character
is unknown.
Solution: Make the typed character available in v:char.
Files: runtime/doc/map.txt, src/eval.c, src/getchar.c, src/ops.c,
src/proto/eval.pro
*** ../vim-7.2.265/runtime/doc/map.txt 2008-08-09 19:36:49.000000000 +0200
--- runtime/doc/map.txt 2009-09-23 19:39:19.000000000 +0200
***************
*** 224,229 ****
--- 224,233 ----
The result of the InsertDot() function will be inserted. It could check the
text before the cursor and start omni completion when some condition is met.
+ For abbreviations |v:char| is set to the character that was typed to trigger
+ the abbreviation. You can use this to decide how to expand the {lhs}. You
+ can't change v:char and you should not insert it.
+
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
For this reason the following is blocked:
*** ../vim-7.2.265/src/eval.c 2009-06-03 14:25:47.000000000 +0200
--- src/eval.c 2009-09-23 19:36:32.000000000 +0200
***************
*** 18101,18106 ****
--- 18101,18131 ----
}
/*
+ * Set v:char to character "c".
+ */
+ void
+ set_vim_var_char(c)
+ int c;
+ {
+ #ifdef FEAT_MBYTE
+ char_u buf[MB_MAXBYTES];
+ #else
+ char_u buf[2];
+ #endif
+
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ buf[(*mb_char2bytes)(c, buf)] = NUL;
+ else
+ #endif
+ {
+ buf[0] = c;
+ buf[1] = NUL;
+ }
+ set_vim_var_string(VV_CHAR, buf, -1);
+ }
+
+ /*
* Set v:count to "count" and v:count1 to "count1".
* When "set_prevcount" is TRUE first set v:prevcount from v:count.
*/
*** ../vim-7.2.265/src/getchar.c 2009-07-14 13:44:43.000000000 +0200
--- src/getchar.c 2009-09-23 19:35:54.000000000 +0200
***************
*** 129,135 ****
static void validate_maphash __ARGS((void));
static void showmap __ARGS((mapblock_T *mp, int local));
#ifdef FEAT_EVAL
! static char_u *eval_map_expr __ARGS((char_u *str));
#endif
/*
--- 129,135 ----
static void validate_maphash __ARGS((void));
static void showmap __ARGS((mapblock_T *mp, int local));
#ifdef FEAT_EVAL
! static char_u *eval_map_expr __ARGS((char_u *str, int c));
#endif
/*
***************
*** 2446,2452 ****
if (tabuf.typebuf_valid)
{
vgetc_busy = 0;
! s = eval_map_expr(mp->m_str);
vgetc_busy = save_vgetc_busy;
}
else
--- 2446,2452 ----
if (tabuf.typebuf_valid)
{
vgetc_busy = 0;
! s = eval_map_expr(mp->m_str, NUL);
vgetc_busy = save_vgetc_busy;
}
else
***************
*** 4367,4375 ****
* abbreviation, but is not inserted into the input stream.
*/
j = 0;
- /* special key code, split up */
if (c != Ctrl_RSB)
{
if (IS_SPECIAL(c) || c == K_SPECIAL)
{
tb[j++] = K_SPECIAL;
--- 4367,4375 ----
* abbreviation, but is not inserted into the input stream.
*/
j = 0;
if (c != Ctrl_RSB)
{
+ /* special key code, split up */
if (IS_SPECIAL(c) || c == K_SPECIAL)
{
tb[j++] = K_SPECIAL;
***************
*** 4398,4404 ****
}
#ifdef FEAT_EVAL
if (mp->m_expr)
! s = eval_map_expr(mp->m_str);
else
#endif
s = mp->m_str;
--- 4398,4404 ----
}
#ifdef FEAT_EVAL
if (mp->m_expr)
! s = eval_map_expr(mp->m_str, c);
else
#endif
s = mp->m_str;
***************
*** 4434,4441 ****
* special characters.
*/
static char_u *
! eval_map_expr(str)
char_u *str;
{
char_u *res;
char_u *p;
--- 4434,4442 ----
* special characters.
*/
static char_u *
! eval_map_expr(str, c)
char_u *str;
+ int c; /* NUL or typed character for abbreviation */
{
char_u *res;
char_u *p;
***************
*** 4452,4457 ****
--- 4453,4459 ----
#ifdef FEAT_EX_EXTRA
++ex_normal_lock;
#endif
+ set_vim_var_char(c); /* set v:char to the typed character */
save_cursor = curwin->w_cursor;
p = eval_to_string(str, NULL, FALSE);
--textlock;
*** ../vim-7.2.265/src/ops.c 2009-07-01 18:04:30.000000000 +0200
--- src/ops.c 2009-09-23 19:11:40.000000000 +0200
***************
*** 4473,4483 ****
int use_sandbox = was_set_insecurely((char_u *)"formatexpr",
OPT_LOCAL);
int r;
- #ifdef FEAT_MBYTE
- char_u buf[MB_MAXBYTES];
- #else
- char_u buf[2];
- #endif
/*
* Set v:lnum to the first line number and v:count to the number of lines.
--- 4473,4478 ----
***************
*** 4485,4501 ****
*/
set_vim_var_nr(VV_LNUM, lnum);
set_vim_var_nr(VV_COUNT, count);
!
! #ifdef FEAT_MBYTE
! if (has_mbyte)
! buf[(*mb_char2bytes)(c, buf)] = NUL;
! else
! #endif
! {
! buf[0] = c;
! buf[1] = NUL;
! }
! set_vim_var_string(VV_CHAR, buf, -1);
/*
* Evaluate the function.
--- 4480,4486 ----
*/
set_vim_var_nr(VV_LNUM, lnum);
set_vim_var_nr(VV_COUNT, count);
! set_vim_var_char(c);
/*
* Evaluate the function.
*** ../vim-7.2.265/src/proto/eval.pro 2008-11-20 16:11:03.000000000 +0100
--- src/proto/eval.pro 2009-09-23 19:36:30.000000000 +0200
***************
*** 61,66 ****
--- 61,67 ----
long get_vim_var_nr __ARGS((int idx));
char_u *get_vim_var_str __ARGS((int idx));
list_T *get_vim_var_list __ARGS((int idx));
+ void set_vim_var_char __ARGS((int c));
void set_vcount __ARGS((long count, long count1, int set_prevcount));
void set_vim_var_string __ARGS((int idx, char_u *val, int len));
void set_vim_var_list __ARGS((int idx, list_T *val));
*** ../vim-7.2.265/src/version.c 2009-09-30 13:23:57.000000000 +0200
--- src/version.c 2009-09-30 15:11:29.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 266,
/**/
--
Life would be so much easier if we could just look at the source code.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

47
7.2.267 Normal file
View file

@ -0,0 +1,47 @@
To: vim-dev@vim.org
Subject: Patch 7.2.267
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.2.267
Problem: Crash for narrow window and double-width character.
Solution: Check for zero width. (Taro Muraoka)
Files: src/charset.c
*** ../vim-7.2.266/src/charset.c 2009-09-11 14:02:25.000000000 +0200
--- src/charset.c 2009-10-07 16:17:27.000000000 +0200
***************
*** 1218,1223 ****
--- 1218,1225 ----
if ((int)vcol == width1 - 1)
return TRUE;
width2 = width1 + win_col_off2(wp);
+ if (width2 <= 0)
+ return FALSE;
return ((vcol - width1) % width2 == width2 - 1);
}
#endif /* FEAT_MBYTE */
*** ../vim-7.2.266/src/version.c 2009-09-30 15:15:33.000000000 +0200
--- src/version.c 2009-10-07 16:19:05.000000000 +0200
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 267,
/**/
--
You got to work at a mill? Lucky! I got sent back to work in the
acid-mines for my daily crust of stale bread... which not even the
birds would eat.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

80
7.2.268 Normal file
View file

@ -0,0 +1,80 @@
To: vim-dev@vim.org
Subject: Patch 7.2.268
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.2.268
Problem: Crash when using Python to set cursor beyond end of line.
(winterTTr)
Solution: Check the column to be valid.
Files: src/if_python.c
*** ../vim-7.2.267/src/if_python.c 2009-07-09 20:06:30.000000000 +0200
--- src/if_python.c 2009-10-10 14:49:10.000000000 +0200
***************
*** 2058,2063 ****
--- 2058,2064 ----
{
long lnum;
long col;
+ long len;
if (!PyArg_Parse(val, "(ll)", &lnum, &col))
return -1;
***************
*** 2072,2081 ****
if (VimErrorCheck())
return -1;
! /* NO CHECK ON COLUMN - SEEMS NOT TO MATTER */
this->win->w_cursor.lnum = lnum;
this->win->w_cursor.col = col;
update_screen(VALID);
return 0;
--- 2073,2088 ----
if (VimErrorCheck())
return -1;
! /* When column is out of range silently correct it. */
! len = STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
! if (col > len)
! col = len;
this->win->w_cursor.lnum = lnum;
this->win->w_cursor.col = col;
+ #ifdef FEAT_VIRTUALEDIT
+ this->win->w_cursor.coladd = 0;
+ #endif
update_screen(VALID);
return 0;
*** ../vim-7.2.267/src/version.c 2009-10-07 16:19:52.000000000 +0200
--- src/version.c 2009-11-03 11:42:08.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 268,
/**/
--
VOICE OVER: As the horrendous Black Beast lunged forward, escape for Arthur
and his knights seemed hopeless, when, suddenly ... the animator
suffered a fatal heart attack.
ANIMATOR: Aaaaagh!
VOICE OVER: The cartoon peril was no more ... The Quest for Holy Grail could
continue.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

261
7.2.269 Normal file
View file

@ -0,0 +1,261 @@
To: vim-dev@vim.org
Subject: Patch 7.2.269
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.2.269
Problem: Many people struggle to find out why Vim startup is slow.
Solution: Add the --startuptime command line flag.
Files: runtime/doc/starting.txt, src/globals.h, src/feature.h,
src/main.c, src/macros.h
*** ../vim-7.2.268/runtime/doc/starting.txt 2008-11-09 13:43:25.000000000 +0100
--- runtime/doc/starting.txt 2009-10-25 11:57:51.000000000 +0100
***************
*** 144,149 ****
--- 144,156 ----
-u NORC no yes
--noplugin yes no
+ --startuptime={fname} *--startuptime*
+ During startup write timing messages to the file {fname}.
+ This can be used to find out where time is spent while loading
+ your .vimrc and plugins.
+ When {fname} already exists new messages are appended.
+ {only when compiled with this feature}
+
*--literal*
--literal Take file names literally, don't expand wildcards. Not needed
for Unix, because Vim always takes file names literally (the
***************
*** 471,476 ****
--- 487,493 ----
window title and copy/paste using the X clipboard. This
avoids a long startup time when running Vim in a terminal
emulator and the connection to the X server is slow.
+ See |--startuptime| to find out if affects you.
Only makes a difference on Unix or VMS, when compiled with the
|+X11| feature. Otherwise it's ignored.
To disable the connection only for specific terminals, see the
*** ../vim-7.2.268/src/globals.h 2009-07-29 12:09:49.000000000 +0200
--- src/globals.h 2009-10-10 15:14:31.000000000 +0200
***************
*** 1567,1572 ****
--- 1567,1576 ----
/* For undo we need to know the lowest time possible. */
EXTERN time_t starttime;
+ #ifdef STARTUPTIME
+ EXTERN FILE *time_fd INIT(= NULL); /* where to write startup timing */
+ #endif
+
/*
* Some compilers warn for not using a return value, but in some situations we
* can't do anything useful with the value. Assign to this variable to avoid
*** ../vim-7.2.268/src/feature.h 2008-11-09 13:43:25.000000000 +0100
--- src/feature.h 2009-10-10 16:16:19.000000000 +0200
***************
*** 844,853 ****
/* #define DEBUG */
/*
! * STARTUPTIME Time the startup process. Writes a "vimstartup" file
! * with timestamps.
*/
! /* #define STARTUPTIME "vimstartup" */
/*
* MEM_PROFILE Debugging of memory allocation and freeing.
--- 844,857 ----
/* #define DEBUG */
/*
! * STARTUPTIME Time the startup process. Writes a file with
! * timestamps.
*/
! #if defined(FEAT_NORMAL) \
! && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \
! || defined(WIN3264))
! # define STARTUPTIME 1
! #endif
/*
* MEM_PROFILE Debugging of memory allocation and freeing.
*** ../vim-7.2.268/src/main.c 2009-05-26 22:58:43.000000000 +0200
--- src/main.c 2009-10-10 16:18:32.000000000 +0200
***************
*** 130,139 ****
#endif
- #ifdef STARTUPTIME
- static FILE *time_fd = NULL;
- #endif
-
/*
* Different types of error messages.
*/
--- 130,135 ----
***************
*** 173,178 ****
--- 169,177 ----
char_u *fname = NULL; /* file name from command line */
mparm_T params; /* various parameters passed between
* main() and other functions. */
+ #ifdef STARTUPTIME
+ int i;
+ #endif
/*
* Do any system-specific initialisations. These can NOT use IObuff or
***************
*** 203,210 ****
#endif
#ifdef STARTUPTIME
! time_fd = mch_fopen(STARTUPTIME, "a");
! TIME_MSG("--- VIM STARTING ---");
#endif
starttime = time(NULL);
--- 202,216 ----
#endif
#ifdef STARTUPTIME
! for (i = 1; i < argc; ++i)
! {
! if (STRNICMP(argv[i], "--startuptime=", 14) == 0)
! {
! time_fd = mch_fopen(argv[i] + 14, "a");
! TIME_MSG("--- VIM STARTING ---");
! break;
! }
! }
#endif
starttime = time(NULL);
***************
*** 1150,1155 ****
--- 1156,1173 ----
cursor_on();
do_redraw = FALSE;
+
+ #ifdef STARTUPTIME
+ /* Now that we have drawn the first screen all the startup stuff
+ * has been done, close any file for startup messages. */
+ if (time_fd != NULL)
+ {
+ TIME_MSG("first screen update");
+ TIME_MSG("--- VIM STARTED ---");
+ fclose(time_fd);
+ time_fd = NULL;
+ }
+ #endif
}
#ifdef FEAT_GUI
if (need_mouse_correct)
***************
*** 1743,1748 ****
--- 1761,1770 ----
/* already processed, skip */
}
#endif
+ else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0)
+ {
+ /* already processed, skip */
+ }
else
{
if (argv[0][argv_idx])
***************
*** 3211,3216 ****
--- 3233,3252 ----
static struct timeval prev_timeval;
+ # ifdef WIN3264
+ /*
+ * Windows doesn't have gettimeofday(), although it does have struct timeval.
+ */
+ static int
+ gettimeofday(struct timeval *tv, char *dummy)
+ {
+ long t = clock();
+ tv->tv_sec = t / CLOCKS_PER_SEC;
+ tv->tv_usec = (t - tv->tv_sec * CLOCKS_PER_SEC) * 1000000 / CLOCKS_PER_SEC;
+ return 0;
+ }
+ # endif
+
/*
* Save the previous time before doing something that could nest.
* set "*tv_rel" to the time elapsed so far.
***************
*** 3299,3318 ****
}
}
- # ifdef WIN3264
- /*
- * Windows doesn't have gettimeofday(), although it does have struct timeval.
- */
- int
- gettimeofday(struct timeval *tv, char *dummy)
- {
- long t = clock();
- tv->tv_sec = t / CLOCKS_PER_SEC;
- tv->tv_usec = (t - tv->tv_sec * CLOCKS_PER_SEC) * 1000000 / CLOCKS_PER_SEC;
- return 0;
- }
- # endif
-
#endif
#if defined(FEAT_CLIENTSERVER) || defined(PROTO)
--- 3335,3340 ----
*** ../vim-7.2.268/src/macros.h 2009-05-17 13:30:58.000000000 +0200
--- src/macros.h 2009-10-10 15:19:07.000000000 +0200
***************
*** 243,249 ****
#endif
#ifdef STARTUPTIME
! # define TIME_MSG(s) time_msg(s, NULL)
#else
# define TIME_MSG(s)
#endif
--- 243,249 ----
#endif
#ifdef STARTUPTIME
! # define TIME_MSG(s) { if (time_fd != NULL) time_msg(s, NULL); }
#else
# define TIME_MSG(s)
#endif
*** ../vim-7.2.268/src/version.c 2009-11-03 11:43:05.000000000 +0100
--- src/version.c 2009-11-03 12:06:31.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 269,
/**/
--
BEDEVERE: Look! It's the old man from scene 24 - what's he Doing here?
ARTHUR: He is the keeper of the Bridge. He asks each traveler five
questions ...
GALAHAD: Three questions.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

72
7.2.270 Normal file
View file

@ -0,0 +1,72 @@
To: vim-dev@vim.org
Subject: Patch 7.2.270
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.2.270
Problem: Using ":@c" when the c register contains a CR causes the rest to
be executed later. (Dexter Douglas)
Solution: Don't check for typeahead to start with ':', keep executing
commands until all added typeahead has been used.
Files: src/ex_docmd.c
*** ../vim-7.2.269/src/ex_docmd.c 2009-09-30 13:23:57.000000000 +0200
--- src/ex_docmd.c 2009-10-28 12:06:54.000000000 +0100
***************
*** 8358,8363 ****
--- 8358,8364 ----
exarg_T *eap;
{
int c;
+ int prev_len = typebuf.tb_len;
curwin->w_cursor.lnum = eap->line2;
***************
*** 8383,8393 ****
/*
* Execute from the typeahead buffer.
! * Originally this didn't check for the typeahead buffer to be empty,
! * thus could read more Ex commands from stdin. It's not clear why,
! * it is certainly unexpected.
*/
! while ((!stuff_empty() || typebuf.tb_len > 0) && vpeekc() == ':')
(void)do_cmdline(NULL, getexline, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE);
exec_from_reg = save_efr;
--- 8384,8393 ----
/*
* Execute from the typeahead buffer.
! * Continue until the stuff buffer is empty and all added characters
! * have been consumed.
*/
! while (!stuff_empty() || typebuf.tb_len > prev_len)
(void)do_cmdline(NULL, getexline, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE);
exec_from_reg = save_efr;
*** ../vim-7.2.269/src/version.c 2009-11-03 12:10:39.000000000 +0100
--- src/version.c 2009-11-03 12:32:47.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 270,
/**/
--
To the optimist, the glass is half full.
To the pessimist, the glass is half empty.
To the engineer, the glass is twice as big as it needs to be.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

92
7.2.271 Normal file
View file

@ -0,0 +1,92 @@
To: vim-dev@vim.org
Subject: Patch 7.2.271
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.2.271
Problem: Using freed memory in Motif GUI version when making a choice.
Solution: Free memory only after using it. (Dominique Pelle)
Files: src/gui_xmdlg.c
*** ../vim-7.2.270/src/gui_xmdlg.c 2009-05-21 23:25:38.000000000 +0200
--- src/gui_xmdlg.c 2009-10-28 21:56:15.000000000 +0100
***************
*** 10,16 ****
/*
* (C) 2001,2005 by Marcin Dalecki <martin@dalecki.de>
*
! * Implementation of dialogue functions for the Motif GUI variant.
*
* Note about Lesstif: Apparently lesstif doesn't get the widget layout right,
* when using a dynamic scrollbar policy.
--- 10,16 ----
/*
* (C) 2001,2005 by Marcin Dalecki <martin@dalecki.de>
*
! * Implementation of dialog functions for the Motif GUI variant.
*
* Note about Lesstif: Apparently lesstif doesn't get the widget layout right,
* when using a dynamic scrollbar policy.
***************
*** 633,648 ****
data->sel[which] = XtNewString(sel);
else
{
- XtFree(data->sel[which]);
if (!strcmp(data->sel[which], sel))
{
/* unselecting current selection */
data->sel[which] = NULL;
if (w)
XmListDeselectItem(w, call_data->item);
}
else
data->sel[which] = XtNewString(sel);
}
XtFree(sel);
--- 633,651 ----
data->sel[which] = XtNewString(sel);
else
{
if (!strcmp(data->sel[which], sel))
{
/* unselecting current selection */
+ XtFree(data->sel[which]);
data->sel[which] = NULL;
if (w)
XmListDeselectItem(w, call_data->item);
}
else
+ {
+ XtFree(data->sel[which]);
data->sel[which] = XtNewString(sel);
+ }
}
XtFree(sel);
*** ../vim-7.2.270/src/version.c 2009-11-03 12:38:50.000000000 +0100
--- src/version.c 2009-11-03 12:48:26.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 271,
/**/
--
ROBIN: (warily) And if you get a question wrong?
ARTHUR: You are cast into the Gorge of Eternal Peril.
ROBIN: Oh ... wacho!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

82
7.2.272 Normal file
View file

@ -0,0 +1,82 @@
To: vim-dev@vim.org
Subject: Patch 7.2.272
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.2.272
Problem: "_.svz" is not recognized as a swap file. (David M. Besonen)
Solution: Accept .s[uvw][a-z] as a swap file name extension.
Files: src/memline.c
*** ../vim-7.2.271/src/memline.c 2009-04-22 15:56:27.000000000 +0200
--- src/memline.c 2009-10-29 20:55:08.000000000 +0100
***************
*** 864,884 ****
recoverymode = TRUE;
called_from_main = (curbuf->b_ml.ml_mfp == NULL);
attr = hl_attr(HLF_E);
! /*
! * If the file name ends in ".sw?" we use it directly.
! * Otherwise a search is done to find the swap file(s).
! */
fname = curbuf->b_fname;
if (fname == NULL) /* When there is no file name */
fname = (char_u *)"";
len = (int)STRLEN(fname);
if (len >= 4 &&
#if defined(VMS) || defined(RISCOS)
! STRNICMP(fname + len - 4, "_sw" , 3)
#else
! STRNICMP(fname + len - 4, ".sw" , 3)
#endif
! == 0)
{
directly = TRUE;
fname = vim_strsave(fname); /* make a copy for mf_open() */
--- 864,887 ----
recoverymode = TRUE;
called_from_main = (curbuf->b_ml.ml_mfp == NULL);
attr = hl_attr(HLF_E);
!
! /*
! * If the file name ends in ".s[uvw][a-z]" we assume this is the swap file.
! * Otherwise a search is done to find the swap file(s).
! */
fname = curbuf->b_fname;
if (fname == NULL) /* When there is no file name */
fname = (char_u *)"";
len = (int)STRLEN(fname);
if (len >= 4 &&
#if defined(VMS) || defined(RISCOS)
! STRNICMP(fname + len - 4, "_s" , 2)
#else
! STRNICMP(fname + len - 4, ".s" , 2)
#endif
! == 0
! && vim_strchr((char_u *)"UVWuvw", fname[len - 2]) != NULL
! && ASCII_ISALPHA(fname[len - 1]))
{
directly = TRUE;
fname = vim_strsave(fname); /* make a copy for mf_open() */
*** ../vim-7.2.271/src/version.c 2009-11-03 12:53:44.000000000 +0100
--- src/version.c 2009-11-03 13:02:51.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 272,
/**/
--
Sorry, no fortune today.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

130
7.2.273 Normal file
View file

@ -0,0 +1,130 @@
To: vim-dev@vim.org
Subject: Patch 7.2.273
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.2.273
Problem: Crash with redir to unknown array. (Christian Brabandt)
Solution: Don't assign the redir result when there was an error.
Files: src/eval.c
*** ../vim-7.2.272/src/eval.c 2009-09-30 15:15:33.000000000 +0200
--- src/eval.c 2009-11-03 12:05:07.000000000 +0100
***************
*** 988,1000 ****
int err;
typval_T tv;
! /* Make sure a valid variable name is specified */
if (!eval_isnamec1(*name))
{
EMSG(_(e_invarg));
return FAIL;
}
redir_varname = vim_strsave(name);
if (redir_varname == NULL)
return FAIL;
--- 988,1001 ----
int err;
typval_T tv;
! /* Catch a bad name early. */
if (!eval_isnamec1(*name))
{
EMSG(_(e_invarg));
return FAIL;
}
+ /* Make a copy of the name, it is used in redir_lval until redir ends. */
redir_varname = vim_strsave(name);
if (redir_varname == NULL)
return FAIL;
***************
*** 1019,1024 ****
--- 1020,1026 ----
EMSG(_(e_trailing));
else
EMSG(_(e_invarg));
+ redir_endp = NULL; /* don't store a value, only cleanup */
var_redir_stop();
return FAIL;
}
***************
*** 1037,1042 ****
--- 1039,1045 ----
did_emsg |= save_emsg;
if (err)
{
+ redir_endp = NULL; /* don't store a value, only cleanup */
var_redir_stop();
return FAIL;
}
***************
*** 1085,1090 ****
--- 1088,1094 ----
/*
* Stop redirecting command output to a variable.
+ * Frees the allocated memory.
*/
void
var_redir_stop()
***************
*** 1093,1106 ****
if (redir_lval != NULL)
{
! /* Append the trailing NUL. */
! ga_append(&redir_ga, NUL);
! /* Assign the text to the variable. */
! tv.v_type = VAR_STRING;
! tv.vval.v_string = redir_ga.ga_data;
! set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
! vim_free(tv.vval.v_string);
clear_lval(redir_lval);
vim_free(redir_lval);
--- 1097,1114 ----
if (redir_lval != NULL)
{
! /* If there was no error: assign the text to the variable. */
! if (redir_endp != NULL)
! {
! ga_append(&redir_ga, NUL); /* Append the trailing NUL. */
! tv.v_type = VAR_STRING;
! tv.vval.v_string = redir_ga.ga_data;
! set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
! }
! /* free the collected output */
! vim_free(redir_ga.ga_data);
! redir_ga.ga_data = NULL;
clear_lval(redir_lval);
vim_free(redir_lval);
*** ../vim-7.2.272/src/version.c 2009-11-03 13:06:03.000000000 +0100
--- src/version.c 2009-11-03 14:24:06.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 273,
/**/
--
Permission is granted to read this message out aloud on Kings Cross Road,
London, under the condition that the orator is properly dressed.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

130
7.2.274 Normal file
View file

@ -0,0 +1,130 @@
To: vim-dev@vim.org
Subject: Patch 7.2.274
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.2.274
Problem: Syntax folding doesn't work properly when adding a comment.
Solution: Fix it and add a test. (Lech Lorens)
Files: src/fold.c, src/testdir/test45.in, src/testdir/test45.ok
*** ../vim-7.2.273/src/fold.c 2009-09-18 15:16:37.000000000 +0200
--- src/fold.c 2009-11-03 12:36:37.000000000 +0100
***************
*** 2256,2261 ****
--- 2256,2295 ----
}
}
+ /*
+ * If folding is defined by the syntax, it is possible that a change in
+ * one line will cause all sub-folds of the current fold to change (e.g.,
+ * closing a C-style comment can cause folds in the subsequent lines to
+ * appear). To take that into account we should adjust the value of "bot"
+ * to point to the end of the current fold:
+ */
+ if (foldlevelSyntax == getlevel)
+ {
+ garray_T *gap = &wp->w_folds;
+ fold_T *fp = NULL;
+ int current_fdl = 0;
+ linenr_T fold_start_lnum = 0;
+ linenr_T lnum_rel = fline.lnum;
+
+ while (current_fdl < fline.lvl)
+ {
+ if (!foldFind(gap, lnum_rel, &fp))
+ break;
+ ++current_fdl;
+
+ fold_start_lnum += fp->fd_top;
+ gap = &fp->fd_nested;
+ lnum_rel -= fp->fd_top;
+ }
+ if (fp != NULL && current_fdl == fline.lvl)
+ {
+ linenr_T fold_end_lnum = fold_start_lnum + fp->fd_len;
+
+ if (fold_end_lnum > bot)
+ bot = fold_end_lnum;
+ }
+ }
+
start = fline.lnum;
end = bot;
/* Do at least one line. */
*** ../vim-7.2.273/src/testdir/test45.in 2007-09-25 17:58:43.000000000 +0200
--- src/testdir/test45.in 2009-11-03 12:22:38.000000000 +0100
***************
*** 28,36 ****
k:call append("$", foldlevel("."))
:" test syntax folding
:set fdm=syntax fdl=0
! :syn region Hup start="dd" end="hh" fold
Gzk:call append("$", "folding " . getline("."))
k:call append("$", getline("."))
:" test expression folding
:fun Flvl()
let l = getline(v:lnum)
--- 28,41 ----
k:call append("$", foldlevel("."))
:" test syntax folding
:set fdm=syntax fdl=0
! :syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
! :syn region Fd1 start="ee" end="ff" fold contained
! :syn region Fd2 start="gg" end="hh" fold contained
! :syn region Fd3 start="commentstart" end="commentend" fold contained
Gzk:call append("$", "folding " . getline("."))
k:call append("$", getline("."))
+ jAcommentstart Acommentend:set fdl=1
+ 3j:call append("$", getline("."))
:" test expression folding
:fun Flvl()
let l = getline(v:lnum)
*** ../vim-7.2.273/src/testdir/test45.ok 2004-06-13 17:47:37.000000000 +0200
--- src/testdir/test45.ok 2009-11-03 12:22:50.000000000 +0100
***************
*** 8,15 ****
0
indent 2
1
! folding 8 hh
3 cc
expr 2
1
2
--- 8,16 ----
0
indent 2
1
! folding 9 ii
3 cc
+ 7 gg
expr 2
1
2
*** ../vim-7.2.273/src/version.c 2009-11-03 14:26:29.000000000 +0100
--- src/version.c 2009-11-03 14:44:21.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 274,
/**/
--
BRIDGEKEEPER: What is your favorite colour?
LAUNCELOT: Blue.
BRIDGEKEEPER: Right. Off you go.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

95
7.2.275 Normal file
View file

@ -0,0 +1,95 @@
To: vim-dev@vim.org
Subject: Patch 7.2.275
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.2.275
Problem: Warning for unused argument and comparing signed and unsigned.
Solution: Add type cast.
Files: src/memline.c
*** ../vim-7.2.274/src/memline.c 2009-11-03 13:06:03.000000000 +0100
--- src/memline.c 2009-10-29 20:55:08.000000000 +0100
***************
*** 1285,1291 ****
for (i = 0; i < dp->db_line_count; ++i)
{
txt_start = (dp->db_index[i] & DB_INDEX_MASK);
! if (txt_start <= HEADER_SIZE
|| txt_start >= (int)dp->db_txt_end)
{
p = (char_u *)"???";
--- 1285,1291 ----
for (i = 0; i < dp->db_line_count; ++i)
{
txt_start = (dp->db_index[i] & DB_INDEX_MASK);
! if (txt_start <= (int)HEADER_SIZE
|| txt_start >= (int)dp->db_txt_end)
{
p = (char_u *)"???";
***************
*** 1296,1302 ****
ml_append(lnum++, p, (colnr_T)0, TRUE);
}
if (has_error)
! ml_append(lnum++, (char_u *)_("???END"), (colnr_T)0, TRUE);
}
}
}
--- 1296,1303 ----
ml_append(lnum++, p, (colnr_T)0, TRUE);
}
if (has_error)
! ml_append(lnum++, (char_u *)_("???END"),
! (colnr_T)0, TRUE);
}
}
}
***************
*** 3576,3586 ****
* Make swap file name out of the file name and a directory name.
* Returns pointer to allocated memory or NULL.
*/
- /*ARGSUSED*/
char_u *
makeswapname(fname, ffname, buf, dir_name)
char_u *fname;
! char_u *ffname;
buf_T *buf;
char_u *dir_name;
{
--- 3577,3586 ----
* Make swap file name out of the file name and a directory name.
* Returns pointer to allocated memory or NULL.
*/
char_u *
makeswapname(fname, ffname, buf, dir_name)
char_u *fname;
! char_u *ffname UNUSED;
buf_T *buf;
char_u *dir_name;
{
*** ../vim-7.2.274/src/version.c 2009-11-03 14:46:35.000000000 +0100
--- src/version.c 2009-11-03 15:28:33.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 275,
/**/
--
BRIDGEKEEPER: What is your favorite colour?
GAWAIN: Blue ... No yelloooooww!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

63
7.2.276 Normal file
View file

@ -0,0 +1,63 @@
To: vim-dev@vim.org
Subject: Patch 7.2.276
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.2.276
Problem: Crash when setting 'isprint' to a small bullet. (Raul Coronado)
Solution: Check for the character to be < 256. Also make it possible to
specify a range of multi-byte characters. (Lech Lorens)
Files: src/charset.c
*** ../vim-7.2.275/src/charset.c 2009-10-07 16:19:52.000000000 +0200
--- src/charset.c 2009-11-03 12:46:12.000000000 +0100
***************
*** 187,195 ****
if (VIM_ISDIGIT(*p))
c2 = getdigits(&p);
else
c2 = *p++;
}
! if (c <= 0 || (c2 < c && c2 != -1) || c2 >= 256
|| !(*p == NUL || *p == ','))
return FAIL;
--- 187,200 ----
if (VIM_ISDIGIT(*p))
c2 = getdigits(&p);
else
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ c2 = mb_ptr2char_adv(&p);
+ else
+ #endif
c2 = *p++;
}
! if (c <= 0 || c >= 256 || (c2 < c && c2 != -1) || c2 >= 256
|| !(*p == NUL || *p == ','))
return FAIL;
*** ../vim-7.2.275/src/version.c 2009-11-03 15:32:58.000000000 +0100
--- src/version.c 2009-11-03 16:03:18.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 276,
/**/
--
BRIDGEKEEPER: What is your favorite editor?
GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm!
"Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

66
7.2.277 Normal file
View file

@ -0,0 +1,66 @@
To: vim-dev@vim.org
Subject: Patch 7.2.277
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.2.277
Problem: CTRL-Y in a diff'ed window may move the cursor outside of the
window. (Lech Lorens)
Solution: Limit the number of filler lines to the height of the window.
Don't reset filler lines to zero for an empty buffer.
Files: src/move.c
*** ../vim-7.2.276/src/move.c 2009-05-15 21:31:11.000000000 +0200
--- src/move.c 2009-11-03 14:39:55.000000000 +0100
***************
*** 183,191 ****
if (curwin->w_topline != 1)
redraw_later(NOT_VALID);
curwin->w_topline = 1;
- #ifdef FEAT_DIFF
- curwin->w_topfill = 0;
- #endif
curwin->w_botline = 2;
curwin->w_valid |= VALID_BOTLINE|VALID_BOTLINE_AP;
#ifdef FEAT_SCROLLBIND
--- 183,188 ----
***************
*** 1257,1263 ****
while (line_count-- > 0)
{
#ifdef FEAT_DIFF
! if (curwin->w_topfill < diff_check(curwin, curwin->w_topline))
{
++curwin->w_topfill;
++done;
--- 1254,1261 ----
while (line_count-- > 0)
{
#ifdef FEAT_DIFF
! if (curwin->w_topfill < diff_check(curwin, curwin->w_topline)
! && curwin->w_topfill < curwin->w_height - 1)
{
++curwin->w_topfill;
++done;
*** ../vim-7.2.276/src/version.c 2009-11-03 16:03:59.000000000 +0100
--- src/version.c 2009-11-03 16:22:04.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 277,
/**/
--
SIGFUN -- signature too funny (core dumped)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

74
7.2.278 Normal file
View file

@ -0,0 +1,74 @@
To: vim-dev@vim.org
Subject: Patch 7.2.278
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.2.278
Problem: Using magic number in the folding code.
Solution: Use the defined MAX_LEVEL.
Files: src/fold.c
*** ../vim-7.2.277/src/fold.c 2009-11-03 14:46:35.000000000 +0100
--- src/fold.c 2009-11-03 12:36:37.000000000 +0100
***************
*** 1932,1938 ****
#ifdef FEAT_EVAL
if (*wp->w_p_fdt != NUL)
{
! char_u dashes[51];
win_T *save_curwin;
int level;
char_u *p;
--- 1932,1938 ----
#ifdef FEAT_EVAL
if (*wp->w_p_fdt != NUL)
{
! char_u dashes[MAX_LEVEL + 2];
win_T *save_curwin;
int level;
char_u *p;
***************
*** 1944,1951 ****
/* Set "v:folddashes" to a string of "level" dashes. */
/* Set "v:foldlevel" to "level". */
level = foldinfo->fi_level;
! if (level > 50)
! level = 50;
vim_memset(dashes, '-', (size_t)level);
dashes[level] = NUL;
set_vim_var_string(VV_FOLDDASHES, dashes, -1);
--- 1944,1951 ----
/* Set "v:folddashes" to a string of "level" dashes. */
/* Set "v:foldlevel" to "level". */
level = foldinfo->fi_level;
! if (level > (int)sizeof(dashes) - 1)
! level = (int)sizeof(dashes) - 1;
vim_memset(dashes, '-', (size_t)level);
dashes[level] = NUL;
set_vim_var_string(VV_FOLDDASHES, dashes, -1);
*** ../vim-7.2.277/src/version.c 2009-11-03 16:22:59.000000000 +0100
--- src/version.c 2009-11-03 16:29:08.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 278,
/**/
--
BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow?
ARTHUR: What do you mean? An African or European swallow?
BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh!
BRIDGEKEEPER is cast into the gorge.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

120
7.2.279 Normal file
View file

@ -0,0 +1,120 @@
To: vim-dev@vim.org
Subject: Patch 7.2.279
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.2.279
Problem: Invalid memory read with visual mode "r". (Dominique Pelle)
Solution: Make sure the cursor position is valid. Don't check the cursor
position but the position being used. And make sure we get the
right line.
Files: src/misc2.c, src/ops.c
*** ../vim-7.2.278/src/misc2.c 2009-05-16 21:06:36.000000000 +0200
--- src/misc2.c 2009-11-03 16:43:10.000000000 +0100
***************
*** 156,162 ****
|| ((ve_flags & VE_ONEMORE) && wcol < MAXCOL)
#endif
;
! line = ml_get_curline();
if (wcol >= MAXCOL)
{
--- 156,162 ----
|| ((ve_flags & VE_ONEMORE) && wcol < MAXCOL)
#endif
;
! line = ml_get_buf(curbuf, pos->lnum, FALSE);
if (wcol >= MAXCOL)
{
***************
*** 332,340 ****
#endif
#ifdef FEAT_MBYTE
! /* prevent cursor from moving on the trail byte */
if (has_mbyte)
! mb_adjust_cursor();
#endif
if (col < wcol)
--- 332,340 ----
#endif
#ifdef FEAT_MBYTE
! /* prevent from moving onto a trail byte */
if (has_mbyte)
! mb_adjustpos(pos);
#endif
if (col < wcol)
*** ../vim-7.2.278/src/ops.c 2009-09-30 15:15:33.000000000 +0200
--- src/ops.c 2009-11-03 15:18:50.000000000 +0100
***************
*** 2020,2025 ****
--- 2020,2026 ----
bd.is_MAX = (curwin->w_curswant == MAXCOL);
for ( ; curwin->w_cursor.lnum <= oap->end.lnum; ++curwin->w_cursor.lnum)
{
+ curwin->w_cursor.col = 0; /* make sure cursor position is valid */
block_prep(oap, &bd, curwin->w_cursor.lnum, TRUE);
if (bd.textlen == 0 && (!virtual_op || bd.is_MAX))
continue; /* nothing to replace */
***************
*** 2035,2040 ****
--- 2036,2042 ----
{
pos_T vpos;
+ vpos.lnum = curwin->w_cursor.lnum;
getvpos(&vpos, oap->start_vcol);
bd.startspaces += vpos.coladd;
n = bd.startspaces;
***************
*** 2693,2703 ****
* initial coladd offset as part of "startspaces" */
if (bd.is_short)
{
! linenr_T lnum = curwin->w_cursor.lnum;
!
! curwin->w_cursor.lnum = linenr;
(void)getvpos(&vpos, oap->start_vcol);
- curwin->w_cursor.lnum = lnum;
}
else
vpos.coladd = 0;
--- 2695,2702 ----
* initial coladd offset as part of "startspaces" */
if (bd.is_short)
{
! vpos.lnum = linenr;
(void)getvpos(&vpos, oap->start_vcol);
}
else
vpos.coladd = 0;
*** ../vim-7.2.278/src/version.c 2009-11-03 16:29:48.000000000 +0100
--- src/version.c 2009-11-03 16:41:53.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 279,
/**/
--
BEDEVERE: How do you know so much about swallows?
ARTHUR: Well you have to know these things when you're a king, you know.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

251
7.2.280 Normal file
View file

@ -0,0 +1,251 @@
To: vim-dev@vim.org
Subject: Patch 7.2.280
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.2.280
Problem: A redraw in a custom statusline with %! may cause a crash.
(Yukihiro Nakadaira)
Solution: Make a copy of 'statusline'. Also fix typo in function name
redraw_custum_statusline. (party by Dominique Pelle)
Files: src/screen.c
*** ../vim-7.2.279/src/screen.c 2009-07-29 16:13:35.000000000 +0200
--- src/screen.c 2009-11-03 17:13:16.000000000 +0100
***************
*** 132,138 ****
static void draw_vsep_win __ARGS((win_T *wp, int row));
#endif
#ifdef FEAT_STL_OPT
! static void redraw_custum_statusline __ARGS((win_T *wp));
#endif
#ifdef FEAT_SEARCH_EXTRA
#define SEARCH_HL_PRIORITY 0
--- 132,138 ----
static void draw_vsep_win __ARGS((win_T *wp, int row));
#endif
#ifdef FEAT_STL_OPT
! static void redraw_custom_statusline __ARGS((win_T *wp));
#endif
#ifdef FEAT_SEARCH_EXTRA
#define SEARCH_HL_PRIORITY 0
***************
*** 5772,5778 ****
else if (*p_stl != NUL || *wp->w_p_stl != NUL)
{
/* redraw custom status line */
! redraw_custum_statusline(wp);
}
#endif
else
--- 5794,5800 ----
else if (*p_stl != NUL || *wp->w_p_stl != NUL)
{
/* redraw custom status line */
! redraw_custom_statusline(wp);
}
#endif
else
***************
*** 5897,5914 ****
* errors encountered.
*/
static void
! redraw_custum_statusline(wp)
win_T *wp;
{
! int save_called_emsg = called_emsg;
called_emsg = FALSE;
win_redr_custom(wp, FALSE);
if (called_emsg)
set_string_option_direct((char_u *)"statusline", -1,
(char_u *)"", OPT_FREE | (*wp->w_p_stl != NUL
? OPT_LOCAL : OPT_GLOBAL), SID_ERROR);
called_emsg |= save_called_emsg;
}
#endif
--- 5919,5949 ----
* errors encountered.
*/
static void
! redraw_custom_statusline(wp)
win_T *wp;
{
! static int entered = FALSE;
! int save_called_emsg = called_emsg;
!
! /* When called recursively return. This can happen when the statusline
! * contains an expression that triggers a redraw. */
! if (entered)
! return;
! entered = TRUE;
called_emsg = FALSE;
win_redr_custom(wp, FALSE);
if (called_emsg)
+ {
+ /* When there is an error disable the statusline, otherwise the
+ * display is messed up with errors and a redraw triggers the problem
+ * again and again. */
set_string_option_direct((char_u *)"statusline", -1,
(char_u *)"", OPT_FREE | (*wp->w_p_stl != NUL
? OPT_LOCAL : OPT_GLOBAL), SID_ERROR);
+ }
called_emsg |= save_called_emsg;
+ entered = FALSE;
}
#endif
***************
*** 6016,6021 ****
--- 6051,6057 ----
int len;
int fillchar;
char_u buf[MAXPATHL];
+ char_u *stl;
char_u *p;
struct stl_hlrec hltab[STL_MAX_ITEM];
struct stl_hlrec tabtab[STL_MAX_ITEM];
***************
*** 6025,6031 ****
if (wp == NULL)
{
/* Use 'tabline'. Always at the first line of the screen. */
! p = p_tal;
row = 0;
fillchar = ' ';
attr = hl_attr(HLF_TPF);
--- 6061,6067 ----
if (wp == NULL)
{
/* Use 'tabline'. Always at the first line of the screen. */
! stl = p_tal;
row = 0;
fillchar = ' ';
attr = hl_attr(HLF_TPF);
***************
*** 6042,6058 ****
if (draw_ruler)
{
! p = p_ruf;
/* advance past any leading group spec - implicit in ru_col */
! if (*p == '%')
{
! if (*++p == '-')
! p++;
! if (atoi((char *) p))
! while (VIM_ISDIGIT(*p))
! p++;
! if (*p++ != '(')
! p = p_ruf;
}
#ifdef FEAT_VERTSPLIT
col = ru_col - (Columns - W_WIDTH(wp));
--- 6078,6094 ----
if (draw_ruler)
{
! stl = p_ruf;
/* advance past any leading group spec - implicit in ru_col */
! if (*stl == '%')
{
! if (*++stl == '-')
! stl++;
! if (atoi((char *)stl))
! while (VIM_ISDIGIT(*stl))
! stl++;
! if (*stl++ != '(')
! stl = p_ruf;
}
#ifdef FEAT_VERTSPLIT
col = ru_col - (Columns - W_WIDTH(wp));
***************
*** 6081,6089 ****
else
{
if (*wp->w_p_stl != NUL)
! p = wp->w_p_stl;
else
! p = p_stl;
# ifdef FEAT_EVAL
use_sandbox = was_set_insecurely((char_u *)"statusline",
*wp->w_p_stl == NUL ? 0 : OPT_LOCAL);
--- 6117,6125 ----
else
{
if (*wp->w_p_stl != NUL)
! stl = wp->w_p_stl;
else
! stl = p_stl;
# ifdef FEAT_EVAL
use_sandbox = was_set_insecurely((char_u *)"statusline",
*wp->w_p_stl == NUL ? 0 : OPT_LOCAL);
***************
*** 6098,6107 ****
if (maxwidth <= 0)
return;
width = build_stl_str_hl(wp == NULL ? curwin : wp,
buf, sizeof(buf),
! p, use_sandbox,
fillchar, maxwidth, hltab, tabtab);
len = (int)STRLEN(buf);
while (width < maxwidth && len < (int)sizeof(buf) - 1)
--- 6134,6147 ----
if (maxwidth <= 0)
return;
+ /* Make a copy, because the statusline may include a function call that
+ * might change the option value and free the memory. */
+ stl = vim_strsave(stl);
width = build_stl_str_hl(wp == NULL ? curwin : wp,
buf, sizeof(buf),
! stl, use_sandbox,
fillchar, maxwidth, hltab, tabtab);
+ vim_free(stl);
len = (int)STRLEN(buf);
while (width < maxwidth && len < (int)sizeof(buf) - 1)
***************
*** 9465,9471 ****
#if defined(FEAT_STL_OPT) && defined(FEAT_WINDOWS)
if ((*p_stl != NUL || *curwin->w_p_stl != NUL) && curwin->w_status_height)
{
! redraw_custum_statusline(curwin);
}
else
#endif
--- 9505,9511 ----
#if defined(FEAT_STL_OPT) && defined(FEAT_WINDOWS)
if ((*p_stl != NUL || *curwin->w_p_stl != NUL) && curwin->w_status_height)
{
! redraw_custom_statusline(curwin);
}
else
#endif
*** ../vim-7.2.279/src/version.c 2009-11-03 16:44:04.000000000 +0100
--- src/version.c 2009-11-03 17:15:35.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 280,
/**/
--
Every exit is an entrance into something else.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

81
7.2.281 Normal file
View file

@ -0,0 +1,81 @@
To: vim-dev@vim.org
Subject: Patch 7.2.281
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.2.281
Problem: 'cursorcolumn' highlighting is wrong in diff mode.
Solution: Adjust the column computation. (Lech Lorens)
Files: src/screen.c
*** ../vim-7.2.280/src/screen.c 2009-11-03 17:20:18.000000000 +0100
--- src/screen.c 2009-11-03 17:13:16.000000000 +0100
***************
*** 3008,3018 ****
mb_ptr_adv(ptr);
}
! #ifdef FEAT_VIRTUALEDIT
! /* When 'virtualedit' is set the end of the line may be before the
! * start of the displayed part. */
! if (vcol < v && *ptr == NUL && virtual_active())
vcol = v;
#endif
/* Handle a character that's not completely on the screen: Put ptr at
--- 3008,3040 ----
mb_ptr_adv(ptr);
}
! #if defined(FEAT_SYN_HL) || defined(FEAT_VIRTUALEDIT) || defined(FEAT_VISUAL)
! /* When:
! * - 'cuc' is set, or
! * - 'virtualedit' is set, or
! * - the visual mode is active,
! * the end of the line may be before the start of the displayed part.
! */
! if (vcol < v && (
! # ifdef FEAT_SYN_HL
! wp->w_p_cuc
! # if defined(FEAT_VIRTUALEDIT) || defined(FEAT_VISUAL)
! ||
! # endif
! # endif
! # ifdef FEAT_VIRTUALEDIT
! virtual_active()
! # ifdef FEAT_VISUAL
! ||
! # endif
! # endif
! # ifdef FEAT_VISUAL
! (VIsual_active && wp->w_buffer == curwin->w_buffer)
! # endif
! ))
! {
vcol = v;
+ }
#endif
/* Handle a character that's not completely on the screen: Put ptr at
*** ../vim-7.2.280/src/version.c 2009-11-03 17:20:18.000000000 +0100
--- src/version.c 2009-11-03 17:34:54.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 281,
/**/
--
Every person is responsible for the choices he makes.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

47
7.2.282 Normal file
View file

@ -0,0 +1,47 @@
To: vim-dev@vim.org
Subject: Patch 7.2.282
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.2.282
Problem: A fold can't be closed.
Solution: Initialize fd_small to MAYBE. (Lech Lorens)
Files: src/fold.c
*** ../vim-7.2.281/src/fold.c 2009-11-03 16:29:48.000000000 +0100
--- src/fold.c 2009-11-03 17:41:50.000000000 +0100
***************
*** 2851,2856 ****
--- 2851,2858 ----
fp[1].fd_top = bot + 1;
fp[1].fd_len = fp->fd_len - (fp[1].fd_top - fp->fd_top);
fp[1].fd_flags = fp->fd_flags;
+ fp[1].fd_small = MAYBE;
+ fp->fd_small = MAYBE;
/* Move nested folds below bot to new fold. There can't be
* any between top and bot, they have been removed by the caller. */
*** ../vim-7.2.281/src/version.c 2009-11-03 17:36:09.000000000 +0100
--- src/version.c 2009-11-03 17:59:12.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 282,
/**/
--
You can be stopped by the police for biking over 65 miles per hour.
You are not allowed to walk across a street on your hands.
[real standing laws in Connecticut, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

73
7.2.283 Normal file
View file

@ -0,0 +1,73 @@
To: vim-dev@vim.org
Subject: Patch 7.2.283
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.2.283
Problem: Changing font while the window is maximized doesn't keep the
window maximized.
Solution: Recompute number of lines and columns after changing font. (James
Vega)
Files: src/gui_gtk_x11.c
*** ../vim-7.2.282/src/gui_gtk_x11.c 2009-09-23 18:14:13.000000000 +0200
--- src/gui_gtk_x11.c 2009-11-03 17:56:27.000000000 +0100
***************
*** 5267,5274 ****
# endif
#endif /* !HAVE_GTK2 */
! /* Preserve the logical dimensions of the screen. */
! update_window_manager_hints(0, 0);
return OK;
}
--- 5267,5290 ----
# endif
#endif /* !HAVE_GTK2 */
! #ifdef HAVE_GTK2
! if (gui_mch_maximized())
! {
! int w, h;
!
! /* Update lines and columns in accordance with the new font, keep the
! * window maximized. */
! gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
! w -= get_menu_tool_width();
! h -= get_menu_tool_height();
! gui_resize_shell(w, h);
! }
! else
! #endif
! {
! /* Preserve the logical dimensions of the screen. */
! update_window_manager_hints(0, 0);
! }
return OK;
}
*** ../vim-7.2.282/src/version.c 2009-11-03 18:04:26.000000000 +0100
--- src/version.c 2009-11-03 18:11:53.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 283,
/**/
--
If an elephant is left tied to a parking meter, the parking fee has to be paid
just as it would for a vehicle.
[real standing law in Florida, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.2.284 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.2.284
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.2.284
Problem: When editing the same buffer in two windows, one with folding,
display may be wrong after changes.
Solution: Call set_topline() to take care of side effects. (Lech Lorens)
Files: src/misc1.c
*** ../vim-7.2.283/src/misc1.c 2009-07-22 11:03:38.000000000 +0200
--- src/misc1.c 2009-11-03 18:38:15.000000000 +0100
***************
*** 2886,2891 ****
--- 2886,2898 ----
}
#endif
}
+
+ #ifdef FEAT_FOLDING
+ /* Take care of side effects for setting w_topline when folds have
+ * changed. Esp. when the buffer was changed in another window. */
+ if (hasAnyFolding(wp))
+ set_topline(wp, wp->w_topline);
+ #endif
}
}
*** ../vim-7.2.283/src/version.c 2009-11-03 18:13:36.000000000 +0100
--- src/version.c 2009-11-03 18:44:12.000000000 +0100
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 284,
/**/
--
Men may not be seen publicly in any kind of strapless gown.
[real standing law in Florida, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

56
7.2.285 Normal file
View file

@ -0,0 +1,56 @@
To: vim-dev@vim.org
Subject: Patch 7.2.285
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.2.285 (after 7.2.169)
Problem: CTRL-U in Insert mode also deletes indent. (Andrey Voropaev)
Solution: Fix mistake made in patch 7.2.169.
Files: src/edit.c
*** ../vim-7.2.284/src/edit.c 2009-07-09 18:15:19.000000000 +0200
--- src/edit.c 2009-11-05 20:25:15.000000000 +0100
***************
*** 8519,8525 ****
{
save_col = curwin->w_cursor.col;
beginline(BL_WHITE);
! if (curwin->w_cursor.col < (colnr_T)temp)
mincol = curwin->w_cursor.col;
curwin->w_cursor.col = save_col;
}
--- 8519,8525 ----
{
save_col = curwin->w_cursor.col;
beginline(BL_WHITE);
! if (curwin->w_cursor.col < save_col)
mincol = curwin->w_cursor.col;
curwin->w_cursor.col = save_col;
}
*** ../vim-7.2.284/src/version.c 2009-11-03 18:46:53.000000000 +0100
--- src/version.c 2009-11-11 13:21:25.000000000 +0100
***************
*** 678,679 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 285,
/**/
--
(letter from Mark to Mike, about the film's probable certificate)
I would like to get back to the Censor and agree to lose the shits, take
the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in
your general direction', 'castanets of your testicles' and 'oral sex'
and ask him for an 'A' rating on that basis.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

227
7.2.286 Normal file
View file

@ -0,0 +1,227 @@
To: vim-dev@vim.org
Subject: Patch 7.2.286
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.2.286 (after 7.2.269)
Problem: The "--startuptime=<file>" argument is not consistent with other
arguments.
Solution: Use "--startuptime <file>". Added the +startuptime feature.
Files: runtime/doc/eval.txt, runtime/doc/starting.txt,
runtime/doc/various.txt, src/eval.c, src/main.c, src/version.c
*** ../vim-7.2.285/runtime/doc/eval.txt 2009-04-22 12:53:31.000000000 +0200
--- runtime/doc/eval.txt 2009-11-11 13:01:58.000000000 +0100
***************
*** 5869,5874 ****
--- 5881,5887 ----
signs Compiled with |:sign| support.
smartindent Compiled with 'smartindent' support.
sniff Compiled with SNiFF interface support.
+ startuptime Compiled with |--startuptime| support.
statusline Compiled with support for 'statusline', 'rulerformat'
and special formats of 'titlestring' and 'iconstring'.
sun_workshop Compiled with support for Sun |workshop|.
*** ../vim-7.2.285/runtime/doc/starting.txt 2009-11-03 12:10:39.000000000 +0100
--- runtime/doc/starting.txt 2009-11-11 13:20:56.000000000 +0100
***************
*** 144,155 ****
-u NORC no yes
--noplugin yes no
! --startuptime={fname} *--startuptime*
During startup write timing messages to the file {fname}.
This can be used to find out where time is spent while loading
! your .vimrc and plugins.
When {fname} already exists new messages are appended.
! {only when compiled with this feature}
*--literal*
--literal Take file names literally, don't expand wildcards. Not needed
--- 144,156 ----
-u NORC no yes
--noplugin yes no
! --startuptime {fname} *--startuptime*
During startup write timing messages to the file {fname}.
This can be used to find out where time is spent while loading
! your .vimrc, plugins and opening the first file.
When {fname} already exists new messages are appended.
! (Only available when compiled with the |+startuptime|
! feature).
*--literal*
--literal Take file names literally, don't expand wildcards. Not needed
*** ../vim-7.2.285/runtime/doc/various.txt 2009-07-09 15:55:34.000000000 +0200
--- runtime/doc/various.txt 2009-11-11 13:03:52.000000000 +0100
***************
*** 374,379 ****
--- 374,380 ----
B *+signs* |:sign|
N *+smartindent* |'smartindent'|
m *+sniff* SniFF interface |sniff|
+ N *+startuptime* |--startuptime| argument
N *+statusline* Options 'statusline', 'rulerformat' and special
formats of 'titlestring' and 'iconstring'
m *+sun_workshop* |workshop|
*** ../vim-7.2.285/src/eval.c 2009-11-03 14:26:29.000000000 +0100
--- src/eval.c 2009-11-11 12:59:53.000000000 +0100
***************
*** 11736,11741 ****
--- 11736,11744 ----
#ifdef FEAT_SNIFF
"sniff",
#endif
+ #ifdef STARTUPTIME
+ "startuptime",
+ #endif
#ifdef FEAT_STL_OPT
"statusline",
#endif
*** ../vim-7.2.285/src/main.c 2009-11-03 12:10:39.000000000 +0100
--- src/main.c 2009-11-08 12:57:46.000000000 +0100
***************
*** 204,212 ****
#ifdef STARTUPTIME
for (i = 1; i < argc; ++i)
{
! if (STRNICMP(argv[i], "--startuptime=", 14) == 0)
{
! time_fd = mch_fopen(argv[i] + 14, "a");
TIME_MSG("--- VIM STARTING ---");
break;
}
--- 204,212 ----
#ifdef STARTUPTIME
for (i = 1; i < argc; ++i)
{
! if (STRICMP(argv[i], "--startuptime") == 0 && i + 1 < argc)
{
! time_fd = mch_fopen(argv[i + 1], "a");
TIME_MSG("--- VIM STARTING ---");
break;
}
***************
*** 1726,1731 ****
--- 1726,1736 ----
want_argument = TRUE;
argv_idx += 3;
}
+ else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0)
+ {
+ want_argument = TRUE;
+ argv_idx += 11;
+ }
#ifdef FEAT_CLIENTSERVER
else if (STRNICMP(argv[0] + argv_idx, "serverlist", 10) == 0)
; /* already processed -- no arg */
***************
*** 1761,1770 ****
/* already processed, skip */
}
#endif
- else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0)
- {
- /* already processed, skip */
- }
else
{
if (argv[0][argv_idx])
--- 1766,1771 ----
***************
*** 2061,2067 ****
mainerr(ME_GARBAGE, (char_u *)argv[0]);
--argc;
! if (argc < 1 && c != 'S')
mainerr_arg_missing((char_u *)argv[0]);
++argv;
argv_idx = -1;
--- 2062,2068 ----
mainerr(ME_GARBAGE, (char_u *)argv[0]);
--argc;
! if (argc < 1 && c != 'S') /* -S has an optional argument */
mainerr_arg_missing((char_u *)argv[0]);
++argv;
argv_idx = -1;
***************
*** 2102,2112 ****
(char_u *)argv[0];
break;
! case '-': /* "--cmd {command}" execute command */
! if (parmp->n_pre_commands >= MAX_ARG_CMDS)
! mainerr(ME_EXTRA_CMD, NULL);
! parmp->pre_commands[parmp->n_pre_commands++] =
(char_u *)argv[0];
break;
/* case 'd': -d {device} is handled in mch_check_win() for the
--- 2103,2118 ----
(char_u *)argv[0];
break;
! case '-':
! if (argv[-1][2] == 'c')
! {
! /* "--cmd {command}" execute command */
! if (parmp->n_pre_commands >= MAX_ARG_CMDS)
! mainerr(ME_EXTRA_CMD, NULL);
! parmp->pre_commands[parmp->n_pre_commands++] =
(char_u *)argv[0];
+ }
+ /* "--startuptime <file>" already handled */
break;
/* case 'd': -d {device} is handled in mch_check_win() for the
***************
*** 3144,3149 ****
--- 3150,3158 ----
main_msg(_("--serverlist\t\tList available Vim server names and exit"));
main_msg(_("--servername <name>\tSend to/become the Vim server <name>"));
#endif
+ #ifdef STARTUPTIME
+ main_msg(_("--startuptime=<file>\tWrite startup timing messages to <file>"));
+ #endif
#ifdef FEAT_VIMINFO
main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
#endif
*** ../vim-7.2.285/src/version.c 2009-11-11 13:22:09.000000000 +0100
--- src/version.c 2009-11-11 14:17:28.000000000 +0100
***************
*** 494,499 ****
--- 494,504 ----
#else
"-sniff",
#endif
+ #ifdef STARTUPTIME
+ "+startuptime",
+ #else
+ "-startuptime",
+ #endif
#ifdef FEAT_STL_OPT
"+statusline",
#else
*** ../vim-7.2.285/src/version.c 2009-11-11 13:22:09.000000000 +0100
--- src/version.c 2009-11-11 14:17:28.000000000 +0100
***************
*** 678,679 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 286,
/**/
--
A fool must search for a greater fool to find admiration.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.2.287 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.2.287
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.2.287
Problem: Warning from gcc 3.4 about uninitialized variable.
Solution: Move assignment outside of #ifdef.
Files: src/if_perl.xs
*** ../vim-7.2.286/src/if_perl.xs 2009-07-14 16:05:14.000000000 +0200
--- src/if_perl.xs 2009-11-11 12:29:32.000000000 +0100
***************
*** 720,727 ****
#ifdef HAVE_SANDBOX
if (sandbox)
{
# ifndef MAKE_TEST /* avoid a warning for unreachable code */
! if ((safe = perl_get_sv( "VIM::safe", FALSE )) == NULL || !SvTRUE(safe))
EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
else
# endif
--- 720,728 ----
#ifdef HAVE_SANDBOX
if (sandbox)
{
+ safe = perl_get_sv( "VIM::safe", FALSE );
# ifndef MAKE_TEST /* avoid a warning for unreachable code */
! if (safe == NULL || !SvTRUE(safe))
EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
else
# endif
*** ../vim-7.2.286/src/version.c 2009-11-11 14:21:48.000000000 +0100
--- src/version.c 2009-11-11 14:44:49.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 287,
/**/
--
The most powerful force in the universe is gossip.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.2.288 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.2.288
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.2.288
Problem: Python 2.6 pyconfig.h redefines macros.
Solution: Undefine the macros before including pyconfig.h.
Files: src/if_python.c
*** ../vim-7.2.287/src/if_python.c 2009-11-03 11:43:05.000000000 +0100
--- src/if_python.c 2009-11-11 12:33:37.000000000 +0100
***************
*** 37,42 ****
--- 37,48 ----
#ifdef HAVE_STDARG_H
# undef HAVE_STDARG_H /* Python's config.h defines it as well. */
#endif
+ #ifdef _POSIX_C_SOURCE
+ # undef _POSIX_C_SOURCE /* pyconfig.h defines it as well. */
+ #endif
+ #ifdef _XOPEN_SOURCE
+ # undef _XOPEN_SOURCE /* pyconfig.h defines it as well. */
+ #endif
#define PY_SSIZE_T_CLEAN
*** ../vim-7.2.287/src/version.c 2009-11-11 14:45:36.000000000 +0100
--- src/version.c 2009-11-11 15:05:51.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 288,
/**/
--
I am always surprised in the Linux world how quickly solutions can be
obtained. (Imagine sending an email to Bill Gates, asking why Windows
crashed, and how to fix it... and then getting an answer that fixed the
problem... <0>_<0> !) -- Mark Langdon
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

120
7.2.289 Normal file
View file

@ -0,0 +1,120 @@
To: vim-dev@vim.org
Subject: Patch 7.2.289
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.2.289
Problem: Checking wrong struct member.
Solution: Change tb_buf to tb_noremap. (Dominique Pelle)
Files: src/getchar.c
*** ../vim-7.2.288/src/getchar.c 2009-09-30 15:15:33.000000000 +0200
--- src/getchar.c 2009-11-11 12:50:58.000000000 +0100
***************
*** 22,28 ****
* These buffers are used for storing:
* - stuffed characters: A command that is translated into another command.
* - redo characters: will redo the last change.
! * - recorded chracters: for the "q" command.
*
* The bytes are stored like in the typeahead buffer:
* - K_SPECIAL introduces a special key (two more bytes follow). A literal
--- 22,28 ----
* These buffers are used for storing:
* - stuffed characters: A command that is translated into another command.
* - redo characters: will redo the last change.
! * - recorded characters: for the "q" command.
*
* The bytes are stored like in the typeahead buffer:
* - K_SPECIAL introduces a special key (two more bytes follow). A literal
***************
*** 1283,1289 ****
EMSG2(_(e_intern2), "Free typebuf 1");
else
vim_free(typebuf.tb_buf);
! if (typebuf.tb_buf == noremapbuf_init)
EMSG2(_(e_intern2), "Free typebuf 2");
else
vim_free(typebuf.tb_noremap);
--- 1283,1289 ----
EMSG2(_(e_intern2), "Free typebuf 1");
else
vim_free(typebuf.tb_buf);
! if (typebuf.tb_noremap == noremapbuf_init)
EMSG2(_(e_intern2), "Free typebuf 2");
else
vim_free(typebuf.tb_noremap);
***************
*** 1516,1522 ****
* wanted.
* This translates escaped K_SPECIAL and CSI bytes to a K_SPECIAL or CSI byte.
* Collects the bytes of a multibyte character into the whole character.
! * Returns the modifers in the global "mod_mask".
*/
int
vgetc()
--- 1516,1522 ----
* wanted.
* This translates escaped K_SPECIAL and CSI bytes to a K_SPECIAL or CSI byte.
* Collects the bytes of a multibyte character into the whole character.
! * Returns the modifiers in the global "mod_mask".
*/
int
vgetc()
***************
*** 3320,3326 ****
retval = 1;
goto theend;
}
! /* An abbrevation cannot contain white space. */
for (n = 0; n < len; ++n)
if (vim_iswhite(keys[n]))
{
--- 3320,3326 ----
retval = 1;
goto theend;
}
! /* An abbreviation cannot contain white space. */
for (n = 0; n < len; ++n)
if (vim_iswhite(keys[n]))
{
***************
*** 4272,4278 ****
/*
* Check for word before the cursor: If it ends in a keyword char all
! * chars before it must be al keyword chars or non-keyword chars, but not
* white space. If it ends in a non-keyword char we accept any characters
* before it except white space.
*/
--- 4272,4278 ----
/*
* Check for word before the cursor: If it ends in a keyword char all
! * chars before it must be keyword chars or non-keyword chars, but not
* white space. If it ends in a non-keyword char we accept any characters
* before it except white space.
*/
*** ../vim-7.2.288/src/version.c 2009-11-11 15:06:59.000000000 +0100
--- src/version.c 2009-11-11 16:19:12.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 289,
/**/
--
A M00se once bit my sister ...
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

157
7.2.290 Normal file
View file

@ -0,0 +1,157 @@
To: vim-dev@vim.org
Subject: Patch 7.2.290
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.2.290
Problem: Not freeing memory from ":lmap", ":xmap" and ":menutranslate".
Solution: Free the memory when exiting. (Dominique Pelle)
Files: src/misc2.c
*** ../vim-7.2.289/src/misc2.c 2009-11-03 16:44:04.000000000 +0100
--- src/misc2.c 2009-11-11 16:49:13.000000000 +0100
***************
*** 1005,1013 ****
--- 1005,1018 ----
# ifdef FEAT_MENU
/* Clear menus. */
do_cmdline_cmd((char_u *)"aunmenu *");
+ # ifdef FEAT_MULTI_LANG
+ do_cmdline_cmd((char_u *)"menutranslate clear");
+ # endif
# endif
/* Clear mappings, abbreviations, breakpoints. */
+ do_cmdline_cmd((char_u *)"lmapclear");
+ do_cmdline_cmd((char_u *)"xmapclear");
do_cmdline_cmd((char_u *)"mapclear");
do_cmdline_cmd((char_u *)"mapclear!");
do_cmdline_cmd((char_u *)"abclear");
***************
*** 1282,1288 ****
/*
* Escape "string" for use as a shell argument with system().
! * This uses single quotes, except when we know we need to use double qoutes
* (MS-DOS and MS-Windows without 'shellslash' set).
* Escape a newline, depending on the 'shell' option.
* When "do_special" is TRUE also replace "!", "%", "#" and things starting
--- 1287,1293 ----
/*
* Escape "string" for use as a shell argument with system().
! * This uses single quotes, except when we know we need to use double quotes
* (MS-DOS and MS-Windows without 'shellslash' set).
* Escape a newline, depending on the 'shell' option.
* When "do_special" is TRUE also replace "!", "%", "#" and things starting
***************
*** 1537,1543 ****
#if defined(FEAT_VISUALEXTRA) || defined(PROTO)
/*
* Copy a character a number of times.
! * Does not work for multi-byte charactes!
*/
void
copy_chars(ptr, count, c)
--- 1542,1548 ----
#if defined(FEAT_VISUALEXTRA) || defined(PROTO)
/*
* Copy a character a number of times.
! * Does not work for multi-byte characters!
*/
void
copy_chars(ptr, count, c)
***************
*** 4260,4266 ****
* or '**76' is transposed to '**N'( 'N' is ASCII value 76).
* For EBCDIC you get different character values.
* If no restrict is given after '**' the default is used.
! * Due to this technic the path looks awful if you print it as a
* string.
*/
len = 0;
--- 4265,4271 ----
* or '**76' is transposed to '**N'( 'N' is ASCII value 76).
* For EBCDIC you get different character values.
* If no restrict is given after '**' the default is used.
! * Due to this technique the path looks awful if you print it as a
* string.
*/
len = 0;
***************
*** 4649,4655 ****
&& !mch_isdir(stackp->ffs_filearray[i]))
continue; /* not a directory */
! /* prepare the filename to be checked for existance
* below */
STRCPY(file_path, stackp->ffs_filearray[i]);
add_pathsep(file_path);
--- 4654,4660 ----
&& !mch_isdir(stackp->ffs_filearray[i]))
continue; /* not a directory */
! /* prepare the filename to be checked for existence
* below */
STRCPY(file_path, stackp->ffs_filearray[i]);
add_pathsep(file_path);
***************
*** 5438,5444 ****
#if defined(MSWIN) || defined(MSDOS) || defined(OS2)
/* handle "\tmp" as absolute path */
|| vim_ispathsep(ff_file_to_find[0])
! /* handle "c:name" as absulute path */
|| (ff_file_to_find[0] != NUL && ff_file_to_find[1] == ':')
#endif
#ifdef AMIGA
--- 5443,5449 ----
#if defined(MSWIN) || defined(MSDOS) || defined(OS2)
/* handle "\tmp" as absolute path */
|| vim_ispathsep(ff_file_to_find[0])
! /* handle "c:name" as absolute path */
|| (ff_file_to_find[0] != NUL && ff_file_to_find[1] == ':')
#endif
#ifdef AMIGA
***************
*** 5681,5687 ****
p2 = (char_u *)base + (j + gap) * elm_size;
if ((*cmp)((void *)p1, (void *)p2) <= 0)
break;
! /* Exchange the elemets. */
mch_memmove(buf, p1, elm_size);
mch_memmove(p1, p2, elm_size);
mch_memmove(p2, buf, elm_size);
--- 5686,5692 ----
p2 = (char_u *)base + (j + gap) * elm_size;
if ((*cmp)((void *)p1, (void *)p2) <= 0)
break;
! /* Exchange the elements. */
mch_memmove(buf, p1, elm_size);
mch_memmove(p1, p2, elm_size);
mch_memmove(p2, buf, elm_size);
*** ../vim-7.2.289/src/version.c 2009-11-11 16:23:37.000000000 +0100
--- src/version.c 2009-11-11 16:54:53.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 290,
/**/
--
ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
King of all Britons, defeator of the Saxons, sovereign of all England!
[Pause]
SOLDIER: Get away!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

53
7.2.291 Normal file
View file

@ -0,0 +1,53 @@
To: vim-dev@vim.org
Subject: Patch 7.2.291
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.2.291
Problem: Reading uninitialised memory in arabic mode.
Solution: Use utfc_ptr2char_len() rather than utfc_ptr2char(). (Dominique
Pelle)
Files: src/screen.c
*** ../vim-7.2.290/src/screen.c 2009-11-03 17:36:09.000000000 +0100
--- src/screen.c 2009-11-11 17:04:53.000000000 +0100
***************
*** 6413,6419 ****
}
else
{
! nc = utfc_ptr2char(ptr + mbyte_blen, pcc);
nc1 = pcc[0];
}
pc = prev_c;
--- 6413,6420 ----
}
else
{
! nc = utfc_ptr2char_len(ptr + mbyte_blen, pcc,
! (int)((text + len) - ptr - mbyte_blen));
nc1 = pcc[0];
}
pc = prev_c;
*** ../vim-7.2.290/src/version.c 2009-11-11 16:56:13.000000000 +0100
--- src/version.c 2009-11-11 17:06:48.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 291,
/**/
--
The problem with political jokes is that they get elected.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.2.292 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.2.292
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.2.292
Problem: Block right-shift doesn't work properly with multi-byte encoding
and 'list' set.
Solution: Add the missing "else". (Lech Lorens)
Files: src/ops.c
*** ../vim-7.2.291/src/ops.c 2009-11-03 16:44:04.000000000 +0100
--- src/ops.c 2009-11-11 17:15:04.000000000 +0100
***************
*** 422,429 ****
#ifdef FEAT_MBYTE
if (has_mbyte)
bd.textstart += (*mb_ptr2len)(bd.textstart);
#endif
! ++bd.textstart;
}
for ( ; vim_iswhite(*bd.textstart); )
{
--- 422,430 ----
#ifdef FEAT_MBYTE
if (has_mbyte)
bd.textstart += (*mb_ptr2len)(bd.textstart);
+ else
#endif
! ++bd.textstart;
}
for ( ; vim_iswhite(*bd.textstart); )
{
*** ../vim-7.2.291/src/version.c 2009-11-11 17:07:25.000000000 +0100
--- src/version.c 2009-11-11 17:21:31.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 292,
/**/
--
Computers make very fast, very accurate, mistakes.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

66
7.2.293 Normal file
View file

@ -0,0 +1,66 @@
To: vim-dev@vim.org
Subject: Patch 7.2.293
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.2.293
Problem: When setting 'comments' option it may be used in a wrong way.
Solution: Don't increment after skipping over digets. (Yukihiro Nakadaira)
Files: src/misc1.c
*** ../vim-7.2.292/src/misc1.c 2009-11-03 18:46:53.000000000 +0100
--- src/misc1.c 2009-11-11 17:27:38.000000000 +0100
***************
*** 1026,1037 ****
int c = 0;
int off = 0;
! for (p = lead_flags; *p && *p != ':'; ++p)
{
if (*p == COM_RIGHT || *p == COM_LEFT)
! c = *p;
else if (VIM_ISDIGIT(*p) || *p == '-')
off = getdigits(&p);
}
if (c == COM_RIGHT) /* right adjusted leader */
{
--- 1026,1039 ----
int c = 0;
int off = 0;
! for (p = lead_flags; *p != NUL && *p != ':'; )
{
if (*p == COM_RIGHT || *p == COM_LEFT)
! c = *p++;
else if (VIM_ISDIGIT(*p) || *p == '-')
off = getdigits(&p);
+ else
+ ++p;
}
if (c == COM_RIGHT) /* right adjusted leader */
{
*** ../vim-7.2.292/src/version.c 2009-11-11 17:22:30.000000000 +0100
--- src/version.c 2009-11-11 17:29:24.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 293,
/**/
--
SOLDIER: What? Ridden on a horse?
ARTHUR: Yes!
SOLDIER: You're using coconuts!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

285
7.2.294 Normal file
View file

@ -0,0 +1,285 @@
To: vim-dev@vim.org
Subject: Patch 7.2.294
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.2.294
Problem: When using TEMPDIRS dir name could get too long.
Solution: Overwrite tail instead of appending each time. Use mkdtemp() when
available. (James Vega)
Files: src/auto/configure, src/config.h.in, src/configure.in, src/fileio.c
*** ../vim-7.2.293/src/auto/configure 2009-09-11 13:44:33.000000000 +0200
--- src/auto/configure 2009-11-17 12:03:15.000000000 +0100
***************
*** 14019,14027 ****
for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
! memset nanosleep opendir putenv qsort readlink select setenv \
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
sigvec strcasecmp strerror strftime stricmp strncasecmp \
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
--- 14019,14028 ----
+
for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
! memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
sigvec strcasecmp strerror strftime stricmp strncasecmp \
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
*** ../vim-7.2.293/src/config.h.in 2009-05-21 23:25:38.000000000 +0200
--- src/config.h.in 2009-11-11 17:40:21.000000000 +0100
***************
*** 157,162 ****
--- 157,163 ----
#undef HAVE_LSTAT
#undef HAVE_MEMCMP
#undef HAVE_MEMSET
+ #undef HAVE_MKDTEMP
#undef HAVE_NANOSLEEP
#undef HAVE_OPENDIR
#undef HAVE_FLOAT_FUNCS
*** ../vim-7.2.293/src/configure.in 2009-09-11 13:44:33.000000000 +0200
--- src/configure.in 2009-11-11 17:40:21.000000000 +0100
***************
*** 2635,2641 ****
dnl Check for functions in one big call, to reduce the size of configure
AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
! memset nanosleep opendir putenv qsort readlink select setenv \
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
sigvec strcasecmp strerror strftime stricmp strncasecmp \
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
--- 2635,2641 ----
dnl Check for functions in one big call, to reduce the size of configure
AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
! memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
sigvec strcasecmp strerror strftime stricmp strncasecmp \
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
*** ../vim-7.2.293/src/fileio.c 2009-09-11 17:24:01.000000000 +0200
--- src/fileio.c 2009-11-11 18:01:22.000000000 +0100
***************
*** 146,151 ****
--- 146,152 ----
# endif
#endif
static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
+ static void vim_settempdir __ARGS((char_u *tempdir));
#ifdef FEAT_AUTOCMD
static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name");
#endif
***************
*** 6987,6992 ****
--- 6988,7020 ----
#endif
/*
+ * Directory "tempdir" was created. Expand this name to a full path and put
+ * it in "vim_tempdir". This avoids that using ":cd" would confuse us.
+ * "tempdir" must be no longer than MAXPATHL.
+ */
+ static void
+ vim_settempdir(tempdir)
+ char_u *tempdir;
+ {
+ char_u *buf;
+
+ buf = alloc((unsigned)MAXPATHL + 2);
+ if (buf != NULL)
+ {
+ if (vim_FullName(tempdir, buf, MAXPATHL, FALSE) == FAIL)
+ STRCPY(buf, tempdir);
+ # ifdef __EMX__
+ if (vim_strchr(buf, '/') != NULL)
+ STRCAT(buf, "/");
+ else
+ # endif
+ add_pathsep(buf);
+ vim_tempdir = vim_strsave(buf);
+ vim_free(buf);
+ }
+ }
+
+ /*
* vim_tempname(): Return a unique name that can be used for a temp file.
*
* The temp file is NOT created.
***************
*** 7007,7014 ****
#ifdef TEMPDIRNAMES
static char *(tempdirs[]) = {TEMPDIRNAMES};
int i;
- long nr;
- long off;
# ifndef EEXIST
struct stat st;
# endif
--- 7035,7040 ----
***************
*** 7027,7032 ****
--- 7053,7064 ----
*/
for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i)
{
+ size_t itmplen;
+ # ifndef HAVE_MKDTEMP
+ long nr;
+ long off;
+ # endif
+
/* expand $TMP, leave room for "/v1100000/999999999" */
expand_env((char_u *)tempdirs[i], itmp, TEMPNAMELEN - 20);
if (mch_isdir(itmp)) /* directory exists */
***************
*** 7040,7046 ****
--- 7072,7085 ----
else
# endif
add_pathsep(itmp);
+ itmplen = STRLEN(itmp);
+ # ifdef HAVE_MKDTEMP
+ /* Leave room for filename */
+ STRCAT(itmp, "vXXXXXX");
+ if (mkdtemp((char *)itmp) != NULL)
+ vim_settempdir(itmp);
+ # else
/* Get an arbitrary number of up to 6 digits. When it's
* unlikely that it already exists it will be faster,
* otherwise it doesn't matter. The use of mkdir() avoids any
***************
*** 7052,7110 ****
for (off = 0; off < 10000L; ++off)
{
int r;
! #if defined(UNIX) || defined(VMS)
mode_t umask_save;
! #endif
! sprintf((char *)itmp + STRLEN(itmp), "v%ld", nr + off);
! # ifndef EEXIST
/* If mkdir() does not set errno to EEXIST, check for
* existing file here. There is a race condition then,
* although it's fail-safe. */
if (mch_stat((char *)itmp, &st) >= 0)
continue;
! # endif
! #if defined(UNIX) || defined(VMS)
/* Make sure the umask doesn't remove the executable bit.
* "repl" has been reported to use "177". */
umask_save = umask(077);
! #endif
r = vim_mkdir(itmp, 0700);
! #if defined(UNIX) || defined(VMS)
(void)umask(umask_save);
! #endif
if (r == 0)
{
! char_u *buf;
!
! /* Directory was created, use this name.
! * Expand to full path; When using the current
! * directory a ":cd" would confuse us. */
! buf = alloc((unsigned)MAXPATHL + 1);
! if (buf != NULL)
! {
! if (vim_FullName(itmp, buf, MAXPATHL, FALSE)
! == FAIL)
! STRCPY(buf, itmp);
! # ifdef __EMX__
! if (vim_strchr(buf, '/') != NULL)
! STRCAT(buf, "/");
! else
! # endif
! add_pathsep(buf);
! vim_tempdir = vim_strsave(buf);
! vim_free(buf);
! }
break;
}
! # ifdef EEXIST
/* If the mkdir() didn't fail because the file/dir exists,
* we probably can't create any dir here, try another
* place. */
if (errno != EEXIST)
! # endif
break;
}
if (vim_tempdir != NULL)
break;
}
--- 7091,7131 ----
for (off = 0; off < 10000L; ++off)
{
int r;
! # if defined(UNIX) || defined(VMS)
mode_t umask_save;
! # endif
! sprintf((char *)itmp + itmplen, "v%ld", nr + off);
! # ifndef EEXIST
/* If mkdir() does not set errno to EEXIST, check for
* existing file here. There is a race condition then,
* although it's fail-safe. */
if (mch_stat((char *)itmp, &st) >= 0)
continue;
! # endif
! # if defined(UNIX) || defined(VMS)
/* Make sure the umask doesn't remove the executable bit.
* "repl" has been reported to use "177". */
umask_save = umask(077);
! # endif
r = vim_mkdir(itmp, 0700);
! # if defined(UNIX) || defined(VMS)
(void)umask(umask_save);
! # endif
if (r == 0)
{
! vim_settempdir(itmp);
break;
}
! # ifdef EEXIST
/* If the mkdir() didn't fail because the file/dir exists,
* we probably can't create any dir here, try another
* place. */
if (errno != EEXIST)
! # endif
break;
}
+ # endif /* HAVE_MKDTEMP */
if (vim_tempdir != NULL)
break;
}
*** ../vim-7.2.293/src/version.c 2009-11-11 17:30:05.000000000 +0100
--- src/version.c 2009-11-17 11:54:49.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 294,
/**/
--
ARTHUR: Now stand aside worthy adversary.
BLACK KNIGHT: (Glancing at his shoulder) 'Tis but a scratch.
ARTHUR: A scratch? Your arm's off.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

142
7.2.295 Normal file
View file

@ -0,0 +1,142 @@
To: vim-dev@vim.org
Subject: Patch 7.2.295
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.2.295
Problem: When using map() on a List the index is not known.
Solution: Set v:key to the index. (Hari Krishna Dara)
Files: runtime/doc/eval.txt, src/eval.c
*** ../vim-7.2.294/runtime/doc/eval.txt 2009-11-11 14:21:48.000000000 +0100
--- runtime/doc/eval.txt 2009-11-11 18:22:54.000000000 +0100
***************
*** 3802,3808 ****
Replace each item in {expr} with the result of evaluating
{string}.
Inside {string} |v:val| has the value of the current item.
! For a |Dictionary| |v:key| has the key of the current item.
Example: >
:call map(mylist, '"> " . v:val . " <"')
< This puts "> " before and " <" after each item in "mylist".
--- 3812,3819 ----
Replace each item in {expr} with the result of evaluating
{string}.
Inside {string} |v:val| has the value of the current item.
! For a |Dictionary| |v:key| has the key of the current item
! and for a |List| |v:key| has the index of the current item.
Example: >
:call map(mylist, '"> " . v:val . " <"')
< This puts "> " before and " <" after each item in "mylist".
*** ../vim-7.2.294/src/eval.c 2009-11-11 14:21:48.000000000 +0100
--- src/eval.c 2009-11-11 18:22:49.000000000 +0100
***************
*** 9928,9933 ****
--- 9928,9934 ----
int todo;
char_u *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()";
int save_did_emsg;
+ int index = 0;
if (argvars[0].v_type == VAR_LIST)
{
***************
*** 9961,9969 ****
save_did_emsg = did_emsg;
did_emsg = FALSE;
if (argvars[0].v_type == VAR_DICT)
{
- prepare_vimvar(VV_KEY, &save_key);
vimvars[VV_KEY].vv_type = VAR_STRING;
ht = &d->dv_hashtab;
--- 9962,9970 ----
save_did_emsg = did_emsg;
did_emsg = FALSE;
+ prepare_vimvar(VV_KEY, &save_key);
if (argvars[0].v_type == VAR_DICT)
{
vimvars[VV_KEY].vv_type = VAR_STRING;
ht = &d->dv_hashtab;
***************
*** 9987,10010 ****
}
}
hash_unlock(ht);
-
- restore_vimvar(VV_KEY, &save_key);
}
else
{
for (li = l->lv_first; li != NULL; li = nli)
{
if (tv_check_lock(li->li_tv.v_lock, ermsg))
break;
nli = li->li_next;
if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL
|| did_emsg)
break;
if (!map && rem)
listitem_remove(l, li);
}
}
restore_vimvar(VV_VAL, &save_val);
did_emsg |= save_did_emsg;
--- 9988,10014 ----
}
}
hash_unlock(ht);
}
else
{
+ vimvars[VV_KEY].vv_type = VAR_NUMBER;
+
for (li = l->lv_first; li != NULL; li = nli)
{
if (tv_check_lock(li->li_tv.v_lock, ermsg))
break;
nli = li->li_next;
+ vimvars[VV_KEY].vv_nr = index;
if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL
|| did_emsg)
break;
if (!map && rem)
listitem_remove(l, li);
+ ++index;
}
}
+ restore_vimvar(VV_KEY, &save_key);
restore_vimvar(VV_VAL, &save_val);
did_emsg |= save_did_emsg;
*** ../vim-7.2.294/src/version.c 2009-11-17 12:08:48.000000000 +0100
--- src/version.c 2009-11-17 12:18:08.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 295,
/**/
--
ARTHUR: You are indeed brave Sir knight, but the fight is mine.
BLACK KNIGHT: Had enough?
ARTHUR: You stupid bastard. You havn't got any arms left.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

53
7.2.296 Normal file
View file

@ -0,0 +1,53 @@
To: vim-dev@vim.org
Subject: Patch 7.2.296
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.2.296
Problem: Help message about startuptime is wrong. (Dominique Pelle)
Solution: Remove the equal sign.
Files: src/main.c
*** ../vim-7.2.295/src/main.c 2009-11-11 14:21:48.000000000 +0100
--- src/main.c 2009-11-11 22:51:04.000000000 +0100
***************
*** 3151,3157 ****
main_msg(_("--servername <name>\tSend to/become the Vim server <name>"));
#endif
#ifdef STARTUPTIME
! main_msg(_("--startuptime=<file>\tWrite startup timing messages to <file>"));
#endif
#ifdef FEAT_VIMINFO
main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
--- 3151,3157 ----
main_msg(_("--servername <name>\tSend to/become the Vim server <name>"));
#endif
#ifdef STARTUPTIME
! main_msg(_("--startuptime <file>\tWrite startup timing messages to <file>"));
#endif
#ifdef FEAT_VIMINFO
main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
*** ../vim-7.2.295/src/version.c 2009-11-17 12:20:30.000000000 +0100
--- src/version.c 2009-11-17 12:30:29.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 296,
/**/
--
BLACK KNIGHT: I'm invincible!
ARTHUR: You're a looney.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

70
7.2.297 Normal file
View file

@ -0,0 +1,70 @@
To: vim-dev@vim.org
Subject: Patch 7.2.297
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.2.297
Problem: Reading freed memory when writing ":reg" output to a register.
(Dominique Pelle)
Solution: Skip the register being written to.
Files: src/ops.c
*** ../vim-7.2.296/src/ops.c 2009-11-11 17:22:30.000000000 +0100
--- src/ops.c 2009-11-11 19:30:47.000000000 +0100
***************
*** 3991,3996 ****
--- 3991,4004 ----
}
else
yb = &(y_regs[i]);
+
+ #ifdef FEAT_EVAL
+ if (name == MB_TOLOWER(redir_reg)
+ || (redir_reg == '"' && yb == y_previous))
+ continue; /* do not list register being written to, the
+ * pointer can be freed */
+ #endif
+
if (yb->y_array != NULL)
{
msg_putchar('\n');
***************
*** 6090,6096 ****
long maxlen;
#endif
! if (y_ptr->y_array == NULL) /* NULL means emtpy register */
y_ptr->y_size = 0;
/*
--- 6098,6104 ----
long maxlen;
#endif
! if (y_ptr->y_array == NULL) /* NULL means empty register */
y_ptr->y_size = 0;
/*
*** ../vim-7.2.296/src/version.c 2009-11-17 12:31:30.000000000 +0100
--- src/version.c 2009-11-17 12:42:28.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 297,
/**/
--
"Beware of bugs in the above code; I have only proved
it correct, not tried it." -- Donald Knuth
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

48
7.2.298 Normal file
View file

@ -0,0 +1,48 @@
To: vim-dev@vim.org
Subject: Patch 7.2.298
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.2.298
Problem: ":vimgrep" crashes when there is an autocommand that sets a
window-local variable.
Solution: Initialize the w: hashtab for re-use. (Yukihiro Nakadaira)
Files: src/fileio.c
*** ../vim-7.2.297/src/fileio.c 2009-11-17 12:08:48.000000000 +0100
--- src/fileio.c 2009-11-17 13:22:06.000000000 +0100
***************
*** 8597,8602 ****
--- 8605,8611 ----
curwin = firstwin;
# ifdef FEAT_EVAL
vars_clear(&aucmd_win->w_vars.dv_hashtab); /* free all w: variables */
+ hash_init(&aucmd_win->w_vars.dv_hashtab); /* re-use the hashtab */
# endif
#else
curwin = aco->save_curwin;
*** ../vim-7.2.297/src/version.c 2009-11-17 12:43:19.000000000 +0100
--- src/version.c 2009-11-17 14:56:19.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 298,
/**/
--
Eye have a spelling checker, it came with my PC;
It plainly marks four my revue mistakes I cannot sea.
I've run this poem threw it, I'm sure your please to no,
It's letter perfect in it's weigh, my checker tolled me sew!
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.2.299 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.2.299
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.2.299
Problem: Crash when comment middle is longer than start.
Solution: Fix size computation. (Lech Lorens)
Files: src/misc1.c
*** ../vim-7.2.298/src/misc1.c 2009-11-11 17:30:05.000000000 +0100
--- src/misc1.c 2009-11-17 15:59:28.000000000 +0100
***************
*** 1121,1127 ****
if (i != lead_repl_len)
{
mch_memmove(p + lead_repl_len, p + i,
! (size_t)(lead_len - i - (leader - p)));
lead_len += lead_repl_len - i;
}
}
--- 1121,1127 ----
if (i != lead_repl_len)
{
mch_memmove(p + lead_repl_len, p + i,
! (size_t)(lead_len - i - (p - leader)));
lead_len += lead_repl_len - i;
}
}
*** ../vim-7.2.298/src/version.c 2009-11-17 14:57:19.000000000 +0100
--- src/version.c 2009-11-17 16:01:07.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 299,
/**/
--
BLACK KNIGHT: The Black Knight always triumphs. Have at you!
ARTHUR takes his last leg off. The BLACK KNIGHT's body lands upright.
BLACK KNIGHT: All right, we'll call it a draw.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

201
7.2.300 Normal file
View file

@ -0,0 +1,201 @@
To: vim-dev@vim.org
Subject: Patch 7.2.300
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.2.300
Problem: Vim doesn't close file descriptors when forking and executing
another command, e.g., ":shell".
Solution: Use FD_CLOEXEC when available. (James Vega)
Files: src/auto/configure, src/config.h.in, src/configure.in,
src/ex_cmdds2.c, src/fileio.c, src/memfile.c, src/memline.c
*** ../vim-7.2.299/src/auto/configure 2009-11-17 12:08:48.000000000 +0100
--- src/auto/configure 2009-11-17 13:09:03.000000000 +0100
***************
*** 15174,15179 ****
--- 15174,15231 ----
$as_echo "yes" >&6; }
fi
+ { $as_echo "$as_me:$LINENO: checking for FD_CLOEXEC" >&5
+ $as_echo_n "checking for FD_CLOEXEC... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+ #if HAVE_FCNTL_H
+ # include <fcntl.h>
+ #endif
+ int
+ main ()
+ {
+ int flag = FD_CLOEXEC;
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }; cat >>confdefs.h <<\_ACEOF
+ #define HAVE_FD_CLOEXEC 1
+ _ACEOF
+
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+ { $as_echo "$as_me:$LINENO: result: not usable" >&5
+ $as_echo "not usable" >&6; }
+ fi
+
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
{ $as_echo "$as_me:$LINENO: checking for rename" >&5
$as_echo_n "checking for rename... " >&6; }
cat >conftest.$ac_ext <<_ACEOF
*** ../vim-7.2.299/src/config.h.in 2009-11-17 12:08:48.000000000 +0100
--- src/config.h.in 2009-11-17 13:01:36.000000000 +0100
***************
*** 388,390 ****
--- 388,393 ----
/* Define if you want XSMP interaction as well as vanilla swapfile safety */
#undef USE_XSMP_INTERACT
+
+ /* Define if fcntl()'s F_SETFD command knows about FD_CLOEXEC */
+ #undef HAVE_FD_CLOEXEC
*** ../vim-7.2.299/src/configure.in 2009-11-17 12:08:48.000000000 +0100
--- src/configure.in 2009-11-17 13:01:36.000000000 +0100
***************
*** 2855,2860 ****
--- 2855,2870 ----
AC_MSG_RESULT(yes)
fi
+ dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
+ AC_MSG_CHECKING(for FD_CLOEXEC)
+ AC_TRY_COMPILE(
+ [#if HAVE_FCNTL_H
+ # include <fcntl.h>
+ #endif],
+ [ int flag = FD_CLOEXEC;],
+ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
+ AC_MSG_RESULT(not usable))
+
dnl rename needs to be checked separately to work on Nextstep with cc
AC_MSG_CHECKING(for rename)
AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
*** ../vim-7.2.299/src/fileio.c 2009-11-17 14:57:19.000000000 +0100
--- src/fileio.c 2009-11-17 13:22:06.000000000 +0100
***************
*** 2254,2259 ****
--- 2254,2267 ----
if (!read_buffer && !read_stdin)
close(fd); /* errors are ignored */
+ #ifdef HAVE_FD_CLOEXEC
+ else
+ {
+ int fdflags = fcntl(fd, F_GETFD);
+ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
+ fcntl(fd, F_SETFD, fdflags | FD_CLOEXEC);
+ }
+ #endif
vim_free(buffer);
#ifdef HAVE_DUP
*** ../vim-7.2.299/src/memfile.c 2008-07-13 19:39:39.000000000 +0200
--- src/memfile.c 2009-11-17 13:22:15.000000000 +0100
***************
*** 1343,1348 ****
--- 1343,1353 ----
}
else
{
+ #ifdef HAVE_FD_CLOEXEC
+ int fdflags = fcntl(mfp->mf_fd, F_GETFD);
+ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
+ fcntl(mfp->mf_fd, F_SETFD, fdflags | FD_CLOEXEC);
+ #endif
#ifdef HAVE_SELINUX
mch_copy_sec(fname, mfp->mf_fname);
#endif
*** ../vim-7.2.299/src/memline.c 2009-11-03 15:32:58.000000000 +0100
--- src/memline.c 2009-11-17 13:21:40.000000000 +0100
***************
*** 382,388 ****
dp->db_index[0] = --dp->db_txt_start; /* at end of block */
dp->db_free -= 1 + INDEX_SIZE;
dp->db_line_count = 1;
! *((char_u *)dp + dp->db_txt_start) = NUL; /* emtpy line */
return OK;
--- 382,388 ----
dp->db_index[0] = --dp->db_txt_start; /* at end of block */
dp->db_free -= 1 + INDEX_SIZE;
dp->db_line_count = 1;
! *((char_u *)dp + dp->db_txt_start) = NUL; /* empty line */
return OK;
***************
*** 490,495 ****
--- 490,502 ----
EMSG(_("E301: Oops, lost the swap file!!!"));
return;
}
+ #ifdef HAVE_FD_CLOEXEC
+ {
+ int fdflags = fcntl(mfp->mf_fd, F_GETFD);
+ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
+ fcntl(mfp->mf_fd, F_SETFD, fdflags | FD_CLOEXEC);
+ }
+ #endif
}
if (!success)
EMSG(_("E302: Could not rename swap file"));
*** ../vim-7.2.299/src/version.c 2009-11-17 16:08:12.000000000 +0100
--- src/version.c 2009-11-17 17:09:43.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 300,
/**/
--
|
Ceci n'est pas une pipe.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

777
7.2.301 Normal file
View file

@ -0,0 +1,777 @@
To: vim-dev@vim.org
Subject: Patch 7.2.301
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
NOTE: some mail and patch programs may have a problem with the non-ASCII
characters in this patch. You can fetch the patch from
ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.301 and/or fetch the updated
files from CVS. http://www.vim.org/cvs.php
Patch 7.2.301
Problem: Formatting is wrong when 'tw' is set to a small value.
Solution: Fix it and add tests. Also fix behavior of "1" in 'fo'. (Yukihiro
Nakadaira)
Files: src/edit.c, src/testdir/Makefile, src/testdir/test68.in,
src/testdir/test68.ok, src/testdir/test69.in,
src/testdir/test69.ok
*** ../vim-7.2.300/src/edit.c 2009-11-11 13:22:32.000000000 +0100
--- src/edit.c 2009-11-17 15:34:47.000000000 +0100
***************
*** 181,187 ****
static void ins_ctrl_v __ARGS((void));
static void undisplay_dollar __ARGS((void));
static void insert_special __ARGS((int, int, int));
! static void internal_format __ARGS((int textwidth, int second_indent, int flags, int format_only));
static void check_auto_format __ARGS((int));
static void redo_literal __ARGS((int c));
static void start_arrow __ARGS((pos_T *end_insert_pos));
--- 181,187 ----
static void ins_ctrl_v __ARGS((void));
static void undisplay_dollar __ARGS((void));
static void insert_special __ARGS((int, int, int));
! static void internal_format __ARGS((int textwidth, int second_indent, int flags, int format_only, int c));
static void check_auto_format __ARGS((int));
static void redo_literal __ARGS((int c));
static void start_arrow __ARGS((pos_T *end_insert_pos));
***************
*** 2164,2170 ****
int i, c;
int actual_len; /* Take multi-byte characters */
int actual_compl_length; /* into account. */
! int *wca; /* Wide character array. */
int has_lower = FALSE;
int was_letter = FALSE;
--- 2164,2170 ----
int i, c;
int actual_len; /* Take multi-byte characters */
int actual_compl_length; /* into account. */
! int *wca; /* Wide character array. */
int has_lower = FALSE;
int was_letter = FALSE;
***************
*** 5558,5564 ****
}
if (do_internal)
#endif
! internal_format(textwidth, second_indent, flags, c == NUL);
}
if (c == NUL) /* only formatting was wanted */
--- 5558,5564 ----
}
if (do_internal)
#endif
! internal_format(textwidth, second_indent, flags, c == NUL, c);
}
if (c == NUL) /* only formatting was wanted */
***************
*** 5738,5748 ****
* Format text at the current insert position.
*/
static void
! internal_format(textwidth, second_indent, flags, format_only)
int textwidth;
int second_indent;
int flags;
int format_only;
{
int cc;
int save_char = NUL;
--- 5738,5749 ----
* Format text at the current insert position.
*/
static void
! internal_format(textwidth, second_indent, flags, format_only, c)
int textwidth;
int second_indent;
int flags;
int format_only;
+ int c; /* character to be inserted (can be NUL) */
{
int cc;
int save_char = NUL;
***************
*** 5763,5769 ****
* When 'ai' is off we don't want a space under the cursor to be
* deleted. Replace it with an 'x' temporarily.
*/
! if (!curbuf->b_p_ai)
{
cc = gchar_cursor();
if (vim_iswhite(cc))
--- 5764,5774 ----
* When 'ai' is off we don't want a space under the cursor to be
* deleted. Replace it with an 'x' temporarily.
*/
! if (!curbuf->b_p_ai
! #ifdef FEAT_VREPLACE
! && !(State & VREPLACE_FLAG)
! #endif
! )
{
cc = gchar_cursor();
if (vim_iswhite(cc))
***************
*** 5789,5797 ****
char_u *saved_text = NULL;
#endif
colnr_T col;
! virtcol = get_nolist_virtcol();
! if (virtcol < (colnr_T)textwidth)
break;
#ifdef FEAT_COMMENTS
--- 5794,5804 ----
char_u *saved_text = NULL;
#endif
colnr_T col;
+ colnr_T end_col;
! virtcol = get_nolist_virtcol()
! + char2cells(c != NUL ? c : gchar_cursor());
! if (virtcol <= (colnr_T)textwidth)
break;
#ifdef FEAT_COMMENTS
***************
*** 5831,5842 ****
coladvance((colnr_T)textwidth);
wantcol = curwin->w_cursor.col;
! curwin->w_cursor.col = startcol - 1;
! #ifdef FEAT_MBYTE
! /* Correct cursor for multi-byte character. */
! if (has_mbyte)
! mb_adjust_cursor();
! #endif
foundcol = 0;
/*
--- 5838,5844 ----
coladvance((colnr_T)textwidth);
wantcol = curwin->w_cursor.col;
! curwin->w_cursor.col = startcol;
foundcol = 0;
/*
***************
*** 5847,5857 ****
|| curwin->w_cursor.lnum != Insstart.lnum
|| curwin->w_cursor.col >= Insstart.col)
{
! cc = gchar_cursor();
if (WHITECHAR(cc))
{
/* remember position of blank just before text */
! end_foundcol = curwin->w_cursor.col;
/* find start of sequence of blanks */
while (curwin->w_cursor.col > 0 && WHITECHAR(cc))
--- 5849,5862 ----
|| curwin->w_cursor.lnum != Insstart.lnum
|| curwin->w_cursor.col >= Insstart.col)
{
! if (curwin->w_cursor.col == startcol && c != NUL)
! cc = c;
! else
! cc = gchar_cursor();
if (WHITECHAR(cc))
{
/* remember position of blank just before text */
! end_col = curwin->w_cursor.col;
/* find start of sequence of blanks */
while (curwin->w_cursor.col > 0 && WHITECHAR(cc))
***************
*** 5871,5877 ****
/* do not break after one-letter words */
if (curwin->w_cursor.col == 0)
break; /* one-letter word at begin */
!
col = curwin->w_cursor.col;
dec_cursor();
cc = gchar_cursor();
--- 5876,5886 ----
/* do not break after one-letter words */
if (curwin->w_cursor.col == 0)
break; /* one-letter word at begin */
! #ifdef FEAT_COMMENTS
! /* do not break "#a b" when 'tw' is 2 */
! if (curwin->w_cursor.col <= leader_len)
! break;
! #endif
col = curwin->w_cursor.col;
dec_cursor();
cc = gchar_cursor();
***************
*** 5880,5905 ****
continue; /* one-letter, continue */
curwin->w_cursor.col = col;
}
! #ifdef FEAT_MBYTE
! if (has_mbyte)
! foundcol = curwin->w_cursor.col
! + (*mb_ptr2len)(ml_get_cursor());
! else
! #endif
! foundcol = curwin->w_cursor.col + 1;
! if (curwin->w_cursor.col < (colnr_T)wantcol)
break;
}
#ifdef FEAT_MBYTE
! else if (cc >= 0x100 && fo_multibyte
! && curwin->w_cursor.col <= (colnr_T)wantcol)
{
/* Break after or before a multi-byte character. */
foundcol = curwin->w_cursor.col;
- if (curwin->w_cursor.col < (colnr_T)wantcol)
- foundcol += (*mb_char2len)(cc);
end_foundcol = foundcol;
! break;
}
#endif
if (curwin->w_cursor.col == 0)
--- 5889,5948 ----
continue; /* one-letter, continue */
curwin->w_cursor.col = col;
}
!
! inc_cursor();
!
! end_foundcol = end_col + 1;
! foundcol = curwin->w_cursor.col;
! if (curwin->w_cursor.col <= (colnr_T)wantcol)
break;
}
#ifdef FEAT_MBYTE
! else if (cc >= 0x100 && fo_multibyte)
{
/* Break after or before a multi-byte character. */
+ if (curwin->w_cursor.col != startcol)
+ {
+ #ifdef FEAT_COMMENTS
+ /* Don't break until after the comment leader */
+ if (curwin->w_cursor.col < leader_len)
+ break;
+ #endif
+ col = curwin->w_cursor.col;
+ inc_cursor();
+ /* Don't change end_foundcol if already set. */
+ if (foundcol != curwin->w_cursor.col)
+ {
+ foundcol = curwin->w_cursor.col;
+ end_foundcol = foundcol;
+ if (curwin->w_cursor.col <= (colnr_T)wantcol)
+ break;
+ }
+ curwin->w_cursor.col = col;
+ }
+
+ if (curwin->w_cursor.col == 0)
+ break;
+
+ col = curwin->w_cursor.col;
+
+ dec_cursor();
+ cc = gchar_cursor();
+
+ if (WHITECHAR(cc))
+ continue; /* break with space */
+ #ifdef FEAT_COMMENTS
+ /* Don't break until after the comment leader */
+ if (curwin->w_cursor.col < leader_len)
+ break;
+ #endif
+
+ curwin->w_cursor.col = col;
+
foundcol = curwin->w_cursor.col;
end_foundcol = foundcol;
! if (curwin->w_cursor.col <= (colnr_T)wantcol)
! break;
}
#endif
if (curwin->w_cursor.col == 0)
***************
*** 5926,5939 ****
orig_col = startcol; /* Will start backspacing from here */
else
#endif
! replace_offset = startcol - end_foundcol - 1;
/*
* adjust startcol for spaces that will be deleted and
* characters that will remain on top line
*/
curwin->w_cursor.col = foundcol;
! while (cc = gchar_cursor(), WHITECHAR(cc))
inc_cursor();
startcol -= curwin->w_cursor.col;
if (startcol < 0)
--- 5969,5983 ----
orig_col = startcol; /* Will start backspacing from here */
else
#endif
! replace_offset = startcol - end_foundcol;
/*
* adjust startcol for spaces that will be deleted and
* characters that will remain on top line
*/
curwin->w_cursor.col = foundcol;
! while ((cc = gchar_cursor(), WHITECHAR(cc))
! && (!fo_white_par || curwin->w_cursor.col < startcol))
inc_cursor();
startcol -= curwin->w_cursor.col;
if (startcol < 0)
***************
*** 8509,8515 ****
if (mode == BACKSPACE_LINE
&& (curbuf->b_p_ai
#ifdef FEAT_CINDENT
! || cindent_on()
#endif
)
#ifdef FEAT_RIGHTLEFT
--- 8553,8559 ----
if (mode == BACKSPACE_LINE
&& (curbuf->b_p_ai
#ifdef FEAT_CINDENT
! || cindent_on()
#endif
)
#ifdef FEAT_RIGHTLEFT
*** ../vim-7.2.300/src/testdir/Makefile 2009-11-17 17:36:13.000000000 +0100
--- src/testdir/Makefile 2009-11-17 15:11:26.000000000 +0100
***************
*** 22,28 ****
test48.out test49.out test51.out test52.out test53.out \
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
! test64.out test65.out test66.out test67.out
SCRIPTS_GUI = test16.out
--- 22,29 ----
test48.out test49.out test51.out test52.out test53.out \
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
! test64.out test65.out test66.out test67.out test68.out \
! test69.out
SCRIPTS_GUI = test16.out
*** ../vim-7.2.300/src/testdir/test68.in 2009-11-17 17:39:36.000000000 +0100
--- src/testdir/test68.in 2009-11-17 15:39:09.000000000 +0100
***************
*** 0 ****
--- 1,56 ----
+ Test for text formatting.
+
+ Results of test68:
+
+ STARTTEST
+ :so small.vim
+ /^{/+1
+ :set noai tw=2 fo=t
+ gRa b
+ ENDTEST
+
+ {
+
+
+ }
+
+ STARTTEST
+ /^{/+1
+ :set ai tw=2 fo=tw
+ gqgqjjllab
+ ENDTEST
+
+ {
+ a b
+
+ a
+ }
+
+ STARTTEST
+ /^{/+1
+ :set tw=3 fo=t
+ gqgqo
+ a 
+ ENDTEST
+
+ {
+ a 
+ }
+
+ STARTTEST
+ /^{/+1
+ :set tw=2 fo=tcq1 comments=:#
+ gqgqjgqgqo
+ a b
+ #a b
+ ENDTEST
+
+ {
+ a b
+ #a b
+ }
+
+ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/^Results/,$wq! test.out
+ ENDTEST
*** ../vim-7.2.300/src/testdir/test68.ok 2009-11-17 17:39:36.000000000 +0100
--- src/testdir/test68.ok 2009-11-17 15:11:26.000000000 +0100
***************
*** 0 ****
--- 1,35 ----
+ Results of test68:
+
+
+ {
+ a
+ b
+ }
+
+
+ {
+ a
+ b
+
+ a
+ b
+ }
+
+
+ {
+ a
+ 
+
+ a
+ 
+ }
+
+
+ {
+ a b
+ #a b
+
+ a b
+ #a b
+ }
+
*** ../vim-7.2.300/src/testdir/test69.in 2009-11-17 17:39:36.000000000 +0100
--- src/testdir/test69.in 2009-11-17 15:11:26.000000000 +0100
***************
*** 0 ****
--- 1,139 ----
+ Test for multi-byte text formatting.
+
+ STARTTEST
+ :so mbyte.vim
+ :set encoding=utf-8
+ ENDTEST
+
+ Results of test69:
+
+ STARTTEST
+ /^{/+1
+ :set tw=2 fo=t
+ gqgqjgqgqo
+
+ abc 
+ ENDTEST
+
+ {
+
+ abc
+ }
+
+ STARTTEST
+ /^{/+1
+ :set tw=1 fo=tm
+ gqgqjgqgqjgqgqjgqgqjgqgqo
+
+ a
+ a
+
+ 
+ ENDTEST
+
+ {
+
+ a
+ a
+
+
+ }
+
+ STARTTEST
+ /^{/+1
+ :set tw=2 fo=tm
+ gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
+
+ a
+ a
+
+
+ a
+ ab
+ abc
+ ab c
+ ab
+ ENDTEST
+
+ {
+
+ a
+ a
+
+
+ a
+ ab
+ abc
+ ab c
+ ab
+ }
+
+ STARTTEST
+ /^{/+1
+ :set ai tw=2 fo=tm
+ gqgqjgqgqo
+
+ a
+ ENDTEST
+
+ {
+
+ a
+ }
+
+ STARTTEST
+ /^{/+1
+ :set noai tw=2 fo=tm
+ gqgqjgqgqo
+
+ a
+ ENDTEST
+
+ {
+
+ a
+ }
+
+ STARTTEST
+ /^{/+1
+ :set tw=2 fo=cqm comments=n:
+ gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
+
+ a
+ a
+
+
+
+
+
+ a
+ 
+ ENDTEST
+
+ {
+
+ a
+ a
+
+
+
+
+
+ a
+
+ }
+
+ STARTTEST
+ /^{/+1
+ :set tw=2 fo=tm
+ Ra
+ ENDTEST
+
+ {
+
+ }
+
+ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/^Results/,$wq! test.out
+ ENDTEST
*** ../vim-7.2.300/src/testdir/test69.ok 2009-11-17 17:39:36.000000000 +0100
--- src/testdir/test69.ok 2009-11-17 15:11:26.000000000 +0100
***************
*** 0 ****
--- 1,142 ----
+ Results of test69:
+
+
+ {
+
+ abc
+
+
+
+ abc
+
+ }
+
+
+ {
+
+
+ a
+
+ a
+
+
+
+
+
+
+
+ a
+
+ a
+
+
+
+
+ }
+
+
+ {
+
+
+ a
+
+ a
+
+
+
+
+ a
+
+ ab
+
+ abc
+
+ ab
+
+ c
+ ab
+
+
+
+
+
+ a
+
+ a
+
+
+
+
+ a
+
+ ab
+
+ abc
+
+ ab
+
+ c
+ ab
+
+
+ }
+
+
+ {
+
+
+ a
+
+
+
+ a
+ }
+
+
+ {
+
+
+ a
+
+
+
+ a
+ }
+
+
+ {
+
+ a
+ a
+
+
+
+
+
+
+
+
+ a
+
+
+
+ a
+ a
+
+
+
+
+
+
+
+
+ a
+
+ }
+
+
+ {
+
+ a
+ }
+
*** ../vim-7.2.300/src/version.c 2009-11-17 17:37:34.000000000 +0100
--- src/version.c 2009-11-17 17:26:35.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 301,
/**/

140
7.2.302 Normal file
View file

@ -0,0 +1,140 @@
To: vim-dev@vim.org
Subject: Patch 7.2.302 (extra)
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.2.302 (extra part of 7.2.301)
Problem: Formatting wrong with small 'tw' value.
Solution: Add build rules for tests.
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms
*** ../vim-7.2.301/src/testdir/Make_amiga.mak 2009-09-18 14:58:26.000000000 +0200
--- src/testdir/Make_amiga.mak 2009-11-17 15:29:05.000000000 +0100
***************
*** 26,32 ****
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out
.SUFFIXES: .in .out
--- 26,32 ----
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out test68.out test69.out
.SUFFIXES: .in .out
***************
*** 113,115 ****
--- 113,117 ----
test65.out: test65.in
test66.out: test66.in
test67.out: test67.in
+ test68.out: test68.in
+ test69.out: test69.in
*** ../vim-7.2.301/src/testdir/Make_dos.mak 2009-09-18 14:58:26.000000000 +0200
--- src/testdir/Make_dos.mak 2009-11-17 15:29:54.000000000 +0100
***************
*** 26,32 ****
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out test67.out
SCRIPTS32 = test50.out
--- 26,33 ----
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out test67.out \
! test68.out test69.out
SCRIPTS32 = test50.out
*** ../vim-7.2.301/src/testdir/Make_ming.mak 2009-09-18 14:58:26.000000000 +0200
--- src/testdir/Make_ming.mak 2009-11-17 15:30:07.000000000 +0100
***************
*** 45,51 ****
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out test67.out
SCRIPTS32 = test50.out
--- 45,52 ----
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
! test42.out test52.out test65.out test66.out test67.out \
! test68.out test69.out
SCRIPTS32 = test50.out
*** ../vim-7.2.301/src/testdir/Make_os2.mak 2009-09-18 14:58:26.000000000 +0200
--- src/testdir/Make_os2.mak 2009-11-17 15:11:26.000000000 +0100
***************
*** 26,32 ****
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out
.SUFFIXES: .in .out
--- 26,32 ----
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out test68.out test69.out
.SUFFIXES: .in .out
*** ../vim-7.2.301/src/testdir/Make_vms.mms 2009-09-18 14:58:26.000000000 +0200
--- src/testdir/Make_vms.mms 2009-11-17 15:11:26.000000000 +0100
***************
*** 69,75 ****
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out
.IFDEF WANT_GUI
SCRIPT_GUI = test16.out
--- 69,75 ----
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
! test66.out test67.out test68.out test69.out
.IFDEF WANT_GUI
SCRIPT_GUI = test16.out
*** ../vim-7.2.301/src/version.c 2009-11-17 17:40:34.000000000 +0100
--- src/version.c 2009-11-17 17:43:26.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 302,
/**/
--
Hacker: Someone skilled in computer programming (good guy).
Cracker: A hacker that uses his skills to crack software (bad guy).
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

70
7.2.303 Normal file
View file

@ -0,0 +1,70 @@
To: vim-dev@vim.org
Subject: Patch 7.2.303
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.2.303 (after 7.2.294)
Problem: Can't build on MS-Windows.
Solution: Add #ifdef around vim_settempdir(). (James Vega)
Files: src/fileio.c
*** ../vim-7.2.302/src/fileio.c 2009-11-17 17:13:03.000000000 +0100
--- src/fileio.c 2009-11-18 20:06:55.000000000 +0100
***************
*** 146,152 ****
--- 146,154 ----
# endif
#endif
static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
+ #ifdef TEMPDIRNAMES
static void vim_settempdir __ARGS((char_u *tempdir));
+ #endif
#ifdef FEAT_AUTOCMD
static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name");
#endif
***************
*** 6995,7000 ****
--- 6997,7003 ----
}
#endif
+ #ifdef TEMPDIRNAMES
/*
* Directory "tempdir" was created. Expand this name to a full path and put
* it in "vim_tempdir". This avoids that using ":cd" would confuse us.
***************
*** 7021,7026 ****
--- 7024,7030 ----
vim_free(buf);
}
}
+ #endif
/*
* vim_tempname(): Return a unique name that can be used for a temp file.
*** ../vim-7.2.302/src/version.c 2009-11-17 17:57:10.000000000 +0100
--- src/version.c 2009-11-18 20:07:58.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 303,
/**/
--
BEDEVERE: Why do you think she is a witch?
SECOND VILLAGER: She turned me into a newt.
BEDEVERE: A newt?
SECOND VILLAGER: (After looking at himself for some time) I got better.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

58
7.2.304 Normal file
View file

@ -0,0 +1,58 @@
To: vim-dev@vim.org
Subject: Patch 7.2.304
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.2.304
Problem: Compiler warning for bad pointer cast.
Solution: Use another variable for int pointer.
Files: src/ops.c
*** ../vim-7.2.303/src/ops.c 2009-11-17 12:43:19.000000000 +0100
--- src/ops.c 2009-11-18 15:40:26.000000000 +0100
***************
*** 5597,5603 ****
vc.vc_type = CONV_NONE;
if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
{
! conv_str = string_convert(&vc, str, (int*)&len);
if (conv_str != NULL)
{
vim_free(str);
--- 5597,5606 ----
vc.vc_type = CONV_NONE;
if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
{
! int intlen = len;
!
! conv_str = string_convert(&vc, str, &intlen);
! len = intlen;
if (conv_str != NULL)
{
vim_free(str);
*** ../vim-7.2.303/src/version.c 2009-11-18 20:12:15.000000000 +0100
--- src/version.c 2009-11-25 12:37:36.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 304,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

105
7.2.305 Normal file
View file

@ -0,0 +1,105 @@
To: vim-dev@vim.org
Subject: Patch 7.2.305
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.2.305
Problem: Recursively redrawing causes a memory leak. (Dominique Pelle)
Solution: Disallow recursive screen updating.
Files: src/screen.c
*** ../vim-7.2.304/src/screen.c 2009-11-11 17:07:25.000000000 +0100
--- src/screen.c 2009-11-17 16:30:53.000000000 +0100
***************
*** 323,328 ****
--- 323,329 ----
int did_one;
#endif
+ /* Don't do anything if the screen structures are (not yet) valid. */
if (!screen_valid(TRUE))
return;
***************
*** 342,348 ****
if (curwin->w_lines_valid == 0 && type < NOT_VALID)
type = NOT_VALID;
! if (!redrawing())
{
redraw_later(type); /* remember type for next time */
must_redraw = type;
--- 343,351 ----
if (curwin->w_lines_valid == 0 && type < NOT_VALID)
type = NOT_VALID;
! /* Postpone the redrawing when it's not needed and when being called
! * recursively. */
! if (!redrawing() || updating_screen)
{
redraw_later(type); /* remember type for next time */
must_redraw = type;
***************
*** 582,587 ****
--- 585,591 ----
/*
* Prepare for updating one or more windows.
+ * Caller must check for "updating_screen" already set to avoid recursiveness.
*/
static void
update_prepare()
***************
*** 663,669 ****
doit = TRUE;
}
! if (!doit)
return;
/* update all windows that need updating */
--- 667,675 ----
doit = TRUE;
}
! /* Return when there is nothing to do or screen updating already
! * happening. */
! if (!doit || updating_screen)
return;
/* update all windows that need updating */
***************
*** 696,701 ****
--- 702,711 ----
updateWindow(wp)
win_T *wp;
{
+ /* return if already busy updating */
+ if (updating_screen)
+ return;
+
update_prepare();
#ifdef FEAT_CLIPBOARD
*** ../vim-7.2.304/src/version.c 2009-11-25 12:38:49.000000000 +0100
--- src/version.c 2009-11-25 13:01:48.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 305,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

48
7.2.306 Normal file
View file

@ -0,0 +1,48 @@
To: vim-dev@vim.org
Subject: Patch 7.2.306
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.2.306
Problem: shellescape("10%%", 1) only escapes first %. (Christian Brabandt)
Solution: Don't copy the character after the escaped one.
Files: src/misc2.c
*** ../vim-7.2.305/src/misc2.c 2009-11-11 16:56:13.000000000 +0100
--- src/misc2.c 2009-11-25 17:11:49.000000000 +0100
***************
*** 1390,1395 ****
--- 1390,1396 ----
*d++ = '\\'; /* insert backslash */
while (--l >= 0) /* copy the var */
*d++ = *p++;
+ continue;
}
MB_COPY_CHAR(p, d);
*** ../vim-7.2.305/src/version.c 2009-11-25 13:03:29.000000000 +0100
--- src/version.c 2009-11-25 17:13:54.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 306,
/**/
--
Article in the first Free Software Magazine: "Bram Moolenaar studied electrical
engineering at the Technical University of Delft and graduated in 1985 on a
multi-processor Unix architecture."
Response by "dimator": Could the school not afford a proper stage for the
ceremony?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

181
7.2.307 Normal file
View file

@ -0,0 +1,181 @@
To: vim-dev@vim.org
Subject: Patch 7.2.307
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.2.307
Problem: Crash with a very long syntax match statement. (Guy Gur Ari)
Solution: When the offset does not fit in the two bytes available give an
error instead of continuing with invalid pointers.
Files: src/regexp.c
*** ../vim-7.2.306/src/regexp.c 2009-05-15 21:31:11.000000000 +0200
--- src/regexp.c 2009-11-25 18:13:03.000000000 +0100
***************
*** 583,588 ****
--- 583,589 ----
#endif
static char_u *regcode; /* Code-emit pointer, or JUST_CALC_SIZE */
static long regsize; /* Code size. */
+ static int reg_toolong; /* TRUE when offset out of range */
static char_u had_endbrace[NSUBEXP]; /* flags, TRUE if end of () found */
static unsigned regflags; /* RF_ flags for prog */
static long brace_min[10]; /* Minimums for complex brace repeats */
***************
*** 1028,1036 ****
regcomp_start(expr, re_flags);
regcode = r->program;
regc(REGMAGIC);
! if (reg(REG_NOPAREN, &flags) == NULL)
{
vim_free(r);
return NULL;
}
--- 1029,1039 ----
regcomp_start(expr, re_flags);
regcode = r->program;
regc(REGMAGIC);
! if (reg(REG_NOPAREN, &flags) == NULL || reg_toolong)
{
vim_free(r);
+ if (reg_toolong)
+ EMSG_RET_NULL(_("E339: Pattern too long"));
return NULL;
}
***************
*** 1141,1146 ****
--- 1144,1150 ----
re_has_z = 0;
#endif
regsize = 0L;
+ reg_toolong = FALSE;
regflags = 0;
#if defined(FEAT_SYN_HL) || defined(PROTO)
had_eol = FALSE;
***************
*** 1228,1234 ****
{
skipchr();
br = regbranch(&flags);
! if (br == NULL)
return NULL;
regtail(ret, br); /* BRANCH -> BRANCH. */
if (!(flags & HASWIDTH))
--- 1232,1238 ----
{
skipchr();
br = regbranch(&flags);
! if (br == NULL || reg_toolong)
return NULL;
regtail(ret, br); /* BRANCH -> BRANCH. */
if (!(flags & HASWIDTH))
***************
*** 1313,1318 ****
--- 1317,1324 ----
break;
skipchr();
regtail(latest, regnode(END)); /* operand ends */
+ if (reg_toolong)
+ break;
reginsert(MATCH, latest);
chain = latest;
}
***************
*** 1382,1388 ****
break;
default:
latest = regpiece(&flags);
! if (latest == NULL)
return NULL;
*flagp |= flags & (HASWIDTH | HASNL | HASLOOKBH);
if (chain == NULL) /* First piece. */
--- 1388,1394 ----
break;
default:
latest = regpiece(&flags);
! if (latest == NULL || reg_toolong)
return NULL;
*flagp |= flags & (HASWIDTH | HASNL | HASLOOKBH);
if (chain == NULL) /* First piece. */
***************
*** 2540,2547 ****
offset = (int)(scan - val);
else
offset = (int)(val - scan);
! *(scan + 1) = (char_u) (((unsigned)offset >> 8) & 0377);
! *(scan + 2) = (char_u) (offset & 0377);
}
/*
--- 2546,2561 ----
offset = (int)(scan - val);
else
offset = (int)(val - scan);
! /* When the offset uses more than 16 bits it can no longer fit in the two
! * bytes avaliable. Use a global flag to avoid having to check return
! * values in too many places. */
! if (offset > 0xffff)
! reg_toolong = TRUE;
! else
! {
! *(scan + 1) = (char_u) (((unsigned)offset >> 8) & 0377);
! *(scan + 2) = (char_u) (offset & 0377);
! }
}
/*
***************
*** 5764,5769 ****
--- 5778,5785 ----
/*
* regnext - dig the "next" pointer out of a node
+ * Returns NULL when calculating size, when there is no next item and when
+ * there is an error.
*/
static char_u *
regnext(p)
***************
*** 5771,5777 ****
{
int offset;
! if (p == JUST_CALC_SIZE)
return NULL;
offset = NEXT(p);
--- 5787,5793 ----
{
int offset;
! if (p == JUST_CALC_SIZE || reg_toolong)
return NULL;
offset = NEXT(p);
*** ../vim-7.2.306/src/version.c 2009-11-25 17:15:16.000000000 +0100
--- src/version.c 2009-11-25 18:14:32.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 307,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

182
7.2.308 Normal file
View file

@ -0,0 +1,182 @@
To: vim-dev@vim.org
Subject: Patch 7.2.308
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.308
Problem: When using a regexp in the "\=" expression of a substitute
command, submatch() returns empty strings for further lines.
(Clockwork Jam)
Solution: Save and restore the line number and line count when calling
reg_getline().
Files: src/regexp.c
*** ../vim-7.2.307/src/regexp.c 2009-11-25 18:21:48.000000000 +0100
--- src/regexp.c 2009-11-25 19:45:07.000000000 +0100
***************
*** 6828,6833 ****
--- 6828,6835 ----
* that contains a call to substitute() and submatch(). */
static regmatch_T *submatch_match;
static regmmatch_T *submatch_mmatch;
+ static linenr_T submatch_firstlnum;
+ static linenr_T submatch_maxline;
#endif
#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO)
***************
*** 6941,6947 ****
}
else
{
- linenr_T save_reg_maxline;
win_T *save_reg_win;
int save_ireg_ic;
--- 6943,6948 ----
***************
*** 6953,6959 ****
* vim_regexec_multi() can't be called recursively. */
submatch_match = reg_match;
submatch_mmatch = reg_mmatch;
! save_reg_maxline = reg_maxline;
save_reg_win = reg_win;
save_ireg_ic = ireg_ic;
can_f_submatch = TRUE;
--- 6954,6961 ----
* vim_regexec_multi() can't be called recursively. */
submatch_match = reg_match;
submatch_mmatch = reg_mmatch;
! submatch_firstlnum = reg_firstlnum;
! submatch_maxline = reg_maxline;
save_reg_win = reg_win;
save_ireg_ic = ireg_ic;
can_f_submatch = TRUE;
***************
*** 6976,6982 ****
reg_match = submatch_match;
reg_mmatch = submatch_mmatch;
! reg_maxline = save_reg_maxline;
reg_win = save_reg_win;
ireg_ic = save_ireg_ic;
can_f_submatch = FALSE;
--- 6978,6985 ----
reg_match = submatch_match;
reg_mmatch = submatch_mmatch;
! reg_firstlnum = submatch_firstlnum;
! reg_maxline = submatch_maxline;
reg_win = save_reg_win;
ireg_ic = save_ireg_ic;
can_f_submatch = FALSE;
***************
*** 7212,7217 ****
--- 7215,7243 ----
#ifdef FEAT_EVAL
/*
+ * Call reg_getline() with the line numbers from the submatch. If a
+ * substitute() was used the reg_maxline and other values have been
+ * overwritten.
+ */
+ static char_u *
+ reg_getline_submatch(lnum)
+ linenr_T lnum;
+ {
+ char_u *s;
+ linenr_T save_first = reg_firstlnum;
+ linenr_T save_max = reg_maxline;
+
+ reg_firstlnum = submatch_firstlnum;
+ reg_maxline = submatch_maxline;
+
+ s = reg_getline(lnum);
+
+ reg_firstlnum = save_first;
+ reg_maxline = save_max;
+ return s;
+ }
+
+ /*
* Used for the submatch() function: get the string from the n'th submatch in
* allocated memory.
* Returns NULL when not in a ":s" command and for a non-existing submatch.
***************
*** 7241,7247 ****
if (lnum < 0 || submatch_mmatch->endpos[no].lnum < 0)
return NULL;
! s = reg_getline(lnum) + submatch_mmatch->startpos[no].col;
if (s == NULL) /* anti-crash check, cannot happen? */
break;
if (submatch_mmatch->endpos[no].lnum == lnum)
--- 7267,7273 ----
if (lnum < 0 || submatch_mmatch->endpos[no].lnum < 0)
return NULL;
! s = reg_getline_submatch(lnum) + submatch_mmatch->startpos[no].col;
if (s == NULL) /* anti-crash check, cannot happen? */
break;
if (submatch_mmatch->endpos[no].lnum == lnum)
***************
*** 7267,7273 ****
++lnum;
while (lnum < submatch_mmatch->endpos[no].lnum)
{
! s = reg_getline(lnum++);
if (round == 2)
STRCPY(retval + len, s);
len += (int)STRLEN(s);
--- 7293,7299 ----
++lnum;
while (lnum < submatch_mmatch->endpos[no].lnum)
{
! s = reg_getline_submatch(lnum++);
if (round == 2)
STRCPY(retval + len, s);
len += (int)STRLEN(s);
***************
*** 7276,7282 ****
++len;
}
if (round == 2)
! STRNCPY(retval + len, reg_getline(lnum),
submatch_mmatch->endpos[no].col);
len += submatch_mmatch->endpos[no].col;
if (round == 2)
--- 7302,7308 ----
++len;
}
if (round == 2)
! STRNCPY(retval + len, reg_getline_submatch(lnum),
submatch_mmatch->endpos[no].col);
len += submatch_mmatch->endpos[no].col;
if (round == 2)
*** ../vim-7.2.307/src/version.c 2009-11-25 18:21:48.000000000 +0100
--- src/version.c 2009-11-25 19:50:16.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 308,
/**/
--
Engineers are always delighted to share wisdom, even in areas in which they
have no experience whatsoever. Their logic provides them with inherent
insight into any field of expertise. This can be a problem when dealing with
the illogical people who believe that knowledge can only be derived through
experience.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

48
7.2.309 Normal file
View file

@ -0,0 +1,48 @@
To: vim-dev@vim.org
Subject: Patch 7.2.309
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.309 (after 7.2.308)
Problem: Warning for missing function prototype. (Patrick Texier)
Solution: Add the prototype.
Files: src/regexp.c
*** ../vim-7.2.308/src/regexp.c 2009-11-25 19:51:56.000000000 +0100
--- src/regexp.c 2009-11-26 20:39:18.000000000 +0100
***************
*** 7214,7219 ****
--- 7214,7221 ----
}
#ifdef FEAT_EVAL
+ static char_u *reg_getline_submatch __ARGS((linenr_T lnum));
+
/*
* Call reg_getline() with the line numbers from the submatch. If a
* substitute() was used the reg_maxline and other values have been
*** ../vim-7.2.308/src/version.c 2009-11-25 19:51:56.000000000 +0100
--- src/version.c 2009-11-26 20:40:11.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 309,
/**/
--
Female engineers become irresistible at the age of consent and remain that
way until about thirty minutes after their clinical death. Longer if it's a
warm day.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

63
7.2.310 Normal file
View file

@ -0,0 +1,63 @@
To: vim-dev@vim.org
Subject: Patch 7.2.310
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.310
Problem: When a filetype plugin in ~/.vim/ftdetect uses ":setfiletype" and
the file starts with a "# comment" it gets "conf" filetype.
Solution: Check for "conf" filetype after using ftdetect plugins.
Files: runtime/filetype.vim
*** ../vim-7.2.309/runtime/filetype.vim 2008-08-06 18:56:36.000000000 +0200
--- runtime/filetype.vim 2009-12-02 12:08:42.000000000 +0100
***************
*** 2400,2405 ****
--- 2435,2446 ----
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
+
+ " Use the filetype detect plugins. They may overrule any of the previously
+ " detected filetypes.
+ runtime! ftdetect/*.vim
+
+
" Generic configuration file (check this last, it's just guessing!)
au BufNewFile,BufRead,StdinReadPost *
\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
***************
*** 2408,2417 ****
\ setf conf |
\ endif
- " Use the plugin-filetype checks last, they may overrule any of the previously
- " detected filetypes.
- runtime! ftdetect/*.vim
-
augroup END
--- 2449,2454 ----
*** ../vim-7.2.309/src/version.c 2009-11-26 20:41:19.000000000 +0100
--- src/version.c 2009-12-02 12:05:27.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 310,
/**/
--
A)bort, R)etry, P)lease don't bother me again
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.2.311 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.2.311
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.311
Problem: Can't compile with FreeMiNT.
Solution: Change #ifdef for limits.h. (Alan Hourihane)
Files: src/fileio.c
*** ../vim-7.2.310/src/fileio.c 2009-11-18 20:12:15.000000000 +0100
--- src/fileio.c 2009-12-02 13:30:07.000000000 +0100
***************
*** 21,27 ****
#include "vim.h"
! #ifdef __TANDEM
# include <limits.h> /* for SSIZE_MAX */
#endif
--- 21,27 ----
#include "vim.h"
! #if defined(__TANDEM) || defined(__MINT__)
# include <limits.h> /* for SSIZE_MAX */
#endif
*** ../vim-7.2.310/src/version.c 2009-12-02 12:08:57.000000000 +0100
--- src/version.c 2009-12-02 13:31:46.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 311,
/**/
--
hundred-and-one symptoms of being an internet addict:
3. Your bookmark takes 15 minutes to scroll from top to bottom.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

312
7.2.312 Normal file
View file

@ -0,0 +1,312 @@
To: vim-dev@vim.org
Subject: Patch 7.2.312
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.312
Problem: iconv() returns an invalid character sequence when conversion
fails. It should return an empty string. (Yongwei Wu)
Solution: Be more strict about invalid characters in the input.
Files: src/mbyte.c
*** ../vim-7.2.311/src/mbyte.c 2009-06-16 15:23:07.000000000 +0200
--- src/mbyte.c 2009-11-25 16:10:44.000000000 +0100
***************
*** 133,154 ****
static int dbcs_ptr2cells_len __ARGS((char_u *p, int size));
static int dbcs_ptr2char __ARGS((char_u *p));
! /* Lookup table to quickly get the length in bytes of a UTF-8 character from
! * the first byte of a UTF-8 string. Bytes which are illegal when used as the
! * first byte have a one, because these will be used separately. */
static char utf8len_tab[256] =
{
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /*bogus*/
! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /*bogus*/
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1,
};
/*
* XIM often causes trouble. Define XIM_DEBUG to get a log of XIM callbacks
* in the "xim.log" file.
*/
--- 133,172 ----
static int dbcs_ptr2cells_len __ARGS((char_u *p, int size));
static int dbcs_ptr2char __ARGS((char_u *p));
! /*
! * Lookup table to quickly get the length in bytes of a UTF-8 character from
! * the first byte of a UTF-8 string.
! * Bytes which are illegal when used as the first byte have a 1.
! * The NUL byte has length 1.
! */
static char utf8len_tab[256] =
{
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
! 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1,
};
/*
+ * Like utf8len_tab above, but using a zero for illegal lead bytes.
+ */
+ static char utf8len_tab_zero[256] =
+ {
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,0,0,
+ };
+
+ /*
* XIM often causes trouble. Define XIM_DEBUG to get a log of XIM callbacks
* in the "xim.log" file.
*/
***************
*** 1352,1358 ****
if (size > 0 && *p >= 0x80)
{
if (utf_ptr2len_len(p, size) < utf8len_tab[*p])
! return 1;
c = utf_ptr2char(p);
/* An illegal byte is displayed as <xx>. */
if (utf_ptr2len(p) == 1 || c == NUL)
--- 1370,1376 ----
if (size > 0 && *p >= 0x80)
{
if (utf_ptr2len_len(p, size) < utf8len_tab[*p])
! return 1; /* truncated */
c = utf_ptr2char(p);
/* An illegal byte is displayed as <xx>. */
if (utf_ptr2len(p) == 1 || c == NUL)
***************
*** 1473,1479 ****
if (p[0] < 0x80) /* be quick for ASCII */
return p[0];
! len = utf8len_tab[p[0]];
if (len > 1 && (p[1] & 0xc0) == 0x80)
{
if (len == 2)
--- 1491,1497 ----
if (p[0] < 0x80) /* be quick for ASCII */
return p[0];
! len = utf8len_tab_zero[p[0]];
if (len > 1 && (p[1] & 0xc0) == 0x80)
{
if (len == 2)
***************
*** 1723,1728 ****
--- 1741,1747 ----
/*
* Return length of UTF-8 character, obtained from the first byte.
* "b" must be between 0 and 255!
+ * Returns 1 for an invalid first byte value.
*/
int
utf_byte2len(b)
***************
*** 1737,1742 ****
--- 1756,1762 ----
* Returns 1 for "".
* Returns 1 for an illegal byte sequence (also in incomplete byte seq.).
* Returns number > "size" for an incomplete byte sequence.
+ * Never returns zero.
*/
int
utf_ptr2len_len(p, size)
***************
*** 1747,1757 ****
int i;
int m;
! if (*p == NUL)
! return 1;
! m = len = utf8len_tab[*p];
if (len > size)
m = size; /* incomplete byte sequence. */
for (i = 1; i < m; ++i)
if ((p[i] & 0xc0) != 0x80)
return 1;
--- 1767,1779 ----
int i;
int m;
! len = utf8len_tab[*p];
! if (len == 1)
! return 1; /* NUL, ascii or illegal lead byte */
if (len > size)
m = size; /* incomplete byte sequence. */
+ else
+ m = len;
for (i = 1; i < m; ++i)
if ((p[i] & 0xc0) != 0x80)
return 1;
***************
*** 2505,2510 ****
--- 2527,2533 ----
/*
* mb_head_off() function pointer.
* Return offset from "p" to the first byte of the character it points into.
+ * If "p" points to the NUL at the end of the string return 0.
* Returns 0 when already at the first byte of a character.
*/
int
***************
*** 2524,2530 ****
/* It can't be a trailing byte when not using DBCS, at the start of the
* string or the previous byte can't start a double-byte. */
! if (p <= base || MB_BYTE2LEN(p[-1]) == 1)
return 0;
/* This is slow: need to start at the base and go forward until the
--- 2547,2553 ----
/* It can't be a trailing byte when not using DBCS, at the start of the
* string or the previous byte can't start a double-byte. */
! if (p <= base || MB_BYTE2LEN(p[-1]) == 1 || *p == NUL)
return 0;
/* This is slow: need to start at the base and go forward until the
***************
*** 2552,2558 ****
* lead byte in the current cell. */
if (p <= base
|| (enc_dbcs == DBCS_JPNU && p[-1] == 0x8e)
! || MB_BYTE2LEN(p[-1]) == 1)
return 0;
/* This is slow: need to start at the base and go forward until the
--- 2575,2582 ----
* lead byte in the current cell. */
if (p <= base
|| (enc_dbcs == DBCS_JPNU && p[-1] == 0x8e)
! || MB_BYTE2LEN(p[-1]) == 1
! || *p == NUL)
return 0;
/* This is slow: need to start at the base and go forward until the
***************
*** 2578,2583 ****
--- 2602,2608 ----
char_u *q;
char_u *s;
int c;
+ int len;
#ifdef FEAT_ARABIC
char_u *j;
#endif
***************
*** 2597,2604 ****
--q;
/* Check for illegal sequence. Do allow an illegal byte after where we
* started. */
! if (utf8len_tab[*q] != (int)(s - q + 1)
! && utf8len_tab[*q] != (int)(p - q + 1))
return 0;
if (q <= base)
--- 2622,2629 ----
--q;
/* Check for illegal sequence. Do allow an illegal byte after where we
* started. */
! len = utf8len_tab[*q];
! if (len != (int)(s - q + 1) && len != (int)(p - q + 1))
return 0;
if (q <= base)
***************
*** 2810,2818 ****
while (end == NULL ? *p != NUL : p < end)
{
! if ((*p & 0xc0) == 0x80)
return FALSE; /* invalid lead byte */
- l = utf8len_tab[*p];
if (end != NULL && p + l > end)
return FALSE; /* incomplete byte sequence */
++p;
--- 2835,2843 ----
while (end == NULL ? *p != NUL : p < end)
{
! l = utf8len_tab_zero[*p];
! if (l == 0)
return FALSE; /* invalid lead byte */
if (end != NULL && p + l > end)
return FALSE; /* incomplete byte sequence */
++p;
***************
*** 6117,6128 ****
d = retval;
for (i = 0; i < len; ++i)
{
! l = utf_ptr2len(ptr + i);
if (l == 0)
*d++ = NUL;
else if (l == 1)
{
! if (unconvlenp != NULL && utf8len_tab[ptr[i]] > len - i)
{
/* Incomplete sequence at the end. */
*unconvlenp = len - i;
--- 6142,6161 ----
d = retval;
for (i = 0; i < len; ++i)
{
! l = utf_ptr2len_len(ptr + i, len - i);
if (l == 0)
*d++ = NUL;
else if (l == 1)
{
! int l_w = utf8len_tab_zero[ptr[i]];
!
! if (l_w == 0)
! {
! /* Illegal utf-8 byte cannot be converted */
! vim_free(retval);
! return NULL;
! }
! if (unconvlenp != NULL && l_w > len - i)
{
/* Incomplete sequence at the end. */
*unconvlenp = len - i;
*** ../vim-7.2.311/src/version.c 2009-12-02 13:32:10.000000000 +0100
--- src/version.c 2009-12-02 15:00:23.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 312,
/**/
--
hundred-and-one symptoms of being an internet addict:
6. You refuse to go to a vacation spot with no electricity and no phone lines.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

117
7.2.313 Normal file
View file

@ -0,0 +1,117 @@
To: vim-dev@vim.org
Subject: Patch 7.2.313
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.313
Problem: Command line completion doesn't work after "%:h" and similar.
Solution: Expand these items before doing the completion.
Files: src/ex_getln.c, src/misc1.c, src/proto/misc1.pro
*** ../vim-7.2.312/src/ex_getln.c 2009-09-18 17:24:54.000000000 +0200
--- src/ex_getln.c 2009-12-02 16:40:06.000000000 +0100
***************
*** 4422,4428 ****
flags |= EW_FILE;
else
flags = (flags | EW_DIR) & ~EW_FILE;
! ret = expand_wildcards(1, &pat, num_file, file, flags);
if (free_pat)
vim_free(pat);
return ret;
--- 4422,4429 ----
flags |= EW_FILE;
else
flags = (flags | EW_DIR) & ~EW_FILE;
! /* Expand wildcards, supporting %:h and the like. */
! ret = expand_wildcards_eval(&pat, num_file, file, flags);
if (free_pat)
vim_free(pat);
return ret;
*** ../vim-7.2.312/src/misc1.c 2009-11-17 16:08:12.000000000 +0100
--- src/misc1.c 2009-12-02 17:06:49.000000000 +0100
***************
*** 8447,8452 ****
--- 8447,8492 ----
}
/*
+ * Invoke expand_wildcards() for one pattern.
+ * Expand items like "%:h" before the expansion.
+ * Returns OK or FAIL.
+ */
+ int
+ expand_wildcards_eval(pat, num_file, file, flags)
+ char_u **pat; /* pointer to input pattern */
+ int *num_file; /* resulting number of files */
+ char_u ***file; /* array of resulting files */
+ int flags; /* EW_DIR, etc. */
+ {
+ int ret = FAIL;
+ char_u *eval_pat = NULL;
+ char_u *exp_pat = *pat;
+ char_u *ignored_msg;
+ int usedlen;
+
+ if (*exp_pat == '%' || *exp_pat == '#' || *exp_pat == '<')
+ {
+ ++emsg_off;
+ eval_pat = eval_vars(exp_pat, exp_pat, &usedlen,
+ NULL, &ignored_msg, NULL);
+ --emsg_off;
+ if (eval_pat != NULL)
+ exp_pat = concat_str(eval_pat, exp_pat + usedlen);
+ }
+
+ if (exp_pat != NULL)
+ ret = expand_wildcards(1, &exp_pat, num_file, file, flags);
+
+ if (eval_pat != NULL)
+ {
+ vim_free(exp_pat);
+ vim_free(eval_pat);
+ }
+
+ return ret;
+ }
+
+ /*
* Expand wildcards. Calls gen_expand_wildcards() and removes files matching
* 'wildignore'.
* Returns OK or FAIL.
*** ../vim-7.2.312/src/proto/misc1.pro 2007-09-26 22:36:32.000000000 +0200
--- src/proto/misc1.pro 2009-12-02 16:41:52.000000000 +0100
***************
*** 85,90 ****
--- 85,91 ----
int vim_fexists __ARGS((char_u *fname));
void line_breakcheck __ARGS((void));
void fast_breakcheck __ARGS((void));
+ int expand_wildcards_eval __ARGS((char_u **pat, int *num_file, char_u ***file, int flags));
int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
int match_suffix __ARGS((char_u *fname));
int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
*** ../vim-7.2.312/src/version.c 2009-12-02 15:03:24.000000000 +0100
--- src/version.c 2009-12-02 17:14:02.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 313,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

56
7.2.314 Normal file
View file

@ -0,0 +1,56 @@
To: vim-dev@vim.org
Subject: Patch 7.2.314
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.314
Problem: Missing function in small build.
Solution: Always include concat_str.
Files: src/misc1.c
*** ../vim-7.2.313/src/misc1.c 2009-12-02 17:15:04.000000000 +0100
--- src/misc1.c 2009-12-02 17:44:55.000000000 +0100
***************
*** 4666,4672 ****
return dest;
}
- #if defined(FEAT_EVAL) || defined(FEAT_GETTEXT) || defined(PROTO)
/*
* Concatenate two strings and return the result in allocated memory.
* Returns NULL when out of memory.
--- 4666,4671 ----
***************
*** 4687,4693 ****
}
return dest;
}
- #endif
/*
* Add a path separator to a file name, unless it already ends in a path
--- 4686,4691 ----
*** ../vim-7.2.313/src/version.c 2009-12-02 17:15:04.000000000 +0100
--- src/version.c 2009-12-02 17:47:18.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 314,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

134
7.2.315 Normal file
View file

@ -0,0 +1,134 @@
To: vim-dev@vim.org
Subject: Patch 7.2.315
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.315
Problem: Python libs can't be found on 64 bit system.
Solution: Add lib64 to the list of directories. (Michael Henry)
Files: src/auto/configure, src/configure.in
*** ../vim-7.2.314/src/auto/configure 2009-11-17 17:13:03.000000000 +0100
--- src/auto/configure 2009-12-02 17:21:20.000000000 +0100
***************
*** 5126,5132 ****
vi_cv_path_python_conf=
for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
! for subdir in lib share; do
d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
if test -d "$d" && test -f "$d/config.c"; then
vi_cv_path_python_conf="$d"
--- 5126,5132 ----
vi_cv_path_python_conf=
for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
! for subdir in lib64 lib share; do
d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
if test -d "$d" && test -f "$d/config.c"; then
vi_cv_path_python_conf="$d"
***************
*** 13718,13725 ****
$as_echo "pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group" >&6; }
else
vim_cv_tty_group=world
! { $as_echo "$as_me:$LINENO: result: ptys are world accessable" >&5
! $as_echo "ptys are world accessable" >&6; }
fi
else
--- 13718,13725 ----
$as_echo "pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group" >&6; }
else
vim_cv_tty_group=world
! { $as_echo "$as_me:$LINENO: result: ptys are world accessible" >&5
! $as_echo "ptys are world accessible" >&6; }
fi
else
***************
*** 13730,13737 ****
( exit $ac_status )
vim_cv_tty_group=world
! { $as_echo "$as_me:$LINENO: result: can't determine - assume ptys are world accessable" >&5
! $as_echo "can't determine - assume ptys are world accessable" >&6; }
fi
rm -rf conftest.dSYM
--- 13730,13737 ----
( exit $ac_status )
vim_cv_tty_group=world
! { $as_echo "$as_me:$LINENO: result: can't determine - assume ptys are world accessible" >&5
! $as_echo "can't determine - assume ptys are world accessible" >&6; }
fi
rm -rf conftest.dSYM
*** ../vim-7.2.314/src/configure.in 2009-11-17 17:13:03.000000000 +0100
--- src/configure.in 2009-12-02 17:21:10.000000000 +0100
***************
*** 686,692 ****
[
vi_cv_path_python_conf=
for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
! for subdir in lib share; do
d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
if test -d "$d" && test -f "$d/config.c"; then
vi_cv_path_python_conf="$d"
--- 686,692 ----
[
vi_cv_path_python_conf=
for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
! for subdir in lib64 lib share; do
d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
if test -d "$d" && test -f "$d/config.c"; then
vi_cv_path_python_conf="$d"
***************
*** 2557,2567 ****
AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
else
vim_cv_tty_group=world
! AC_MSG_RESULT([ptys are world accessable])
fi
],[
vim_cv_tty_group=world
! AC_MSG_RESULT([can't determine - assume ptys are world accessable])
],[
AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
])
--- 2557,2567 ----
AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
else
vim_cv_tty_group=world
! AC_MSG_RESULT([ptys are world accessible])
fi
],[
vim_cv_tty_group=world
! AC_MSG_RESULT([can't determine - assume ptys are world accessible])
],[
AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
])
*** ../vim-7.2.314/src/version.c 2009-12-02 17:47:46.000000000 +0100
--- src/version.c 2009-12-02 17:57:39.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 315,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

83
7.2.316 Normal file
View file

@ -0,0 +1,83 @@
To: vim-dev@vim.org
Subject: Patch 7.2.316
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.316
Problem: May get multiple _FORTIFY_SOURCE arguments. (Tony Mechelynck)
Solution: First remove all these arguments and then add the one we want.
(Dominique Pelle)
Files: src/auto/configure, src/configure.in
*** ../vim-7.2.315/src/auto/configure 2009-12-02 17:59:08.000000000 +0100
--- src/auto/configure 2009-12-16 17:05:59.000000000 +0100
***************
*** 17185,17194 ****
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
! { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
$as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
if test "$gccmajor" -gt "3"; then
! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
else
--- 17185,17194 ----
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
! { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
$as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
if test "$gccmajor" -gt "3"; then
! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
else
*** ../vim-7.2.315/src/configure.in 2009-12-02 17:59:08.000000000 +0100
--- src/configure.in 2009-12-16 17:05:55.000000000 +0100
***************
*** 3241,3249 ****
fi
dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
if test "$gccmajor" -gt "3"; then
! CFLAGS=`echo "$CFLAGS -D_FORTIFY_SOURCE=1" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g' -e 's/-D_FORTIFY_SOURCE=2//g'`
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
--- 3241,3250 ----
fi
dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
+ dnl Also remove duplicate _FORTIFY_SOURCE arguments.
AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
if test "$gccmajor" -gt "3"; then
! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
*** ../vim-7.2.315/src/version.c 2009-12-02 17:59:08.000000000 +0100
--- src/version.c 2009-12-16 17:12:25.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 316,
/**/
--
Have you heard about the new Beowulf cluster? It's so fast, it executes
an infinite loop in 6 seconds.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

148
7.2.317 Normal file
View file

@ -0,0 +1,148 @@
To: vim-dev@vim.org
Subject: Patch 7.2.317
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.317
Problem: Memory leak when adding a highlight group with unprintable
characters, resulting in E669.
Solution: Free the memory. And fix a few typos. (Dominique Pelle)
Files: src/syntax.c
*** ../vim-7.2.316/src/syntax.c 2009-05-17 13:30:58.000000000 +0200
--- src/syntax.c 2009-12-16 18:09:05.000000000 +0100
***************
*** 206,212 ****
static int current_attr = 0; /* attr of current syntax word */
#ifdef FEAT_EVAL
static int current_id = 0; /* ID of current char for syn_get_id() */
! static int current_trans_id = 0; /* idem, transparancy removed */
#endif
typedef struct syn_cluster_S
--- 206,212 ----
static int current_attr = 0; /* attr of current syntax word */
#ifdef FEAT_EVAL
static int current_id = 0; /* ID of current char for syn_get_id() */
! static int current_trans_id = 0; /* idem, transparency removed */
#endif
typedef struct syn_cluster_S
***************
*** 282,288 ****
int si_idx; /* index of syntax pattern or
KEYWORD_IDX */
int si_id; /* highlight group ID for keywords */
! int si_trans_id; /* idem, transparancy removed */
int si_m_lnum; /* lnum of the match */
int si_m_startcol; /* starting column of the match */
lpos_T si_m_endpos; /* just after end posn of the match */
--- 282,288 ----
int si_idx; /* index of syntax pattern or
KEYWORD_IDX */
int si_id; /* highlight group ID for keywords */
! int si_trans_id; /* idem, transparency removed */
int si_m_lnum; /* lnum of the match */
int si_m_startcol; /* starting column of the match */
lpos_T si_m_endpos; /* just after end posn of the match */
***************
*** 1274,1280 ****
dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
/*
! * Go throught the list to find the "tick" for the oldest entry that can
* be removed. Set "above" when the "tick" for the oldest entry is above
* "b_sst_lasttick" (the display tick wraps around).
*/
--- 1274,1280 ----
dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
/*
! * Go through the list to find the "tick" for the oldest entry that can
* be removed. Set "above" when the "tick" for the oldest entry is above
* "b_sst_lasttick" (the display tick wraps around).
*/
***************
*** 2319,2325 ****
? (syn_buf->b_spell_cluster_id == 0)
: (syn_buf->b_syn_spell == SYNSPL_TOP);
! /* nextgroup ends at end of line, unless "skipnl" or "skipemtpy" present */
if (current_next_list != NULL
&& syn_getcurline()[current_col + 1] == NUL
&& !(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY)))
--- 2319,2325 ----
? (syn_buf->b_spell_cluster_id == 0)
: (syn_buf->b_syn_spell == SYNSPL_TOP);
! /* nextgroup ends at end of line, unless "skipnl" or "skipempty" present */
if (current_next_list != NULL
&& syn_getcurline()[current_col + 1] == NUL
&& !(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY)))
***************
*** 6108,6114 ****
win_T *wp;
long lnum;
colnr_T col;
! int trans; /* remove transparancy */
int *spellp; /* return: can do spell checking */
int keep_state; /* keep state of char at "col" */
{
--- 6108,6114 ----
win_T *wp;
long lnum;
colnr_T col;
! int trans; /* remove transparency */
int *spellp; /* return: can do spell checking */
int keep_state; /* keep state of char at "col" */
{
***************
*** 7523,7529 ****
#if defined(FEAT_GUI) || defined(PROTO)
/*
* Set the normal foreground and background colors according to the "Normal"
! * highlighighting group. For X11 also set "Menu", "Scrollbar", and
* "Tooltip" colors.
*/
void
--- 7523,7529 ----
#if defined(FEAT_GUI) || defined(PROTO)
/*
* Set the normal foreground and background colors according to the "Normal"
! * highlighting group. For X11 also set "Menu", "Scrollbar", and
* "Tooltip" colors.
*/
void
***************
*** 8647,8652 ****
--- 8647,8653 ----
if (!vim_isprintc(*p))
{
EMSG(_("E669: Unprintable character in group name"));
+ vim_free(name);
return 0;
}
else if (!ASCII_ISALNUM(*p) && *p != '_')
*** ../vim-7.2.316/src/version.c 2009-12-16 17:14:08.000000000 +0100
--- src/version.c 2009-12-16 18:09:14.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 317,
/**/
--
hundred-and-one symptoms of being an internet addict:
35. Your husband tells you he's had the beard for 2 months.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

91
7.2.318 Normal file
View file

@ -0,0 +1,91 @@
To: vim-dev@vim.org
Subject: Patch 7.2.318
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.318
Problem: Wrong locale value breaks floating point numbers for gvim.
Solution: Set the locale again after doing GUI inits. (Dominique Pelle)
Files: src/main.c
*** ../vim-7.2.317/src/main.c 2009-11-17 12:31:30.000000000 +0100
--- src/main.c 2009-12-16 18:23:46.000000000 +0100
***************
*** 366,379 ****
* Check if the GUI can be started. Reset gui.starting if not.
* Don't know about other systems, stay on the safe side and don't check.
*/
! if (gui.starting && gui_init_check() == FAIL)
{
! gui.starting = FALSE;
! /* When running "evim" or "gvim -y" we need the menus, exit if we
! * don't have them. */
! if (params.evim_mode)
! mch_exit(1);
}
# endif
#endif
--- 366,386 ----
* Check if the GUI can be started. Reset gui.starting if not.
* Don't know about other systems, stay on the safe side and don't check.
*/
! if (gui.starting)
{
! if (gui_init_check() == FAIL)
! {
! gui.starting = FALSE;
! /* When running "evim" or "gvim -y" we need the menus, exit if we
! * don't have them. */
! if (params.evim_mode)
! mch_exit(1);
! }
! # if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
! /* Re-initialize locale, it may have been altered by gui_init_check() */
! init_locale();
! # endif
}
# endif
#endif
***************
*** 3685,3691 ****
}
else if (STRICMP(argv[i], "--servername") == 0)
{
! /* Alredy processed. Take it out of the command line */
i++;
continue;
}
--- 3692,3698 ----
}
else if (STRICMP(argv[i], "--servername") == 0)
{
! /* Already processed. Take it out of the command line */
i++;
continue;
}
*** ../vim-7.2.317/src/version.c 2009-12-16 18:13:04.000000000 +0100
--- src/version.c 2009-12-16 18:26:24.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 318,
/**/
--
hundred-and-one symptoms of being an internet addict:
36. You miss more than five meals a week downloading the latest games from
Apogee.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

63
7.2.319 Normal file
View file

@ -0,0 +1,63 @@
To: vim-dev@vim.org
Subject: Patch 7.2.319
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.319
Problem: Motif: accessing freed memory when cancelling font dialog.
Solution: Destroy the widget only after accessing it. (Dominique Pelle)
Files: src/gui_xmdlg.c
*** ../vim-7.2.318/src/gui_xmdlg.c 2009-11-03 12:53:44.000000000 +0100
--- src/gui_xmdlg.c 2009-12-16 18:39:21.000000000 +0100
***************
*** 1274,1286 ****
XtAppProcessEvent(XtWidgetToApplicationContext(data->dialog),
(XtInputMask)XtIMAll);
- XtDestroyWidget(data->dialog);
-
if (data->old)
{
XFreeFont(XtDisplay(data->dialog), data->old);
XmFontListFree(data->old_list);
}
gui_motif_synch_fonts();
--- 1274,1285 ----
XtAppProcessEvent(XtWidgetToApplicationContext(data->dialog),
(XtInputMask)XtIMAll);
if (data->old)
{
XFreeFont(XtDisplay(data->dialog), data->old);
XmFontListFree(data->old_list);
}
+ XtDestroyWidget(data->dialog);
gui_motif_synch_fonts();
*** ../vim-7.2.318/src/version.c 2009-12-16 18:27:29.000000000 +0100
--- src/version.c 2009-12-16 18:40:06.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 319,
/**/
--
hundred-and-one symptoms of being an internet addict:
37. You start looking for hot HTML addresses in public restrooms.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

199
7.2.320 Normal file
View file

@ -0,0 +1,199 @@
To: vim-dev@vim.org
Subject: Patch 7.2.320
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.320
Problem: Unused function in Mzscheme interface.
Solution: Remove the function and what depends on it. (Dominique Pelle)
Files: src/if_mzsch.c, src/proto/if_mzsch.pro
*** ../vim-7.2.319/src/if_mzsch.c 2009-09-11 12:20:47.000000000 +0200
--- src/if_mzsch.c 2009-12-16 19:01:04.000000000 +0100
***************
*** 70,83 ****
Scheme_Object *port;
} Port_Info;
- /* info for do_apply */
- typedef struct
- {
- Scheme_Object *proc;
- int argc;
- Scheme_Object **argv;
- } Apply_Info;
-
/*
*========================================================================
* Vim-Control Commands
--- 70,75 ----
***************
*** 160,166 ****
static Scheme_Object *extract_exn_message(Scheme_Object *v);
static Scheme_Object *do_eval(void *, int noargc, Scheme_Object **noargv);
static Scheme_Object *do_load(void *, int noargc, Scheme_Object **noargv);
- static Scheme_Object *do_apply(void *, int noargc, Scheme_Object **noargv);
static void register_vim_exn(void);
static vim_mz_buffer *get_buffer_arg(const char *fname, int argnum,
int argc, Scheme_Object **argv);
--- 152,157 ----
***************
*** 1056,1062 ****
MZ_GC_REG();
config = scheme_config;
MZ_GC_CHECK();
! /* recreate ports each call effectivelly clearing these ones */
curout = scheme_make_string_output_port();
MZ_GC_CHECK();
curerr = scheme_make_string_output_port();
--- 1047,1053 ----
MZ_GC_REG();
config = scheme_config;
MZ_GC_CHECK();
! /* recreate ports each call effectively clearing these ones */
curout = scheme_make_string_output_port();
MZ_GC_CHECK();
curerr = scheme_make_string_output_port();
***************
*** 1196,1231 ****
}
}
- /*
- * apply MzScheme procedure with arguments,
- * handling errors
- */
- Scheme_Object *
- mzvim_apply(Scheme_Object *proc, int argc, Scheme_Object **argv)
- {
- if (mzscheme_init())
- return FAIL;
- else
- {
- Apply_Info data = {NULL, 0, NULL};
- Scheme_Object *ret = NULL;
-
- MZ_GC_DECL_REG(5);
- MZ_GC_VAR_IN_REG(0, ret);
- MZ_GC_VAR_IN_REG(1, data.proc);
- MZ_GC_ARRAY_VAR_IN_REG(2, data.argv, argc);
- MZ_GC_REG();
-
- data.proc = proc;
- data.argc = argc;
- data.argv = argv;
-
- eval_with_exn_handling(&data, do_apply, &ret);
- MZ_GC_UNREG();
- return ret;
- }
- }
-
static Scheme_Object *
do_load(void *data, int noargc, Scheme_Object **noargv)
{
--- 1187,1192 ----
***************
*** 1257,1263 ****
MZ_GC_CHECK();
}
! /* errors will be caught in do_mzscheme_comamnd and ex_mzfile */
scheme_close_input_port(pinfo->port);
MZ_GC_CHECK();
pinfo->port = NULL;
--- 1218,1224 ----
MZ_GC_CHECK();
}
! /* errors will be caught in do_mzscheme_command and ex_mzfile */
scheme_close_input_port(pinfo->port);
MZ_GC_CHECK();
pinfo->port = NULL;
***************
*** 1348,1360 ****
return scheme_eval_string_all((char *)s, environment, TRUE);
}
- static Scheme_Object *
- do_apply(void *a, int noargc, Scheme_Object **noargv)
- {
- Apply_Info *info = (Apply_Info *)a;
- return scheme_apply(info->proc, info->argc, info->argv);
- }
-
/*
*========================================================================
* 3. MzScheme I/O Handlers
--- 1309,1314 ----
***************
*** 2128,2134 ****
static Scheme_Object *
set_buffer_line(void *data, int argc, Scheme_Object **argv)
{
! /* First of all, we check the the of the supplied MzScheme object.
* There are three cases:
* 1. #f - this is a deletion.
* 2. A string - this is a replacement.
--- 2082,2088 ----
static Scheme_Object *
set_buffer_line(void *data, int argc, Scheme_Object **argv)
{
! /* First of all, we check the value of the supplied MzScheme object.
* There are three cases:
* 1. #f - this is a deletion.
* 2. A string - this is a replacement.
***************
*** 2428,2434 ****
/*
* (insert-buff-line-list {linenr} {string/string-list} [buffer])
*
! * Insert a number of lines into the specified buffer after the specifed line.
* The line number is in Vim format (1-based). The lines to be inserted are
* given as an MzScheme list of string objects or as a single string. The lines
* to be added are checked for validity and correct format. Errors are
--- 2382,2388 ----
/*
* (insert-buff-line-list {linenr} {string/string-list} [buffer])
*
! * Insert a number of lines into the specified buffer after the specified line.
* The line number is in Vim format (1-based). The lines to be inserted are
* given as an MzScheme list of string objects or as a single string. The lines
* to be added are checked for validity and correct format. Errors are
*** ../vim-7.2.319/src/proto/if_mzsch.pro 2009-05-26 22:58:43.000000000 +0200
--- src/proto/if_mzsch.pro 2009-12-16 19:01:01.000000000 +0100
***************
*** 13,20 ****
void mzvim_check_threads __ARGS((void));
void mzvim_reset_timer __ARGS((void));
void *mzvim_eval_string __ARGS((char_u *str));
- struct Scheme_Object *mzvim_apply __ARGS((struct Scheme_Object *, int argc,
- struct Scheme_Object **));
int mzthreads_allowed __ARGS((void));
void mzscheme_main __ARGS((void));
/* vim: set ft=c : */
--- 13,18 ----
*** ../vim-7.2.319/src/version.c 2009-12-16 18:49:09.000000000 +0100
--- src/version.c 2009-12-16 18:53:48.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 320,
/**/
--
hundred-and-one symptoms of being an internet addict:
38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail
on the way back to bed.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

59
7.2.321 Normal file
View file

@ -0,0 +1,59 @@
To: vim-dev@vim.org
Subject: Patch 7.2.321
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.321
Problem: histadd() and searching with "*" fails to add entry to history
when it is empty.
Solution: Initialize the history. (Lech Lorens)
Files: src/eval.c, src/normal.c
*** ../vim-7.2.320/src/eval.c 2009-11-17 12:20:30.000000000 +0100
--- src/eval.c 2009-12-24 14:37:50.000000000 +0100
***************
*** 12014,12019 ****
--- 12014,12020 ----
str = get_tv_string_buf(&argvars[1], buf);
if (*str != NUL)
{
+ init_history();
add_to_history(histype, str, FALSE, NUL);
rettv->vval.v_number = TRUE;
return;
*** ../vim-7.2.320/src/normal.c 2009-05-17 13:30:58.000000000 +0200
--- src/normal.c 2009-12-24 14:38:28.000000000 +0100
***************
*** 5602,5607 ****
--- 5602,5608 ----
STRCAT(buf, "\\>");
#ifdef FEAT_CMDHIST
/* put pattern in search history */
+ init_history();
add_to_history(HIST_SEARCH, buf, TRUE, NUL);
#endif
normal_search(cap, cmdchar == '*' ? '/' : '?', buf, 0);
*** ../vim-7.2.320/src/version.c 2009-12-16 19:02:05.000000000 +0100
--- src/version.c 2009-12-24 14:39:46.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 321,
/**/
--
hundred-and-one symptoms of being an internet addict:
43. You tell the kids they can't use the computer because "Daddy's got work to
do" and you don't even have a job.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

49
7.2.322 Normal file
View file

@ -0,0 +1,49 @@
To: vim-dev@vim.org
Subject: Patch 7.2.322
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.322
Problem: Wrong indenting in virtual replace mode with CTRL-Y below a short
line.
Solution: Check for character to be NUL. (suggested by Lech Lorens)
Files: src/edit.c
*** ../vim-7.2.321/src/edit.c 2009-11-17 17:40:34.000000000 +0100
--- src/edit.c 2009-12-24 15:18:23.000000000 +0100
***************
*** 7397,7402 ****
--- 7397,7406 ----
int icase;
int i;
+ if (keytyped == NUL)
+ /* Can happen with CTRL-Y and CTRL-E on a short line. */
+ return FALSE;
+
#ifdef FEAT_EVAL
if (*curbuf->b_p_inde != NUL)
look = curbuf->b_p_indk; /* 'indentexpr' set: use 'indentkeys' */
*** ../vim-7.2.321/src/version.c 2009-12-24 15:00:31.000000000 +0100
--- src/version.c 2009-12-24 15:44:46.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 322,
/**/
--
hundred-and-one symptoms of being an internet addict:
45. You buy a Captain Kirk chair with a built-in keyboard and mouse.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

95
7.2.323 Normal file
View file

@ -0,0 +1,95 @@
To: vim-dev@vim.org
Subject: Patch 7.2.323 (extra)
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.2.323 (extra)
Problem: Balloon evaluation crashes on Win64.
Solution: Change pointer types. (Sergey Khorev)
Files: src/gui_w32.c
*** ../vim-7.2.322/src/gui_w32.c 2009-01-28 21:22:20.000000000 +0100
--- src/gui_w32.c 2009-12-24 16:06:41.000000000 +0100
***************
*** 212,223 ****
DWORD dwPlatformID;
} DLLVERSIONINFO;
typedef struct tagTOOLINFOA_NEW
{
UINT cbSize;
UINT uFlags;
HWND hwnd;
! UINT uId;
RECT rect;
HINSTANCE hinst;
LPSTR lpszText;
--- 212,225 ----
DWORD dwPlatformID;
} DLLVERSIONINFO;
+ #include <poppack.h>
+
typedef struct tagTOOLINFOA_NEW
{
UINT cbSize;
UINT uFlags;
HWND hwnd;
! UINT_PTR uId;
RECT rect;
HINSTANCE hinst;
LPSTR lpszText;
***************
*** 227,241 ****
typedef struct tagNMTTDISPINFO_NEW
{
NMHDR hdr;
! LPTSTR lpszText;
char szText[80];
HINSTANCE hinst;
UINT uFlags;
LPARAM lParam;
} NMTTDISPINFO_NEW;
- #include <poppack.h>
-
typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
#ifndef TTM_SETMAXTIPWIDTH
# define TTM_SETMAXTIPWIDTH (WM_USER+24)
--- 229,241 ----
typedef struct tagNMTTDISPINFO_NEW
{
NMHDR hdr;
! LPSTR lpszText;
char szText[80];
HINSTANCE hinst;
UINT uFlags;
LPARAM lParam;
} NMTTDISPINFO_NEW;
typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
#ifndef TTM_SETMAXTIPWIDTH
# define TTM_SETMAXTIPWIDTH (WM_USER+24)
*** ../vim-7.2.322/src/version.c 2009-12-24 15:45:53.000000000 +0100
--- src/version.c 2009-12-24 16:08:33.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 323,
/**/
--
hundred-and-one symptoms of being an internet addict:
46. Your wife makes a new rule: "The computer cannot come to bed."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

66
7.2.324 Normal file
View file

@ -0,0 +1,66 @@
To: vim-dev@vim.org
Subject: Patch 7.2.324
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.324
Problem: A negative column argument in setpos() may cause a crash.
Solution: Check for invalid column number. (James Vega)
Files: src/eval.c, src/misc2.c
*** ../vim-7.2.323/src/eval.c 2009-12-24 15:00:31.000000000 +0100
--- src/eval.c 2009-12-31 13:09:19.000000000 +0100
***************
*** 15542,15548 ****
{
if (list2fpos(&argvars[1], &pos, &fnum) == OK)
{
! --pos.col;
if (name[0] == '.' && name[1] == NUL)
{
/* set cursor */
--- 15542,15549 ----
{
if (list2fpos(&argvars[1], &pos, &fnum) == OK)
{
! if (--pos.col < 0)
! pos.col = 0;
if (name[0] == '.' && name[1] == NUL)
{
/* set cursor */
*** ../vim-7.2.323/src/misc2.c 2009-11-25 17:15:16.000000000 +0100
--- src/misc2.c 2009-12-31 13:12:36.000000000 +0100
***************
*** 528,533 ****
--- 528,535 ----
#endif
}
}
+ else if (curwin->w_cursor.col < 0)
+ curwin->w_cursor.col = 0;
#ifdef FEAT_VIRTUALEDIT
/* If virtual editing is on, we can leave the cursor on the old position,
*** ../vim-7.2.323/src/version.c 2009-12-24 16:11:24.000000000 +0100
--- src/version.c 2009-12-31 13:17:25.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 324,
/**/
--
"Thou shalt not follow the Null Pointer, for at its end Chaos and
Madness lie."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.2.325 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.2.325
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.325
Problem: A stray "w" in the startup vimrc file causes the edited file to be
replaced with an empty file. (Stone Kang).
Solution: Do not write a buffer when it has never been loaded.
Files: src/fileio.c
*** ../vim-7.2.324/src/fileio.c 2009-12-02 13:32:10.000000000 +0100
--- src/fileio.c 2009-12-31 14:08:31.000000000 +0100
***************
*** 2981,2986 ****
--- 2981,2993 ----
if (fname == NULL || *fname == NUL) /* safety check */
return FAIL;
+ if (buf->b_ml.ml_mfp == NULL)
+ {
+ /* This can happen during startup when there is a stray "w" in the
+ * vimrc file. */
+ EMSG(_(e_emptybuf));
+ return FAIL;
+ }
/*
* Disallow writing from .exrc and .vimrc in current directory for
*** ../vim-7.2.324/src/version.c 2009-12-31 13:18:05.000000000 +0100
--- src/version.c 2009-12-31 14:52:29.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 325,
/**/
--
hundred-and-one symptoms of being an internet addict:
74. Your most erotic dreams are about cybersex
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.2.326 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.2.326
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.326
Problem: Win32: $HOME doesn't work when %HOMEPATH% is not defined.
Solution: Use "\" for %HOMEPATH% when it is not defined.
Files: src/misc1.c
*** ../vim-7.2.325/src/misc1.c 2009-12-02 17:47:46.000000000 +0100
--- src/misc1.c 2010-01-05 19:53:23.000000000 +0100
***************
*** 3470,3476 ****
homedrive = mch_getenv((char_u *)"HOMEDRIVE");
homepath = mch_getenv((char_u *)"HOMEPATH");
! if (homedrive != NULL && homepath != NULL
&& STRLEN(homedrive) + STRLEN(homepath) < MAXPATHL)
{
sprintf((char *)NameBuff, "%s%s", homedrive, homepath);
--- 3470,3478 ----
homedrive = mch_getenv((char_u *)"HOMEDRIVE");
homepath = mch_getenv((char_u *)"HOMEPATH");
! if (homepath == NULL || *homepath == NUL)
! homepath = "\\";
! if (homedrive != NULL
&& STRLEN(homedrive) + STRLEN(homepath) < MAXPATHL)
{
sprintf((char *)NameBuff, "%s%s", homedrive, homepath);
*** ../vim-7.2.325/src/version.c 2009-12-31 14:52:48.000000000 +0100
--- src/version.c 2010-01-06 17:39:23.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 326,
/**/
--
From "know your smileys":
:q vi user saying, "How do I get out of this damn emacs editor?"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

323
7.2.327 Normal file
View file

@ -0,0 +1,323 @@
To: vim-dev@vim.org
Subject: Patch 7.2.327
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.327
Problem: Unused functions in Workshop.
Solution: Add "#if 0" and minor cleanup. (Dominique Pelle)
Files: src/workshop.c, src/integration.c, src/ingegration.h
*** ../vim-7.2.326/src/workshop.c 2009-05-21 23:25:38.000000000 +0200
--- src/workshop.c 2010-01-06 18:10:10.000000000 +0100
***************
*** 56,67 ****
static void load_window(char *, int lnum);
static void warp_to_pc(int);
#ifdef FEAT_BEVAL
! void workshop_beval_cb(BalloonEval *, int);
#endif
static char *fixAccelText(char *);
static void addMenu(char *, char *, char *);
static char *lookupVerb(char *, int);
- static int computeIndex(int, char_u *, int);
static void coloncmd(char *, Boolean);
extern Widget vimShell;
--- 56,67 ----
static void load_window(char *, int lnum);
static void warp_to_pc(int);
#ifdef FEAT_BEVAL
! void workshop_beval_cb(BalloonEval *, int);
! static int computeIndex(int, char_u *, int);
#endif
static char *fixAccelText(char *);
static void addMenu(char *, char *, char *);
static char *lookupVerb(char *, int);
static void coloncmd(char *, Boolean);
extern Widget vimShell;
***************
*** 1624,1631 ****
}
}
}
- #endif
-
static int
computeIndex(
--- 1624,1629 ----
***************
*** 1649,1654 ****
--- 1647,1653 ----
return -1;
}
+ #endif
static void
addMenu(
*** ../vim-7.2.326/src/integration.c 2008-06-24 22:27:10.000000000 +0200
--- src/integration.c 2010-01-06 18:18:11.000000000 +0100
***************
*** 78,84 ****
/* Functions private to this file */
static void workshop_connection_closed(void);
! static void messageFromEserve(XtPointer clientData, int *NOTUSED1, XtInputId *NOTUSED2);
static void workshop_disconnect(void);
static void workshop_sensitivity(int num, char *table);
static void adjust_sign_name(char *filename);
--- 78,84 ----
/* Functions private to this file */
static void workshop_connection_closed(void);
! static void messageFromEserve(XtPointer clientData, int *dum1, XtInputId *dum2);
static void workshop_disconnect(void);
static void workshop_sensitivity(int num, char *table);
static void adjust_sign_name(char *filename);
***************
*** 157,165 ****
}
- /*ARGSUSED*/
void
! messageFromEserve(XtPointer clientData, int *NOTUSED1, XtInputId *NOTUSED2)
{
char *cmd; /* the 1st word of the command */
--- 157,166 ----
}
void
! messageFromEserve(XtPointer clientData UNUSED,
! int *dum1 UNUSED,
! XtInputId *dum2 UNUSED)
{
char *cmd; /* the 1st word of the command */
***************
*** 199,205 ****
if (sign) {
sign++;
}
! /* Change sign name to accomodate a different size? */
adjust_sign_name(sign);
workshop_add_mark_type(idx, color, sign);
}
--- 200,206 ----
if (sign) {
sign++;
}
! /* Change sign name to accommodate a different size? */
adjust_sign_name(sign);
workshop_add_mark_type(idx, color, sign);
}
***************
*** 580,586 ****
#endif
! /* Change sign name to accomodate a different size:
* Create the filename based on the height. The filename format
* of multisize icons are:
* x.xpm : largest icon
--- 581,587 ----
#endif
! /* Change sign name to accommodate a different size:
* Create the filename based on the height. The filename format
* of multisize icons are:
* x.xpm : largest icon
***************
*** 614,619 ****
--- 615,621 ----
strcpy(s, ".xpm");
}
+ #if 0
/* Were we invoked by WorkShop? This function can be used early during startup
if you want to do things differently if the editor is started standalone
or in WorkShop mode. For example, in standalone mode you may not want to
***************
*** 627,632 ****
--- 629,635 ----
}
return result;
}
+ #endif
/* Connect back to eserve */
void workshop_connect(XtAppContext context)
***************
*** 750,755 ****
--- 753,759 ----
* Utility functions
*/
+ #if 0
/* Set icon for the window */
void
workshop_set_icon(Display *display, Widget shell, char **xpmdata,
***************
*** 793,798 ****
--- 797,803 ----
}
XtFree((char *)xpmAttributes.colorsymbols);
}
+ #endif
/* Minimize and maximize shells. From libutil's shell.cc. */
***************
*** 927,933 ****
return success;
}
!
Boolean workshop_get_rows_cols(int *rows, int *cols)
{
static int r = 0;
--- 932,938 ----
return success;
}
! #if 0
Boolean workshop_get_rows_cols(int *rows, int *cols)
{
static int r = 0;
***************
*** 958,963 ****
--- 963,969 ----
}
return success;
}
+ #endif
/*
* Toolbar code
***************
*** 1043,1054 ****
}
!
/*
* Send information to eserve on certain editor events
* You must make sure these are called when necessary
*/
-
void workshop_file_closed(char *filename)
{
char buffer[2*MAXPATHLEN];
--- 1049,1059 ----
}
! #if 0
/*
* Send information to eserve on certain editor events
* You must make sure these are called when necessary
*/
void workshop_file_closed(char *filename)
{
char buffer[2*MAXPATHLEN];
***************
*** 1056,1061 ****
--- 1061,1067 ----
NOCATGETS("deletedFile %s\n"), filename);
write(sd, buffer, strlen(buffer));
}
+ #endif
void workshop_file_closed_lineno(char *filename, int lineno)
{
***************
*** 1086,1106 ****
workshop_moved_marks(filename);
}
! void workshop_move_mark(char *filename, int markId, int newLineno)
{
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
! NOCATGETS("moveMark %s %d %d\n"), filename, markId, newLineno);
write(sd, buffer, strlen(buffer));
}
! void workshop_file_modified(char *filename)
{
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
! NOCATGETS("modifiedFile %s\n"), filename);
write(sd, buffer, strlen(buffer));
}
void workshop_frame_moved(int new_x, int new_y, int new_w, int new_h)
{
--- 1092,1114 ----
workshop_moved_marks(filename);
}
! #if 0
! void workshop_file_modified(char *filename)
{
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
! NOCATGETS("modifiedFile %s\n"), filename);
write(sd, buffer, strlen(buffer));
}
! void workshop_move_mark(char *filename, int markId, int newLineno)
{
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
! NOCATGETS("moveMark %s %d %d\n"), filename, markId, newLineno);
write(sd, buffer, strlen(buffer));
}
+ #endif
void workshop_frame_moved(int new_x, int new_y, int new_w, int new_h)
{
***************
*** 1179,1188 ****
--- 1187,1198 ----
}
/* Send a message to eserve */
+ #if defined(NOHANDS_SUPPORT_FUNCTIONS) || defined(FEAT_BEVAL)
void workshop_send_message(char *buf)
{
write(sd, buf, strlen(buf));
}
+ #endif
/* Some methods, like currentFile, cursorPos, etc. are missing here.
* But it looks like these are used for NoHands testing only so we
*** ../vim-7.2.326/src/version.c 2010-01-06 17:46:03.000000000 +0100
--- src/version.c 2010-01-06 18:20:41.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 327,
/**/
--
From "know your smileys":
(:-# Said something he shouldn't have
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.2.328 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.2.328
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.328
Problem: has("win64") does not return 1 on 64 bit MS-Windows version.
Solution: Also check for _WIN64 besides WIN64.
Files: src/eval.c
*** ../vim-7.2.327/src/eval.c 2009-12-31 13:18:05.000000000 +0100
--- src/eval.c 2010-01-06 16:28:23.000000000 +0100
***************
*** 11453,11459 ****
#if defined(UNIX) && (defined(__CYGWIN32__) || defined(__CYGWIN__))
"win32unix",
#endif
! #ifdef WIN64
"win64",
#endif
#ifdef EBCDIC
--- 11453,11459 ----
#if defined(UNIX) && (defined(__CYGWIN32__) || defined(__CYGWIN__))
"win32unix",
#endif
! #if defined(WIN64) || defined(_WIN64)
"win64",
#endif
#ifdef EBCDIC
*** ../vim-7.2.327/src/version.c 2010-01-06 18:24:53.000000000 +0100
--- src/version.c 2010-01-12 12:10:06.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 328,
/**/
--
From "know your smileys":
:.-( Crying
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

48
7.2.329 Normal file
View file

@ -0,0 +1,48 @@
To: vim-dev@vim.org
Subject: Patch 7.2.329
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.329
Problem: "g_" doesn't position cursor correctly when in Visual mode and
'selection' is "exclusive". (Ben Fritz)
Solution: Call adjust_for_sel().
Files: src/normal.c
*** ../vim-7.2.328/src/normal.c 2009-12-24 15:00:31.000000000 +0100
--- src/normal.c 2010-01-09 15:19:47.000000000 +0100
***************
*** 7873,7878 ****
--- 7873,7881 ----
&& vim_iswhite(ptr[curwin->w_cursor.col]))
--curwin->w_cursor.col;
curwin->w_set_curswant = TRUE;
+ #ifdef FEAT_VISUAL
+ adjust_for_sel(cap);
+ #endif
}
break;
*** ../vim-7.2.328/src/version.c 2010-01-12 12:48:40.000000000 +0100
--- src/version.c 2010-01-12 15:41:13.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 329,
/**/
--
From "know your smileys":
|-( Contact lenses, but has lost them
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

1531
7.2.330 Normal file

File diff suppressed because it is too large Load diff

47
7.2.331 Normal file
View file

@ -0,0 +1,47 @@
To: vim-dev@vim.org
Subject: Patch 7.2.331
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.331
Problem: Can't interrupt "echo list" for a very long list.
Solution: Call line_breakcheck() in list_join().
Files: src/eval.c
*** ../vim-7.2.330/src/eval.c 2010-01-12 12:48:40.000000000 +0100
--- src/eval.c 2010-01-12 15:59:28.000000000 +0100
***************
*** 6475,6480 ****
--- 6475,6481 ----
vim_free(tofree);
if (s == NULL)
return FAIL;
+ line_breakcheck();
}
return OK;
}
*** ../vim-7.2.330/src/version.c 2010-01-12 19:48:57.000000000 +0100
--- src/version.c 2010-01-19 12:44:02.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 331,
/**/
--
hundred-and-one symptoms of being an internet addict:
116. You are living with your boyfriend who networks your respective
computers so you can sit in separate rooms and email each other
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

101
7.2.332 Normal file
View file

@ -0,0 +1,101 @@
To: vim-dev@vim.org
Subject: Patch 7.2.332
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.332
Problem: Crash when spell correcting triggers an autocommand that reloads
the buffer.
Solution: Make a copy of the line to be modified. (Dominique Pelle)
Files: src/spell.c
*** ../vim-7.2.331/src/spell.c 2009-07-22 11:03:38.000000000 +0200
--- src/spell.c 2010-01-19 12:44:42.000000000 +0100
***************
*** 10306,10312 ****
/* Figure out if the word should be capitalised. */
need_cap = check_need_cap(curwin->w_cursor.lnum, curwin->w_cursor.col);
! line = ml_get_curline();
/* Get the list of suggestions. Limit to 'lines' - 2 or the number in
* 'spellsuggest', whatever is smaller. */
--- 10306,10315 ----
/* Figure out if the word should be capitalised. */
need_cap = check_need_cap(curwin->w_cursor.lnum, curwin->w_cursor.col);
! /* Make a copy of current line since autocommands may free the line. */
! line = vim_strsave(ml_get_curline());
! if (line == NULL)
! goto skip;
/* Get the list of suggestions. Limit to 'lines' - 2 or the number in
* 'spellsuggest', whatever is smaller. */
***************
*** 10470,10475 ****
--- 10473,10480 ----
curwin->w_cursor = prev_cursor;
spell_find_cleanup(&sug);
+ skip:
+ vim_free(line);
}
/*
***************
*** 10931,10937 ****
rescore_suggestions(su);
/*
! * While going throught the soundfold tree "su_maxscore" is the score
* for the soundfold word, limits the changes that are being tried,
* and "su_sfmaxscore" the rescored score, which is set by
* cleanup_suggestions().
--- 10936,10942 ----
rescore_suggestions(su);
/*
! * While going through the soundfold tree "su_maxscore" is the score
* for the soundfold word, limits the changes that are being tried,
* and "su_sfmaxscore" the rescored score, which is set by
* cleanup_suggestions().
***************
*** 11415,11421 ****
char_u tword[MAXWLEN]; /* good word collected so far */
trystate_T stack[MAXWLEN];
char_u preword[MAXWLEN * 3]; /* word found with proper case;
! * concatanation of prefix compound
* words and split word. NUL terminated
* when going deeper but not when coming
* back. */
--- 11420,11426 ----
char_u tword[MAXWLEN]; /* good word collected so far */
trystate_T stack[MAXWLEN];
char_u preword[MAXWLEN * 3]; /* word found with proper case;
! * concatenation of prefix compound
* words and split word. NUL terminated
* when going deeper but not when coming
* back. */
*** ../vim-7.2.331/src/version.c 2010-01-19 12:46:51.000000000 +0100
--- src/version.c 2010-01-19 13:05:32.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 332,
/**/
--
hundred-and-one symptoms of being an internet addict:
117. You are more comfortable typing in html.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

371
7.2.333 Normal file
View file

@ -0,0 +1,371 @@
To: vim-dev@vim.org
Subject: Patch 7.2.333
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.333
Problem: Warnings from static code analysis.
Solution: Small changes to various lines. (Dominique Pelle)
Files: src/buffer.c, src/edit.c, src/ex_getln.c, src/fileio.c,
src/if_cscope.c, src/netbeans.c, src/ops.c, src/quickfix.c,
src/syntax.c, src/ui.c
*** ../vim-7.2.332/src/buffer.c 2009-05-17 13:30:58.000000000 +0200
--- src/buffer.c 2010-01-19 12:50:24.000000000 +0100
***************
*** 315,321 ****
{
#ifdef FEAT_AUTOCMD
int is_curbuf;
! int nwindows = buf->b_nwindows;
#endif
int unload_buf = (action != 0);
int del_buf = (action == DOBUF_DEL || action == DOBUF_WIPE);
--- 315,321 ----
{
#ifdef FEAT_AUTOCMD
int is_curbuf;
! int nwindows;
#endif
int unload_buf = (action != 0);
int del_buf = (action == DOBUF_DEL || action == DOBUF_WIPE);
*** ../vim-7.2.332/src/edit.c 2009-12-24 15:45:53.000000000 +0100
--- src/edit.c 2010-01-19 12:53:18.000000000 +0100
***************
*** 4048,4054 ****
save_p_ic = p_ic;
p_ic = ignorecase(compl_pattern);
! /* Find up to TAG_MANY matches. Avoids that an enourmous number
* of matches is found when compl_pattern is empty */
if (find_tags(compl_pattern, &num_matches, &matches,
TAG_REGEXP | TAG_NAMES | TAG_NOIC |
--- 4048,4054 ----
save_p_ic = p_ic;
p_ic = ignorecase(compl_pattern);
! /* Find up to TAG_MANY matches. Avoids that an enormous number
* of matches is found when compl_pattern is empty */
if (find_tags(compl_pattern, &num_matches, &matches,
TAG_REGEXP | TAG_NAMES | TAG_NOIC |
***************
*** 4219,4225 ****
|| IObuff[len - 2] == '!'))))
IObuff[len++] = ' ';
}
! /* copy as much as posible of the new word */
if (tmp_ptr - ptr >= IOSIZE - len)
tmp_ptr = ptr + IOSIZE - len - 1;
STRNCPY(IObuff + len, ptr, tmp_ptr - ptr);
--- 4219,4225 ----
|| IObuff[len - 2] == '!'))))
IObuff[len++] = ' ';
}
! /* copy as much as possible of the new word */
if (tmp_ptr - ptr >= IOSIZE - len)
tmp_ptr = ptr + IOSIZE - len - 1;
STRNCPY(IObuff + len, ptr, tmp_ptr - ptr);
***************
*** 5827,5836 ****
#endif
&& !has_format_option(FO_WRAP))
- {
- textwidth = 0;
break;
- }
if ((startcol = curwin->w_cursor.col) == 0)
break;
--- 5827,5833 ----
*** ../vim-7.2.332/src/ex_getln.c 2009-12-02 17:15:04.000000000 +0100
--- src/ex_getln.c 2010-01-19 12:54:47.000000000 +0100
***************
*** 2193,2199 ****
{
if (ga_grow(&line_ga, 40) == FAIL)
break;
- pend = (char_u *)line_ga.ga_data + line_ga.ga_len;
/* Get one character at a time. Don't use inchar(), it can't handle
* special characters. */
--- 2193,2198 ----
***************
*** 3314,3320 ****
WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
|options, type);
vim_free(p1);
! /* longest match: make sure it is not shorter (happens with :help */
if (p2 != NULL && type == WILD_LONGEST)
{
for (j = 0; j < xp->xp_pattern_len; ++j)
--- 3313,3319 ----
WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
|options, type);
vim_free(p1);
! /* longest match: make sure it is not shorter, happens with :help */
if (p2 != NULL && type == WILD_LONGEST)
{
for (j = 0; j < xp->xp_pattern_len; ++j)
*** ../vim-7.2.332/src/fileio.c 2009-12-31 14:52:48.000000000 +0100
--- src/fileio.c 2010-01-19 12:56:59.000000000 +0100
***************
*** 7072,7079 ****
*/
for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i)
{
- size_t itmplen;
# ifndef HAVE_MKDTEMP
long nr;
long off;
# endif
--- 7072,7079 ----
*/
for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i)
{
# ifndef HAVE_MKDTEMP
+ size_t itmplen;
long nr;
long off;
# endif
***************
*** 7091,7097 ****
else
# endif
add_pathsep(itmp);
- itmplen = STRLEN(itmp);
# ifdef HAVE_MKDTEMP
/* Leave room for filename */
--- 7091,7096 ----
***************
*** 7104,7109 ****
--- 7103,7109 ----
* otherwise it doesn't matter. The use of mkdir() avoids any
* security problems because of the predictable number. */
nr = (mch_get_pid() + (long)time(NULL)) % 1000000L;
+ itmplen = STRLEN(itmp);
/* Try up to 10000 different values until we find a name that
* doesn't exist. */
*** ../vim-7.2.332/src/if_cscope.c 2009-07-09 21:22:36.000000000 +0200
--- src/if_cscope.c 2010-01-19 12:57:58.000000000 +0100
***************
*** 2069,2075 ****
continue;
(void)strcpy(tbuf, matches[idx]);
! if ((fname = strtok(tbuf, (const char *)"\t")) == NULL)
continue;
if ((fname = strtok(NULL, (const char *)"\t")) == NULL)
continue;
--- 2069,2075 ----
continue;
(void)strcpy(tbuf, matches[idx]);
! if (strtok(tbuf, (const char *)"\t") == NULL)
continue;
if ((fname = strtok(NULL, (const char *)"\t")) == NULL)
continue;
*** ../vim-7.2.332/src/netbeans.c 2009-09-11 14:19:41.000000000 +0200
--- src/netbeans.c 2010-01-19 13:57:11.000000000 +0100
***************
*** 873,879 ****
{
#ifdef NBDEBUG
/*
! * This happens because the ExtEd can send a cammand or 2 after
* doing a stopDocumentListen command. It doesn't harm anything
* so I'm disabling it except for debugging.
*/
--- 883,889 ----
{
#ifdef NBDEBUG
/*
! * This happens because the ExtEd can send a command or 2 after
* doing a stopDocumentListen command. It doesn't harm anything
* so I'm disabling it except for debugging.
*/
***************
*** 1174,1180 ****
break;
}
}
! *q++ = '\0';
return buf;
}
--- 1184,1190 ----
break;
}
}
! *q = '\0';
return buf;
}
***************
*** 3070,3076 ****
}
/*
! * Send netbeans an unmodufied command.
*/
void
netbeans_unmodified(buf_T *bufp UNUSED)
--- 3080,3086 ----
}
/*
! * Send netbeans an unmodified command.
*/
void
netbeans_unmodified(buf_T *bufp UNUSED)
***************
*** 3366,3372 ****
/*
! * Add a sign of the reqested type at the requested location.
*
* Reverse engineering:
* Apparently an annotation is defined the first time it is used in a buffer.
--- 3380,3386 ----
/*
! * Add a sign of the requested type at the requested location.
*
* Reverse engineering:
* Apparently an annotation is defined the first time it is used in a buffer.
*** ../vim-7.2.332/src/ops.c 2009-11-25 12:38:49.000000000 +0100
--- src/ops.c 2010-01-19 13:04:46.000000000 +0100
***************
*** 5591,5603 ****
*/
if (has_mbyte)
{
- char_u *conv_str = str;
vimconv_T vc;
vc.vc_type = CONV_NONE;
if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
{
! int intlen = len;
conv_str = string_convert(&vc, str, &intlen);
len = intlen;
--- 5598,5610 ----
*/
if (has_mbyte)
{
vimconv_T vc;
vc.vc_type = CONV_NONE;
if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK)
{
! int intlen = len;
! char_u *conv_str;
conv_str = string_convert(&vc, str, &intlen);
len = intlen;
*** ../vim-7.2.332/src/quickfix.c 2009-06-24 17:31:27.000000000 +0200
--- src/quickfix.c 2010-01-19 13:12:29.000000000 +0100
***************
*** 1899,1905 ****
int i;
int idx1 = 1;
int idx2 = -1;
- int need_return = TRUE;
char_u *arg = eap->arg;
int all = eap->forceit; /* if not :cl!, only show
recognised errors */
--- 1899,1904 ----
***************
*** 1939,1951 ****
{
if ((qfp->qf_valid || all) && idx1 <= i && i <= idx2)
{
! if (need_return)
! {
! msg_putchar('\n');
! if (got_int)
! break;
! need_return = FALSE;
! }
fname = NULL;
if (qfp->qf_fnum != 0
--- 1938,1946 ----
{
if ((qfp->qf_valid || all) && idx1 <= i && i <= idx2)
{
! msg_putchar('\n');
! if (got_int)
! break;
fname = NULL;
if (qfp->qf_fnum != 0
***************
*** 1988,1994 ****
IObuff, IOSIZE);
msg_prt_line(IObuff, FALSE);
out_flush(); /* show one line at a time */
- need_return = TRUE;
}
qfp = qfp->qf_next;
--- 1983,1988 ----
*** ../vim-7.2.332/src/syntax.c 2009-12-16 18:13:04.000000000 +0100
--- src/syntax.c 2010-01-19 13:12:56.000000000 +0100
***************
*** 4167,4173 ****
if (!HASHITEM_EMPTY(hi))
{
--todo;
- kp = HI2KE(hi);
for (kp = HI2KE(hi); kp != NULL; kp = kp_next)
{
kp_next = kp->ke_next;
--- 4167,4172 ----
*** ../vim-7.2.332/src/ui.c 2009-09-11 16:48:06.000000000 +0200
--- src/ui.c 2010-01-19 13:14:04.000000000 +0100
***************
*** 2383,2389 ****
* 'enc' anyway. */
if (has_mbyte)
{
! char_u *conv_buf = buffer;
vimconv_T vc;
vc.vc_type = CONV_NONE;
--- 2383,2389 ----
* 'enc' anyway. */
if (has_mbyte)
{
! char_u *conv_buf;
vimconv_T vc;
vc.vc_type = CONV_NONE;
*** ../vim-7.2.332/src/version.c 2010-01-19 13:06:42.000000000 +0100
--- src/version.c 2010-01-19 14:55:50.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 333,
/**/
--
An actual excerpt from a classified section of a city newspaper:
"Illiterate? Write today for free help!"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

347
7.2.334 Normal file
View file

@ -0,0 +1,347 @@
To: vim-dev@vim.org
Subject: Patch 7.2.334
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.334
Problem: Postponing keys in Netbeans interface does not work properly.
Solution: Store the key string instead of the number. Avoid an infinite
loop. (Mostly by Xavier de Gaye)
Files: src/netbeans.c, src/proto/netbeans.pro
*** ../vim-7.2.333/src/netbeans.c 2010-01-19 14:59:14.000000000 +0100
--- src/netbeans.c 2010-01-19 15:12:17.000000000 +0100
***************
*** 70,76 ****
static pos_T *off2pos __ARGS((buf_T *, long));
static pos_T *get_off_or_lnum __ARGS((buf_T *buf, char_u **argp));
static long get_buf_size __ARGS((buf_T *));
! static void netbeans_keystring __ARGS((int key, char *keystr));
static void special_keys __ARGS((char_u *args));
static void netbeans_connect __ARGS((void));
--- 70,77 ----
static pos_T *off2pos __ARGS((buf_T *, long));
static pos_T *get_off_or_lnum __ARGS((buf_T *buf, char_u **argp));
static long get_buf_size __ARGS((buf_T *));
! static int netbeans_keystring __ARGS((char_u *keystr));
! static void postpone_keycommand __ARGS((char_u *keystr));
static void special_keys __ARGS((char_u *args));
static void netbeans_connect __ARGS((void));
***************
*** 502,508 ****
struct keyqueue
{
! int key;
struct keyqueue *next;
struct keyqueue *prev;
};
--- 503,509 ----
struct keyqueue
{
! char_u *keystr;
struct keyqueue *next;
struct keyqueue *prev;
};
***************
*** 514,526 ****
/*
* Queue up key commands sent from netbeans.
*/
static void
! postpone_keycommand(int key)
{
keyQ_T *node;
node = (keyQ_T *)alloc(sizeof(keyQ_T));
if (keyHead.next == NULL) /* initialize circular queue */
{
--- 515,531 ----
/*
* Queue up key commands sent from netbeans.
+ * We store the string, because it may depend on the global mod_mask and
+ * :nbkey doesn't have a key number.
*/
static void
! postpone_keycommand(char_u *keystr)
{
keyQ_T *node;
node = (keyQ_T *)alloc(sizeof(keyQ_T));
+ if (node == NULL)
+ return; /* out of memory, drop the key */
if (keyHead.next == NULL) /* initialize circular queue */
{
***************
*** 534,540 ****
keyHead.prev->next = node;
keyHead.prev = node;
! node->key = key;
}
/*
--- 539,545 ----
keyHead.prev->next = node;
keyHead.prev = node;
! node->keystr = vim_strsave(keystr);
}
/*
***************
*** 543,557 ****
static void
handle_key_queue(void)
{
! while (keyHead.next && keyHead.next != &keyHead)
{
/* first, unlink the node */
keyQ_T *node = keyHead.next;
keyHead.next = node->next;
node->next->prev = node->prev;
! /* now, send the keycommand */
! netbeans_keycommand(node->key);
/* Finally, dispose of the node */
vim_free(node);
--- 548,567 ----
static void
handle_key_queue(void)
{
! int postponed = FALSE;
!
! while (!postponed && keyHead.next && keyHead.next != &keyHead)
{
/* first, unlink the node */
keyQ_T *node = keyHead.next;
keyHead.next = node->next;
node->next->prev = node->prev;
! /* Now, send the keycommand. This may cause it to be postponed again
! * and change keyHead. */
! if (node->keystr != NULL)
! postponed = !netbeans_keystring(node->keystr);
! vim_free(node->keystr);
/* Finally, dispose of the node */
vim_free(node);
***************
*** 2495,2501 ****
}
else
{
! nbdebug((" Buffer has no changes!\n"));
}
/* =====================================================================*/
}
--- 2505,2511 ----
}
else
{
! nbdebug((" Buffer has no changes!\n"));
}
/* =====================================================================*/
}
***************
*** 2658,2664 ****
ex_nbkey(eap)
exarg_T *eap;
{
! netbeans_keystring(0, (char *)eap->arg);
}
--- 2668,2674 ----
ex_nbkey(eap)
exarg_T *eap;
{
! (void)netbeans_keystring(eap->arg);
}
***************
*** 2680,2686 ****
}
/*
! * Convert key to netbeans name.
*/
static void
netbeans_keyname(int key, char *buf)
--- 2690,2696 ----
}
/*
! * Convert key to netbeans name. This uses the global "mod_mask".
*/
static void
netbeans_keyname(int key, char *buf)
***************
*** 3127,3149 ****
/*
* Send a keypress event back to netbeans. This usually simulates some
* kind of function key press. This function operates on a key code.
*/
! void
netbeans_keycommand(int key)
{
char keyName[60];
netbeans_keyname(key, keyName);
! netbeans_keystring(key, keyName);
}
/*
* Send a keypress event back to netbeans. This usually simulates some
* kind of function key press. This function operates on a key string.
*/
! static void
! netbeans_keystring(int key, char *keyName)
{
char buf[2*MAXPATHL];
int bufno = nb_getbufno(curbuf);
--- 3137,3163 ----
/*
* Send a keypress event back to netbeans. This usually simulates some
* kind of function key press. This function operates on a key code.
+ * Return TRUE when the key was sent, FALSE when the command has been
+ * postponed.
*/
! int
netbeans_keycommand(int key)
{
char keyName[60];
netbeans_keyname(key, keyName);
! return netbeans_keystring((char_u *)keyName);
}
/*
* Send a keypress event back to netbeans. This usually simulates some
* kind of function key press. This function operates on a key string.
+ * Return TRUE when the key was sent, FALSE when the command has been
+ * postponed.
*/
! static int
! netbeans_keystring(char_u *keyName)
{
char buf[2*MAXPATHL];
int bufno = nb_getbufno(curbuf);
***************
*** 3151,3157 ****
char_u *q;
if (!haveConnection)
! return;
if (bufno == -1)
--- 3165,3171 ----
char_u *q;
if (!haveConnection)
! return TRUE;
if (bufno == -1)
***************
*** 3160,3166 ****
q = curbuf->b_ffname == NULL ? (char_u *)""
: nb_quote(curbuf->b_ffname);
if (q == NULL)
! return;
vim_snprintf(buf, sizeof(buf), "0:fileOpened=%d \"%s\" %s %s\n", 0,
q,
"T", /* open in NetBeans */
--- 3174,3180 ----
q = curbuf->b_ffname == NULL ? (char_u *)""
: nb_quote(curbuf->b_ffname);
if (q == NULL)
! return TRUE;
vim_snprintf(buf, sizeof(buf), "0:fileOpened=%d \"%s\" %s %s\n", 0,
q,
"T", /* open in NetBeans */
***************
*** 3170,3178 ****
nbdebug(("EVT: %s", buf));
nb_send(buf, "netbeans_keycommand");
! if (key > 0)
! postpone_keycommand(key);
! return;
}
/* sync the cursor position */
--- 3184,3191 ----
nbdebug(("EVT: %s", buf));
nb_send(buf, "netbeans_keycommand");
! postpone_keycommand(keyName);
! return FALSE;
}
/* sync the cursor position */
***************
*** 3198,3203 ****
--- 3211,3217 ----
off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col);
nbdebug(("EVT: %s", buf));
nb_send(buf, "netbeans_keycommand");
+ return TRUE;
}
*** ../vim-7.2.333/src/proto/netbeans.pro 2009-01-06 16:13:42.000000000 +0100
--- src/proto/netbeans.pro 2010-01-19 13:31:01.000000000 +0100
***************
*** 16,22 ****
void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len));
void netbeans_unmodified __ARGS((buf_T *bufp));
void netbeans_button_release __ARGS((int button));
! void netbeans_keycommand __ARGS((int key));
void netbeans_save_buffer __ARGS((buf_T *bufp));
void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
--- 16,22 ----
void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len));
void netbeans_unmodified __ARGS((buf_T *bufp));
void netbeans_button_release __ARGS((int button));
! int netbeans_keycommand __ARGS((int key));
void netbeans_save_buffer __ARGS((buf_T *bufp));
void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
*** ../vim-7.2.333/src/version.c 2010-01-19 14:59:14.000000000 +0100
--- src/version.c 2010-01-19 15:08:44.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 334,
/**/
--
hundred-and-one symptoms of being an internet addict:
119. You are reading a book and look for the scroll bar to get to
the next page.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

103
7.2.335 Normal file
View file

@ -0,0 +1,103 @@
To: vim-dev@vim.org
Subject: Patch 7.2.335
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.335
Problem: The CTRL-] command escapes too many characters.
Solution: Use a different list of characters to be escaped. (Sergey Khorev)
Files: src/normal.c
*** ../vim-7.2.334/src/normal.c 2010-01-12 15:42:03.000000000 +0100
--- src/normal.c 2010-01-19 15:20:11.000000000 +0100
***************
*** 5406,5411 ****
--- 5406,5412 ----
int n = 0; /* init for GCC */
int cmdchar;
int g_cmd; /* "g" command */
+ int tag_cmd = FALSE;
char_u *aux_ptr;
int isman;
int isman_s;
***************
*** 5515,5520 ****
--- 5516,5522 ----
break;
case ']':
+ tag_cmd = TRUE;
#ifdef FEAT_CSCOPE
if (p_cst)
STRCPY(buf, "cstag ");
***************
*** 5526,5535 ****
default:
if (curbuf->b_help)
STRCPY(buf, "he! ");
- else if (g_cmd)
- STRCPY(buf, "tj ");
else
! sprintf((char *)buf, "%ldta ", cap->count0);
}
/*
--- 5528,5541 ----
default:
if (curbuf->b_help)
STRCPY(buf, "he! ");
else
! {
! tag_cmd = TRUE;
! if (g_cmd)
! STRCPY(buf, "tj ");
! else
! sprintf((char *)buf, "%ldta ", cap->count0);
! }
}
/*
***************
*** 5562,5569 ****
aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
else if (cmdchar == '#')
aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
! else
/* Don't escape spaces and Tabs in a tag with a backslash */
aux_ptr = (char_u *)"\\|\"\n*?[";
p = buf + STRLEN(buf);
--- 5568,5577 ----
aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
else if (cmdchar == '#')
aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
! else if (tag_cmd)
/* Don't escape spaces and Tabs in a tag with a backslash */
+ aux_ptr = (char_u *)"\\|\"\n[";
+ else
aux_ptr = (char_u *)"\\|\"\n*?[";
p = buf + STRLEN(buf);
*** ../vim-7.2.334/src/version.c 2010-01-19 15:12:33.000000000 +0100
--- src/version.c 2010-01-19 15:22:44.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 335,
/**/
--
hundred-and-one symptoms of being an internet addict:
120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

841
7.2.336 Normal file
View file

@ -0,0 +1,841 @@
To: vim-dev@vim.org
Subject: Patch 7.2.336
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.336
Problem: MzScheme interface can't evaluate an expression.
Solution: Add mzeval(). (Sergey Khorev)
Files: runtime/doc/eval.txt, runtime/doc/if_mzsch.txt,
runtime/doc/usr_41.txt, src/eval.c, src/if_mzsch.c,
src/proto/eval.pro, src/proto/if_mzsch.pro,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Makefile, src/testdir/main.aap, src/testdir/test1.in,
src/testdir/test70.in, src/testdir/test70.ok
*** ../vim-7.2.335/runtime/doc/eval.txt 2009-11-17 12:20:30.000000000 +0100
--- runtime/doc/eval.txt 2010-01-19 15:30:50.000000000 +0100
***************
*** 1815,1825 ****
List match and submatches of {pat} in {expr}
matchstr( {expr}, {pat}[, {start}[, {count}]])
String {count}'th match of {pat} in {expr}
! max({list}) Number maximum value of items in {list}
! min({list}) Number minimum value of items in {list}
! mkdir({name} [, {path} [, {prot}]])
Number create directory {name}
mode( [expr]) String current editing mode
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
nr2char( {expr}) String single char with ASCII value {expr}
pathshorten( {expr}) String shorten directory names in a path
--- 1821,1832 ----
List match and submatches of {pat} in {expr}
matchstr( {expr}, {pat}[, {start}[, {count}]])
String {count}'th match of {pat} in {expr}
! max( {list}) Number maximum value of items in {list}
! min( {list}) Number minimum value of items in {list}
! mkdir( {name} [, {path} [, {prot}]])
Number create directory {name}
mode( [expr]) String current editing mode
+ mzeval( {expr}) any evaluate |MzScheme| expression
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
nr2char( {expr}) String single char with ASCII value {expr}
pathshorten( {expr}) String shorten directory names in a path
***************
*** 4090,4095 ****
--- 4103,4125 ----
"c" or "n".
Also see |visualmode()|.
+ mzeval({expr}) *mzeval()*
+ Evaluate MzScheme expression {expr} and return its result
+ convert to Vim data structures.
+ Numbers and strings are returned as they are.
+ Pairs (including lists and improper lists) and vectors are
+ returned as Vim |Lists|.
+ Hash tables are represented as Vim |Dictionary| type with keys
+ converted to strings.
+ All other types are converted to string with display function.
+ Examples: >
+ :mz (define l (list 1 2 3))
+ :mz (define h (make-hash)) (hash-set! h "list" l)
+ :echo mzeval("l")
+ :echo mzeval("h")
+ <
+ {only available when compiled with the |+mzscheme| feature}
+
nextnonblank({lnum}) *nextnonblank()*
Return the line number of the first line at or below {lnum}
that is not blank. Example: >
*** ../vim-7.2.335/runtime/doc/if_mzsch.txt 2009-06-24 17:51:01.000000000 +0200
--- runtime/doc/if_mzsch.txt 2010-01-19 15:33:00.000000000 +0100
***************
*** 1,4 ****
! *if_mzsch.txt* For Vim version 7.2. Last change: 2009 Jun 24
VIM REFERENCE MANUAL by Sergey Khorev
--- 1,4 ----
! *if_mzsch.txt* For Vim version 7.2. Last change: 2010 Jan 19
VIM REFERENCE MANUAL by Sergey Khorev
***************
*** 9,16 ****
1. Commands |mzscheme-commands|
2. Examples |mzscheme-examples|
3. Threads |mzscheme-threads|
! 4. The Vim access procedures |mzscheme-vim|
! 5. Dynamic loading |mzscheme-dynamic|
{Vi does not have any of these commands}
--- 9,17 ----
1. Commands |mzscheme-commands|
2. Examples |mzscheme-examples|
3. Threads |mzscheme-threads|
! 4. Vim access from MzScheme |mzscheme-vim|
! 5. mzeval() Vim function |mzscheme-mzeval|
! 6. Dynamic loading |mzscheme-dynamic|
{Vi does not have any of these commands}
***************
*** 142,148 ****
GUI version.
==============================================================================
! 5. VIM Functions *mzscheme-vim*
*mzscheme-vimext*
The 'vimext' module provides access to procedures defined in the MzScheme
--- 143,149 ----
GUI version.
==============================================================================
! 4. Vim access from MzScheme *mzscheme-vim*
*mzscheme-vimext*
The 'vimext' module provides access to procedures defined in the MzScheme
***************
*** 231,237 ****
(set-cursor (line . col) [window]) Set cursor position.
==============================================================================
! 5. Dynamic loading *mzscheme-dynamic* *E815*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|.
--- 232,244 ----
(set-cursor (line . col) [window]) Set cursor position.
==============================================================================
! 5. mzeval() Vim function *mzscheme-mzeval*
!
! To facilitate bi-directional interface, you can use |mzeval| function to
! evaluate MzScheme expressions and pass their values to VimL.
!
! ==============================================================================
! 6. Dynamic loading *mzscheme-dynamic* *E815*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|.
*** ../vim-7.2.335/runtime/doc/usr_41.txt 2008-08-09 19:36:54.000000000 +0200
--- runtime/doc/usr_41.txt 2010-01-19 15:29:01.000000000 +0100
***************
*** 868,873 ****
--- 868,875 ----
taglist() get list of matching tags
tagfiles() get a list of tags files
+ mzeval() evaluate |MzScheme| expression
+
==============================================================================
*41.7* Defining a function
*** ../vim-7.2.335/src/eval.c 2010-01-19 12:46:51.000000000 +0100
--- src/eval.c 2010-01-19 15:48:12.000000000 +0100
***************
*** 433,439 ****
static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
static void list_append __ARGS((list_T *l, listitem_T *item));
- static int list_append_tv __ARGS((list_T *l, typval_T *tv));
static int list_append_number __ARGS((list_T *l, varnumber_T n));
static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef));
--- 433,438 ----
***************
*** 448,459 ****
static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
static void dict_unref __ARGS((dict_T *d));
static void dict_free __ARGS((dict_T *d, int recurse));
- static dictitem_T *dictitem_alloc __ARGS((char_u *key));
static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
- static void dictitem_free __ARGS((dictitem_T *item));
static dict_T *dict_copy __ARGS((dict_T *orig, int deep, int copyID));
- static int dict_add __ARGS((dict_T *d, dictitem_T *item));
static long dict_len __ARGS((dict_T *d));
static dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
static char_u *dict2string __ARGS((typval_T *tv, int copyID));
--- 447,455 ----
***************
*** 628,633 ****
--- 624,632 ----
static void f_mkdir __ARGS((typval_T *argvars, typval_T *rettv));
#endif
static void f_mode __ARGS((typval_T *argvars, typval_T *rettv));
+ #ifdef FEAT_MZSCHEME
+ static void f_mzeval __ARGS((typval_T *argvars, typval_T *rettv));
+ #endif
static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv));
static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 764,770 ****
static int var_check_ro __ARGS((int flags, char_u *name));
static int var_check_fixed __ARGS((int flags, char_u *name));
static int tv_check_lock __ARGS((int lock, char_u *name));
- static void copy_tv __ARGS((typval_T *from, typval_T *to));
static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags));
static char_u *trans_function_name __ARGS((char_u **pp, int skip, int flags, funcdict_T *fd));
--- 763,768 ----
***************
*** 6155,6161 ****
* Append typval_T "tv" to the end of list "l".
* Return FAIL when out of memory.
*/
! static int
list_append_tv(l, tv)
list_T *l;
typval_T *tv;
--- 6153,6159 ----
* Append typval_T "tv" to the end of list "l".
* Return FAIL when out of memory.
*/
! int
list_append_tv(l, tv)
list_T *l;
typval_T *tv;
***************
*** 6812,6818 ****
* Note that the value of the item "di_tv" still needs to be initialized!
* Returns NULL when out of memory.
*/
! static dictitem_T *
dictitem_alloc(key)
char_u *key;
{
--- 6810,6816 ----
* Note that the value of the item "di_tv" still needs to be initialized!
* Returns NULL when out of memory.
*/
! dictitem_T *
dictitem_alloc(key)
char_u *key;
{
***************
*** 6868,6874 ****
/*
* Free a dict item. Also clears the value.
*/
! static void
dictitem_free(item)
dictitem_T *item;
{
--- 6866,6872 ----
/*
* Free a dict item. Also clears the value.
*/
! void
dictitem_free(item)
dictitem_T *item;
{
***************
*** 6948,6954 ****
* Add item "item" to Dictionary "d".
* Returns FAIL when out of memory and when key already existed.
*/
! static int
dict_add(d, item)
dict_T *d;
dictitem_T *item;
--- 6946,6952 ----
* Add item "item" to Dictionary "d".
* Returns FAIL when out of memory and when key already existed.
*/
! int
dict_add(d, item)
dict_T *d;
dictitem_T *item;
***************
*** 7699,7704 ****
--- 7697,7705 ----
{"mkdir", 1, 3, f_mkdir},
#endif
{"mode", 0, 1, f_mode},
+ #ifdef FEAT_MZSCHEME
+ {"mzeval", 1, 1, f_mzeval},
+ #endif
{"nextnonblank", 1, 1, f_nextnonblank},
{"nr2char", 1, 1, f_nr2char},
{"pathshorten", 1, 1, f_pathshorten},
***************
*** 13591,13596 ****
--- 13592,13614 ----
rettv->v_type = VAR_STRING;
}
+ #ifdef FEAT_MZSCHEME
+ /*
+ * "mzeval()" function
+ */
+ static void
+ f_mzeval(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+ char_u *str;
+ char_u buf[NUMBUFLEN];
+
+ str = get_tv_string_buf(&argvars[0], buf);
+ do_mzeval(str, rettv);
+ }
+ #endif
+
/*
* "nextnonblank()" function
*/
***************
*** 19274,19280 ****
* It is OK for "from" and "to" to point to the same item. This is used to
* make a copy later.
*/
! static void
copy_tv(from, to)
typval_T *from;
typval_T *to;
--- 19292,19298 ----
* It is OK for "from" and "to" to point to the same item. This is used to
* make a copy later.
*/
! void
copy_tv(from, to)
typval_T *from;
typval_T *to;
*** ../vim-7.2.335/src/if_mzsch.c 2009-12-16 19:02:05.000000000 +0100
--- src/if_mzsch.c 2010-01-19 15:43:05.000000000 +0100
***************
*** 170,175 ****
--- 170,177 ----
#ifdef FEAT_EVAL
static Scheme_Object *vim_to_mzscheme(typval_T *vim_value, int depth,
Scheme_Hash_Table *visited);
+ static int mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth,
+ Scheme_Hash_Table *visited);
#endif
#ifdef MZ_PRECISE_GC
***************
*** 2733,2738 ****
--- 2735,2959 ----
MZ_GC_UNREG();
return result;
}
+
+ static int
+ mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth,
+ Scheme_Hash_Table *visited)
+ {
+ int status = OK;
+ typval_T *found;
+ MZ_GC_CHECK();
+ if (depth > 100) /* limit the deepest recursion level */
+ {
+ tv->v_type = VAR_NUMBER;
+ tv->vval.v_number = 0;
+ return FAIL;
+ }
+
+ found = (typval_T *)scheme_hash_get(visited, obj);
+ if (found != NULL)
+ copy_tv(found, tv);
+ else if (SCHEME_VOIDP(obj))
+ {
+ tv->v_type = VAR_NUMBER;
+ tv->vval.v_number = 0;
+ }
+ else if (SCHEME_INTP(obj))
+ {
+ tv->v_type = VAR_NUMBER;
+ tv->vval.v_number = SCHEME_INT_VAL(obj);
+ }
+ else if (SCHEME_BOOLP(obj))
+ {
+ tv->v_type = VAR_NUMBER;
+ tv->vval.v_number = SCHEME_TRUEP(obj);
+ }
+ # ifdef FEAT_FLOAT
+ else if (SCHEME_DBLP(obj))
+ {
+ tv->v_type = VAR_FLOAT;
+ tv->vval.v_float = SCHEME_DBL_VAL(obj);
+ }
+ # endif
+ else if (SCHEME_STRINGP(obj))
+ {
+ tv->v_type = VAR_STRING;
+ tv->vval.v_string = vim_strsave((char_u *)SCHEME_STR_VAL(obj));
+ }
+ else if (SCHEME_VECTORP(obj) || SCHEME_NULLP(obj)
+ || SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj))
+ {
+ list_T *list = list_alloc();
+ if (list == NULL)
+ status = FAIL;
+ else
+ {
+ int i;
+ Scheme_Object *curr = NULL;
+ Scheme_Object *cval = NULL;
+ /* temporary var to hold current element of vectors and pairs */
+ typval_T *v;
+
+ MZ_GC_DECL_REG(2);
+ MZ_GC_VAR_IN_REG(0, curr);
+ MZ_GC_VAR_IN_REG(1, cval);
+ MZ_GC_REG();
+
+ tv->v_type = VAR_LIST;
+ tv->vval.v_list = list;
+ ++list->lv_refcount;
+
+ v = (typval_T *)alloc(sizeof(typval_T));
+ if (v == NULL)
+ status = FAIL;
+ else
+ {
+ /* add the value in advance to allow handling of self-referencial
+ * data structures */
+ typval_T *visited_tv = (typval_T *)alloc(sizeof(typval_T));
+ copy_tv(tv, visited_tv);
+ scheme_hash_set(visited, obj, (Scheme_Object *)visited_tv);
+
+ if (SCHEME_VECTORP(obj))
+ {
+ for (i = 0; i < SCHEME_VEC_SIZE(obj); ++i)
+ {
+ cval = SCHEME_VEC_ELS(obj)[i];
+ status = mzscheme_to_vim(cval, v, depth + 1, visited);
+ if (status == FAIL)
+ break;
+ status = list_append_tv(list, v);
+ clear_tv(v);
+ if (status == FAIL)
+ break;
+ }
+ }
+ else if (SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj))
+ {
+ for (curr = obj;
+ SCHEME_PAIRP(curr) || SCHEME_MUTABLE_PAIRP(curr);
+ curr = SCHEME_CDR(curr))
+ {
+ cval = SCHEME_CAR(curr);
+ status = mzscheme_to_vim(cval, v, depth + 1, visited);
+ if (status == FAIL)
+ break;
+ status = list_append_tv(list, v);
+ clear_tv(v);
+ if (status == FAIL)
+ break;
+ }
+ /* impoper list not terminated with null
+ * need to handle the last element */
+ if (status == OK && !SCHEME_NULLP(curr))
+ {
+ status = mzscheme_to_vim(cval, v, depth + 1, visited);
+ if (status == OK)
+ {
+ status = list_append_tv(list, v);
+ clear_tv(v);
+ }
+ }
+ }
+ /* nothing to do for scheme_null */
+ vim_free(v);
+ }
+ MZ_GC_UNREG();
+ }
+ }
+ else if (SCHEME_HASHTP(obj))
+ {
+ int i;
+ dict_T *dict;
+ Scheme_Object *key = NULL;
+ Scheme_Object *val = NULL;
+
+ MZ_GC_DECL_REG(2);
+ MZ_GC_VAR_IN_REG(0, key);
+ MZ_GC_VAR_IN_REG(1, val);
+ MZ_GC_REG();
+
+ dict = dict_alloc();
+ if (dict == NULL)
+ status = FAIL;
+ else
+ {
+ typval_T *visited_tv = (typval_T *)alloc(sizeof(typval_T));
+
+ tv->v_type = VAR_DICT;
+ tv->vval.v_dict = dict;
+ ++dict->dv_refcount;
+
+ copy_tv(tv, visited_tv);
+ scheme_hash_set(visited, obj, (Scheme_Object *)visited_tv);
+
+ for (i = 0; i < ((Scheme_Hash_Table *)obj)->size; ++i)
+ {
+ if (((Scheme_Hash_Table *) obj)->vals[i] != NULL)
+ {
+ /* generate item for `diplay'ed Scheme key */
+ dictitem_T *item = dictitem_alloc((char_u *)string_to_line(
+ ((Scheme_Hash_Table *) obj)->keys[i]));
+ /* convert Scheme val to Vim and add it to the dict */
+ if (mzscheme_to_vim(((Scheme_Hash_Table *) obj)->vals[i],
+ &item->di_tv, depth + 1, visited) == FAIL
+ || dict_add(dict, item) == FAIL)
+ {
+ dictitem_free(item);
+ status = FAIL;
+ break;
+ }
+ }
+
+ }
+ }
+ MZ_GC_UNREG();
+ }
+ else
+ {
+ /* `display' any other value to string */
+ tv->v_type = VAR_STRING;
+ tv->vval.v_string = (char_u *)string_to_line(obj);
+ }
+ return status;
+ }
+
+ void
+ do_mzeval(char_u *str, typval_T *rettv)
+ {
+ int i;
+ Scheme_Object *ret = NULL;
+ Scheme_Hash_Table *visited = NULL;
+
+ MZ_GC_DECL_REG(2);
+ MZ_GC_VAR_IN_REG(0, ret);
+ MZ_GC_VAR_IN_REG(0, visited);
+ MZ_GC_REG();
+
+ if (mzscheme_init())
+ {
+ MZ_GC_UNREG();
+ return;
+ }
+
+ MZ_GC_CHECK();
+ visited = scheme_make_hash_table(SCHEME_hash_ptr);
+ MZ_GC_CHECK();
+
+ if (eval_with_exn_handling(str, do_eval, &ret) == OK)
+ mzscheme_to_vim(ret, rettv, 1, visited);
+
+ for (i = 0; i < visited->size; ++i)
+ {
+ /* free up remembered objects */
+ if (visited->vals[i] != NULL)
+ {
+ free_tv((typval_T *)visited->vals[i]);
+ }
+ }
+
+ MZ_GC_UNREG();
+ }
#endif
/*
*** ../vim-7.2.335/src/proto/eval.pro 2009-09-30 15:15:33.000000000 +0200
--- src/proto/eval.pro 2010-01-19 15:45:39.000000000 +0100
***************
*** 47,56 ****
--- 47,60 ----
void list_free __ARGS((list_T *l, int recurse));
dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
char_u *list_find_str __ARGS((list_T *l, long idx));
+ int list_append_tv __ARGS((list_T *l, typval_T *tv));
int list_append_dict __ARGS((list_T *list, dict_T *dict));
int list_append_string __ARGS((list_T *l, char_u *str, int len));
int garbage_collect __ARGS((void));
dict_T *dict_alloc __ARGS((void));
+ dictitem_T *dictitem_alloc __ARGS((char_u *key));
+ void dictitem_free __ARGS((dictitem_T *item));
+ int dict_add __ARGS((dict_T *d, dictitem_T *item));
int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
long get_dict_number __ARGS((dict_T *d, char_u *key));
***************
*** 77,82 ****
--- 81,87 ----
void new_script_vars __ARGS((scid_T id));
void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var));
void vars_clear __ARGS((hashtab_T *ht));
+ void copy_tv __ARGS((typval_T *from, typval_T *to));
void ex_echo __ARGS((exarg_T *eap));
void ex_echohl __ARGS((exarg_T *eap));
void ex_execute __ARGS((exarg_T *eap));
*** ../vim-7.2.335/src/proto/if_mzsch.pro 2009-12-16 19:02:05.000000000 +0100
--- src/proto/if_mzsch.pro 2010-01-19 15:29:01.000000000 +0100
***************
*** 15,18 ****
--- 15,19 ----
void *mzvim_eval_string __ARGS((char_u *str));
int mzthreads_allowed __ARGS((void));
void mzscheme_main __ARGS((void));
+ void do_mzeval __ARGS((char_u *str, typval_T *rettv));
/* vim: set ft=c : */
*** ../vim-7.2.335/src/testdir/Make_dos.mak 2009-11-17 17:57:10.000000000 +0100
--- src/testdir/Make_dos.mak 2010-01-19 15:43:48.000000000 +0100
***************
*** 29,35 ****
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out
! SCRIPTS32 = test50.out
SCRIPTS_GUI = test16.out
--- 29,35 ----
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out
! SCRIPTS32 = test50.out test70.out
SCRIPTS_GUI = test16.out
*** ../vim-7.2.335/src/testdir/Make_ming.mak 2009-11-17 17:57:10.000000000 +0100
--- src/testdir/Make_ming.mak 2010-01-19 15:29:01.000000000 +0100
***************
*** 48,54 ****
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out
! SCRIPTS32 = test50.out
SCRIPTS_GUI = test16.out
--- 48,54 ----
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out
! SCRIPTS32 = test50.out test70.out
SCRIPTS_GUI = test16.out
***************
*** 78,83 ****
--- 78,84 ----
-$(DEL) small.vim
-$(DEL) tiny.vim
-$(DEL) mbyte.vim
+ -$(DEL) mzscheme.vim
-$(DEL) X*
-$(DEL) viminfo
*** ../vim-7.2.335/src/testdir/Makefile 2009-11-17 17:40:34.000000000 +0100
--- src/testdir/Makefile 2010-01-19 15:29:01.000000000 +0100
***************
*** 23,29 ****
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
! test69.out
SCRIPTS_GUI = test16.out
--- 23,29 ----
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
! test69.out test70.out
SCRIPTS_GUI = test16.out
***************
*** 44,53 ****
$(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
clean:
! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim test.ok X* valgrind.pid* viminfo
test1.out: test1.in
! -rm -f $*.failed tiny.vim small.vim mbyte.vim test.ok X* viminfo
$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
@/bin/sh -c "if diff test.out $*.ok; \
then mv -f test.out $*.out; \
--- 44,53 ----
$(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
clean:
! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.pid* viminfo
test1.out: test1.in
! -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
@/bin/sh -c "if diff test.out $*.ok; \
then mv -f test.out $*.out; \
*** ../vim-7.2.335/src/testdir/main.aap 2004-06-13 21:05:31.000000000 +0200
--- src/testdir/main.aap 2010-01-19 15:29:01.000000000 +0100
***************
*** 32,42 ****
$Scripts $ScriptsGUI: $VimProg
clean:
! :del {r}{force} *.out test.log tiny.vim small.vim mbyte.vim test.ok X*
# test1 is special, it checks for features
test1.out: test1.in
! :del {force} test1.failed tiny.vim small.vim mbyte.vim
:sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in test1.in
@if os.system("diff test.out test1.ok") != 0:
:error test1 FAILED - Something basic is wrong
--- 32,42 ----
$Scripts $ScriptsGUI: $VimProg
clean:
! :del {r}{force} *.out test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X*
# test1 is special, it checks for features
test1.out: test1.in
! :del {force} test1.failed tiny.vim small.vim mbyte.vim mzscheme.vim
:sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in test1.in
@if os.system("diff test.out test1.ok") != 0:
:error test1 FAILED - Something basic is wrong
*** ../vim-7.2.335/src/testdir/test1.in 2004-06-13 20:19:23.000000000 +0200
--- src/testdir/test1.in 2010-01-19 15:38:44.000000000 +0100
***************
*** 13,18 ****
--- 13,19 ----
If Vim was not compiled with the +multi_byte feature, the mbyte.vim script will be set like small.vim above. mbyte.vim is sourced by tests that require the
+multi_byte feature.
+ Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
STARTTEST
:" Write a single line to test.out to check if testing works at all.
***************
*** 25,32 ****
--- 26,36 ----
w! test.out
qa!
:w! mbyte.vim
+ :w! mzscheme.vim
:" If +multi_byte feature supported, make mbyte.vim empty.
:if has("multi_byte") | sp another | w! mbyte.vim | q | endif
+ :" If +mzscheme feature supported, make mzscheme.vim empty.
+ :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif
:" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
:" Otherwise write small.vim to skip the test.
:if 1 | q! | endif
*** ../vim-7.2.335/src/testdir/test70.in 2010-01-19 15:47:24.000000000 +0100
--- src/testdir/test70.in 2010-01-19 15:29:01.000000000 +0100
***************
*** 0 ****
--- 1,53 ----
+ Smoke test for MzScheme interface and mzeval() function
+
+ STARTTEST
+ :so mzscheme.vim
+ :set nocompatible viminfo+=nviminfo
+ :function! MzRequire()
+ :redir => l:mzversion
+ :mz (version)
+ :redir END
+ :if strpart(l:mzversion, 1, 1) < "4"
+ :" MzScheme versions < 4.x:
+ :mz (require (prefix vim- vimext))
+ :else
+ :" newer versions:
+ :mz (require (prefix-in vim- 'vimext))
+ :mz (require r5rs)
+ :endif
+ :endfunction
+ :silent call MzRequire()
+ :mz (define l '("item0" "dictionary with list OK" "item2"))
+ :mz (define h (make-hash))
+ :mz (hash-set! h "list" l)
+ /^1
+ :" change buffer contents
+ :mz (vim-set-buff-line (vim-eval "line('.')") "1 changed line 1")
+ :" scalar test
+ :let tmp_string = mzeval('"string"')
+ :let tmp_1000 = mzeval('1000')
+ :if tmp_string . tmp_1000 == "string1000"
+ :let scalar_res = "OK"
+ :else
+ :let scalar_res = "FAILED"
+ :endif
+ :call append(search("^1"), "scalar test " . scalar_res)
+ :" dictionary containing a list
+ :let tmp = mzeval("h")["list"][1]
+ :/^2/put =tmp
+ :" circular list (at the same time test lists containing lists)
+ :mz (set-car! (cddr l) l)
+ :let l2 = mzeval("h")["list"]
+ :if l2[2] == l2
+ :let res = "OK"
+ :else
+ :let res = "FAILED"
+ :endif
+ :call setline(search("^3"), "circular test " . res)
+ :?^1?,$w! test.out
+ :qa!
+ ENDTEST
+
+ 1 line 1
+ 2 line 2
+ 3 line 3
*** ../vim-7.2.335/src/testdir/test70.ok 2010-01-19 15:47:24.000000000 +0100
--- src/testdir/test70.ok 2010-01-19 15:29:01.000000000 +0100
***************
*** 0 ****
--- 1,5 ----
+ 1 changed line 1
+ scalar test OK
+ 2 line 2
+ dictionary with list OK
+ circular test OK
*** ../vim-7.2.335/src/version.c 2010-01-19 15:23:38.000000000 +0100
--- src/version.c 2010-01-19 15:46:44.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 336,
/**/
--
"Computers in the future may weigh no more than 1.5 tons."
Popular Mechanics, 1949
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

112
7.2.337 Normal file
View file

@ -0,0 +1,112 @@
To: vim-dev@vim.org
Subject: Patch 7.2.337
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.337
Problem: The :compiler command doesn't function properly when invoked in a
function.
Solution: Add "g:" before "current_compiler". (Yukihiro Nakadaira)
Files: src/ex_cmds2.c
*** ../vim-7.2.336/src/ex_cmds2.c 2009-05-16 21:16:12.000000000 +0200
--- src/ex_cmds2.c 2010-01-19 16:02:53.000000000 +0100
***************
*** 2496,2509 ****
* To remain backwards compatible "current_compiler" is always
* used. A user's compiler plugin may set it, the distributed
* plugin will then skip the settings. Afterwards set
! * "b:current_compiler" and restore "current_compiler". */
! old_cur_comp = get_var_value((char_u *)"current_compiler");
if (old_cur_comp != NULL)
old_cur_comp = vim_strsave(old_cur_comp);
do_cmdline_cmd((char_u *)
"command -nargs=* CompilerSet setlocal <args>");
}
! do_unlet((char_u *)"current_compiler", TRUE);
do_unlet((char_u *)"b:current_compiler", TRUE);
sprintf((char *)buf, "compiler/%s.vim", eap->arg);
--- 2496,2510 ----
* To remain backwards compatible "current_compiler" is always
* used. A user's compiler plugin may set it, the distributed
* plugin will then skip the settings. Afterwards set
! * "b:current_compiler" and restore "current_compiler".
! * Explicitly prepend "g:" to make it work in a function. */
! old_cur_comp = get_var_value((char_u *)"g:current_compiler");
if (old_cur_comp != NULL)
old_cur_comp = vim_strsave(old_cur_comp);
do_cmdline_cmd((char_u *)
"command -nargs=* CompilerSet setlocal <args>");
}
! do_unlet((char_u *)"g:current_compiler", TRUE);
do_unlet((char_u *)"b:current_compiler", TRUE);
sprintf((char *)buf, "compiler/%s.vim", eap->arg);
***************
*** 2514,2520 ****
do_cmdline_cmd((char_u *)":delcommand CompilerSet");
/* Set "b:current_compiler" from "current_compiler". */
! p = get_var_value((char_u *)"current_compiler");
if (p != NULL)
set_internal_string_var((char_u *)"b:current_compiler", p);
--- 2515,2521 ----
do_cmdline_cmd((char_u *)":delcommand CompilerSet");
/* Set "b:current_compiler" from "current_compiler". */
! p = get_var_value((char_u *)"g:current_compiler");
if (p != NULL)
set_internal_string_var((char_u *)"b:current_compiler", p);
***************
*** 2523,2534 ****
{
if (old_cur_comp != NULL)
{
! set_internal_string_var((char_u *)"current_compiler",
old_cur_comp);
vim_free(old_cur_comp);
}
else
! do_unlet((char_u *)"current_compiler", TRUE);
}
}
}
--- 2524,2535 ----
{
if (old_cur_comp != NULL)
{
! set_internal_string_var((char_u *)"g:current_compiler",
old_cur_comp);
vim_free(old_cur_comp);
}
else
! do_unlet((char_u *)"g:current_compiler", TRUE);
}
}
}
*** ../vim-7.2.336/src/version.c 2010-01-19 15:51:29.000000000 +0100
--- src/version.c 2010-01-19 16:11:20.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 337,
/**/
--
hundred-and-one symptoms of being an internet addict:
121. You ask for e-mail adresses instead of telephone numbers.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

129
7.2.338 Normal file
View file

@ -0,0 +1,129 @@
To: vim-dev@vim.org
Subject: Patch 7.2.338
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.2.338 (after 7.2.300)
Problem: Part of FD_CLOEXEC change is missing.
Solution: Include source file skipped because of typo.
Files: src/ex_cmds2.c
*** ../vim-7.2.337/src/ex_cmds2.c 2010-01-19 16:12:53.000000000 +0100
--- src/ex_cmds2.c 2010-01-19 16:02:53.000000000 +0100
***************
*** 2802,2821 ****
static char_u *get_one_sourceline __ARGS((struct source_cookie *sp));
! #if defined(WIN32) && defined(FEAT_CSCOPE)
static FILE *fopen_noinh_readbin __ARGS((char *filename));
/*
* Special function to open a file without handle inheritance.
*/
static FILE *
fopen_noinh_readbin(filename)
char *filename;
{
! int fd_tmp = mch_open(filename, O_RDONLY | O_BINARY | O_NOINHERIT, 0);
if (fd_tmp == -1)
return NULL;
return fdopen(fd_tmp, READBIN);
}
#endif
--- 2802,2836 ----
static char_u *get_one_sourceline __ARGS((struct source_cookie *sp));
! #if (defined(WIN32) && defined(FEAT_CSCOPE)) || defined(HAVE_FD_CLOEXEC)
! # define USE_FOPEN_NOINH
static FILE *fopen_noinh_readbin __ARGS((char *filename));
/*
* Special function to open a file without handle inheritance.
+ * When possible the handle is closed on exec().
*/
static FILE *
fopen_noinh_readbin(filename)
char *filename;
{
! int fd_tmp = mch_open(filename, O_RDONLY
! # ifdef WIN32
! O_BINARY | O_NOINHERIT
! # endif
! , 0);
if (fd_tmp == -1)
return NULL;
+
+ # ifdef HAVE_FD_CLOEXEC
+ {
+ int fdflags = fcntl(fd_tmp, F_GETFD);
+ if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
+ fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC);
+ }
+ # endif
+
return fdopen(fd_tmp, READBIN);
}
#endif
***************
*** 2895,2901 ****
apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
#endif
! #if defined(WIN32) && defined(FEAT_CSCOPE)
cookie.fp = fopen_noinh_readbin((char *)fname_exp);
#else
cookie.fp = mch_fopen((char *)fname_exp, READBIN);
--- 2910,2916 ----
apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
#endif
! #ifdef USE_FOPEN_NOINH
cookie.fp = fopen_noinh_readbin((char *)fname_exp);
#else
cookie.fp = mch_fopen((char *)fname_exp, READBIN);
***************
*** 2916,2922 ****
*p = '.';
else
*p = '_';
! #if defined(WIN32) && defined(FEAT_CSCOPE)
cookie.fp = fopen_noinh_readbin((char *)fname_exp);
#else
cookie.fp = mch_fopen((char *)fname_exp, READBIN);
--- 2931,2937 ----
*p = '.';
else
*p = '_';
! #ifdef USE_FOPEN_NOINH
cookie.fp = fopen_noinh_readbin((char *)fname_exp);
#else
cookie.fp = mch_fopen((char *)fname_exp, READBIN);
*** ../vim-7.2.337/src/version.c 2010-01-19 16:12:53.000000000 +0100
--- src/version.c 2010-01-19 16:20:08.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 338,
/**/
--
~
~
~
".signature" 4 lines, 50 characters written
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

78
7.2.339 Normal file
View file

@ -0,0 +1,78 @@
To: vim-dev@vim.org
Subject: Patch 7.2.339
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.339 (after 7.2.269)
Problem: Part of --startuptime patch is missing.
Solution: Add check for time_fd.
Files: src/ex_cmds2.c
*** ../vim-7.2.338/src/ex_cmds2.c 2010-01-19 16:21:55.000000000 +0100
--- src/ex_cmds2.c 2010-01-19 16:02:53.000000000 +0100
***************
*** 3036,3042 ****
#endif
#ifdef STARTUPTIME
! time_push(&tv_rel, &tv_start);
#endif
#ifdef FEAT_EVAL
--- 3036,3043 ----
#endif
#ifdef STARTUPTIME
! if (time_fd != NULL)
! time_push(&tv_rel, &tv_start);
#endif
#ifdef FEAT_EVAL
***************
*** 3162,3170 ****
verbose_leave();
}
#ifdef STARTUPTIME
! vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname);
! time_msg((char *)IObuff, &tv_start);
! time_pop(&tv_rel);
#endif
#ifdef FEAT_EVAL
--- 3163,3174 ----
verbose_leave();
}
#ifdef STARTUPTIME
! if (time_fd != NULL)
! {
! vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname);
! time_msg((char *)IObuff, &tv_start);
! time_pop(&tv_rel);
! }
#endif
#ifdef FEAT_EVAL
*** ../vim-7.2.338/src/version.c 2010-01-19 16:21:55.000000000 +0100
--- src/version.c 2010-01-19 16:25:39.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 339,
/**/
--
hundred-and-one symptoms of being an internet addict:
122. You ask if the Netaholics Anonymous t-shirt you ordered can be
sent to you via e-mail.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.2.340 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.2.340
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.340
Problem: Gcc warning for condition that can never be true. (James Vega)
Solution: Use start_lvl instead flp->lvl.
Files: src/fold.c
*** ../vim-7.2.339/src/fold.c 2009-11-03 18:04:26.000000000 +0100
--- src/fold.c 2010-01-19 16:45:13.000000000 +0100
***************
*** 3239,3246 ****
flp->lvl = n;
flp->lvl_next = n - 1;
/* never start a fold with an end marker */
! if (flp->lvl_next > flp->lvl)
! flp->lvl_next = flp->lvl;
}
}
else
--- 3239,3246 ----
flp->lvl = n;
flp->lvl_next = n - 1;
/* never start a fold with an end marker */
! if (flp->lvl_next > start_lvl)
! flp->lvl_next = start_lvl;
}
}
else
*** ../vim-7.2.339/src/version.c 2010-01-19 16:31:10.000000000 +0100
--- src/version.c 2010-01-19 17:23:40.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 340,
/**/
--
Would you care for a drink? I mean, if it were, like,
disabled and you had to look after it?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

69
7.2.341 Normal file
View file

@ -0,0 +1,69 @@
To: vim-dev@vim.org
Subject: Patch 7.2.341
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.341
Problem: Popup menu wraps to next line when double-wide character doesn't
fit. (Jiang Ma)
Solution: Display a ">" instead. (Dominique Pelle)
Files: src/screen.c
*** ../vim-7.2.340/src/screen.c 2009-11-25 13:03:29.000000000 +0100
--- src/screen.c 2010-01-19 17:34:21.000000000 +0100
***************
*** 6434,6439 ****
--- 6434,6446 ----
else
prev_c = u8c;
# endif
+ if (col + mbyte_cells > screen_Columns)
+ {
+ /* Only 1 cell left, but character requires 2 cells:
+ * display a '>' in the last column to avoid wrapping. */
+ c = '>';
+ mbyte_cells = 1;
+ }
}
}
#endif
***************
*** 9210,9216 ****
int force;
{
/*
! * Don't delete it right now, when not redrawing or insided a mapping.
*/
if (!redrawing() || (!force && char_avail() && !KeyTyped))
redraw_cmdline = TRUE; /* delete mode later */
--- 9217,9223 ----
int force;
{
/*
! * Don't delete it right now, when not redrawing or inside a mapping.
*/
if (!redrawing() || (!force && char_avail() && !KeyTyped))
redraw_cmdline = TRUE; /* delete mode later */
*** ../vim-7.2.340/src/version.c 2010-01-19 17:24:20.000000000 +0100
--- src/version.c 2010-01-19 17:39:56.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 341,
/**/
--
hundred-and-one symptoms of being an internet addict:
124. You begin conversations with, "Who is your internet service provider?"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

95
7.2.342 Normal file
View file

@ -0,0 +1,95 @@
To: vim-dev@vim.org
Subject: Patch 7.2.342
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.342
Problem: Popup menu displayed wrong in 'rightleft' mode when there are
multi-byte characters.
Solution: Adjust the column computations. (Dominique Pelle)
Files: src/popupmnu.c
*** ../vim-7.2.341/src/popupmnu.c 2008-11-15 14:10:23.000000000 +0100
--- src/popupmnu.c 2010-01-19 17:57:05.000000000 +0100
***************
*** 345,365 ****
if (st != NULL)
{
char_u *rt = reverse_text(st);
- char_u *rt_saved = rt;
- int len, j;
if (rt != NULL)
{
! len = (int)STRLEN(rt);
! if (len > pum_width)
{
! for (j = pum_width; j < len; ++j)
mb_ptr_adv(rt);
! len = pum_width;
}
! screen_puts_len(rt, len, row,
! col - len + 1, attr);
! vim_free(rt_saved);
}
vim_free(st);
}
--- 345,380 ----
if (st != NULL)
{
char_u *rt = reverse_text(st);
if (rt != NULL)
{
! char_u *rt_start = rt;
! int size;
!
! size = vim_strsize(rt);
! if (size > pum_width)
{
! do
! {
! size -= has_mbyte
! ? (*mb_ptr2cells)(rt) : 1;
mb_ptr_adv(rt);
! } while (size > pum_width);
!
! if (size < pum_width)
! {
! /* Most left character requires
! * 2-cells but only 1 cell is
! * available on screen. Put a
! * '<' on the left of the pum
! * item */
! *(--rt) = '<';
! size++;
! }
}
! screen_puts_len(rt, (int)STRLEN(rt),
! row, col - size + 1, attr);
! vim_free(rt_start);
}
vim_free(st);
}
*** ../vim-7.2.341/src/version.c 2010-01-19 17:40:39.000000000 +0100
--- src/version.c 2010-01-19 18:03:22.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 342,
/**/
--
I have a watch cat! Just break in and she'll watch.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

51
7.2.343 Normal file
View file

@ -0,0 +1,51 @@
To: vim-dev@vim.org
Subject: Patch 7.2.343
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.343 (after 7.2.338)
Problem: Can't compile on Win32.
Solution: Insert the missing '|'.
Files: src/ex_cmds2.c
*** ../vim-7.2.342/src/ex_cmds2.c 2010-01-19 16:31:10.000000000 +0100
--- src/ex_cmds2.c 2010-01-19 23:22:40.000000000 +0100
***************
*** 2816,2822 ****
{
int fd_tmp = mch_open(filename, O_RDONLY
# ifdef WIN32
! O_BINARY | O_NOINHERIT
# endif
, 0);
--- 2816,2822 ----
{
int fd_tmp = mch_open(filename, O_RDONLY
# ifdef WIN32
! | O_BINARY | O_NOINHERIT
# endif
, 0);
*** ../vim-7.2.342/src/version.c 2010-01-19 18:05:05.000000000 +0100
--- src/version.c 2010-01-19 23:24:05.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 343,
/**/
--
I'm writing a book. I've got the page numbers done.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

60
7.2.344 Normal file
View file

@ -0,0 +1,60 @@
To: vim-dev@vim.org
Subject: Patch 7.2.344
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.344 (after 7.2.343)
Problem: Can't compile on some systems
Solution: Move the #ifdef outside of the mch_open macro. (Patrick Texier)
Files: src/ex_cmds2.c
*** ../vim-7.2.343/src/ex_cmds2.c 2010-01-19 23:25:18.000000000 +0100
--- src/ex_cmds2.c 2010-01-20 21:38:19.000000000 +0100
***************
*** 2814,2824 ****
fopen_noinh_readbin(filename)
char *filename;
{
- int fd_tmp = mch_open(filename, O_RDONLY
# ifdef WIN32
! | O_BINARY | O_NOINHERIT
# endif
- , 0);
if (fd_tmp == -1)
return NULL;
--- 2814,2824 ----
fopen_noinh_readbin(filename)
char *filename;
{
# ifdef WIN32
! int fd_tmp = mch_open(filename, O_RDONLY | O_BINARY | O_NOINHERIT, 0);
! # else
! int fd_tmp = mch_open(filename, O_RDONLY, 0);
# endif
if (fd_tmp == -1)
return NULL;
*** ../vim-7.2.343/src/version.c 2010-01-19 23:25:18.000000000 +0100
--- src/version.c 2010-01-20 21:38:23.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 344,
/**/
--
hundred-and-one symptoms of being an internet addict:
128. You can access the Net -- via your portable and cellular phone.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

47
7.2.345 Normal file
View file

@ -0,0 +1,47 @@
To: vim-dev@vim.org
Subject: Patch 7.2.345
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.345
Problem: Tab line is not updated when the value of 'bt' is changed.
Solution: Call redraw_titles(). (Lech Lorens)
Files: src/option.c
*** ../vim-7.2.344/src/option.c 2009-09-11 15:20:22.000000000 +0200
--- src/option.c 2010-01-27 15:52:45.000000000 +0100
***************
*** 6410,6415 ****
--- 6410,6418 ----
}
# endif
curbuf->b_help = (curbuf->b_p_bt[0] == 'h');
+ # ifdef FEAT_TITLE
+ redraw_titles();
+ # endif
}
}
#endif
*** ../vim-7.2.344/src/version.c 2010-01-20 21:41:40.000000000 +0100
--- src/version.c 2010-01-27 15:57:06.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 345,
/**/
--
hundred-and-one symptoms of being an internet addict:
154. You fondle your mouse.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

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