Merge remote branch 'fedora/master' into rhel-7.0

This commit is contained in:
Daniel Mach 2012-07-23 14:39:07 -04:00
commit 6d753b1b3a
91 changed files with 16692 additions and 3 deletions

94
7.3.516 Normal file
View File

@ -0,0 +1,94 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.516
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.516
Problem: extend(o, o) may crash Vim.
Solution: Fix crash and add test. (Thinca and Hirohito Higashi)
Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
*** ../vim-7.3.515/src/eval.c 2012-04-30 17:35:44.000000000 +0200
--- src/eval.c 2012-05-18 12:02:44.000000000 +0200
***************
*** 10191,10197 ****
EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
break;
}
! else if (*action == 'f')
{
clear_tv(&di1->di_tv);
copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
--- 10191,10197 ----
EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
break;
}
! else if (*action == 'f' && HI2DI(hi2) != di1)
{
clear_tv(&di1->di_tv);
copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
*** ../vim-7.3.515/src/testdir/test55.in 2010-11-10 20:31:24.000000000 +0100
--- src/testdir/test55.in 2012-05-18 11:57:23.000000000 +0200
***************
*** 352,357 ****
--- 352,375 ----
:let dict4copy = deepcopy(dict4)
:$put =(l == lcopy)
:$put =(dict4 == dict4copy)
+ :"
+ :" Pass the same List to extend()
+ :let l = [1, 2, 3, 4, 5]
+ :call extend(l, l)
+ :$put =string(l)
+ :"
+ :" Pass the same Dict to extend()
+ :let d = { 'a': {'b': 'B'}}
+ :call extend(d, d)
+ :$put =string(d)
+ :"
+ :" Pass the same Dict to extend() with "error"
+ :try
+ : call extend(d, d, "error")
+ :catch
+ : $put =v:exception[:15] . v:exception[-1:-1]
+ :endtry
+ :$put =string(d)
:endfun
:"
:call Test(1, 2, [3, 4], {5: 6}) " This may take a while
*** ../vim-7.3.515/src/testdir/test55.ok 2010-11-10 20:31:24.000000000 +0100
--- src/testdir/test55.ok 2012-05-18 11:57:01.000000000 +0200
***************
*** 111,113 ****
--- 111,117 ----
0
1
1
+ [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
+ {'a': {'b': 'B'}}
+ Vim(call):E737: a
+ {'a': {'b': 'B'}}
*** ../vim-7.3.515/src/version.c 2012-04-30 21:09:38.000000000 +0200
--- src/version.c 2012-05-18 12:04:54.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 516,
/**/
--
I used to wonder about the meaning of life. But I looked it
up in the dictionary under "L" and there it was - the meaning
of life. It was less than I expected. - Dogbert
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

60
7.3.517 Normal file
View File

@ -0,0 +1,60 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.517
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.517
Problem: Crash when using "vipvv". (Alexandre Provencio)
Solution: Don't let the text length become negative.
Files: src/ops.c
*** ../vim-7.3.516/src/ops.c 2012-04-20 13:46:02.000000000 +0200
--- src/ops.c 2012-05-18 12:28:09.000000000 +0200
***************
*** 3042,3047 ****
--- 3042,3049 ----
}
#endif
}
+ if (endcol == MAXCOL)
+ endcol = (colnr_T)STRLEN(p);
if (startcol > endcol
#ifdef FEAT_VIRTUALEDIT
|| is_oneChar
***************
*** 3050,3057 ****
bd.textlen = 0;
else
{
- if (endcol == MAXCOL)
- endcol = (colnr_T)STRLEN(p);
bd.textlen = endcol - startcol + oap->inclusive;
}
bd.textstart = p + startcol;
--- 3052,3057 ----
*** ../vim-7.3.516/src/version.c 2012-05-18 12:06:58.000000000 +0200
--- src/version.c 2012-05-18 12:48:51.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 517,
/**/
--
BODY: I'm not dead!
CART DRIVER: 'Ere. He says he's not dead.
LARGE MAN: Yes he is.
BODY: I'm not!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

57
7.3.518 Normal file
View File

@ -0,0 +1,57 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.518
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.518
Problem: When 'encoding' is a double-byte encoding ":helptags" may not find
tags correctly.
Solution: Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
Files: src/ex_cmds.c
*** ../vim-7.3.517/src/ex_cmds.c 2012-04-25 17:32:14.000000000 +0200
--- src/ex_cmds.c 2012-05-18 16:20:20.000000000 +0200
***************
*** 6535,6541 ****
p1 = vim_strchr(IObuff, '*'); /* find first '*' */
while (p1 != NULL)
{
! p2 = vim_strchr(p1 + 1, '*'); /* find second '*' */
if (p2 != NULL && p2 > p1 + 1) /* skip "*" and "**" */
{
for (s = p1 + 1; s < p2; ++s)
--- 6535,6544 ----
p1 = vim_strchr(IObuff, '*'); /* find first '*' */
while (p1 != NULL)
{
! /* Use vim_strbyte() instead of vim_strchr() so that when
! * 'encoding' is dbcs it still works, don't find '*' in the
! * second byte. */
! p2 = vim_strbyte(p1 + 1, '*'); /* find second '*' */
if (p2 != NULL && p2 > p1 + 1) /* skip "*" and "**" */
{
for (s = p1 + 1; s < p2; ++s)
*** ../vim-7.3.517/src/version.c 2012-05-18 12:49:33.000000000 +0200
--- src/version.c 2012-05-18 16:23:50.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 518,
/**/
--
If all you have is a hammer, everything looks like a nail.
When your hammer is C++, everything begins to look like a thumb.
-- Steve Hoflich, comp.lang.c++
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

64
7.3.519 Normal file
View File

@ -0,0 +1,64 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.519
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.519
Problem: When completefunction returns it cannot indicate end of completion
mode.
Solution: Recognize completefunction returning -3. (Mtsushita Shougo)
Files: src/edit.c
*** ../vim-7.3.518/src/edit.c 2012-04-30 18:18:43.000000000 +0200
--- src/edit.c 2012-05-18 16:35:06.000000000 +0200
***************
*** 5205,5213 ****
}
/* Return value -2 means the user complete function wants to
! * cancel the complete without an error. */
if (col == -2)
return FAIL;
/*
* Reset extended parameters of completion, when start new
--- 5205,5221 ----
}
/* Return value -2 means the user complete function wants to
! * cancel the complete without an error.
! * Return value -3 does the same as -2 and leaves CTRL-X mode.*/
if (col == -2)
return FAIL;
+ if (col == -3)
+ {
+ ctrl_x_mode = 0;
+ edit_submode = NULL;
+ msg_clr_cmdline();
+ return FAIL;
+ }
/*
* Reset extended parameters of completion, when start new
*** ../vim-7.3.518/src/version.c 2012-05-18 16:24:06.000000000 +0200
--- src/version.c 2012-05-18 16:34:27.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 519,
/**/
--
Looking at Perl through Lisp glasses, Perl looks atrocious.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

140
7.3.520 Normal file
View File

@ -0,0 +1,140 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.520
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.520
Problem: Gvim starts up slow on Unbuntu 12.04.
Solution: Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
Matsumoto) Do check $DISPLAY being set.
Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
*** ../vim-7.3.519/src/gui.c 2011-10-20 21:27:57.000000000 +0200
--- src/gui.c 2012-05-18 16:53:14.000000000 +0200
***************
*** 270,275 ****
--- 270,281 ----
}
/* Child */
+ #ifdef FEAT_GUI_GTK
+ /* Call gtk_init_check() here after fork(). See gui_init_check(). */
+ if (gui_mch_init_check() != OK)
+ exit(1);
+ #endif
+
# if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
/*
* Change our process group. On some systems/shells a CTRL-C in the
***************
*** 430,436 ****
--- 436,452 ----
#ifdef ALWAYS_USE_GUI
result = OK;
#else
+ # ifdef FEAT_GUI_GTK
+ /*
+ * Note: Don't call gtk_init_check() before fork, it will be called after
+ * the fork. When calling it before fork, it make vim hang for a while.
+ * See gui_do_fork().
+ * Use a simpler check if the GUI window can probably be opened.
+ */
+ result = gui.dofork ? gui_mch_early_init_check() : gui_mch_init_check();
+ # else
result = gui_mch_init_check();
+ # endif
#endif
return result;
}
*** ../vim-7.3.519/src/gui_gtk_x11.c 2011-10-26 11:36:21.000000000 +0200
--- src/gui_gtk_x11.c 2012-05-18 17:00:45.000000000 +0200
***************
*** 1414,1420 ****
}
/*
! * Check if the GUI can be started. Called before gvimrc is sourced.
* Return OK or FAIL.
*/
int
--- 1414,1442 ----
}
/*
! * Check if the GUI can be started. Called before gvimrc is sourced and
! * before fork().
! * Return OK or FAIL.
! */
! int
! gui_mch_early_init_check(void)
! {
! char_u *p;
!
! /* Guess that when $DISPLAY isn't set the GUI can't start. */
! p = mch_getenv((char_u *)"DISPLAY");
! if (p == NULL || *p == NUL)
! {
! gui.dying = TRUE;
! EMSG(_((char *)e_opendisp));
! return FAIL;
! }
! return OK;
! }
!
! /*
! * Check if the GUI can be started. Called before gvimrc is sourced but after
! * fork().
* Return OK or FAIL.
*/
int
***************
*** 3050,3056 ****
for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
{
! /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
* return something, instead of trying another target. Therefore only
* offer TARGET_HTML when it works. */
if (!clip_html && selection_targets[i].info == TARGET_HTML)
--- 3072,3078 ----
for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
{
! /* OpenOffice tries to use TARGET_HTML and fails when we don't
* return something, instead of trying another target. Therefore only
* offer TARGET_HTML when it works. */
if (!clip_html && selection_targets[i].info == TARGET_HTML)
*** ../vim-7.3.519/src/proto/gui_gtk_x11.pro 2011-08-10 17:44:41.000000000 +0200
--- src/proto/gui_gtk_x11.pro 2012-05-18 16:54:28.000000000 +0200
***************
*** 4,9 ****
--- 4,10 ----
void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
void gui_mch_stop_blink __ARGS((void));
void gui_mch_start_blink __ARGS((void));
+ int gui_mch_early_init_check __ARGS((void));
int gui_mch_init_check __ARGS((void));
void gui_mch_show_tabline __ARGS((int showit));
int gui_mch_showing_tabline __ARGS((void));
*** ../vim-7.3.519/src/version.c 2012-05-18 16:35:17.000000000 +0200
--- src/version.c 2012-05-18 16:45:30.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 520,
/**/
--
Bad programs can be written in any language.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

129
7.3.521 Normal file
View File

@ -0,0 +1,129 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.521
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.521
Problem: Using "z=" on a multi-byte character may cause a crash.
Solution: Don't use strlen() on an int pointer.
Files: src/spell.c
*** ../vim-7.3.520/src/spell.c 2012-01-10 22:26:12.000000000 +0100
--- src/spell.c 2012-05-18 18:01:58.000000000 +0200
***************
*** 14494,14506 ****
int p0 = -333;
int c0;
int did_white = FALSE;
/*
* Convert the multi-byte string to a wide-character string.
* Remove accents, if wanted. We actually remove all non-word characters.
* But keep white space.
*/
! n = 0;
for (s = inword; *s != NUL; )
{
t = s;
--- 14494,14508 ----
int p0 = -333;
int c0;
int did_white = FALSE;
+ int wordlen;
+
/*
* Convert the multi-byte string to a wide-character string.
* Remove accents, if wanted. We actually remove all non-word characters.
* But keep white space.
*/
! wordlen = 0;
for (s = inword; *s != NUL; )
{
t = s;
***************
*** 14521,14532 ****
continue;
}
}
! word[n++] = c;
}
! word[n] = NUL;
/*
! * This comes from Aspell phonet.cpp.
* Converted from C++ to C. Added support for multi-byte chars.
* Changed to keep spaces.
*/
--- 14523,14534 ----
continue;
}
}
! word[wordlen++] = c;
}
! word[wordlen] = NUL;
/*
! * This algorithm comes from Aspell phonet.cpp.
* Converted from C++ to C. Added support for multi-byte chars.
* Changed to keep spaces.
*/
***************
*** 14711,14717 ****
}
if (k > k0)
mch_memmove(word + i + k0, word + i + k,
! sizeof(int) * (STRLEN(word + i + k) + 1));
/* new "actual letter" */
c = word[i];
--- 14713,14719 ----
}
if (k > k0)
mch_memmove(word + i + k0, word + i + k,
! sizeof(int) * (wordlen - (i + k) + 1));
/* new "actual letter" */
c = word[i];
***************
*** 14739,14745 ****
if (c != NUL)
wres[reslen++] = c;
mch_memmove(word, word + i + 1,
! sizeof(int) * (STRLEN(word + i + 1) + 1));
i = 0;
z0 = 1;
}
--- 14741,14747 ----
if (c != NUL)
wres[reslen++] = c;
mch_memmove(word, word + i + 1,
! sizeof(int) * (wordlen - (i + 1) + 1));
i = 0;
z0 = 1;
}
*** ../vim-7.3.520/src/version.c 2012-05-18 17:03:14.000000000 +0200
--- src/version.c 2012-05-18 18:06:29.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 521,
/**/
--
OLD WOMAN: King of the WHO?
ARTHUR: The Britons.
OLD WOMAN: Who are the Britons?
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

56
7.3.522 Normal file
View File

@ -0,0 +1,56 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.522
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.522
Problem: Crash in vim_realloc() when using MEM_PROFILE.
Solution: Avoid using a NULL argument. (Dominique Pelle)
Files: src/eval.c
*** ../vim-7.3.521/src/eval.c 2012-05-18 12:06:58.000000000 +0200
--- src/eval.c 2012-05-18 18:19:25.000000000 +0200
***************
*** 14643,14649 ****
long growmin = (long)((p - start) * 2 + prevlen);
prevsize = grow50pc > growmin ? grow50pc : growmin;
}
! if ((newprev = vim_realloc(prev, prevsize)) == NULL)
{
do_outofmem_msg((long_u)prevsize);
failed = TRUE;
--- 14643,14651 ----
long growmin = (long)((p - start) * 2 + prevlen);
prevsize = grow50pc > growmin ? grow50pc : growmin;
}
! newprev = prev == NULL ? alloc(prevsize)
! : vim_realloc(prev, prevsize);
! if (newprev == NULL)
{
do_outofmem_msg((long_u)prevsize);
failed = TRUE;
*** ../vim-7.3.521/src/version.c 2012-05-18 18:07:57.000000000 +0200
--- src/version.c 2012-05-18 18:33:36.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 522,
/**/
--
ARTHUR: ... and I am your king ....
OLD WOMAN: Ooooh! I didn't know we had a king. I thought we were an
autonomous collective ...
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

103
7.3.523 Normal file
View File

@ -0,0 +1,103 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.523
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.523
Problem: ":diffupdate" doesn't check for files changed elsewhere.
Solution: Add the ! flag. (Christian Brabandt)
Files: runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h
*** ../vim-7.3.522/runtime/doc/diff.txt 2010-08-15 21:57:16.000000000 +0200
--- runtime/doc/diff.txt 2012-05-18 18:41:49.000000000 +0200
***************
*** 178,184 ****
nodiff" before hiding it.
*:diffu* *:diffupdate*
! :diffu[pdate] Update the diff highlighting and folds.
Vim attempts to keep the differences updated when you make changes to the
text. This mostly takes care of inserted and deleted lines. Changes within a
--- 178,184 ----
nodiff" before hiding it.
*:diffu* *:diffupdate*
! :diffu[pdate][!] Update the diff highlighting and folds.
Vim attempts to keep the differences updated when you make changes to the
text. This mostly takes care of inserted and deleted lines. Changes within a
***************
*** 187,192 ****
--- 187,195 ----
:diffupdate
+ If the ! is included Vim will check if the file was changed externally and
+ needs to be reloaded. It will prompt for each changed file, like `:checktime`
+ was used.
Vim will show filler lines for lines that are missing in one window but are
present in another. These lines were inserted in another file or deleted in
*** ../vim-7.3.522/src/diff.c 2010-09-21 16:56:29.000000000 +0200
--- src/diff.c 2012-05-18 18:45:09.000000000 +0200
***************
*** 783,788 ****
--- 783,797 ----
goto theend;
}
+ /* :diffupdate! */
+ if (eap != NULL && eap->forceit)
+ for (idx_new = idx_orig; idx_new < DB_COUNT; ++idx_new)
+ {
+ buf = curtab->tp_diffbuf[idx_new];
+ if (buf_valid(buf))
+ buf_check_timestamp(buf, FALSE);
+ }
+
/* Write the first buffer to a tempfile. */
buf = curtab->tp_diffbuf[idx_orig];
if (diff_write(buf, tmp_orig) == FAIL)
*** ../vim-7.3.522/src/ex_cmds.h 2012-02-13 00:01:38.000000000 +0100
--- src/ex_cmds.h 2012-05-18 18:37:56.000000000 +0200
***************
*** 304,310 ****
EX(CMD_display, "display", ex_display,
EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
! TRLBAR),
EX(CMD_diffget, "diffget", ex_diffgetput,
RANGE|EXTRA|TRLBAR|MODIFY),
EX(CMD_diffoff, "diffoff", ex_diffoff,
--- 304,310 ----
EX(CMD_display, "display", ex_display,
EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
! BANG|TRLBAR),
EX(CMD_diffget, "diffget", ex_diffgetput,
RANGE|EXTRA|TRLBAR|MODIFY),
EX(CMD_diffoff, "diffoff", ex_diffoff,
*** ../vim-7.3.522/src/version.c 2012-05-18 18:34:15.000000000 +0200
--- src/version.c 2012-05-18 18:39:13.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 523
/**/
--
"The future's already arrived - it's just not evenly distributed yet."
-- William Gibson
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

46
7.3.524 Normal file
View File

@ -0,0 +1,46 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.524
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.524 (after 7.3.523)
Problem: Missing comma.
Solution: Add the comma.
Files: src/version.c
*** ../vim-7.3.523/src/version.c 2012-05-18 18:47:11.000000000 +0200
--- src/version.c 2012-05-18 21:52:26.000000000 +0200
***************
*** 715,721 ****
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
! 523
/**/
522,
/**/
--- 715,723 ----
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
! 524,
! /**/
! 523,
/**/
522,
/**/
--
DENNIS: You can't expect to wield supreme executive power just 'cause some
watery tart threw a sword at you!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.3.525 Normal file
View File

@ -0,0 +1,55 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.525
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.525
Problem: Compiler warning on 64 bit MS-Windows.
Solution: Add type cast. (Mike Williams)
Files: src/ex_getln.c
*** ../vim-7.3.524/src/ex_getln.c 2012-04-30 18:48:38.000000000 +0200
--- src/ex_getln.c 2012-05-23 20:33:16.000000000 +0200
***************
*** 5263,5269 ****
{
static char_u compl[2] = { NUL, NUL };
char *short_names = ":=@>?/";
! int short_names_count = STRLEN(short_names);
int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
if (idx < short_names_count)
--- 5263,5269 ----
{
static char_u compl[2] = { NUL, NUL };
char *short_names = ":=@>?/";
! int short_names_count = (int)STRLEN(short_names);
int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
if (idx < short_names_count)
*** ../vim-7.3.524/src/version.c 2012-05-18 21:53:29.000000000 +0200
--- src/version.c 2012-05-25 11:01:51.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 525,
/**/
--
For humans, honesty is a matter of degree. Engineers are always honest in
matters of technology and human relationships. That's why it's a good idea
to keep engineers away from customers, romantic interests, and other people
who can't handle the truth.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

59
7.3.526 Normal file
View File

@ -0,0 +1,59 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.526
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.526
Problem: Confusing indenting for #ifdef.
Solution: Remove and add indent. (Elias Diem)
Files: src/normal.c
*** ../vim-7.3.525/src/normal.c 2012-04-30 18:18:43.000000000 +0200
--- src/normal.c 2012-05-23 20:35:13.000000000 +0200
***************
*** 29,37 ****
static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
#endif
static int
! # ifdef __BORLANDC__
! _RTLENTRYF
! # endif
nv_compare __ARGS((const void *s1, const void *s2));
static int find_command __ARGS((int cmdchar));
static void op_colon __ARGS((oparg_T *oap));
--- 29,37 ----
static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
#endif
static int
! #ifdef __BORLANDC__
! _RTLENTRYF
! #endif
nv_compare __ARGS((const void *s1, const void *s2));
static int find_command __ARGS((int cmdchar));
static void op_colon __ARGS((oparg_T *oap));
*** ../vim-7.3.525/src/version.c 2012-05-25 11:02:34.000000000 +0200
--- src/version.c 2012-05-25 11:03:37.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 526,
/**/
--
While it's true that many normal people whould prefer not to _date_ an
engineer, most normal people harbor an intense desire to _mate_ with them,
thus producing engineerlike children who will have high-paying jobs long
before losing their virginity.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

59
7.3.527 Normal file
View File

@ -0,0 +1,59 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.527
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=latin1
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.527
Problem: Clang complains about non-ASCII characters in a string.
Solution: Change to \x88 form. (Dominique Pelle)
Files: src/charset.c
*** ../vim-7.3.526/src/charset.c 2012-01-26 13:40:04.000000000 +0100
--- src/charset.c 2012-05-25 11:49:58.000000000 +0200
***************
*** 1602,1611 ****
#define LATIN1LOWER 'l'
#define LATIN1UPPER 'U'
- /* !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]%_'abcdefghijklmnopqrstuvwxyz{|}~ 、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD> */
static char_u latin1flags[257] = " UUUUUUUUUUUUUUUUUUUUUUUUUU llllllllllllllllllllllllll UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
! static char_u latin1upper[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉呃谅媚牌侨墒颂臀闲岩釉罩髫仝圮蒉<E59CAE>";
! static char_u latin1lower[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄苦徕沅彐玷殛腱眍镳耱篝貊坐<E8B28A><E59D90><EFBFBD>哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>";
int
vim_islower(c)
--- 1602,1610 ----
#define LATIN1LOWER 'l'
#define LATIN1UPPER 'U'
static char_u latin1flags[257] = " UUUUUUUUUUUUUUUUUUUUUUUUUU llllllllllllllllllllllllll UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
! static char_u latin1upper[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xf7\xd8\xd9\xda\xdb\xdc\xdd\xde\xff";
! static char_u latin1lower[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xd7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
int
vim_islower(c)
*** ../vim-7.3.526/src/version.c 2012-05-25 11:04:34.000000000 +0200
--- src/version.c 2012-05-25 11:52:06.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 527,
/**/
--
An alien life briefly visits earth. Just before departing it leaves a
message in the dust on the back of a white van. The world is shocked
and wants to know what it means. After months of studies the worlds
best linguistic scientists are able to decipher the message: "Wash me!".
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

171
7.3.528 Normal file
View File

@ -0,0 +1,171 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.528
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.528
Problem: Crash when closing last window in a tab. (Alex Efros)
Solution: Use common code in close_last_window_tabpage(). (Christian
Brabandt)
Files: src/window.c
*** ../vim-7.3.527/src/window.c 2012-03-16 19:07:54.000000000 +0100
--- src/window.c 2012-05-25 12:25:16.000000000 +0200
***************
*** 23,28 ****
--- 23,29 ----
static void win_totop __ARGS((int size, int flags));
static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height));
static int last_window __ARGS((void));
+ static int close_last_window_tabpage __ARGS((win_T *win, int free_buf, tabpage_T *prev_curtab));
static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp));
static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp));
static tabpage_T *alt_tabpage __ARGS((void));
***************
*** 2105,2110 ****
--- 2106,2147 ----
}
/*
+ * Close the possibly last window in a tab page.
+ * Returns TRUE when the window was closed already.
+ */
+ static int
+ close_last_window_tabpage(win, free_buf, prev_curtab)
+ win_T *win;
+ int free_buf;
+ tabpage_T *prev_curtab;
+ {
+ if (firstwin == lastwin)
+ {
+ /*
+ * Closing the last window in a tab page. First go to another tab
+ * page and then close the window and the tab page. This avoids that
+ * curwin and curtab are invalid while we are freeing memory, they may
+ * be used in GUI events.
+ */
+ goto_tabpage_tp(alt_tabpage());
+ redraw_tabline = TRUE;
+
+ /* Safety check: Autocommands may have closed the window when jumping
+ * to the other tab page. */
+ if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
+ {
+ int h = tabline_height();
+
+ win_close_othertab(win, free_buf, prev_curtab);
+ if (h != tabline_height())
+ shell_new_rows();
+ }
+ return TRUE;
+ }
+ return FALSE;
+ }
+
+ /*
* Close window "win". Only works for the current tab page.
* If "free_buf" is TRUE related buffer may be unloaded.
*
***************
*** 2143,2171 ****
}
#endif
! /*
! * When closing the last window in a tab page first go to another tab
! * page and then close the window and the tab page. This avoids that
! * curwin and curtab are not invalid while we are freeing memory, they may
! * be used in GUI events.
! */
! if (firstwin == lastwin)
! {
! goto_tabpage_tp(alt_tabpage());
! redraw_tabline = TRUE;
!
! /* Safety check: Autocommands may have closed the window when jumping
! * to the other tab page. */
! if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
! {
! int h = tabline_height();
!
! win_close_othertab(win, free_buf, prev_curtab);
! if (h != tabline_height())
! shell_new_rows();
! }
! return;
! }
/* When closing the help window, try restoring a snapshot after closing
* the window. Otherwise clear the snapshot, it's now invalid. */
--- 2180,2190 ----
}
#endif
! /* When closing the last window in a tab page first go to another tab page
! * and then close the window and the tab page to avoid that curwin and
! * curtab are invalid while we are freeing memory. */
! if (close_last_window_tabpage(win, free_buf, prev_curtab))
! return;
/* When closing the help window, try restoring a snapshot after closing
* the window. Otherwise clear the snapshot, it's now invalid. */
***************
*** 2225,2231 ****
/* Autocommands may have closed the window already, or closed the only
* other window or moved to another tab page. */
! if (!win_valid(win) || last_window() || curtab != prev_curtab)
return;
/* Free the memory used for the window and get the window that received
--- 2244,2251 ----
/* Autocommands may have closed the window already, or closed the only
* other window or moved to another tab page. */
! if (!win_valid(win) || last_window() || curtab != prev_curtab
! || close_last_window_tabpage(win, free_buf, prev_curtab))
return;
/* Free the memory used for the window and get the window that received
***************
*** 2310,2316 ****
/*
* Close window "win" in tab page "tp", which is not the current tab page.
! * This may be the last window ih that tab page and result in closing the tab,
* thus "tp" may become invalid!
* Caller must check if buffer is hidden and whether the tabline needs to be
* updated.
--- 2330,2336 ----
/*
* Close window "win" in tab page "tp", which is not the current tab page.
! * This may be the last window in that tab page and result in closing the tab,
* thus "tp" may become invalid!
* Caller must check if buffer is hidden and whether the tabline needs to be
* updated.
*** ../vim-7.3.527/src/version.c 2012-05-25 11:56:06.000000000 +0200
--- src/version.c 2012-05-25 12:38:25.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 528,
/**/
--
For society, it's probably a good thing that engineers value function over
appearance. For example, you wouldn't want engineers to build nuclear power
plants that only _look_ like they would keep all the radiation inside.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

81
7.3.529 Normal file
View File

@ -0,0 +1,81 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.529
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.529
Problem: Using a count before "v" and "V" does not work (Kikyous)
Solution: Make the count select that many characters or lines. (Christian
Brabandt)
Files: src/normal.c
*** ../vim-7.3.528/src/normal.c 2012-05-25 11:04:34.000000000 +0200
--- src/normal.c 2012-05-25 13:12:06.000000000 +0200
***************
*** 7660,7672 ****
else /* start Visual mode */
{
check_visual_highlight();
! if (cap->count0) /* use previously selected part */
{
! if (resel_VIsual_mode == NUL) /* there is none */
! {
! beep_flush();
! return;
! }
VIsual = curwin->w_cursor;
VIsual_active = TRUE;
--- 7660,7668 ----
else /* start Visual mode */
{
check_visual_highlight();
! if (cap->count0 > 0 && resel_VIsual_mode != NUL)
{
! /* use previously selected part */
VIsual = curwin->w_cursor;
VIsual_active = TRUE;
***************
*** 7725,7730 ****
--- 7721,7736 ----
/* start Select mode when 'selectmode' contains "cmd" */
may_start_select('c');
n_start_visual_mode(cap->cmdchar);
+ if (VIsual_mode != 'V' && *p_sel == 'e')
+ ++cap->count1; /* include one more char */
+ if (cap->count0 > 0 && --cap->count1 > 0)
+ {
+ /* With a count select that many characters or lines. */
+ if (VIsual_mode == 'v' || VIsual_mode == Ctrl_V)
+ nv_right(cap);
+ else if (VIsual_mode == 'V')
+ nv_down(cap);
+ }
}
}
}
*** ../vim-7.3.528/src/version.c 2012-05-25 12:38:57.000000000 +0200
--- src/version.c 2012-05-25 12:59:58.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 529,
/**/
--
Normal people believe that if it ain't broke, don't fix it. Engineers believe
that if it ain't broke, it doesn't have enough features yet.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

50
7.3.530 Normal file
View File

@ -0,0 +1,50 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.530
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.530 (after 7.3.520)
Problem: Gvim does not work when 'guioptions' includes "f". (Davido)
Solution: Call gui_mch_init_check() when running GUI in the foreground.
(Yasuhiro Matsumoto)
Files: src/gui.c
*** ../vim-7.3.529/src/gui.c 2012-05-18 17:03:13.000000000 +0200
--- src/gui.c 2012-05-25 14:01:26.000000000 +0200
***************
*** 102,107 ****
--- 102,111 ----
else
#endif
{
+ /* If there is 'f' in 'guioptions' and specify -g argument,
+ * gui_mch_init_check() was not called yet. */
+ if (gui_mch_init_check() != OK)
+ exit(1);
gui_attempt_start();
}
*** ../vim-7.3.529/src/version.c 2012-05-25 13:12:33.000000000 +0200
--- src/version.c 2012-05-25 14:05:46.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 530,
/**/
--
I think that you'll agree that engineers are very effective in their social
interactions. It's the "normal" people who are nuts.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.3.531 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.531
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.531 (after 7.3.530)
Problem: GUI does not work on MS-Windows.
Solution: Add the missing #ifdef. (Patrick Avery)
Files: src/gui.c
*** ../vim-7.3.530/src/gui.c 2012-05-25 14:06:18.000000000 +0200
--- src/gui.c 2012-05-27 00:34:51.000000000 +0200
***************
*** 102,111 ****
--- 102,113 ----
else
#endif
{
+ #ifdef FEAT_GUI_GTK
/* If there is 'f' in 'guioptions' and specify -g argument,
* gui_mch_init_check() was not called yet. */
if (gui_mch_init_check() != OK)
exit(1);
+ #endif
gui_attempt_start();
}
*** ../vim-7.3.530/src/version.c 2012-05-25 14:06:18.000000000 +0200
--- src/version.c 2012-05-27 00:37:33.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 531,
/**/
--
I learned the customs and mannerisms of engineers by observing them, much the
way Jane Goodall learned about the great apes, but without the hassle of
grooming.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

53
7.3.532 Normal file
View File

@ -0,0 +1,53 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.532
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.532
Problem: Compiler warning from Clang.
Solution: Use a different way to point inside a string. (Dominique Pelle)
Files: src/syntax.c
*** ../vim-7.3.531/src/syntax.c 2012-03-23 16:25:13.000000000 +0100
--- src/syntax.c 2012-06-01 13:13:58.000000000 +0200
***************
*** 9476,9482 ****
int cnt;
int attr;
{
! msg_puts_attr((char_u *)("N \bI \b! \b" + cnt / 11), attr);
msg_clr_eos();
out_flush();
ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
--- 9476,9482 ----
int cnt;
int attr;
{
! msg_puts_attr((char_u *)&("N \bI \b! \b"[cnt / 11]), attr);
msg_clr_eos();
out_flush();
ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
*** ../vim-7.3.531/src/version.c 2012-05-27 00:37:45.000000000 +0200
--- src/version.c 2012-06-01 13:14:51.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 532,
/**/
--
hundred-and-one symptoms of being an internet addict:
8. You spend half of the plane trip with your laptop on your lap...and your
child in the overhead compartment.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

46
7.3.533 Normal file
View File

@ -0,0 +1,46 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.533
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.533
Problem: Memory leak when writing undo file.
Solution: Free the ACL. (Dominique Pelle)
Files: src/undo.c
*** ../vim-7.3.532/src/undo.c 2011-12-08 15:14:04.000000000 +0100
--- src/undo.c 2012-06-01 13:38:42.000000000 +0200
***************
*** 1535,1540 ****
--- 1535,1541 ----
/* For systems that support ACL: get the ACL from the original file. */
acl = mch_get_acl(buf->b_ffname);
mch_set_acl(file_name, acl);
+ mch_free_acl(acl);
}
#endif
*** ../vim-7.3.532/src/version.c 2012-06-01 13:18:48.000000000 +0200
--- src/version.c 2012-06-01 13:39:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 533,
/**/
--
"How is your new girlfriend?"
"90-60-90 man!"
"What, pale purple?"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

101
7.3.534 Normal file
View File

@ -0,0 +1,101 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.534
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.534 (after 7.3.461)
Problem: When using an InsertCharPre autocommand autoindent fails.
Solution: Proper handling of v:char. (Alexey Radkov)
Files: src/edit.c
*** ../vim-7.3.533/src/edit.c 2012-05-18 16:35:17.000000000 +0200
--- src/edit.c 2012-06-01 14:41:06.000000000 +0200
***************
*** 10108,10129 ****
do_insert_char_pre(c)
int c;
{
! char_u *res;
/* Return quickly when there is nothing to do. */
if (!has_insertcharpre())
return NULL;
/* Lock the text to avoid weird things from happening. */
++textlock;
! set_vim_var_char(c); /* set v:char */
if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
! /* Get the new value of v:char. It may be empty or more than one
! * character. */
! res = vim_strsave(get_vim_var_str(VV_CHAR));
! else
! res = NULL;
set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
--textlock;
--- 10108,10147 ----
do_insert_char_pre(c)
int c;
{
! char_u *res;
! #ifdef FEAT_MBYTE
! char_u buf[MB_MAXBYTES + 1];
! #else
! char_u buf[2];
! #endif
/* Return quickly when there is nothing to do. */
if (!has_insertcharpre())
return NULL;
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ buf[(*mb_char2bytes)(c, buf)] = NUL;
+ else
+ #endif
+ {
+ buf[0] = c;
+ buf[1] = NUL;
+ }
+
/* Lock the text to avoid weird things from happening. */
++textlock;
! set_vim_var_string(VV_CHAR, buf, -1); /* set v:char */
+ res = NULL;
if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
! {
! /* Get the value of v:char. It may be empty or more than one
! * character. Only use it when changed, otherwise continue with the
! * original character to avoid breaking autoindent. */
! if (STRCMP(buf, get_vim_var_str(VV_CHAR)) != 0)
! res = vim_strsave(get_vim_var_str(VV_CHAR));
! }
set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
--textlock;
*** ../vim-7.3.533/src/version.c 2012-06-01 13:46:06.000000000 +0200
--- src/version.c 2012-06-01 14:42:19.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 534,
/**/
--
hundred-and-one symptoms of being an internet addict:
11. You find yourself typing "com" after every period when using a word
processor.com
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

356
7.3.535 Normal file
View File

@ -0,0 +1,356 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.535
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.535
Problem: Many #ifdefs for MB_MAXBYTES.
Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix
places where the buffer didn't include space for a NUL byte.
Files: src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c,
src/misc1.c, src/screen.c, src/spell.c, src/vim.h
*** ../vim-7.3.534/src/arabic.c 2010-08-15 21:57:28.000000000 +0200
--- src/arabic.c 2012-06-01 14:59:37.000000000 +0200
***************
*** 1066,1072 ****
if (curr_c != c && ccp != NULL)
{
! char_u buf[MB_MAXBYTES];
/* Update the first byte of the character. */
(*mb_char2bytes)(curr_c, buf);
--- 1066,1072 ----
if (curr_c != c && ccp != NULL)
{
! char_u buf[MB_MAXBYTES + 1];
/* Update the first byte of the character. */
(*mb_char2bytes)(curr_c, buf);
*** ../vim-7.3.534/src/edit.c 2012-06-01 14:57:47.000000000 +0200
--- src/edit.c 2012-06-01 15:01:49.000000000 +0200
***************
*** 1648,1658 ****
#define PC_STATUS_RIGHT 1 /* right halve of double-wide char */
#define PC_STATUS_LEFT 2 /* left halve of double-wide char */
#define PC_STATUS_SET 3 /* pc_bytes was filled */
- #ifdef FEAT_MBYTE
static char_u pc_bytes[MB_MAXBYTES + 1]; /* saved bytes */
- #else
- static char_u pc_bytes[2]; /* saved bytes */
- #endif
static int pc_attr;
static int pc_row;
static int pc_col;
--- 1648,1654 ----
***************
*** 6819,6829 ****
char_u *s;
vim_free(last_insert);
- #ifdef FEAT_MBYTE
last_insert = alloc(MB_MAXBYTES * 3 + 5);
- #else
- last_insert = alloc(6);
- #endif
if (last_insert != NULL)
{
s = last_insert;
--- 6815,6821 ----
***************
*** 6861,6867 ****
char_u *s;
{
#ifdef FEAT_MBYTE
! char_u temp[MB_MAXBYTES];
int i;
int len;
--- 6853,6859 ----
char_u *s;
{
#ifdef FEAT_MBYTE
! char_u temp[MB_MAXBYTES + 1];
int i;
int len;
***************
*** 7423,7429 ****
int cc;
{
int n;
! char_u buf[MB_MAXBYTES];
int i;
int c;
--- 7415,7421 ----
int cc;
{
int n;
! char_u buf[MB_MAXBYTES + 1];
int i;
int c;
***************
*** 10109,10119 ****
int c;
{
char_u *res;
- #ifdef FEAT_MBYTE
char_u buf[MB_MAXBYTES + 1];
- #else
- char_u buf[2];
- #endif
/* Return quickly when there is nothing to do. */
if (!has_insertcharpre())
--- 10101,10107 ----
*** ../vim-7.3.534/src/eval.c 2012-05-18 18:34:15.000000000 +0200
--- src/eval.c 2012-06-01 15:02:08.000000000 +0200
***************
*** 19170,19180 ****
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)
--- 19170,19176 ----
set_vim_var_char(c)
int c;
{
! char_u buf[MB_MAXBYTES + 1];
#ifdef FEAT_MBYTE
if (has_mbyte)
*** ../vim-7.3.534/src/getchar.c 2012-04-05 16:07:01.000000000 +0200
--- src/getchar.c 2012-06-01 15:03:51.000000000 +0200
***************
*** 723,729 ****
int c;
#ifdef FEAT_MBYTE
int n;
! char_u buf[MB_MAXBYTES];
int i;
#endif
--- 723,729 ----
int c;
#ifdef FEAT_MBYTE
int n;
! char_u buf[MB_MAXBYTES + 1];
int i;
#endif
***************
*** 1072,1078 ****
int c;
{
#ifdef FEAT_MBYTE
! char_u buf[MB_MAXBYTES];
#else
char_u buf[4];
#endif
--- 1072,1078 ----
int c;
{
#ifdef FEAT_MBYTE
! char_u buf[MB_MAXBYTES + 1];
#else
char_u buf[4];
#endif
***************
*** 1547,1553 ****
int c, c2;
#ifdef FEAT_MBYTE
int n;
! char_u buf[MB_MAXBYTES];
int i;
#endif
--- 1547,1553 ----
int c, c2;
#ifdef FEAT_MBYTE
int n;
! char_u buf[MB_MAXBYTES + 1];
int i;
#endif
***************
*** 4335,4345 ****
int scol; /* starting column of the abbr. */
int j;
char_u *s;
- #ifdef FEAT_MBYTE
char_u tb[MB_MAXBYTES + 4];
- #else
- char_u tb[4];
- #endif
mapblock_T *mp;
#ifdef FEAT_LOCALMAP
mapblock_T *mp2;
--- 4335,4341 ----
*** ../vim-7.3.534/src/mbyte.c 2012-03-07 19:38:52.000000000 +0100
--- src/mbyte.c 2012-06-01 15:04:27.000000000 +0200
***************
*** 708,714 ****
*/
n = (i & 0x80) ? 2 : 1;
# else
! char buf[MB_MAXBYTES];
# ifdef X_LOCALE
# ifndef mblen
# define mblen _Xmblen
--- 708,714 ----
*/
n = (i & 0x80) ? 2 : 1;
# else
! char buf[MB_MAXBYTES + 1];
# ifdef X_LOCALE
# ifndef mblen
# define mblen _Xmblen
***************
*** 1953,1959 ****
/*
* Convert the character at screen position "off" to a sequence of bytes.
* Includes the composing characters.
! * "buf" must at least have the length MB_MAXBYTES.
* Only to be used when ScreenLinesUC[off] != 0.
* Returns the produced number of bytes.
*/
--- 1953,1959 ----
/*
* Convert the character at screen position "off" to a sequence of bytes.
* Includes the composing characters.
! * "buf" must at least have the length MB_MAXBYTES + 1.
* Only to be used when ScreenLinesUC[off] != 0.
* Returns the produced number of bytes.
*/
*** ../vim-7.3.534/src/misc1.c 2012-04-30 21:09:38.000000000 +0200
--- src/misc1.c 2012-06-01 15:04:56.000000000 +0200
***************
*** 1932,1938 ****
int c;
{
#if defined(FEAT_MBYTE) || defined(PROTO)
! char_u buf[MB_MAXBYTES];
int n;
n = (*mb_char2bytes)(c, buf);
--- 1932,1938 ----
int c;
{
#if defined(FEAT_MBYTE) || defined(PROTO)
! char_u buf[MB_MAXBYTES + 1];
int n;
n = (*mb_char2bytes)(c, buf);
*** ../vim-7.3.534/src/screen.c 2012-03-23 16:25:13.000000000 +0100
--- src/screen.c 2012-06-01 15:06:03.000000000 +0200
***************
*** 6621,6636 ****
int row, col;
int attr;
{
- #ifdef FEAT_MBYTE
char_u buf[MB_MAXBYTES + 1];
! buf[(*mb_char2bytes)(c, buf)] = NUL;
! #else
! char_u buf[2];
!
! buf[0] = c;
! buf[1] = NUL;
#endif
screen_puts(buf, row, col, attr);
}
--- 6621,6637 ----
int row, col;
int attr;
{
char_u buf[MB_MAXBYTES + 1];
! #ifdef FEAT_MBYTE
! if (has_mbyte)
! buf[(*mb_char2bytes)(c, buf)] = NUL;
! else
#endif
+ {
+ buf[0] = c;
+ buf[1] = NUL;
+ }
screen_puts(buf, row, col, attr);
}
*** ../vim-7.3.534/src/spell.c 2012-05-18 18:07:57.000000000 +0200
--- src/spell.c 2012-06-01 15:06:30.000000000 +0200
***************
*** 13694,13700 ****
{
int m1, m2;
#ifdef FEAT_MBYTE
! char_u buf[MB_MAXBYTES];
hashitem_T *hi;
if (c1 >= 256)
--- 13694,13700 ----
{
int m1, m2;
#ifdef FEAT_MBYTE
! char_u buf[MB_MAXBYTES + 1];
hashitem_T *hi;
if (c1 >= 256)
*** ../vim-7.3.534/src/vim.h 2012-04-30 18:48:38.000000000 +0200
--- src/vim.h 2012-06-01 14:59:28.000000000 +0200
***************
*** 1703,1708 ****
--- 1703,1710 ----
* character of up to 6 bytes, or one 16-bit character of up to three bytes
* plus six following composing characters of three bytes each. */
# define MB_MAXBYTES 21
+ #else
+ # define MB_MAXBYTES 1
#endif
#if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
***************
*** 2017,2022 ****
--- 2019,2025 ----
#pragma warning(disable : 4312)
#endif
+ /* Note: a NULL argument for vim_realloc() is not portable, don't use it. */
#if defined(MEM_PROFILE)
# define vim_realloc(ptr, size) mem_realloc((ptr), (size))
#else
*** ../vim-7.3.534/src/version.c 2012-06-01 14:57:47.000000000 +0200
--- src/version.c 2012-06-01 15:08:20.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 535,
/**/
--
Me? A skeptic? I trust you have proof.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

73
7.3.536 Normal file
View File

@ -0,0 +1,73 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.536
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.536
Problem: When spell checking the German sharp s is not seen as a word
character. (Aexl Bender)
Solution: In utf_islower() return true for the sharp s. Note: also need
updated spell file for this to take effect.
Files: src/mbyte.c
*** ../vim-7.3.535/src/mbyte.c 2012-06-01 15:20:49.000000000 +0200
--- src/mbyte.c 2012-06-01 16:50:41.000000000 +0200
***************
*** 2949,2955 ****
{
{0x61,0x7a,1,-32},
{0xb5,0xb5,-1,743},
! {0xe0,0xf6,1,-32},
{0xf8,0xfe,1,-32},
{0xff,0xff,-1,121},
{0x101,0x12f,2,-1},
--- 2949,2955 ----
{
{0x61,0x7a,1,-32},
{0xb5,0xb5,-1,743},
! {0xe0,0xf6,1,-32}, /* 0xdf (German sharp s) is not upper-cased */
{0xf8,0xfe,1,-32},
{0xff,0xff,-1,121},
{0x101,0x12f,2,-1},
***************
*** 3129,3135 ****
utf_islower(a)
int a;
{
! return (utf_toupper(a) != a);
}
/*
--- 3129,3136 ----
utf_islower(a)
int a;
{
! /* German sharp s is lower case but has no upper case equivalent. */
! return (utf_toupper(a) != a) || a == 0xdf;
}
/*
*** ../vim-7.3.535/src/version.c 2012-06-01 15:20:49.000000000 +0200
--- src/version.c 2012-06-01 17:45:17.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 536,
/**/
--
hundred-and-one symptoms of being an internet addict:
16. You step out of your room and realize that your parents have moved and
you don't have a clue when it happened.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

47
7.3.537 Normal file
View File

@ -0,0 +1,47 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.537
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.537
Problem: Unecessary call to init_spell_chartab().
Solution: Delete the call.
Files: src/spell.c
*** ../vim-7.3.536/src/spell.c 2012-06-01 15:20:49.000000000 +0200
--- src/spell.c 2012-06-01 17:49:44.000000000 +0200
***************
*** 4721,4728 ****
int_wordlist = NULL;
}
- init_spell_chartab();
-
vim_free(repl_to);
repl_to = NULL;
vim_free(repl_from);
--- 4721,4726 ----
*** ../vim-7.3.536/src/version.c 2012-06-01 17:46:52.000000000 +0200
--- src/version.c 2012-06-01 17:49:08.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 537,
/**/
--
hundred-and-one symptoms of being an internet addict:
17. You turn on your intercom when leaving the room so you can hear if new
e-mail arrives.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

321
7.3.538 Normal file
View File

@ -0,0 +1,321 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.538
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.538
Problem: 'efm' does not handle Tabs in pointer lines.
Solution: Add Tab support. Improve tests. (Lech Lorens)
Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
*** ../vim-7.3.537/src/quickfix.c 2012-04-25 18:57:17.000000000 +0200
--- src/quickfix.c 2012-06-01 18:24:07.000000000 +0200
***************
*** 247,253 ****
{'t', "."},
{'m', ".\\+"},
{'r', ".*"},
! {'p', "[- .]*"},
{'v', "\\d\\+"},
{'s', ".\\+"}
};
--- 247,253 ----
{'t', "."},
{'m', ".\\+"},
{'r', ".*"},
! {'p', "[- .]*"},
{'v', "\\d\\+"},
{'s', ".\\+"}
};
***************
*** 677,687 ****
}
if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */
{
if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
continue;
! col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1);
! if (*((char_u *)regmatch.startp[i]) != TAB)
! use_viscol = TRUE;
}
if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */
{
--- 677,699 ----
}
if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */
{
+ char_u *match_ptr;
+
if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
continue;
! col = 0;
! for (match_ptr = regmatch.startp[i];
! match_ptr != regmatch.endp[i]; ++match_ptr)
! {
! ++col;
! if (*match_ptr == TAB)
! {
! col += 7;
! col -= col % 8;
! }
! }
! ++col;
! use_viscol = TRUE;
}
if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */
{
*** ../vim-7.3.537/src/testdir/test10.in 2011-08-10 18:36:49.000000000 +0200
--- src/testdir/test10.in 2012-06-01 18:22:40.000000000 +0200
***************
*** 8,48 ****
:7/start of errorfile/,/end of errorfile/w! Xerrorfile1
:7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
:/start of testfile/,/end of testfile/w! Xtestfile
:cf Xerrorfile2
:clast
:copen
:let a=w:quickfix_title
:wincmd p
! gR=a 
:cf Xerrorfile1
! rA
:cn
! rB
:cn
! rC
:cn
! rD
:cn
! rE
:cn
:wincmd w
:let a=w:quickfix_title
:wincmd p
! gR=a 
:w! test.out " Write contents of this file
:qa!
ENDTEST
start of errorfile
"Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
! "Xtestfile", line 7 col 19; this is an error
gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
! Xtestfile:13: parse error before `asd'
make: *** [vim] Error 1
! in file "Xtestfile" linenr 16: there is an error
2 returned
! "Xtestfile", linenr 19: yet another problem
Does anyone know what is the problem and how to correction it?
"Xtestfile", line 21 col 9: What is the title of the quickfix window?
--- 8,88 ----
:7/start of errorfile/,/end of errorfile/w! Xerrorfile1
:7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
:/start of testfile/,/end of testfile/w! Xtestfile
+ :set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
+ :set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
:cf Xerrorfile2
:clast
:copen
:let a=w:quickfix_title
:wincmd p
! lgR=a 
:cf Xerrorfile1
! grA
:cn
! gRLINE 6, COL 19
:cn
! gRNO COLUMN SPECIFIED
:cn
! gRAGAIN NO COLUMN
:cn
! gRCOL 1
:cn
+ gRCOL 2
+ :cn
+ gRCOL 10
+ :cn
+ gRVCOL 10
+ :cn
+ grI
+ :cn
+ gR. SPACE POINTER
+ :cn
+ gR. DOT POINTER
+ :cn
+ gR. DASH POINTER
+ :cn
+ gR. TAB-SPACE POINTER
+ :clast
+ :cprev
+ :cprev
:wincmd w
:let a=w:quickfix_title
:wincmd p
! lgR=a 
:w! test.out " Write contents of this file
:qa!
ENDTEST
start of errorfile
"Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
! "Xtestfile", line 6 col 19; this is an error
gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
! Xtestfile:9: parse error before `asd'
make: *** [vim] Error 1
! in file "Xtestfile" linenr 10: there is an error
2 returned
! "Xtestfile", line 11 col 1; this is an error
! "Xtestfile", line 12 col 2; this is another error
! "Xtestfile", line 14:10; this is an error in column 10
! =Xtestfile=, line 15:10; this is another error, but in vcol 10 this time
! "Xtestfile", linenr 16: yet another problem
! Error in "Xtestfile" at line 17:
! x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
! ^
! Error in "Xtestfile" at line 18:
! x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
! .............^
! Error in "Xtestfile" at line 19:
! x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
! --------------^
! Error in "Xtestfile" at line 20:
! x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
! ^
Does anyone know what is the problem and how to correction it?
"Xtestfile", line 21 col 9: What is the title of the quickfix window?
***************
*** 50,74 ****
end of errorfile
start of testfile
! line 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 4 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
end of testfile
--- 90,114 ----
end of errorfile
start of testfile
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 7
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 9
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 12
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 14
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 15
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 21
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 22
end of testfile
*** ../vim-7.3.537/src/testdir/test10.ok 2011-08-10 18:36:49.000000000 +0200
--- src/testdir/test10.ok 2012-06-01 18:22:40.000000000 +0200
***************
*** 1,23 ****
start of testfile
! line 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 4 xxxAxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 7 xxxxxxxxxxBxxxxxxxxxxxxxxxxxxx
! line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! Cine 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! Dine 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
end of testfile
--- 1,23 ----
start of testfile
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3
! xxxxxxxxxxAxxxxxxxxxxxxxxxxxxx line 4
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5
! xxxxxxxxxxxxxxxxxLINE 6, COL 19 line 6
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 7
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8
! NO COLUMN SPECIFIEDxxxxxxxxxxx line 9
! AGAIN NO COLUMNxxxxxxxxxxxxxxx line 10
! COL 1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11
! COL 2xxxxxxxxxxxxxxxxxxxxxxxxx line 12
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13
! xxxxxxxxCOL 10xxxxxxxxxxxxxxxx line 14
! xVCOL 10xxxxxxxxxxxxxxxxxxxxxx line 15
! Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16
! xxxx. SPACE POINTERxxxxxxxxxxx line 17
! xxxxx. DOT POINTERxxxxxxxxxxxx line 18
! xxxxxx. DASH POINTERxxxxxxxxxx line 19
! xxxxxxx. TAB-SPACE POINTERxxxx line 20
! xxxxxxxx:cf Xerrorfile1xxxxxxx line 21
! xxxxxxxx:cf Xerrorfile2xxxxxxx line 22
end of testfile
*** ../vim-7.3.537/src/version.c 2012-06-01 17:49:51.000000000 +0200
--- src/version.c 2012-06-01 18:22:27.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 538,
/**/
--
hundred-and-one symptoms of being an internet addict:
18. Your wife drapes a blond wig over your monitor to remind you of what she
looks like.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

51
7.3.539 Normal file
View File

@ -0,0 +1,51 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.539
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.539
Problem: Redrawing a character on the command line does not work properly
for multi-byte charactes.
Solution: Count the number of bytes in a character. (Yukihiro Nakadaira)
Files: src/ex_getln.c
*** ../vim-7.3.538/src/ex_getln.c 2012-05-25 11:02:34.000000000 +0200
--- src/ex_getln.c 2012-06-06 11:50:37.000000000 +0200
***************
*** 2764,2769 ****
--- 2764,2774 ----
msg_no_more = TRUE;
if (ccline.cmdlen == ccline.cmdpos)
msg_putchar(' ');
+ #ifdef FEAT_MBYTE
+ else if (has_mbyte)
+ draw_cmdline(ccline.cmdpos,
+ (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos));
+ #endif
else
draw_cmdline(ccline.cmdpos, 1);
msg_no_more = FALSE;
*** ../vim-7.3.538/src/version.c 2012-06-01 18:34:37.000000000 +0200
--- src/version.c 2012-06-06 12:02:45.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 539,
/**/
--
If they don't keep on exercising their lips, he thought, their brains
start working.
-- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.3.540 Normal file
View File

@ -0,0 +1,55 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.540
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.540
Problem: Cursor is left on the text instead of the command line.
Solution: Don't call setcursor() in command line mode.
Files: src/getchar.c
*** ../vim-7.3.539/src/getchar.c 2012-06-01 15:20:49.000000000 +0200
--- src/getchar.c 2012-06-06 11:58:05.000000000 +0200
***************
*** 2819,2825 ****
edit_unputchar();
if (State & CMDLINE)
unputcmdline();
! setcursor(); /* put cursor back where it belongs */
}
if (c < 0)
--- 2819,2826 ----
edit_unputchar();
if (State & CMDLINE)
unputcmdline();
! else
! setcursor(); /* put cursor back where it belongs */
}
if (c < 0)
*** ../vim-7.3.539/src/version.c 2012-06-06 12:02:57.000000000 +0200
--- src/version.c 2012-06-06 12:05:22.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 540,
/**/
--
"Making it up? Why should I want to make anything up? Life's bad enough
as it is without wanting to invent any more of it."
-- Marvin, the Paranoid Android in Douglas Adams'
"The Hitchhiker's Guide to the Galaxy"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

1090
7.3.541 Normal file

File diff suppressed because it is too large Load Diff

73
7.3.542 Normal file
View File

@ -0,0 +1,73 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.542
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.542 (after 7.3.506)
Problem: Function is sometimes unused.
Solution: Add #ifdef.
Files: src/gui_gtk.c
*** ../vim-7.3.541/src/gui_gtk.c 2012-04-25 17:10:12.000000000 +0200
--- src/gui_gtk.c 2012-06-06 15:25:12.000000000 +0200
***************
*** 90,100 ****
--- 90,102 ----
static void entry_activate_cb(GtkWidget *widget, gpointer data);
static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
static void find_replace_cb(GtkWidget *widget, gpointer data);
+ #if defined(FEAT_BROWSE) || defined(PROTO)
static void recent_func_log_func(
const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data);
+ #endif
#if defined(FEAT_TOOLBAR)
/*
***************
*** 1896,1901 ****
--- 1898,1904 ----
do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
}
+ #if defined(FEAT_BROWSE) || defined(PROTO)
static void
recent_func_log_func(const gchar *log_domain UNUSED,
GLogLevelFlags log_level UNUSED,
***************
*** 1905,1908 ****
/* We just want to suppress the warnings. */
/* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
}
!
--- 1908,1911 ----
/* We just want to suppress the warnings. */
/* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
}
! #endif
*** ../vim-7.3.541/src/version.c 2012-06-06 16:12:54.000000000 +0200
--- src/version.c 2012-06-06 16:14:17.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 542,
/**/
--
How To Keep A Healthy Level Of Insanity:
1. At lunch time, sit in your parked car with sunglasses on and point
a hair dryer at passing cars. See if they slow down.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.3.543 Normal file
View File

@ -0,0 +1,55 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.543
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.543
Problem: The cursor is in the wrong line after using ":copen". (John
Beckett)
Solution: Invoke more drastic redraw method.
Files: src/eval.c
*** ../vim-7.3.542/src/eval.c 2012-06-01 15:20:49.000000000 +0200
--- src/eval.c 2012-06-06 16:28:11.000000000 +0200
***************
*** 18507,18515 ****
curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
check_cursor();
! changed_cline_bef_curs();
! invalidate_botline();
! redraw_later(VALID);
if (curwin->w_topline == 0)
curwin->w_topline = 1;
--- 18507,18513 ----
curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
check_cursor();
! changed_window_setting();
if (curwin->w_topline == 0)
curwin->w_topline = 1;
*** ../vim-7.3.542/src/version.c 2012-06-06 16:14:36.000000000 +0200
--- src/version.c 2012-06-06 16:28:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 543,
/**/
--
How To Keep A Healthy Level Of Insanity:
2. Page yourself over the intercom. Don't disguise your voice.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

81
7.3.544 Normal file
View File

@ -0,0 +1,81 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.544
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.544
Problem: There is no good way to close a quickfix window when closing the
last ordinary window.
Solution: Add the QuitPre autocommand.
Files: src/ex_docmd.c, src/fileio.c, src/vim.h
*** ../vim-7.3.543/src/ex_docmd.c 2012-06-06 16:12:54.000000000 +0200
--- src/ex_docmd.c 2012-06-06 17:58:41.000000000 +0200
***************
*** 6458,6463 ****
--- 6458,6464 ----
return;
}
#ifdef FEAT_AUTOCMD
+ apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
if (curbuf_locked())
return;
#endif
*** ../vim-7.3.543/src/fileio.c 2012-04-30 17:04:47.000000000 +0200
--- src/fileio.c 2012-06-06 17:32:12.000000000 +0200
***************
*** 7678,7683 ****
--- 7678,7684 ----
{"MenuPopup", EVENT_MENUPOPUP},
{"QuickFixCmdPost", EVENT_QUICKFIXCMDPOST},
{"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE},
+ {"QuitPre", EVENT_QUITPRE},
{"RemoteReply", EVENT_REMOTEREPLY},
{"SessionLoadPost", EVENT_SESSIONLOADPOST},
{"ShellCmdPost", EVENT_SHELLCMDPOST},
*** ../vim-7.3.543/src/vim.h 2012-06-01 15:20:49.000000000 +0200
--- src/vim.h 2012-06-06 17:30:01.000000000 +0200
***************
*** 1264,1271 ****
EVENT_INSERTENTER, /* when entering Insert mode */
EVENT_INSERTLEAVE, /* when leaving Insert mode */
EVENT_MENUPOPUP, /* just before popup menu is displayed */
! EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc */
! EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc */
EVENT_SESSIONLOADPOST, /* after loading a session file */
EVENT_STDINREADPOST, /* after reading from stdin */
EVENT_STDINREADPRE, /* before reading from stdin */
--- 1264,1272 ----
EVENT_INSERTENTER, /* when entering Insert mode */
EVENT_INSERTLEAVE, /* when leaving Insert mode */
EVENT_MENUPOPUP, /* just before popup menu is displayed */
! EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc. */
! EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc. */
! EVENT_QUITPRE, /* before :quit */
EVENT_SESSIONLOADPOST, /* after loading a session file */
EVENT_STDINREADPOST, /* after reading from stdin */
EVENT_STDINREADPRE, /* before reading from stdin */
*** ../vim-7.3.543/src/version.c 2012-06-06 16:29:06.000000000 +0200
--- src/version.c 2012-06-06 18:02:09.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 544,
/**/
--
How To Keep A Healthy Level Of Insanity:
3. Every time someone asks you to do something, ask if they want fries
with that.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

359
7.3.545 Normal file
View File

@ -0,0 +1,359 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.545
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.545
Problem: When closing a window or buffer autocommands may close it too,
causing problems for where the autocommand was invoked from.
Solution: Add the w_closing and b_closing flags. When set disallow ":q" and
":close" to prevent recursive closing.
Files: src/structs.h, src/buffer.c, src/ex_docmd.c, src/window.c
*** ../vim-7.3.544/src/structs.h 2012-02-04 21:57:44.000000000 +0100
--- src/structs.h 2012-06-06 16:43:34.000000000 +0200
***************
*** 1201,1206 ****
--- 1201,1210 ----
typedef struct qf_info_S qf_info_T;
#endif
+ /*
+ * These are items normally related to a buffer. But when using ":ownsyntax"
+ * a window may have its own instance.
+ */
typedef struct {
#ifdef FEAT_SYN_HL
hashtab_T b_keywtab; /* syntax keywords hash table */
***************
*** 1290,1295 ****
--- 1294,1303 ----
int b_nwindows; /* nr of windows open on this buffer */
int b_flags; /* various BF_ flags */
+ #ifdef FEAT_AUTOCMD
+ int b_closing; /* buffer is being closed, don't let
+ autocommands close it too. */
+ #endif
/*
* b_ffname has the full path of the file (NULL for no name).
***************
*** 1853,1858 ****
--- 1861,1870 ----
win_T *w_prev; /* link to previous window */
win_T *w_next; /* link to next window */
#endif
+ #ifdef FEAT_AUTOCMD
+ int w_closing; /* window is being closed, don't let
+ autocommands close it too. */
+ #endif
frame_T *w_frame; /* frame containing this window */
*** ../vim-7.3.544/src/buffer.c 2012-03-16 14:32:10.000000000 +0100
--- src/buffer.c 2012-06-06 18:57:27.000000000 +0200
***************
*** 377,404 ****
/* When the buffer is no longer in a window, trigger BufWinLeave */
if (buf->b_nwindows == 1)
{
apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
FALSE, buf);
! /* Return if autocommands deleted the buffer or made it the only one. */
! if (!buf_valid(buf) || (abort_if_last && one_window()))
{
EMSG(_(e_auabort));
return;
}
/* When the buffer becomes hidden, but is not unloaded, trigger
* BufHidden */
if (!unload_buf)
{
apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
FALSE, buf);
! /* Return if autocommands deleted the buffer or made it the only
! * one. */
! if (!buf_valid(buf) || (abort_if_last && one_window()))
! {
! EMSG(_(e_auabort));
! return;
! }
}
# ifdef FEAT_EVAL
if (aborting()) /* autocmds may abort script processing */
--- 377,411 ----
/* When the buffer is no longer in a window, trigger BufWinLeave */
if (buf->b_nwindows == 1)
{
+ buf->b_closing = TRUE;
apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
FALSE, buf);
! if (!buf_valid(buf))
{
+ /* Autocommands deleted the buffer. */
+ aucmd_abort:
EMSG(_(e_auabort));
return;
}
+ buf->b_closing = FALSE;
+ if (abort_if_last && one_window())
+ /* Autocommands made this the only window. */
+ goto aucmd_abort;
/* When the buffer becomes hidden, but is not unloaded, trigger
* BufHidden */
if (!unload_buf)
{
+ buf->b_closing = TRUE;
apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
FALSE, buf);
! if (!buf_valid(buf))
! /* Autocommands deleted the buffer. */
! goto aucmd_abort;
! buf->b_closing = FALSE;
! if (abort_if_last && one_window())
! /* Autocommands made this the only window. */
! goto aucmd_abort;
}
# ifdef FEAT_EVAL
if (aborting()) /* autocmds may abort script processing */
***************
*** 552,557 ****
--- 559,565 ----
#ifdef FEAT_AUTOCMD
int is_curbuf = (buf == curbuf);
+ buf->b_closing = TRUE;
apply_autocmds(EVENT_BUFUNLOAD, buf->b_fname, buf->b_fname, FALSE, buf);
if (!buf_valid(buf)) /* autocommands may delete the buffer */
return;
***************
*** 568,573 ****
--- 576,582 ----
if (!buf_valid(buf)) /* autocommands may delete the buffer */
return;
}
+ buf->b_closing = FALSE;
# ifdef FEAT_EVAL
if (aborting()) /* autocmds may abort script processing */
return;
***************
*** 1150,1155 ****
--- 1159,1167 ----
* a window with this buffer.
*/
while (buf == curbuf
+ # ifdef FEAT_AUTOCMD
+ && !(curwin->w_closing || curwin->w_buffer->b_closing)
+ # endif
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
win_close(curwin, FALSE);
#endif
***************
*** 4750,4756 ****
#ifdef FEAT_WINDOWS
|| (had_tab > 0 && wp != firstwin)
#endif
! ) && firstwin != lastwin)
{
win_close(wp, FALSE);
#ifdef FEAT_AUTOCMD
--- 4762,4772 ----
#ifdef FEAT_WINDOWS
|| (had_tab > 0 && wp != firstwin)
#endif
! ) && firstwin != lastwin
! #ifdef FEAT_AUTOCMD
! && !(wp->w_closing || wp->w_buffer->b_closing)
! #endif
! )
{
win_close(wp, FALSE);
#ifdef FEAT_AUTOCMD
*** ../vim-7.3.544/src/ex_docmd.c 2012-06-06 18:03:01.000000000 +0200
--- src/ex_docmd.c 2012-06-06 18:06:46.000000000 +0200
***************
*** 6459,6465 ****
}
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
! if (curbuf_locked())
return;
#endif
--- 6459,6467 ----
}
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
! /* Refuse to quick when locked or when the buffer in the last window is
! * being closed (can only happen in autocommands). */
! if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
return;
#endif
*** ../vim-7.3.544/src/window.c 2012-05-25 12:38:57.000000000 +0200
--- src/window.c 2012-06-06 18:47:19.000000000 +0200
***************
*** 2034,2040 ****
for (wp = firstwin; wp != NULL && lastwin != firstwin; )
{
! if (wp->w_buffer == buf && (!keep_curwin || wp != curwin))
{
win_close(wp, FALSE);
--- 2034,2044 ----
for (wp = firstwin; wp != NULL && lastwin != firstwin; )
{
! if (wp->w_buffer == buf && (!keep_curwin || wp != curwin)
! #ifdef FEAT_AUTOCMD
! && !(wp->w_closing || wp->w_buffer->b_closing)
! #endif
! )
{
win_close(wp, FALSE);
***************
*** 2051,2057 ****
nexttp = tp->tp_next;
if (tp != curtab)
for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
! if (wp->w_buffer == buf)
{
win_close_othertab(wp, FALSE, tp);
--- 2055,2065 ----
nexttp = tp->tp_next;
if (tp != curtab)
for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
! if (wp->w_buffer == buf
! #ifdef FEAT_AUTOCMD
! && !(wp->w_closing || wp->w_buffer->b_closing)
! #endif
! )
{
win_close_othertab(wp, FALSE, tp);
***************
*** 2168,2173 ****
--- 2176,2183 ----
}
#ifdef FEAT_AUTOCMD
+ if (win->w_closing || win->w_buffer->b_closing)
+ return; /* window is already being closed */
if (win == aucmd_win)
{
EMSG(_("E813: Cannot close autocmd window"));
***************
*** 2203,2219 ****
wp = frame2win(win_altframe(win, NULL));
/*
! * Be careful: If autocommands delete the window, return now.
*/
if (wp->w_buffer != curbuf)
{
other_buffer = TRUE;
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
! if (!win_valid(win) || last_window())
return;
}
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
! if (!win_valid(win) || last_window())
return;
# ifdef FEAT_EVAL
/* autocmds may abort script processing */
--- 2213,2238 ----
wp = frame2win(win_altframe(win, NULL));
/*
! * Be careful: If autocommands delete the window or cause this window
! * to be the last one left, return now.
*/
if (wp->w_buffer != curbuf)
{
other_buffer = TRUE;
+ win->w_closing = TRUE;
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
! if (!win_valid(win))
! return;
! win->w_closing = FALSE;
! if (last_window())
return;
}
+ win->w_closing = TRUE;
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
! if (!win_valid(win))
! return;
! win->w_closing = FALSE;
! if (last_window())
return;
# ifdef FEAT_EVAL
/* autocmds may abort script processing */
***************
*** 2240,2246 ****
* Close the link to the buffer.
*/
if (win->w_buffer != NULL)
! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
/* Autocommands may have closed the window already, or closed the only
* other window or moved to another tab page. */
--- 2259,2274 ----
* Close the link to the buffer.
*/
if (win->w_buffer != NULL)
! {
! #ifdef FEAT_AUTOCMD
! win->w_closing = TRUE;
! #endif
! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
! #ifdef FEAT_AUTOCMD
! if (win_valid(win))
! win->w_closing = FALSE;
! #endif
! }
/* Autocommands may have closed the window already, or closed the only
* other window or moved to another tab page. */
***************
*** 2346,2351 ****
--- 2374,2384 ----
tabpage_T *ptp = NULL;
int free_tp = FALSE;
+ #ifdef FEAT_AUTOCMD
+ if (win->w_closing || win->w_buffer->b_closing)
+ return; /* window is already being closed */
+ #endif
+
/* Close the link to the buffer. */
close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
*** ../vim-7.3.544/src/version.c 2012-06-06 18:03:01.000000000 +0200
--- src/version.c 2012-06-06 18:53:06.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 545,
/**/
--
How To Keep A Healthy Level Of Insanity:
4. Put your garbage can on your desk and label it "in".
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.3.546 Normal file
View File

@ -0,0 +1,54 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.546
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.546
Problem: Bogus line break.
Solution: Remove the line break.
Files: src/screen.c
*** ../vim-7.3.545/src/screen.c 2012-06-01 15:20:49.000000000 +0200
--- src/screen.c 2012-06-01 16:31:30.000000000 +0200
***************
*** 3228,3235 ****
/* no bad word found at line start, don't check until end of a
* word */
spell_hlf = HLF_COUNT;
! word_end = (int)(spell_to_word_end(ptr, wp)
! - line + 1);
}
else
{
--- 3228,3234 ----
/* no bad word found at line start, don't check until end of a
* word */
spell_hlf = HLF_COUNT;
! word_end = (int)(spell_to_word_end(ptr, wp) - line + 1);
}
else
{
*** ../vim-7.3.545/src/version.c 2012-06-06 19:02:40.000000000 +0200
--- src/version.c 2012-06-06 19:05:11.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 546,
/**/
--
How To Keep A Healthy Level Of Insanity:
5. Put decaf in the coffee maker for 3 weeks. Once everyone has gotten
over their caffeine addictions, switch to espresso.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.3.547 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.547
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.547 (after 7.3.541)
Problem: Compiler warning for uninitialized variable.
Solution: Initialize it.
Files: src/ops.c
*** ../vim-7.3.546/src/ops.c 2012-06-06 16:12:54.000000000 +0200
--- src/ops.c 2012-06-06 23:06:45.000000000 +0200
***************
*** 4306,4312 ****
colnr_T col = 0;
int ret = OK;
#if defined(FEAT_COMMENTS) || defined(PROTO)
! int *comments;
int remove_comments = (use_formatoptions == TRUE)
&& has_format_option(FO_REMOVE_COMS);
int prev_was_comment;
--- 4306,4312 ----
colnr_T col = 0;
int ret = OK;
#if defined(FEAT_COMMENTS) || defined(PROTO)
! int *comments = NULL;
int remove_comments = (use_formatoptions == TRUE)
&& has_format_option(FO_REMOVE_COMS);
int prev_was_comment;
*** ../vim-7.3.546/src/version.c 2012-06-06 19:05:45.000000000 +0200
--- src/version.c 2012-06-06 23:07:26.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 547,
/**/
--
How To Keep A Healthy Level Of Insanity:
9. As often as possible, skip rather than walk.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

53
7.3.548 Normal file
View File

@ -0,0 +1,53 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.548
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.548
Problem: Compiler warning on 64 bit Windows.
Solution: Add type cast. (Mike Williams)
Files: src/ops.c
*** ../vim-7.3.547/src/ops.c 2012-06-06 23:08:33.000000000 +0200
--- src/ops.c 2012-06-07 21:07:57.000000000 +0200
***************
*** 4352,4358 ****
char_u *new_curr = skip_comment(curr, TRUE, insert_space,
&prev_was_comment);
! comments[t] = new_curr - curr;
curr = new_curr;
}
else
--- 4352,4358 ----
char_u *new_curr = skip_comment(curr, TRUE, insert_space,
&prev_was_comment);
! comments[t] = (int)(new_curr - curr);
curr = new_curr;
}
else
*** ../vim-7.3.547/src/version.c 2012-06-06 23:08:33.000000000 +0200
--- src/version.c 2012-06-07 21:08:35.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 548,
/**/
--
How To Keep A Healthy Level Of Insanity:
17. When the money comes out the ATM, scream "I won!, I won! 3rd
time this week!!!!!"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

125
7.3.549 Normal file
View File

@ -0,0 +1,125 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.549
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.549
Problem: In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
Pineau)
Solution: Use the zero as zero. (Lech Lorens)
Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
*** ../vim-7.3.548/src/misc1.c 2012-06-06 16:12:54.000000000 +0200
--- src/misc1.c 2012-06-13 13:17:11.000000000 +0200
***************
*** 6635,6640 ****
--- 6635,6641 ----
int whilelevel;
linenr_T lnum;
char_u *options;
+ char_u *digits;
int fraction = 0; /* init for GCC */
int divider;
int n;
***************
*** 6650,6655 ****
--- 6651,6657 ----
l = options++;
if (*options == '-')
++options;
+ digits = options; /* remember where the digits start */
n = getdigits(&options);
divider = 0;
if (*options == '.') /* ".5s" means a fraction */
***************
*** 6666,6672 ****
}
if (*options == 's') /* "2s" means two times 'shiftwidth' */
{
! if (n == 0 && fraction == 0)
n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
else
{
--- 6668,6674 ----
}
if (*options == 's') /* "2s" means two times 'shiftwidth' */
{
! if (options == digits)
n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
else
{
*** ../vim-7.3.548/src/testdir/test3.in 2012-04-05 17:17:38.000000000 +0200
--- src/testdir/test3.in 2012-06-13 13:17:31.000000000 +0200
***************
*** 977,982 ****
--- 977,1000 ----
STARTTEST
:set cin
+ :set cino=es,n0s
+ /main
+ =][
+ ENDTEST
+
+ main(void)
+ {
+ /* Make sure that cino=X0s is not parsed like cino=Xs. */
+ if (cond)
+ foo();
+ else
+ {
+ bar();
+ }
+ }
+
+ STARTTEST
+ :set cin
:set cino=
]]=][
ENDTEST
*** ../vim-7.3.548/src/testdir/test3.ok 2012-04-05 17:17:38.000000000 +0200
--- src/testdir/test3.ok 2012-06-13 13:17:31.000000000 +0200
***************
*** 940,945 ****
--- 940,957 ----
}
+ main(void)
+ {
+ /* Make sure that cino=X0s is not parsed like cino=Xs. */
+ if (cond)
+ foo();
+ else
+ {
+ bar();
+ }
+ }
+
+
{
do
{
*** ../vim-7.3.548/src/version.c 2012-06-07 21:09:35.000000000 +0200
--- src/version.c 2012-06-13 13:37:18.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 549,
/**/
--
hundred-and-one symptoms of being an internet addict:
29. Your phone bill comes to your doorstep in a box.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

160
7.3.550 Normal file
View File

@ -0,0 +1,160 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.550
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.550 (after 7.3.541)
Problem: With "j" in 'formatoptions' a list leader is not removed. (Gary
Johnson)
Solution: Don't ignore the start of a three part comment. (Lech Lorens)
Files: src/ops.c, src/testdir/test29.in, src/testdir/test29.ok
*** ../vim-7.3.549/src/ops.c 2012-06-07 21:09:35.000000000 +0200
--- src/ops.c 2012-06-13 13:48:26.000000000 +0200
***************
*** 4250,4264 ****
return line;
/* Find:
- * - COM_START,
* - COM_END,
* - colon,
* whichever comes first.
*/
while (*comment_flags)
{
! if (*comment_flags == COM_START
! || *comment_flags == COM_END
|| *comment_flags == ':')
{
break;
--- 4250,4262 ----
return line;
/* Find:
* - COM_END,
* - colon,
* whichever comes first.
*/
while (*comment_flags)
{
! if (*comment_flags == COM_END
|| *comment_flags == ':')
{
break;
***************
*** 4267,4275 ****
}
/* If we found a colon, it means that we are not processing a line
! * starting with an opening or a closing part of a three-part
! * comment. That's good, because we don't want to remove those as
! * this would be annoying.
*/
if (*comment_flags == ':' || *comment_flags == NUL)
line += lead_len;
--- 4265,4272 ----
}
/* If we found a colon, it means that we are not processing a line
! * starting with a closing part of a three-part comment. That's good,
! * because we don't want to remove those as this would be annoying.
*/
if (*comment_flags == ':' || *comment_flags == NUL)
line += lead_len;
*** ../vim-7.3.549/src/testdir/test29.in 2012-06-06 16:12:54.000000000 +0200
--- src/testdir/test29.in 2012-06-13 13:48:26.000000000 +0200
***************
*** 103,114 ****
STARTTEST
/^{/+1
! :set comments=s1:/*,mb:*,ex:*/,://
:set comments+=s1:>#,mb:#,ex:#<,:<
:set cpoptions-=j joinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
--- 103,117 ----
STARTTEST
/^{/+1
! :set comments=sO:*\ -,mO:*\ \ ,exO:*/
! :set comments+=s1:/*,mb:*,ex:*/,://
:set comments+=s1:>#,mb:#,ex:#<,:<
:set cpoptions-=j joinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
+ :.,+8join
+ j9J
:.,+2join
j3J
:.,+2join
***************
*** 132,137 ****
--- 135,158 ----
* Make sure the previous comment leader is not removed.
*/
+ /* List:
+ * - item1
+ * foo bar baz
+ * foo bar baz
+ * - item2
+ * foo bar baz
+ * foo bar baz
+ */
+
+ /* List:
+ * - item1
+ * foo bar baz
+ * foo bar baz
+ * - item2
+ * foo bar baz
+ * foo bar baz
+ */
+
// Should the next comment leader be left alone?
// Yes.
*** ../vim-7.3.549/src/testdir/test29.ok 2012-06-06 16:12:54.000000000 +0200
--- src/testdir/test29.ok 2012-06-13 13:48:26.000000000 +0200
***************
*** 66,71 ****
--- 66,73 ----
{
/* Make sure the previous comment leader is not removed. */
/* Make sure the previous comment leader is not removed. */
+ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
+ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
// Should the next comment leader be left alone? Yes.
// Should the next comment leader be left alone? Yes.
/* Here the comment leader should be left intact. */ // And so should this one.
*** ../vim-7.3.549/src/version.c 2012-06-13 13:40:45.000000000 +0200
--- src/version.c 2012-06-13 13:50:23.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 550,
/**/
--
If you put 7 of the most talented OSS developers in a room for a week
and asked them to fix a bug in a spreadsheet program, in 1 week
you'd have 2 new mail readers and a text-based web browser.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

494
7.3.551 Normal file
View File

@ -0,0 +1,494 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.551
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.551
Problem: When using :tablose a TabEnter autocommand is triggered too early.
(Karthick)
Solution: Don't trigger *Enter autocommands before closing the tab.
(Christian Brabandt)
Files: src/buffer.c, src/eval.c, src/ex_cmds2.c, src/fileio.c,
src/proto/window.pro, src/window.c
*** ../vim-7.3.550/src/buffer.c 2012-06-06 19:02:40.000000000 +0200
--- src/buffer.c 2012-06-13 14:18:58.000000000 +0200
***************
*** 4470,4476 ****
* When the ":tab" modifier was used do this for all tab pages.
*/
if (had_tab > 0)
! goto_tabpage_tp(first_tabpage);
for (;;)
{
tpnext = curtab->tp_next;
--- 4470,4476 ----
* When the ":tab" modifier was used do this for all tab pages.
*/
if (had_tab > 0)
! goto_tabpage_tp(first_tabpage, TRUE);
for (;;)
{
tpnext = curtab->tp_next;
***************
*** 4582,4588 ****
if (!valid_tabpage(tpnext))
tpnext = first_tabpage; /* start all over...*/
# endif
! goto_tabpage_tp(tpnext);
}
/*
--- 4582,4588 ----
if (!valid_tabpage(tpnext))
tpnext = first_tabpage; /* start all over...*/
# endif
! goto_tabpage_tp(tpnext, TRUE);
}
/*
***************
*** 4686,4698 ****
if (last_curtab != new_curtab)
{
if (valid_tabpage(last_curtab))
! goto_tabpage_tp(last_curtab);
if (win_valid(last_curwin))
win_enter(last_curwin, FALSE);
}
/* to window with first arg */
if (valid_tabpage(new_curtab))
! goto_tabpage_tp(new_curtab);
if (win_valid(new_curwin))
win_enter(new_curwin, FALSE);
--- 4686,4698 ----
if (last_curtab != new_curtab)
{
if (valid_tabpage(last_curtab))
! goto_tabpage_tp(last_curtab, TRUE);
if (win_valid(last_curwin))
win_enter(last_curwin, FALSE);
}
/* to window with first arg */
if (valid_tabpage(new_curtab))
! goto_tabpage_tp(new_curtab, TRUE);
if (win_valid(new_curwin))
win_enter(new_curwin, FALSE);
***************
*** 4744,4750 ****
*/
#ifdef FEAT_WINDOWS
if (had_tab > 0)
! goto_tabpage_tp(first_tabpage);
for (;;)
{
#endif
--- 4744,4750 ----
*/
#ifdef FEAT_WINDOWS
if (had_tab > 0)
! goto_tabpage_tp(first_tabpage, TRUE);
for (;;)
{
#endif
***************
*** 4784,4790 ****
/* Without the ":tab" modifier only do the current tab page. */
if (had_tab == 0 || tpnext == NULL)
break;
! goto_tabpage_tp(tpnext);
}
#endif
--- 4784,4790 ----
/* Without the ":tab" modifier only do the current tab page. */
if (had_tab == 0 || tpnext == NULL)
break;
! goto_tabpage_tp(tpnext, TRUE);
}
#endif
*** ../vim-7.3.550/src/eval.c 2012-06-06 16:29:06.000000000 +0200
--- src/eval.c 2012-06-13 14:18:58.000000000 +0200
***************
*** 16415,16421 ****
if (tp != NULL && varname != NULL && varp != NULL)
{
save_curtab = curtab;
! goto_tabpage_tp(tp);
tabvarname = alloc((unsigned)STRLEN(varname) + 3);
if (tabvarname != NULL)
--- 16415,16421 ----
if (tp != NULL && varname != NULL && varp != NULL)
{
save_curtab = curtab;
! goto_tabpage_tp(tp, TRUE);
tabvarname = alloc((unsigned)STRLEN(varname) + 3);
if (tabvarname != NULL)
***************
*** 16428,16434 ****
/* Restore current tabpage */
if (valid_tabpage(save_curtab))
! goto_tabpage_tp(save_curtab);
}
}
--- 16428,16434 ----
/* Restore current tabpage */
if (valid_tabpage(save_curtab))
! goto_tabpage_tp(save_curtab, TRUE);
}
}
***************
*** 16492,16498 ****
/* set curwin to be our win, temporarily */
save_curwin = curwin;
save_curtab = curtab;
! goto_tabpage_tp(tp);
if (!win_valid(win))
return;
curwin = win;
--- 16492,16498 ----
/* set curwin to be our win, temporarily */
save_curwin = curwin;
save_curtab = curtab;
! goto_tabpage_tp(tp, TRUE);
if (!win_valid(win))
return;
curwin = win;
***************
*** 16527,16533 ****
/* Restore current tabpage and window, if still valid (autocomands can
* make them invalid). */
if (valid_tabpage(save_curtab))
! goto_tabpage_tp(save_curtab);
if (win_valid(save_curwin))
{
curwin = save_curwin;
--- 16527,16533 ----
/* Restore current tabpage and window, if still valid (autocomands can
* make them invalid). */
if (valid_tabpage(save_curtab))
! goto_tabpage_tp(save_curtab, TRUE);
if (win_valid(save_curwin))
{
curwin = save_curwin;
*** ../vim-7.3.550/src/ex_cmds2.c 2012-04-25 17:32:14.000000000 +0200
--- src/ex_cmds2.c 2012-06-13 14:18:58.000000000 +0200
***************
*** 2476,2482 ****
/* go to window "tp" */
if (!valid_tabpage(tp))
break;
! goto_tabpage_tp(tp);
tp = tp->tp_next;
}
#endif
--- 2476,2482 ----
/* go to window "tp" */
if (!valid_tabpage(tp))
break;
! goto_tabpage_tp(tp, TRUE);
tp = tp->tp_next;
}
#endif
*** ../vim-7.3.550/src/fileio.c 2012-06-06 18:03:01.000000000 +0200
--- src/fileio.c 2012-06-13 14:18:58.000000000 +0200
***************
*** 8918,8924 ****
if (wp == aucmd_win)
{
if (tp != curtab)
! goto_tabpage_tp(tp);
win_goto(aucmd_win);
goto win_found;
}
--- 8918,8924 ----
if (wp == aucmd_win)
{
if (tp != curtab)
! goto_tabpage_tp(tp, TRUE);
win_goto(aucmd_win);
goto win_found;
}
*** ../vim-7.3.550/src/proto/window.pro 2012-02-22 14:58:24.000000000 +0100
--- src/proto/window.pro 2012-06-13 14:23:06.000000000 +0200
***************
*** 27,33 ****
tabpage_T *find_tabpage __ARGS((int n));
int tabpage_index __ARGS((tabpage_T *ftp));
void goto_tabpage __ARGS((int n));
! void goto_tabpage_tp __ARGS((tabpage_T *tp));
void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp));
void tabpage_move __ARGS((int nr));
void win_goto __ARGS((win_T *wp));
--- 27,33 ----
tabpage_T *find_tabpage __ARGS((int n));
int tabpage_index __ARGS((tabpage_T *ftp));
void goto_tabpage __ARGS((int n));
! void goto_tabpage_tp __ARGS((tabpage_T *tp, int trigger_autocmds));
void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp));
void tabpage_move __ARGS((int nr));
void win_goto __ARGS((win_T *wp));
*** ../vim-7.3.550/src/window.c 2012-06-06 19:02:40.000000000 +0200
--- src/window.c 2012-06-13 14:24:38.000000000 +0200
***************
*** 45,51 ****
#if defined(FEAT_WINDOWS) || defined(PROTO)
static tabpage_T *alloc_tabpage __ARGS((void));
static int leave_tabpage __ARGS((buf_T *new_curbuf));
! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf));
static void frame_fix_height __ARGS((win_T *wp));
static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin));
static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin));
--- 45,51 ----
#if defined(FEAT_WINDOWS) || defined(PROTO)
static tabpage_T *alloc_tabpage __ARGS((void));
static int leave_tabpage __ARGS((buf_T *new_curbuf));
! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf, int trigger_autocmds));
static void frame_fix_height __ARGS((win_T *wp));
static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin));
static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin));
***************
*** 355,365 ****
&& valid_tabpage(oldtab))
{
newtab = curtab;
! goto_tabpage_tp(oldtab);
if (curwin == wp)
win_close(curwin, FALSE);
if (valid_tabpage(newtab))
! goto_tabpage_tp(newtab);
}
}
break;
--- 355,365 ----
&& valid_tabpage(oldtab))
{
newtab = curtab;
! goto_tabpage_tp(oldtab, TRUE);
if (curwin == wp)
win_close(curwin, FALSE);
if (valid_tabpage(newtab))
! goto_tabpage_tp(newtab, TRUE);
}
}
break;
***************
*** 2130,2137 ****
* page and then close the window and the tab page. This avoids that
* curwin and curtab are invalid while we are freeing memory, they may
* be used in GUI events.
*/
! goto_tabpage_tp(alt_tabpage());
redraw_tabline = TRUE;
/* Safety check: Autocommands may have closed the window when jumping
--- 2130,2139 ----
* page and then close the window and the tab page. This avoids that
* curwin and curtab are invalid while we are freeing memory, they may
* be used in GUI events.
+ * Don't trigger autocommands yet, they may use wrong values, so do
+ * that below.
*/
! goto_tabpage_tp(alt_tabpage(), FALSE);
redraw_tabline = TRUE;
/* Safety check: Autocommands may have closed the window when jumping
***************
*** 2144,2149 ****
--- 2146,2157 ----
if (h != tabline_height())
shell_new_rows();
}
+ /* Since goto_tabpage_tp above did not trigger *Enter autocommands, do
+ * that now. */
+ #ifdef FEAT_AUTOCMD
+ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
+ apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);
+ #endif
return TRUE;
}
return FALSE;
***************
*** 3556,3562 ****
}
/* Failed, get back the previous Tab page */
! enter_tabpage(curtab, curbuf);
return FAIL;
}
--- 3564,3570 ----
}
/* Failed, get back the previous Tab page */
! enter_tabpage(curtab, curbuf, TRUE);
return FAIL;
}
***************
*** 3709,3719 ****
/*
* Start using tab page "tp".
* Only to be used after leave_tabpage() or freeing the current tab page.
*/
static void
! enter_tabpage(tp, old_curbuf)
tabpage_T *tp;
buf_T *old_curbuf UNUSED;
{
int old_off = tp->tp_firstwin->w_winrow;
win_T *next_prevwin = tp->tp_prevwin;
--- 3717,3729 ----
/*
* Start using tab page "tp".
* Only to be used after leave_tabpage() or freeing the current tab page.
+ * Only trigger *Enter autocommands when trigger_autocmds is TRUE.
*/
static void
! enter_tabpage(tp, old_curbuf, trigger_autocmds)
tabpage_T *tp;
buf_T *old_curbuf UNUSED;
+ int trigger_autocmds;
{
int old_off = tp->tp_firstwin->w_winrow;
win_T *next_prevwin = tp->tp_prevwin;
***************
*** 3761,3769 ****
#ifdef FEAT_AUTOCMD
/* Apply autocommands after updating the display, when 'rows' and
* 'columns' have been set correctly. */
! apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
! if (old_curbuf != curbuf)
! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
#endif
redraw_all_later(CLEAR);
--- 3771,3782 ----
#ifdef FEAT_AUTOCMD
/* Apply autocommands after updating the display, when 'rows' and
* 'columns' have been set correctly. */
! if (trigger_autocmds)
! {
! apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
! if (old_curbuf != curbuf)
! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
! }
#endif
redraw_all_later(CLEAR);
***************
*** 3839,3845 ****
}
}
! goto_tabpage_tp(tp);
#ifdef FEAT_GUI_TABLINE
if (gui_use_tabline())
--- 3852,3858 ----
}
}
! goto_tabpage_tp(tp, TRUE);
#ifdef FEAT_GUI_TABLINE
if (gui_use_tabline())
***************
*** 3849,3859 ****
/*
* Go to tabpage "tp".
* Note: doesn't update the GUI tab.
*/
void
! goto_tabpage_tp(tp)
tabpage_T *tp;
{
/* Don't repeat a message in another tab page. */
set_keep_msg(NULL, 0);
--- 3862,3874 ----
/*
* Go to tabpage "tp".
+ * Only trigger *Enter autocommands when trigger_autocmds is TRUE.
* Note: doesn't update the GUI tab.
*/
void
! goto_tabpage_tp(tp, trigger_autocmds)
tabpage_T *tp;
+ int trigger_autocmds;
{
/* Don't repeat a message in another tab page. */
set_keep_msg(NULL, 0);
***************
*** 3861,3869 ****
if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer) == OK)
{
if (valid_tabpage(tp))
! enter_tabpage(tp, curbuf);
else
! enter_tabpage(curtab, curbuf);
}
}
--- 3876,3884 ----
if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer) == OK)
{
if (valid_tabpage(tp))
! enter_tabpage(tp, curbuf, trigger_autocmds);
else
! enter_tabpage(curtab, curbuf, trigger_autocmds);
}
}
***************
*** 3876,3882 ****
tabpage_T *tp;
win_T *wp;
{
! goto_tabpage_tp(tp);
if (curtab == tp && win_valid(wp))
{
win_enter(wp, TRUE);
--- 3891,3897 ----
tabpage_T *tp;
win_T *wp;
{
! goto_tabpage_tp(tp, TRUE);
if (curtab == tp && win_valid(wp))
{
win_enter(wp, TRUE);
*** ../vim-7.3.550/src/version.c 2012-06-13 14:01:36.000000000 +0200
--- src/version.c 2012-06-13 14:28:00.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 551,
/**/
--
Give a man a computer program and you give him a headache,
but teach him to program computers and you give him the power
to create headaches for others for the rest of his life...
R. B. Forest
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

582
7.3.552 Normal file
View File

@ -0,0 +1,582 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.552
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.552
Problem: Formatting inside comments does not use the "2" flag in
'formatoptions'.
Solution: Support the "2" flag. (Tor Perkins)
Files: src/vim.h, src/ops.c, src/edit.c, src/misc1.c,
src/testdir/test68.in, src/testdir/test68.ok
*** ../vim-7.3.551/src/vim.h 2012-06-06 18:03:01.000000000 +0200
--- src/vim.h 2012-06-13 16:07:27.000000000 +0200
***************
*** 1072,1083 ****
--- 1072,1085 ----
#define INSCHAR_DO_COM 2 /* format comments */
#define INSCHAR_CTRLV 4 /* char typed just after CTRL-V */
#define INSCHAR_NO_FEX 8 /* don't use 'formatexpr' */
+ #define INSCHAR_COM_LIST 16 /* format comments with list/2nd line indent */
/* flags for open_line() */
#define OPENLINE_DELSPACES 1 /* delete spaces after cursor */
#define OPENLINE_DO_COM 2 /* format comments */
#define OPENLINE_KEEPTRAIL 4 /* keep trailing spaces */
#define OPENLINE_MARKFIX 8 /* fix mark positions */
+ #define OPENLINE_COM_LIST 16 /* format comments with list/2nd line indent */
/*
* There are four history tables:
*** ../vim-7.3.551/src/ops.c 2012-06-13 14:01:36.000000000 +0200
--- src/ops.c 2012-06-13 16:53:44.000000000 +0200
***************
*** 1727,1734 ****
* and the delete is within one line. */
if ((
#ifdef FEAT_CLIPBOARD
! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
#endif
oap->regname == 0) && oap->motion_type != MLINE
&& oap->line_count == 1)
--- 1727,1734 ----
* and the delete is within one line. */
if ((
#ifdef FEAT_CLIPBOARD
! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
#endif
oap->regname == 0) && oap->motion_type != MLINE
&& oap->line_count == 1)
***************
*** 4208,4217 ****
* "is_comment".
* line - line to be processed,
* process - if FALSE, will only check whether the line ends with an unclosed
! * comment,
* include_space - whether to also skip space following the comment leader,
* is_comment - will indicate whether the current line ends with an unclosed
! * comment.
*/
static char_u *
skip_comment(line, process, include_space, is_comment)
--- 4208,4217 ----
* "is_comment".
* line - line to be processed,
* process - if FALSE, will only check whether the line ends with an unclosed
! * comment,
* include_space - whether to also skip space following the comment leader,
* is_comment - will indicate whether the current line ends with an unclosed
! * comment.
*/
static char_u *
skip_comment(line, process, include_space, is_comment)
***************
*** 4723,4731 ****
char_u *leader_flags = NULL; /* flags for leader of current line */
char_u *next_leader_flags; /* flags for leader of next line */
int do_comments; /* format comments */
#endif
int advance = TRUE;
! int second_indent = -1;
int do_second_indent;
int do_number_indent;
int do_trail_white;
--- 4723,4733 ----
char_u *leader_flags = NULL; /* flags for leader of current line */
char_u *next_leader_flags; /* flags for leader of next line */
int do_comments; /* format comments */
+ int do_comments_list = 0; /* format comments with 'n' or '2' */
#endif
int advance = TRUE;
! int second_indent = -1; /* indent for second line (comment
! * aware) */
int do_second_indent;
int do_number_indent;
int do_trail_white;
***************
*** 4828,4845 ****
if (first_par_line
&& (do_second_indent || do_number_indent)
&& prev_is_end_par
! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count
#ifdef FEAT_COMMENTS
! && leader_len == 0
! && next_leader_len == 0
#endif
! )
! {
! if (do_second_indent
! && !lineempty(curwin->w_cursor.lnum + 1))
! second_indent = get_indent_lnum(curwin->w_cursor.lnum + 1);
else if (do_number_indent)
! second_indent = get_number_indent(curwin->w_cursor.lnum);
}
/*
--- 4830,4875 ----
if (first_par_line
&& (do_second_indent || do_number_indent)
&& prev_is_end_par
! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
! {
! if (do_second_indent && !lineempty(curwin->w_cursor.lnum + 1))
! {
#ifdef FEAT_COMMENTS
! if (leader_len == 0 && next_leader_len == 0)
! {
! /* no comment found */
#endif
! second_indent =
! get_indent_lnum(curwin->w_cursor.lnum + 1);
! #ifdef FEAT_COMMENTS
! }
! else
! {
! second_indent = next_leader_len;
! do_comments_list = 1;
! }
! #endif
! }
else if (do_number_indent)
! {
! #ifdef FEAT_COMMENTS
! if (leader_len == 0 && next_leader_len == 0)
! {
! /* no comment found */
! #endif
! second_indent =
! get_number_indent(curwin->w_cursor.lnum);
! #ifdef FEAT_COMMENTS
! }
! else
! {
! /* get_number_indent() is now "comment aware"... */
! second_indent =
! get_number_indent(curwin->w_cursor.lnum);
! do_comments_list = 1;
! }
! #endif
! }
}
/*
***************
*** 4878,4883 ****
--- 4908,4915 ----
insertchar(NUL, INSCHAR_FORMAT
#ifdef FEAT_COMMENTS
+ (do_comments ? INSCHAR_DO_COM : 0)
+ + (do_comments && do_comments_list
+ ? INSCHAR_COM_LIST : 0)
#endif
+ (avoid_fex ? INSCHAR_NO_FEX : 0), second_indent);
State = old_State;
*** ../vim-7.3.551/src/edit.c 2012-06-06 16:12:54.000000000 +0200
--- src/edit.c 2012-06-13 16:54:10.000000000 +0200
***************
*** 1463,1469 ****
* what check_abbr() expects. */
(has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
#endif
! c) && c != Ctrl_RSB))
{
insert_special(c, FALSE, FALSE);
#ifdef FEAT_RIGHTLEFT
--- 1463,1469 ----
* what check_abbr() expects. */
(has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
#endif
! c) && c != Ctrl_RSB))
{
insert_special(c, FALSE, FALSE);
#ifdef FEAT_RIGHTLEFT
***************
*** 5769,5774 ****
--- 5769,5784 ----
# define WHITECHAR(cc) vim_iswhite(cc)
#endif
+ /*
+ * "flags": INSCHAR_FORMAT - force formatting
+ * INSCHAR_CTRLV - char typed just after CTRL-V
+ * INSCHAR_NO_FEX - don't use 'formatexpr'
+ *
+ * NOTE: passes the flags value straight through to internal_format() which,
+ * beside INSCHAR_FORMAT (above), is also looking for these:
+ * INSCHAR_DO_COM - format comments
+ * INSCHAR_COM_LIST - format comments with num list or 2nd line indent
+ */
void
insertchar(c, flags, second_indent)
int c; /* character to insert or NUL */
***************
*** 6011,6016 ****
--- 6021,6029 ----
/*
* Format text at the current insert position.
+ *
+ * If the INSCHAR_COM_LIST flag is present, then the value of second_indent
+ * will be the comment leader length sent to open_line().
*/
static void
internal_format(textwidth, second_indent, flags, format_only, c)
***************
*** 6289,6311 ****
+ (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
#ifdef FEAT_COMMENTS
+ (do_comments ? OPENLINE_DO_COM : 0)
#endif
! , old_indent);
! old_indent = 0;
replace_offset = 0;
if (first_line)
{
! if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
! second_indent = get_number_indent(curwin->w_cursor.lnum -1);
! if (second_indent >= 0)
{
#ifdef FEAT_VREPLACE
! if (State & VREPLACE_FLAG)
! change_indent(INDENT_SET, second_indent, FALSE, NUL, TRUE);
! else
#endif
! (void)set_indent(second_indent, SIN_CHANGED);
}
first_line = FALSE;
}
--- 6302,6337 ----
+ (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
#ifdef FEAT_COMMENTS
+ (do_comments ? OPENLINE_DO_COM : 0)
+ + ((flags & INSCHAR_COM_LIST) ? OPENLINE_COM_LIST : 0)
#endif
! , ((flags & INSCHAR_COM_LIST) ? second_indent : old_indent));
! if (!(flags & INSCHAR_COM_LIST))
! old_indent = 0;
replace_offset = 0;
if (first_line)
{
! if (!(flags & INSCHAR_COM_LIST))
{
+ /*
+ * This section is for numeric lists w/o comments. If comment
+ * indents are needed with numeric lists (formatoptions=nq),
+ * then the INSCHAR_COM_LIST flag will cause the corresponding
+ * OPENLINE_COM_LIST flag to be passed through to open_line()
+ * (as seen above)...
+ */
+ if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
+ second_indent = get_number_indent(curwin->w_cursor.lnum -1);
+ if (second_indent >= 0)
+ {
#ifdef FEAT_VREPLACE
! if (State & VREPLACE_FLAG)
! change_indent(INDENT_SET, second_indent,
! FALSE, NUL, TRUE);
! else
#endif
! (void)set_indent(second_indent, SIN_CHANGED);
! }
}
first_line = FALSE;
}
*** ../vim-7.3.551/src/misc1.c 2012-06-13 13:40:45.000000000 +0200
--- src/misc1.c 2012-06-13 16:54:59.000000000 +0200
***************
*** 423,449 ****
{
colnr_T col;
pos_T pos;
- regmmatch_T regmatch;
if (lnum > curbuf->b_ml.ml_line_count)
return -1;
pos.lnum = 0;
! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
! if (regmatch.regprog != NULL)
{
! regmatch.rmm_ic = FALSE;
! regmatch.rmm_maxcol = 0;
! if (vim_regexec_multi(&regmatch, curwin, curbuf, lnum,
! (colnr_T)0, NULL))
{
! pos.lnum = regmatch.endpos[0].lnum + lnum;
! pos.col = regmatch.endpos[0].col;
#ifdef FEAT_VIRTUALEDIT
! pos.coladd = 0;
#endif
}
vim_free(regmatch.regprog);
}
if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
return -1;
--- 423,492 ----
{
colnr_T col;
pos_T pos;
if (lnum > curbuf->b_ml.ml_line_count)
return -1;
pos.lnum = 0;
!
! #ifdef FEAT_COMMENTS
! if (has_format_option(FO_Q_COMS) && has_format_option(FO_Q_NUMBER))
{
! regmatch_T regmatch;
! int lead_len; /* length of comment leader */
!
! lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
! if (regmatch.regprog != NULL)
{
! regmatch.rm_ic = FALSE;
!
! /* vim_regexec() expects a pointer to a line. This lets us
! * start matching for the flp beyond any comment leader... */
! if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
! {
! pos.lnum = lnum;
! pos.col = *regmatch.endp - (ml_get(lnum) + lead_len);
! pos.col += lead_len;
#ifdef FEAT_VIRTUALEDIT
! pos.coladd = 0;
#endif
+ }
}
vim_free(regmatch.regprog);
}
+ else
+ {
+ /*
+ * What follows is the orig code that is not "comment aware"...
+ *
+ * I'm not sure if regmmatch_T (multi-match) is needed in this case.
+ * It may be true that this section would work properly using the
+ * regmatch_T code above, in which case, these two seperate sections
+ * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
+ */
+ #endif
+ regmmatch_T regmatch;
+
+ regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
+
+ if (regmatch.regprog != NULL)
+ {
+ regmatch.rmm_ic = FALSE;
+ regmatch.rmm_maxcol = 0;
+ if (vim_regexec_multi(&regmatch, curwin, curbuf,
+ lnum, (colnr_T)0, NULL))
+ {
+ pos.lnum = regmatch.endpos[0].lnum + lnum;
+ pos.col = regmatch.endpos[0].col;
+ #ifdef FEAT_VIRTUALEDIT
+ pos.coladd = 0;
+ #endif
+ }
+ vim_free(regmatch.regprog);
+ }
+ #ifdef FEAT_COMMENTS
+ }
+ #endif
if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
return -1;
***************
*** 502,515 ****
* OPENLINE_DO_COM format comments
* OPENLINE_KEEPTRAIL keep trailing spaces
* OPENLINE_MARKFIX adjust mark positions after the line break
*
* Return TRUE for success, FALSE for failure
*/
int
! open_line(dir, flags, old_indent)
int dir; /* FORWARD or BACKWARD */
int flags;
! int old_indent; /* indent for after ^^D in Insert mode */
{
char_u *saved_line; /* copy of the original line */
char_u *next_line = NULL; /* copy of the next line */
--- 545,562 ----
* OPENLINE_DO_COM format comments
* OPENLINE_KEEPTRAIL keep trailing spaces
* OPENLINE_MARKFIX adjust mark positions after the line break
+ * OPENLINE_COM_LIST format comments with list or 2nd line indent
+ *
+ * "second_line_indent": indent for after ^^D in Insert mode or if flag
+ * OPENLINE_COM_LIST
*
* Return TRUE for success, FALSE for failure
*/
int
! open_line(dir, flags, second_line_indent)
int dir; /* FORWARD or BACKWARD */
int flags;
! int second_line_indent;
{
char_u *saved_line; /* copy of the original line */
char_u *next_line = NULL; /* copy of the next line */
***************
*** 650,657 ****
* count white space on current line
*/
newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts);
! if (newindent == 0)
! newindent = old_indent; /* for ^^D command in insert mode */
#ifdef FEAT_SMARTINDENT
/*
--- 697,704 ----
* count white space on current line
*/
newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts);
! if (newindent == 0 && !(flags & OPENLINE_COM_LIST))
! newindent = second_line_indent; /* for ^^D command in insert mode */
#ifdef FEAT_SMARTINDENT
/*
***************
*** 1008,1015 ****
if (lead_len)
{
/* allocate buffer (may concatenate p_exta later) */
! leader = alloc(lead_len + lead_repl_len + extra_space +
! extra_len + 1);
allocated = leader; /* remember to free it later */
if (leader == NULL)
--- 1055,1062 ----
if (lead_len)
{
/* allocate buffer (may concatenate p_exta later) */
! leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
! + (second_line_indent > 0 ? second_line_indent : 0));
allocated = leader; /* remember to free it later */
if (leader == NULL)
***************
*** 1304,1309 ****
--- 1351,1370 ----
/* concatenate leader and p_extra, if there is a leader */
if (lead_len)
{
+ if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
+ {
+ int i;
+ int padding = second_line_indent - (newindent + STRLEN(leader));
+
+ /* Here whitespace is inserted after the comment char.
+ * Below, set_indent(newindent, SIN_INSERT) will insert the
+ * whitespace needed before the comment char. */
+ for (i = 0; i < padding; i++)
+ {
+ STRCAT(leader, " ");
+ newcol++;
+ }
+ }
STRCAT(leader, p_extra);
p_extra = leader;
did_ai = TRUE; /* So truncating blanks works with comments */
***************
*** 4966,4973 ****
char_u *
FullName_save(fname, force)
char_u *fname;
! int force; /* force expansion, even when it already looks
! like a full path name */
{
char_u *buf;
char_u *new_fname = NULL;
--- 5027,5034 ----
char_u *
FullName_save(fname, force)
char_u *fname;
! int force; /* force expansion, even when it already looks
! * like a full path name */
{
char_u *buf;
char_u *new_fname = NULL;
*** ../vim-7.3.551/src/testdir/test68.in 2010-10-09 17:21:42.000000000 +0200
--- src/testdir/test68.in 2012-06-13 15:49:38.000000000 +0200
***************
*** 51,56 ****
--- 51,77 ----
}
STARTTEST
+ /^{/+1
+ :set tw=5 fo=qn comments=:#
+ gwap
+ ENDTEST
+
+ {
+ # 1 a b
+ }
+
+ STARTTEST
+ /^{/+1
+ :set tw=5 fo=q2 comments=:#
+ gwap
+ ENDTEST
+
+ {
+ # x
+ # a b
+ }
+
+ STARTTEST
/^{/+2
:set tw& fo=a
I^^
*** ../vim-7.3.551/src/testdir/test68.ok 2010-10-09 17:21:42.000000000 +0200
--- src/testdir/test68.ok 2012-06-13 15:49:38.000000000 +0200
***************
*** 34,38 ****
--- 34,50 ----
}
+ {
+ # 1 a
+ # b
+ }
+
+
+ {
+ # x a
+ # b
+ }
+
+
{ 1aa ^^2bb }
*** ../vim-7.3.551/src/version.c 2012-06-13 14:28:16.000000000 +0200
--- src/version.c 2012-06-13 16:36:14.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 552,
/**/
--
hundred-and-one symptoms of being an internet addict:
31. You code your homework in HTML and give your instructor the URL.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

85
7.3.553 Normal file
View File

@ -0,0 +1,85 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.553
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.553
Problem: With double-width characters and 'listchars' containing "precedes"
the text is displayed one cell off.
Solution: Check for double-width character being overwritten by the
"precedes" character. (Yasuhiro Matsumoto)
Files: src/screen.c
*** ../vim-7.3.552/src/screen.c 2012-06-06 19:05:45.000000000 +0200
--- src/screen.c 2012-06-13 17:55:10.000000000 +0200
***************
*** 89,94 ****
--- 89,97 ----
#include "vim.h"
+ #define MB_FILLER_CHAR '<' /* character used when a double-width character
+ * doesn't fit. */
+
/*
* The attributes that are actually active for writing to the screen.
*/
***************
*** 4016,4022 ****
if (n_skip > 0 && mb_l > 1 && n_extra == 0)
{
n_extra = 1;
! c_extra = '<';
c = ' ';
if (area_attr == 0 && search_attr == 0)
{
--- 4019,4025 ----
if (n_skip > 0 && mb_l > 1 && n_extra == 0)
{
n_extra = 1;
! c_extra = MB_FILLER_CHAR;
c = ' ';
if (area_attr == 0 && search_attr == 0)
{
***************
*** 4576,4581 ****
--- 4579,4593 ----
c = lcs_prec;
lcs_prec_todo = NUL;
#ifdef FEAT_MBYTE
+ if (has_mbyte && (*mb_char2cells)(mb_c) > 1)
+ {
+ /* Double-width character being overwritten by the "precedes"
+ * character, need to fill up half the character. */
+ c_extra = MB_FILLER_CHAR;
+ n_extra = 1;
+ n_attr = 2;
+ extra_attr = hl_attr(HLF_AT);
+ }
mb_c = c;
if (enc_utf8 && (*mb_char2len)(c) > 1)
{
*** ../vim-7.3.552/src/version.c 2012-06-13 17:28:51.000000000 +0200
--- src/version.c 2012-06-13 17:48:45.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 553,
/**/
--
hundred-and-one symptoms of being an internet addict:
32. You don't know what sex three of your closest friends are, because they
have neutral nicknames and you never bothered to ask.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.3.554 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.554
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.554 (after 7.3.551)
Problem: Compiler warning for unused argument.
Solution: Add UNUSED.
Files: src/window.c
*** ../vim-7.3.553/src/window.c 2012-06-13 14:28:16.000000000 +0200
--- src/window.c 2012-06-13 17:46:49.000000000 +0200
***************
*** 3723,3729 ****
enter_tabpage(tp, old_curbuf, trigger_autocmds)
tabpage_T *tp;
buf_T *old_curbuf UNUSED;
! int trigger_autocmds;
{
int old_off = tp->tp_firstwin->w_winrow;
win_T *next_prevwin = tp->tp_prevwin;
--- 3723,3729 ----
enter_tabpage(tp, old_curbuf, trigger_autocmds)
tabpage_T *tp;
buf_T *old_curbuf UNUSED;
! int trigger_autocmds UNUSED;
{
int old_off = tp->tp_firstwin->w_winrow;
win_T *next_prevwin = tp->tp_prevwin;
*** ../vim-7.3.553/src/version.c 2012-06-13 18:06:32.000000000 +0200
--- src/version.c 2012-06-13 18:15:08.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 554,
/**/
--
hundred-and-one symptoms of being an internet addict:
33. You name your children Eudora, Mozilla and Dotcom.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

232
7.3.555 Normal file
View File

@ -0,0 +1,232 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.555
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.555
Problem: Building on IBM z/OS fails.
Solution: Adjust configure. Use the QUOTESED value from config.mk instead of
the hard coded one in Makefile. (Stephen Bovy)
Files: src/configure.in, src/auto/configure, src/Makefile
*** ../vim-7.3.554/src/configure.in 2012-02-05 22:51:27.000000000 +0100
--- src/configure.in 2012-06-13 18:52:11.000000000 +0200
***************
*** 329,343 ****
echo ""
echo "------------------------------------------"
echo " On z/OS Unix, the environment variable"
! echo " __CC_${ccn}MODE must be set to \"1\"!"
echo " Do:"
echo " export _CC_${ccn}MODE=1"
echo " and then call configure again."
echo "------------------------------------------"
exit 1
fi
! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
AC_MSG_RESULT(yes)
;;
*) zOSUnix="no";
--- 329,346 ----
echo ""
echo "------------------------------------------"
echo " On z/OS Unix, the environment variable"
! echo " _CC_${ccn}MODE must be set to \"1\"!"
echo " Do:"
echo " export _CC_${ccn}MODE=1"
echo " and then call configure again."
echo "------------------------------------------"
exit 1
fi
! # Set CFLAGS for configure process.
! # This will be reset later for config.mk.
! # Use haltonmsg to force error for missing H files.
! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
AC_MSG_RESULT(yes)
;;
*) zOSUnix="no";
***************
*** 2378,2387 ****
if test -z "$SKIP_MOTIF"; then
cppflags_save=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
! AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
! Xm/UnhighlightT.h Xm/Notebook.h)
! if test $ac_cv_header_Xm_XpmP_h = yes; then
dnl Solaris uses XpmAttributes_21, very annoying.
AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
--- 2381,2395 ----
if test -z "$SKIP_MOTIF"; then
cppflags_save=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
! if test "$zOSUnix" = "yes"; then
! xmheader="Xm/Xm.h"
! else
! xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
! Xm/UnhighlightT.h Xm/Notebook.h"
! fi
! AC_CHECK_HEADERS($xmheader)
! if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
dnl Solaris uses XpmAttributes_21, very annoying.
AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
***************
*** 3642,3647 ****
--- 3650,3660 ----
fi
AC_SUBST(LINK_AS_NEEDED)
+ # IBM z/OS reset CFLAGS for config.mk
+ if test "$zOSUnix" = "yes"; then
+ CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
+ fi
+
dnl write output files
AC_OUTPUT(auto/config.mk:config.mk.in)
*** ../vim-7.3.554/src/auto/configure 2012-02-05 22:51:27.000000000 +0100
--- src/auto/configure 2012-06-13 18:53:04.000000000 +0200
***************
*** 4426,4440 ****
echo ""
echo "------------------------------------------"
echo " On z/OS Unix, the environment variable"
! echo " __CC_${ccn}MODE must be set to \"1\"!"
echo " Do:"
echo " export _CC_${ccn}MODE=1"
echo " and then call configure again."
echo "------------------------------------------"
exit 1
fi
! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
;;
--- 4426,4443 ----
echo ""
echo "------------------------------------------"
echo " On z/OS Unix, the environment variable"
! echo " _CC_${ccn}MODE must be set to \"1\"!"
echo " Do:"
echo " export _CC_${ccn}MODE=1"
echo " and then call configure again."
echo "------------------------------------------"
exit 1
fi
! # Set CFLAGS for configure process.
! # This will be reset later for config.mk.
! # Use haltonmsg to force error for missing H files.
! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
;;
***************
*** 8697,8704 ****
if test -z "$SKIP_MOTIF"; then
cppflags_save=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
! for ac_header in Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
! Xm/UnhighlightT.h Xm/Notebook.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
--- 8700,8712 ----
if test -z "$SKIP_MOTIF"; then
cppflags_save=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
! if test "$zOSUnix" = "yes"; then
! xmheader="Xm/Xm.h"
! else
! xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
! Xm/UnhighlightT.h Xm/Notebook.h"
! fi
! for ac_header in $xmheader
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
***************
*** 8713,8719 ****
done
! if test $ac_cv_header_Xm_XpmP_h = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
$as_echo_n "checking for XpmAttributes_21 in Xm/XpmP.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--- 8721,8727 ----
done
! if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
$as_echo_n "checking for XpmAttributes_21 in Xm/XpmP.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
***************
*** 12590,12595 ****
--- 12598,12608 ----
fi
+ # IBM z/OS reset CFLAGS for config.mk
+ if test "$zOSUnix" = "yes"; then
+ CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
+ fi
+
ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
cat >confcache <<\_ACEOF
*** ../vim-7.3.554/src/Makefile 2012-03-28 17:17:45.000000000 +0200
--- src/Makefile 2012-06-13 18:48:13.000000000 +0200
***************
*** 875,880 ****
--- 875,884 ----
#CFLAGS = -O -Qtarget=m88110compat
#EXTRA_LIBS = -lgen
+ # The value of QUOTESED comes from auto/config.mk.
+ # Uncomment the next line to use the default value.
+ # QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
+
##################### end of system specific lines ################### }}}
### Names of the programs and targets {{{1
***************
*** 2411,2417 ****
auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in
CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh
- QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
auto/pathdef.c: Makefile auto/config.mk
-@echo creating $@
-@echo '/* pathdef.c */' > $@
--- 2415,2420 ----
*** ../vim-7.3.554/src/version.c 2012-06-13 18:15:13.000000000 +0200
--- src/version.c 2012-06-13 19:13:54.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 555,
/**/
--
My sister Cecilia opened a computer store in Hawaii.
She sells C shells by the seashore.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

70
7.3.556 Normal file
View File

@ -0,0 +1,70 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.556
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.556
Problem: Compiler warnings on 64 bit Windows.
Solution: Add type casts. (Mike Williams)
Files: src/misc1.c
*** ../vim-7.3.555/src/misc1.c 2012-06-13 17:28:51.000000000 +0200
--- src/misc1.c 2012-06-14 20:55:47.000000000 +0200
***************
*** 445,452 ****
if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
{
pos.lnum = lnum;
! pos.col = *regmatch.endp - (ml_get(lnum) + lead_len);
! pos.col += lead_len;
#ifdef FEAT_VIRTUALEDIT
pos.coladd = 0;
#endif
--- 445,451 ----
if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
{
pos.lnum = lnum;
! pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
#ifdef FEAT_VIRTUALEDIT
pos.coladd = 0;
#endif
***************
*** 1354,1360 ****
if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
{
int i;
! int padding = second_line_indent - (newindent + STRLEN(leader));
/* Here whitespace is inserted after the comment char.
* Below, set_indent(newindent, SIN_INSERT) will insert the
--- 1353,1360 ----
if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
{
int i;
! int padding = second_line_indent
! - (newindent + (int)STRLEN(leader));
/* Here whitespace is inserted after the comment char.
* Below, set_indent(newindent, SIN_INSERT) will insert the
*** ../vim-7.3.555/src/version.c 2012-06-13 19:19:36.000000000 +0200
--- src/version.c 2012-06-14 20:54:59.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 556,
/**/
--
He who laughs last, thinks slowest.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

99
7.3.557 Normal file
View File

@ -0,0 +1,99 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.557
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.557
Problem: Crash when an autocommand wipes out a buffer when it is hidden.
Solution: Restore the current window when needed. (Christian Brabandt)
Files: src/buffer.c
*** ../vim-7.3.556/src/buffer.c 2012-06-13 14:28:16.000000000 +0200
--- src/buffer.c 2012-06-20 11:49:54.000000000 +0200
***************
*** 1363,1368 ****
--- 1363,1369 ----
int action;
{
buf_T *prevbuf;
+ win_T *prevwin;
int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
|| action == DOBUF_WIPE);
***************
*** 1402,1423 ****
if (buf_valid(prevbuf))
#endif
{
if (prevbuf == curbuf)
u_sync(FALSE);
close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
unload ? action : (action == DOBUF_GOTO
&& !P_HID(prevbuf)
&& !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
}
}
#ifdef FEAT_AUTOCMD
/* An autocommand may have deleted "buf", already entered it (e.g., when
! * it did ":bunload") or aborted the script processing! */
! # ifdef FEAT_EVAL
! if (buf_valid(buf) && buf != curbuf && !aborting())
! # else
! if (buf_valid(buf) && buf != curbuf)
! # endif
#endif
enter_buffer(buf);
}
--- 1403,1432 ----
if (buf_valid(prevbuf))
#endif
{
+ prevwin = curwin;
if (prevbuf == curbuf)
u_sync(FALSE);
close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
unload ? action : (action == DOBUF_GOTO
&& !P_HID(prevbuf)
&& !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
+ if (curwin != prevwin && win_valid(prevwin))
+ /* autocommands changed curwin, Grr! */
+ curwin = prevwin;
}
}
#ifdef FEAT_AUTOCMD
/* An autocommand may have deleted "buf", already entered it (e.g., when
! * it did ":bunload") or aborted the script processing!
! * If curwin->w_buffer is null, enter_buffer() will make it valid again */
! if ((buf_valid(buf) && buf != curbuf
! #ifdef FEAT_EVAL
! && !aborting()
! #endif
! #ifdef FEAT_WINDOWS
! ) || curwin->w_buffer == NULL
! #endif
! )
#endif
enter_buffer(buf);
}
*** ../vim-7.3.556/src/version.c 2012-06-14 20:59:20.000000000 +0200
--- src/version.c 2012-06-20 11:53:56.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 557,
/**/
--
Don't read everything you believe.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

90
7.3.558 Normal file
View File

@ -0,0 +1,90 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.558
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.558
Problem: Memory access error. (Gary Johnson)
Solution: Allocate one more byte. (Dominique Pelle)
Files: src/misc1.c
*** ../vim-7.3.557/src/misc1.c 2012-06-14 20:59:20.000000000 +0200
--- src/misc1.c 2012-06-20 12:34:57.000000000 +0200
***************
*** 460,466 ****
*
* I'm not sure if regmmatch_T (multi-match) is needed in this case.
* It may be true that this section would work properly using the
! * regmatch_T code above, in which case, these two seperate sections
* should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
*/
#endif
--- 460,466 ----
*
* I'm not sure if regmmatch_T (multi-match) is needed in this case.
* It may be true that this section would work properly using the
! * regmatch_T code above, in which case, these two separate sections
* should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
*/
#endif
***************
*** 1053,1061 ****
}
if (lead_len)
{
! /* allocate buffer (may concatenate p_exta later) */
leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
! + (second_line_indent > 0 ? second_line_indent : 0));
allocated = leader; /* remember to free it later */
if (leader == NULL)
--- 1053,1061 ----
}
if (lead_len)
{
! /* allocate buffer (may concatenate p_extra later) */
leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
! + (second_line_indent > 0 ? second_line_indent : 0) + 1);
allocated = leader; /* remember to free it later */
if (leader == NULL)
***************
*** 3342,3348 ****
buf = alloc(buflen);
else if (maxlen < 10)
{
! /* Need some more space. This migth happen when receiving a long
* escape sequence. */
buflen += 100;
buf = vim_realloc(buf, buflen);
--- 3342,3348 ----
buf = alloc(buflen);
else if (maxlen < 10)
{
! /* Need some more space. This might happen when receiving a long
* escape sequence. */
buflen += 100;
buf = vim_realloc(buf, buflen);
*** ../vim-7.3.557/src/version.c 2012-06-20 11:54:55.000000000 +0200
--- src/version.c 2012-06-20 12:36:29.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 558,
/**/
--
George: "I just got a new set of golf clubs for my wife!"
John: "Great trade!"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

131
7.3.559 Normal file
View File

@ -0,0 +1,131 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.559
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.559
Problem: home_replace() does not work with 8.3 filename.
Solution: Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto)
Files: src/eval.c, src/misc1.c
*** ../vim-7.3.558/src/eval.c 2012-06-13 14:28:16.000000000 +0200
--- src/eval.c 2012-06-20 13:52:47.000000000 +0200
***************
*** 23554,23559 ****
--- 23554,23580 ----
return -1;
}
+ #ifdef WIN3264
+ # if _WIN32_WINNT >= 0x0500
+ if (vim_strchr(*fnamep, '~') != NULL)
+ {
+ /* Expand 8.3 filename to full path. Needed to make sure the same
+ * file does not have two different names.
+ * Note: problem does not occur if _WIN32_WINNT < 0x0500. */
+ p = alloc(_MAX_PATH + 1);
+ if (p != NULL)
+ {
+ if (GetLongPathName(*fnamep, p, MAXPATHL))
+ {
+ vim_free(*bufp);
+ *bufp = *fnamep = p;
+ }
+ else
+ vim_free(p);
+ }
+ }
+ # endif
+ #endif
/* Append a path separator to a directory. */
if (mch_isdir(*fnamep))
{
*** ../vim-7.3.558/src/misc1.c 2012-06-20 12:40:01.000000000 +0200
--- src/misc1.c 2012-06-20 13:57:22.000000000 +0200
***************
*** 4499,4505 ****
{
size_t dirlen = 0, envlen = 0;
size_t len;
! char_u *homedir_env;
char_u *p;
if (src == NULL)
--- 4499,4505 ----
{
size_t dirlen = 0, envlen = 0;
size_t len;
! char_u *homedir_env, *homedir_env_orig;
char_u *p;
if (src == NULL)
***************
*** 4525,4533 ****
dirlen = STRLEN(homedir);
#ifdef VMS
! homedir_env = mch_getenv((char_u *)"SYS$LOGIN");
#else
! homedir_env = mch_getenv((char_u *)"HOME");
#endif
if (homedir_env != NULL && *homedir_env == NUL)
--- 4525,4548 ----
dirlen = STRLEN(homedir);
#ifdef VMS
! homedir_env_orig = homedir_env = mch_getenv((char_u *)"SYS$LOGIN");
#else
! homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
! #endif
! #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
! if (vim_strchr(homedir_env, '~') != NULL)
! {
! int usedlen = 0;
! int flen;
! char_u *fbuf = NULL;
!
! flen = (int)STRLEN(homedir_env);
! (void)modify_fname(":p", &usedlen, &homedir_env, &fbuf, &flen);
! flen = (int)STRLEN(homedir_env);
! if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
! /* Remove the trailing / that is added to a directory. */
! homedir_env[flen - 1] = NUL;
! }
#endif
if (homedir_env != NULL && *homedir_env == NUL)
***************
*** 4585,4590 ****
--- 4600,4608 ----
/* if (dstlen == 0) out of space, what to do??? */
*dst = NUL;
+
+ if (homedir_env != homedir_env_orig)
+ vim_free(homedir_env);
}
/*
*** ../vim-7.3.558/src/version.c 2012-06-20 12:40:01.000000000 +0200
--- src/version.c 2012-06-20 14:02:11.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 559,
/**/
--
The future isn't what it used to be.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

49
7.3.560 Normal file
View File

@ -0,0 +1,49 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.560
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.560
Problem: Get an error for a locked argument in extend().
Solution: Initialize the lock flag for a dictionary. (Yukihiro Nakadaira)
Files: src/eval.c
*** ../vim-7.3.559/src/eval.c 2012-06-20 14:02:23.000000000 +0200
--- src/eval.c 2012-06-20 14:08:34.000000000 +0200
***************
*** 19981,19986 ****
--- 19981,19987 ----
dictitem_T *dict_var;
{
hash_init(&dict->dv_hashtab);
+ dict->dv_lock = 0;
dict->dv_refcount = DO_NOT_FREE_CNT;
dict->dv_copyID = 0;
dict_var->di_tv.vval.v_dict = dict;
*** ../vim-7.3.559/src/version.c 2012-06-20 14:02:23.000000000 +0200
--- src/version.c 2012-06-20 14:09:34.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 560,
/**/
--
"Oh, no! NOT the Spanish Inquisition!"
"NOBODY expects the Spanish Inquisition!!!"
-- Monty Python sketch --
"Oh, no! NOT another option!"
"EVERYBODY expects another option!!!"
-- Discussion in vim-dev mailing list --
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.3.561 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.561
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.561
Problem: Using refresh: always in a complete function breaks the "."
command. (Val Markovic)
Solution: Add match leader to the redo buffer. (Yasuhiro Matsumoto)
Files: src/edit.c
*** ../vim-7.3.560/src/edit.c 2012-06-13 17:28:51.000000000 +0200
--- src/edit.c 2012-06-20 14:22:23.000000000 +0200
***************
*** 3467,3476 ****
--- 3467,3480 ----
(*mb_char2bytes)(c, buf);
buf[cc] = NUL;
ins_char_bytes(buf, cc);
+ AppendToRedobuff(buf);
}
else
#endif
+ {
ins_char(c);
+ AppendCharToRedobuff(c);
+ }
/* If we didn't complete finding matches we must search again. */
if (ins_compl_need_restart())
*** ../vim-7.3.560/src/version.c 2012-06-20 14:13:02.000000000 +0200
--- src/version.c 2012-06-20 14:20:13.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 561,
/**/
--
Microsoft is to software what McDonalds is to gourmet cooking
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

63
7.3.562 Normal file
View File

@ -0,0 +1,63 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.562
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.562
Problem: ":profdel" should not work when the +profile feature is disabled.
Solution: Call ex_ni(). (Yasuhiro Matsumoto)
Files: src/ex_cmds2.c
*** ../vim-7.3.561/src/ex_cmds2.c 2012-06-13 14:28:16.000000000 +0200
--- src/ex_cmds2.c 2012-06-20 15:43:44.000000000 +0200
***************
*** 596,605 ****
garray_T *gap;
gap = &dbg_breakp;
- #ifdef FEAT_PROFILE
if (eap->cmdidx == CMD_profdel)
gap = &prof_ga;
#endif
if (vim_isdigit(*eap->arg))
{
--- 596,610 ----
garray_T *gap;
gap = &dbg_breakp;
if (eap->cmdidx == CMD_profdel)
+ {
+ #ifdef FEAT_PROFILE
gap = &prof_ga;
+ #else
+ ex_ni(eap);
+ return;
#endif
+ }
if (vim_isdigit(*eap->arg))
{
*** ../vim-7.3.561/src/version.c 2012-06-20 14:26:30.000000000 +0200
--- src/version.c 2012-06-20 15:44:00.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 562,
/**/
--
hundred-and-one symptoms of being an internet addict:
42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

97
7.3.563 Normal file
View File

@ -0,0 +1,97 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.563
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.563 (after 7.3.557)
Problem: Can't build with tiny features.
Solution: Add #ifdef.
Files: src/buffer.c
*** ../vim-7.3.562/src/buffer.c 2012-06-20 11:54:55.000000000 +0200
--- src/buffer.c 2012-06-20 17:40:59.000000000 +0200
***************
*** 1363,1369 ****
--- 1363,1371 ----
int action;
{
buf_T *prevbuf;
+ #ifdef FEAT_WINDOWS
win_T *prevwin;
+ #endif
int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
|| action == DOBUF_WIPE);
***************
*** 1403,1418 ****
--- 1405,1424 ----
if (buf_valid(prevbuf))
#endif
{
+ #ifdef FEAT_WINDOWS
prevwin = curwin;
+ #endif
if (prevbuf == curbuf)
u_sync(FALSE);
close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
unload ? action : (action == DOBUF_GOTO
&& !P_HID(prevbuf)
&& !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
+ #ifdef FEAT_WINDOWS
if (curwin != prevwin && win_valid(prevwin))
/* autocommands changed curwin, Grr! */
curwin = prevwin;
+ #endif
}
}
#ifdef FEAT_AUTOCMD
***************
*** 1420,1431 ****
* it did ":bunload") or aborted the script processing!
* If curwin->w_buffer is null, enter_buffer() will make it valid again */
if ((buf_valid(buf) && buf != curbuf
! #ifdef FEAT_EVAL
&& !aborting()
! #endif
! #ifdef FEAT_WINDOWS
) || curwin->w_buffer == NULL
! #endif
)
#endif
enter_buffer(buf);
--- 1426,1437 ----
* it did ":bunload") or aborted the script processing!
* If curwin->w_buffer is null, enter_buffer() will make it valid again */
if ((buf_valid(buf) && buf != curbuf
! # ifdef FEAT_EVAL
&& !aborting()
! # endif
! # ifdef FEAT_WINDOWS
) || curwin->w_buffer == NULL
! # endif
)
#endif
enter_buffer(buf);
*** ../vim-7.3.562/src/version.c 2012-06-20 15:48:53.000000000 +0200
--- src/version.c 2012-06-20 17:54:01.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 563,
/**/
--
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/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

53
7.3.564 Normal file
View File

@ -0,0 +1,53 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.564
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.564 (after 7.3.559)
Problem: Warning for pointer conversion.
Solution: Add type cast.
Files: src/misc1.c
*** ../vim-7.3.563/src/misc1.c 2012-06-20 14:02:23.000000000 +0200
--- src/misc1.c 2012-06-20 17:41:22.000000000 +0200
***************
*** 4537,4543 ****
char_u *fbuf = NULL;
flen = (int)STRLEN(homedir_env);
! (void)modify_fname(":p", &usedlen, &homedir_env, &fbuf, &flen);
flen = (int)STRLEN(homedir_env);
if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
/* Remove the trailing / that is added to a directory. */
--- 4537,4544 ----
char_u *fbuf = NULL;
flen = (int)STRLEN(homedir_env);
! (void)modify_fname((char_u *)":p", &usedlen,
! &homedir_env, &fbuf, &flen);
flen = (int)STRLEN(homedir_env);
if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
/* Remove the trailing / that is added to a directory. */
*** ../vim-7.3.563/src/version.c 2012-06-20 17:54:34.000000000 +0200
--- src/version.c 2012-06-20 17:55:26.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 564,
/**/
--
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/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.3.565 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.566
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.566
Problem: Can't generate proto file for Python 3.
Solution: Add PYTHON3_CFLAGS to LINT_CFLAGS.
Files: src/Makefile
*** ../vim-7.3.564/src/Makefile 2012-06-13 19:19:36.000000000 +0200
--- src/Makefile 2012-06-20 18:36:14.000000000 +0200
***************
*** 1339,1345 ****
# with "-E".
OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
--- 1339,1345 ----
# with "-E".
OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
*** ../vim-7.3.564/src/version.c 2012-06-20 17:56:06.000000000 +0200
--- src/version.c 2012-06-20 18:39:04.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 565,
/**/
--
hundred-and-one symptoms of being an internet addict:
47. You are so familiar with the WWW that you find the search engines useless.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

83
7.3.566 Normal file
View File

@ -0,0 +1,83 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.566
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.566 (after 7.3.561)
Problem: Redo after completion does not work correctly when refresh: always
is not used. (Raymond Ko)
Solution: Check the compl_opt_refresh_always flag. (Christian Brabandt)
Files: src/edit.c
*** ../vim-7.3.565/src/edit.c 2012-06-20 14:26:30.000000000 +0200
--- src/edit.c 2012-06-20 22:52:03.000000000 +0200
***************
*** 3467,3479 ****
(*mb_char2bytes)(c, buf);
buf[cc] = NUL;
ins_char_bytes(buf, cc);
! AppendToRedobuff(buf);
}
else
#endif
{
ins_char(c);
! AppendCharToRedobuff(c);
}
/* If we didn't complete finding matches we must search again. */
--- 3467,3481 ----
(*mb_char2bytes)(c, buf);
buf[cc] = NUL;
ins_char_bytes(buf, cc);
! if (compl_opt_refresh_always)
! AppendToRedobuff(buf);
}
else
#endif
{
ins_char(c);
! if (compl_opt_refresh_always)
! AppendCharToRedobuff(c);
}
/* If we didn't complete finding matches we must search again. */
***************
*** 3481,3487 ****
ins_compl_restart();
/* When 'always' is set, don't reset compl_leader. While completing,
! * cursor don't point original position, changing compl_leader would
* break redo. */
if (!compl_opt_refresh_always)
{
--- 3483,3489 ----
ins_compl_restart();
/* When 'always' is set, don't reset compl_leader. While completing,
! * cursor doesn't point original position, changing compl_leader would
* break redo. */
if (!compl_opt_refresh_always)
{
*** ../vim-7.3.565/src/version.c 2012-06-20 18:39:12.000000000 +0200
--- src/version.c 2012-06-20 22:54:27.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 566,
/**/
--
CVS sux, men don't like commitment
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

56
7.3.567 Normal file
View File

@ -0,0 +1,56 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.567
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.567
Problem: Missing copyright notice.
Solution: Add Vim copyright notice. (Taro Muraoka)
Files: src/dehqx.py
*** ../vim-7.3.566/src/dehqx.py 2010-08-15 21:57:32.000000000 +0200
--- src/dehqx.py 2012-06-29 11:27:41.000000000 +0200
***************
*** 1,7 ****
# Python script to get both the data and resource fork from a BinHex encoded
# file.
! # Author: Taro Muraoka
! # Last Change: 2003 Oct 25
import sys
import binhex
--- 1,10 ----
# Python script to get both the data and resource fork from a BinHex encoded
# file.
! # Author: MURAOKA Taro <koron.kaoriya@gmail.com>
! # Last Change: 2012 Jun 29
! #
! # Copyright (C) 2003,12 MURAOKA Taro <koron.kaoriya@gmail.com>
! # THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
import sys
import binhex
*** ../vim-7.3.566/src/version.c 2012-06-20 22:55:56.000000000 +0200
--- src/version.c 2012-06-29 11:45:36.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 567,
/**/
--
hundred-and-one symptoms of being an internet addict:
66. You create a homepage with the impression to cure the afflicted...but
your hidden agenda is to receive more e-mail.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

138
7.3.568 Normal file
View File

@ -0,0 +1,138 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.568
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.568
Problem: Bad indents for #ifdefs.
Solution: Add and remove spaces. (Elias Diem)
Files: src/globals.h
*** ../vim-7.3.567/src/globals.h 2012-02-11 23:45:30.000000000 +0100
--- src/globals.h 2012-06-29 12:32:14.000000000 +0200
***************
*** 513,520 ****
# define ONE_CLIPBOARD
# endif
! #define CLIP_UNNAMED 1
! #define CLIP_UNNAMED_PLUS 2
EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
EXTERN int clip_autoselect INIT(= FALSE);
--- 513,520 ----
# define ONE_CLIPBOARD
# endif
! # define CLIP_UNNAMED 1
! # define CLIP_UNNAMED_PLUS 2
EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
EXTERN int clip_autoselect INIT(= FALSE);
***************
*** 737,745 ****
#endif
EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
! # ifdef DO_INIT
= INIT_POS_T(0, 0, 0)
! # endif
;
/*
--- 737,745 ----
#endif
EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
! #ifdef DO_INIT
= INIT_POS_T(0, 0, 0)
! #endif
;
/*
***************
*** 807,815 ****
# endif
EXTERN int has_mbyte INIT(= 0); /* any multi-byte encoding */
! #if defined(WIN3264) && defined(FEAT_MBYTE)
EXTERN int wide_WindowProc INIT(= FALSE); /* use wide WindowProc() */
! #endif
/*
* To speed up BYTELEN() we fill a table with the byte lengths whenever
--- 807,815 ----
# endif
EXTERN int has_mbyte INIT(= 0); /* any multi-byte encoding */
! # if defined(WIN3264) && defined(FEAT_MBYTE)
EXTERN int wide_WindowProc INIT(= FALSE); /* use wide WindowProc() */
! # endif
/*
* To speed up BYTELEN() we fill a table with the byte lengths whenever
***************
*** 1099,1106 ****
EXTERN int save_p_ls INIT(= -1); /* Save 'laststatus' setting */
EXTERN int save_p_wmh INIT(= -1); /* Save 'winminheight' setting */
EXTERN int wild_menu_showing INIT(= 0);
! #define WM_SHOWN 1 /* wildmenu showing */
! #define WM_SCROLLED 2 /* wildmenu showing with scroll */
#endif
#ifdef MSWIN
--- 1099,1106 ----
EXTERN int save_p_ls INIT(= -1); /* Save 'laststatus' setting */
EXTERN int save_p_wmh INIT(= -1); /* Save 'winminheight' setting */
EXTERN int wild_menu_showing INIT(= 0);
! # define WM_SHOWN 1 /* wildmenu showing */
! # define WM_SCROLLED 2 /* wildmenu showing with scroll */
#endif
#ifdef MSWIN
***************
*** 1310,1318 ****
EXTERN Atom commProperty INIT(= None);
EXTERN char_u *serverDelayedStartName INIT(= NULL);
# else
! # ifdef PROTO
typedef int HWND;
! # endif
EXTERN HWND clientWindow INIT(= 0);
# endif
#endif
--- 1310,1318 ----
EXTERN Atom commProperty INIT(= None);
EXTERN char_u *serverDelayedStartName INIT(= NULL);
# else
! # ifdef PROTO
typedef int HWND;
! # endif
EXTERN HWND clientWindow INIT(= 0);
# endif
#endif
*** ../vim-7.3.567/src/version.c 2012-06-29 11:46:28.000000000 +0200
--- src/version.c 2012-06-29 12:34:21.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 568,
/**/
--
hundred-and-one symptoms of being an internet addict:
67. Your hard drive crashes. You haven't logged in for two hours. You start
to twitch. You pick up the phone and manually dial your ISP's access
number. You try to hum to communicate with the modem. You succeed.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

4762
7.3.569 Normal file

File diff suppressed because it is too large Load Diff

145
7.3.570 Normal file
View File

@ -0,0 +1,145 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.570
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.570
Problem: ":vimgrep" does not obey 'wildignore'.
Solution: Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/quickfix.c, src/spell.c
*** ../vim-7.3.569/src/ex_cmds2.c 2012-06-20 15:48:53.000000000 +0200
--- src/ex_cmds2.c 2012-06-29 12:43:34.000000000 +0200
***************
*** 1850,1871 ****
#if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
/*
* Parse a list of arguments (file names), expand them and return in
! * "fnames[fcountp]".
* Return FAIL or OK.
*/
int
! get_arglist_exp(str, fcountp, fnamesp)
char_u *str;
int *fcountp;
char_u ***fnamesp;
{
garray_T ga;
int i;
if (get_arglist(&ga, str) == FAIL)
return FAIL;
! i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
ga_clear(&ga);
return i;
}
--- 1850,1877 ----
#if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
/*
* Parse a list of arguments (file names), expand them and return in
! * "fnames[fcountp]". When "wig" is TRUE, removes files matching 'wildignore'.
* Return FAIL or OK.
*/
int
! get_arglist_exp(str, fcountp, fnamesp, wig)
char_u *str;
int *fcountp;
char_u ***fnamesp;
+ int wig;
{
garray_T ga;
int i;
if (get_arglist(&ga, str) == FAIL)
return FAIL;
! if (wig == TRUE)
! i = expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
! else
! i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
!
ga_clear(&ga);
return i;
}
*** ../vim-7.3.569/src/proto/ex_cmds2.pro 2011-05-19 18:26:34.000000000 +0200
--- src/proto/ex_cmds2.pro 2012-06-29 12:43:49.000000000 +0200
***************
*** 42,48 ****
int check_fname __ARGS((void));
int buf_write_all __ARGS((buf_T *buf, int forceit));
int get_arglist __ARGS((garray_T *gap, char_u *str));
! int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp));
void set_arglist __ARGS((char_u *str));
void check_arg_idx __ARGS((win_T *win));
void ex_args __ARGS((exarg_T *eap));
--- 42,48 ----
int check_fname __ARGS((void));
int buf_write_all __ARGS((buf_T *buf, int forceit));
int get_arglist __ARGS((garray_T *gap, char_u *str));
! int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp, int wig));
void set_arglist __ARGS((char_u *str));
void check_arg_idx __ARGS((win_T *win));
void ex_args __ARGS((exarg_T *eap));
*** ../vim-7.3.569/src/quickfix.c 2012-06-01 18:34:37.000000000 +0200
--- src/quickfix.c 2012-06-29 12:43:49.000000000 +0200
***************
*** 3189,3195 ****
;
/* parse the list of arguments */
! if (get_arglist_exp(p, &fcount, &fnames) == FAIL)
goto theend;
if (fcount == 0)
{
--- 3189,3195 ----
;
/* parse the list of arguments */
! if (get_arglist_exp(p, &fcount, &fnames, TRUE) == FAIL)
goto theend;
if (fcount == 0)
{
*** ../vim-7.3.569/src/spell.c 2012-06-01 17:49:51.000000000 +0200
--- src/spell.c 2012-06-29 12:43:49.000000000 +0200
***************
*** 8553,8559 ****
}
/* Expand all the remaining arguments (e.g., $VIMRUNTIME). */
! if (get_arglist_exp(arg, &fcount, &fnames) == OK)
{
mkspell(fcount, fnames, ascii, eap->forceit, FALSE);
FreeWild(fcount, fnames);
--- 8553,8559 ----
}
/* Expand all the remaining arguments (e.g., $VIMRUNTIME). */
! if (get_arglist_exp(arg, &fcount, &fnames, FALSE) == OK)
{
mkspell(fcount, fnames, ascii, eap->forceit, FALSE);
FreeWild(fcount, fnames);
*** ../vim-7.3.569/src/version.c 2012-06-29 12:54:32.000000000 +0200
--- src/version.c 2012-06-29 12:56:12.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 570,
/**/
--
hundred-and-one symptoms of being an internet addict:
70. ISDN lines are added to your house on a hourly basis
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

117
7.3.571 Normal file
View File

@ -0,0 +1,117 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.571
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.571
Problem: Duplicated condition.
Solution: Remove one. (Dominique Pelle)
Files: src/os_win32.c
*** ../vim-7.3.570/src/os_win32.c 2012-02-29 13:58:43.000000000 +0100
--- src/os_win32.c 2012-06-29 13:10:54.000000000 +0200
***************
*** 308,314 ****
# ifndef GETTEXT_DLL
# define GETTEXT_DLL "libintl.dll"
# endif
! /* Dummy funcitons */
static char *null_libintl_gettext(const char *);
static char *null_libintl_textdomain(const char *);
static char *null_libintl_bindtextdomain(const char *, const char *);
--- 308,314 ----
# ifndef GETTEXT_DLL
# define GETTEXT_DLL "libintl.dll"
# endif
! /* Dummy functions */
static char *null_libintl_gettext(const char *);
static char *null_libintl_textdomain(const char *);
static char *null_libintl_bindtextdomain(const char *, const char *);
***************
*** 1409,1415 ****
/*
! * mch_inchar(): low-level input funcion.
* Get one or more characters from the keyboard or the mouse.
* If time == 0, do not wait for characters.
* If time == n, wait a short time for characters.
--- 1409,1415 ----
/*
! * mch_inchar(): low-level input function.
* Get one or more characters from the keyboard or the mouse.
* If time == 0, do not wait for characters.
* If time == n, wait a short time for characters.
***************
*** 3451,3464 ****
* to avoid to perform a blocking read */
ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
NULL, /* optional buffer */
! 0, /* buffe size */
NULL, /* number of read bytes */
&availableBytes, /* available bytes total */
NULL); /* byteLeft */
repeatCount = 0;
/* We got real data in the pipe, read it */
! while (ret != 0 && availableBytes > 0 && availableBytes > 0)
{
repeatCount++;
toRead =
--- 3451,3464 ----
* to avoid to perform a blocking read */
ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
NULL, /* optional buffer */
! 0, /* buffer size */
NULL, /* number of read bytes */
&availableBytes, /* available bytes total */
NULL); /* byteLeft */
repeatCount = 0;
/* We got real data in the pipe, read it */
! while (ret != 0 && availableBytes > 0)
{
repeatCount++;
toRead =
***************
*** 3638,3644 ****
NULL, /* Process security attributes */
NULL, /* Thread security attributes */
! // this command can be litigeous, handle inheritence was
// deactivated for pending temp file, but, if we deactivate
// it, the pipes don't work for some reason.
TRUE, /* Inherit handles, first deactivated,
--- 3638,3644 ----
NULL, /* Process security attributes */
NULL, /* Thread security attributes */
! // this command can be litigious, handle inheritance was
// deactivated for pending temp file, but, if we deactivate
// it, the pipes don't work for some reason.
TRUE, /* Inherit handles, first deactivated,
*** ../vim-7.3.570/src/version.c 2012-06-29 12:57:03.000000000 +0200
--- src/version.c 2012-06-29 13:12:31.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 571,
/**/
--
hundred-and-one symptoms of being an internet addict:
71. You wonder how people walk
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

59
7.3.572 Normal file
View File

@ -0,0 +1,59 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.572
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.572
Problem: Duplicate statement in if and else. (Dominique Pelle)
Solution: Remove the condition and add a TODO.
Files: src/gui_xmebw.c
*** ../vim-7.3.571/src/gui_xmebw.c 2010-08-15 21:57:29.000000000 +0200
--- src/gui_xmebw.c 2012-06-29 13:17:15.000000000 +0200
***************
*** 375,385 ****
XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth);
! if (eb->enhancedbutton.label_location == (int)XmTOP
! || eb->enhancedbutton.label_location == (int)XmBOTTOM)
! shift = eb->primitive.shadow_thickness / 2;
! else
! shift = eb->primitive.shadow_thickness / 2;
if (shift < 1)
shift = 1;
--- 375,382 ----
XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth);
! /* TODO: does the shift depend on label_location somehow? */
! shift = eb->primitive.shadow_thickness / 2;
if (shift < 1)
shift = 1;
*** ../vim-7.3.571/src/version.c 2012-06-29 13:13:59.000000000 +0200
--- src/version.c 2012-06-29 13:18:41.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 572,
/**/
--
hundred-and-one symptoms of being an internet addict:
72. Somebody at IRC just mentioned a way to obtain full motion video without
a PC using a wireless protocol called NTSC, you wonder how you never
heard about it
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.3.573 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.573
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.573
Problem: Using array index before bounds checking.
Solution: Swap the parts of the condition. (Dominique Pelle)
Files: src/ops.c
*** ../vim-7.3.572/src/ops.c 2012-06-13 17:28:51.000000000 +0200
--- src/ops.c 2012-06-29 13:27:11.000000000 +0200
***************
*** 6458,6464 ****
long chars = 0;
int is_word = 0;
! for (i = 0; line[i] && i < limit; )
{
if (is_word)
{
--- 6458,6464 ----
long chars = 0;
int is_word = 0;
! for (i = 0; i < limit && line[i] != NUL; )
{
if (is_word)
{
*** ../vim-7.3.572/src/version.c 2012-06-29 13:19:23.000000000 +0200
--- src/version.c 2012-06-29 13:27:59.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 573,
/**/
--
"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/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

88
7.3.574 Normal file
View File

@ -0,0 +1,88 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.574
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.574
Problem: When pasting a register in the search command line a CTRL-L
character is not pasted. (Dominique Pelle)
Solution: Escape the CTRL-L. (Christian Brabandt)
Files: src/ex_getln.c
*** ../vim-7.3.573/src/ex_getln.c 2012-06-06 12:02:57.000000000 +0200
--- src/ex_getln.c 2012-06-29 13:39:03.000000000 +0200
***************
*** 3133,3139 ****
else
#endif
c = *s++;
! if (cv == Ctrl_V || c == ESC || c == Ctrl_C || c == CAR || c == NL
#ifdef UNIX
|| c == intr_char
#endif
--- 3133,3140 ----
else
#endif
c = *s++;
! if (cv == Ctrl_V || c == ESC || c == Ctrl_C
! || c == CAR || c == NL || c == Ctrl_L
#ifdef UNIX
|| c == intr_char
#endif
***************
*** 4692,4698 ****
if (tab[i].ic)
regmatch.rm_ic = TRUE;
ret = ExpandGeneric(xp, &regmatch, num_file, file,
! tab[i].func, tab[i].escaped);
break;
}
}
--- 4693,4699 ----
if (tab[i].ic)
regmatch.rm_ic = TRUE;
ret = ExpandGeneric(xp, &regmatch, num_file, file,
! tab[i].func, tab[i].escaped);
break;
}
}
***************
*** 5125,5131 ****
vim_free(matches);
}
if (ga.ga_len == 0)
! return FAIL;
/* Sort and remove duplicates which can happen when specifying multiple
* directories in dirnames. */
--- 5126,5132 ----
vim_free(matches);
}
if (ga.ga_len == 0)
! return FAIL;
/* Sort and remove duplicates which can happen when specifying multiple
* directories in dirnames. */
*** ../vim-7.3.573/src/version.c 2012-06-29 13:34:15.000000000 +0200
--- src/version.c 2012-06-29 13:38:22.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 574,
/**/
--
hundred-and-one symptoms of being an internet addict:
73. You give your dog used motherboards instead of bones
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

60
7.3.575 Normal file
View File

@ -0,0 +1,60 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.575
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.575
Problem: "ygt" tries to yank instead of giving an error. (Daniel Mueller)
Solution: Check for a pending operator.
Files: src/normal.c
*** ../vim-7.3.574/src/normal.c 2012-06-06 16:12:54.000000000 +0200
--- src/normal.c 2012-06-29 13:50:26.000000000 +0200
***************
*** 8393,8402 ****
#ifdef FEAT_WINDOWS
case 't':
! goto_tabpage((int)cap->count0);
break;
case 'T':
! goto_tabpage(-(int)cap->count1);
break;
#endif
--- 8393,8404 ----
#ifdef FEAT_WINDOWS
case 't':
! if (!checkclearop(oap))
! goto_tabpage((int)cap->count0);
break;
case 'T':
! if (!checkclearop(oap))
! goto_tabpage(-(int)cap->count1);
break;
#endif
*** ../vim-7.3.574/src/version.c 2012-06-29 13:44:37.000000000 +0200
--- src/version.c 2012-06-29 13:52:01.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 575,
/**/
--
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/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

255
7.3.576 Normal file
View File

@ -0,0 +1,255 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.576
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.576
Problem: Formatting of lists inside comments is not right yet.
Solution: Use another solution and add a test. (Tor Perkins)
Files: src/edit.c, src/misc1.c, src/testdir/test68.in,
src/testdir/test69.ok
*** ../vim-7.3.575/src/edit.c 2012-06-20 22:55:56.000000000 +0200
--- src/edit.c 2012-06-29 14:10:36.000000000 +0200
***************
*** 6320,6333 ****
if (!(flags & INSCHAR_COM_LIST))
{
/*
! * This section is for numeric lists w/o comments. If comment
! * indents are needed with numeric lists (formatoptions=nq),
! * then the INSCHAR_COM_LIST flag will cause the corresponding
! * OPENLINE_COM_LIST flag to be passed through to open_line()
! * (as seen above)...
*/
if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
! second_indent = get_number_indent(curwin->w_cursor.lnum -1);
if (second_indent >= 0)
{
#ifdef FEAT_VREPLACE
--- 6320,6334 ----
if (!(flags & INSCHAR_COM_LIST))
{
/*
! * This section is for auto-wrap of numeric lists. When not
! * in insert mode (i.e. format_lines()), the INSCHAR_COM_LIST
! * flag will be set and open_line() will handle it (as seen
! * above). The code here (and in get_number_indent()) will
! * recognize comments if needed...
*/
if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
! second_indent =
! get_number_indent(curwin->w_cursor.lnum - 1);
if (second_indent >= 0)
{
#ifdef FEAT_VREPLACE
***************
*** 6336,6342 ****
--- 6337,6367 ----
FALSE, NUL, TRUE);
else
#endif
+ #ifdef FEAT_COMMENTS
+ if (leader_len > 0 && second_indent - leader_len > 0)
+ {
+ int i;
+ int padding = second_indent - leader_len;
+
+ /* We started at the first_line of a numbered list
+ * that has a comment. the open_line() function has
+ * inserted the proper comment leader and positioned
+ * the cursor at the end of the split line. Now we
+ * add the additional whitespace needed after the
+ * comment leader for the numbered list. */
+ for (i = 0; i < padding; i++)
+ {
+ ins_str((char_u *)" ");
+ changed_bytes(curwin->w_cursor.lnum, leader_len);
+ }
+ }
+ else
+ {
+ #endif
(void)set_indent(second_indent, SIN_CHANGED);
+ #ifdef FEAT_COMMENTS
+ }
+ #endif
}
}
first_line = FALSE;
*** ../vim-7.3.575/src/misc1.c 2012-06-20 17:56:06.000000000 +0200
--- src/misc1.c 2012-06-29 14:10:12.000000000 +0200
***************
*** 424,491 ****
colnr_T col;
pos_T pos;
if (lnum > curbuf->b_ml.ml_line_count)
return -1;
pos.lnum = 0;
#ifdef FEAT_COMMENTS
! if (has_format_option(FO_Q_COMS) && has_format_option(FO_Q_NUMBER))
! {
! regmatch_T regmatch;
! int lead_len; /* length of comment leader */
!
lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
- regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
- if (regmatch.regprog != NULL)
- {
- regmatch.rm_ic = FALSE;
-
- /* vim_regexec() expects a pointer to a line. This lets us
- * start matching for the flp beyond any comment leader... */
- if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
- {
- pos.lnum = lnum;
- pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
#endif
! }
! }
! vim_free(regmatch.regprog);
! }
! else
{
! /*
! * What follows is the orig code that is not "comment aware"...
! *
! * I'm not sure if regmmatch_T (multi-match) is needed in this case.
! * It may be true that this section would work properly using the
! * regmatch_T code above, in which case, these two separate sections
! * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
! */
! #endif
! regmmatch_T regmatch;
! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
!
! if (regmatch.regprog != NULL)
{
! regmatch.rmm_ic = FALSE;
! regmatch.rmm_maxcol = 0;
! if (vim_regexec_multi(&regmatch, curwin, curbuf,
! lnum, (colnr_T)0, NULL))
! {
! pos.lnum = regmatch.endpos[0].lnum + lnum;
! pos.col = regmatch.endpos[0].col;
#ifdef FEAT_VIRTUALEDIT
! pos.coladd = 0;
#endif
- }
- vim_free(regmatch.regprog);
}
- #ifdef FEAT_COMMENTS
}
! #endif
if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
return -1;
--- 424,458 ----
colnr_T col;
pos_T pos;
+ regmatch_T regmatch;
+ int lead_len = 0; /* length of comment leader */
+
if (lnum > curbuf->b_ml.ml_line_count)
return -1;
pos.lnum = 0;
#ifdef FEAT_COMMENTS
! /* In format_lines() (i.e. not insert mode), fo+=q is needed too... */
! if ((State & INSERT) || has_format_option(FO_Q_COMS))
lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
#endif
! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
! if (regmatch.regprog != NULL)
{
! regmatch.rm_ic = FALSE;
! /* vim_regexec() expects a pointer to a line. This lets us
! * start matching for the flp beyond any comment leader... */
! if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
{
! pos.lnum = lnum;
! pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
#ifdef FEAT_VIRTUALEDIT
! pos.coladd = 0;
#endif
}
}
! vim_free(regmatch.regprog);
if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
return -1;
*** ../vim-7.3.575/src/testdir/test68.in 2012-06-13 17:28:51.000000000 +0200
--- src/testdir/test68.in 2012-06-29 14:27:27.000000000 +0200
***************
*** 52,57 ****
--- 52,68 ----
STARTTEST
/^{/+1
+ :set tw=5 fo=tcn comments=:#
+ A bjA b
+ ENDTEST
+
+ {
+ 1 a
+ # 1 a
+ }
+
+ STARTTEST
+ /^{/+1
:set tw=5 fo=qn comments=:#
gwap
ENDTEST
***************
*** 83,88 ****
--- 94,107 ----
}
STARTTEST
+ /^#/
+ :setl tw=12 fo=tqnc comments=:#
+ A foobar
+ ENDTEST
+
+ # 1 xxxxx
+
+ STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out
ENDTEST
*** ../vim-7.3.575/src/version.c 2012-06-29 13:56:01.000000000 +0200
--- src/version.c 2012-06-29 15:03:10.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 576,
/**/
--
Proof techniques #2: Proof by Oddity.
SAMPLE: To prove that horses have an infinite number of legs.
(1) Horses have an even number of legs.
(2) They have two legs in back and fore legs in front.
(3) This makes a total of six legs, which certainly is an odd number of
legs for a horse.
(4) But the only number that is both odd and even is infinity.
(5) Therefore, horses must have an infinite number of legs.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

273
7.3.577 Normal file
View File

@ -0,0 +1,273 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.577
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.577
Problem: Size of memory does not fit in 32 bit unsigned.
Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of
GlobalMemoryStatus() when available.
Files: src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c,
src/os_win16.c, src/os_win32.c
*** ../vim-7.3.576/src/misc2.c 2012-02-29 13:58:43.000000000 +0100
--- src/misc2.c 2012-06-29 15:30:54.000000000 +0200
***************
*** 815,820 ****
--- 815,821 ----
#else
# define KEEP_ROOM (2 * 8192L)
#endif
+ #define KEEP_ROOM_KB (KEEP_ROOM / 1024L)
/*
* Note: if unsigned is 16 bits we can only allocate up to 64K with alloc().
***************
*** 940,946 ****
allocated = 0;
# endif
/* 3. check for available memory: call mch_avail_mem() */
! if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
{
free((char *)p); /* System is low... no go! */
p = NULL;
--- 941,947 ----
allocated = 0;
# endif
/* 3. check for available memory: call mch_avail_mem() */
! if (mch_avail_mem(TRUE) < KEEP_ROOM_KB && !releasing)
{
free((char *)p); /* System is low... no go! */
p = NULL;
*** ../vim-7.3.576/src/option.c 2012-03-28 19:58:34.000000000 +0200
--- src/option.c 2012-06-29 15:31:46.000000000 +0200
***************
*** 3154,3160 ****
{
#ifdef HAVE_AVAIL_MEM
/* Use amount of memory available at this moment. */
! n = (mch_avail_mem(FALSE) >> 11);
#else
# ifdef HAVE_TOTAL_MEM
/* Use amount of memory available to Vim. */
--- 3154,3160 ----
{
#ifdef HAVE_AVAIL_MEM
/* Use amount of memory available at this moment. */
! n = (mch_avail_mem(FALSE) >> 1);
#else
# ifdef HAVE_TOTAL_MEM
/* Use amount of memory available to Vim. */
***************
*** 6702,6708 ****
{
for (s = *varp; *s;)
{
! while(*s == ',' || *s == ' ')
s++;
if (!*s)
break;
--- 6702,6708 ----
{
for (s = *varp; *s;)
{
! while (*s == ',' || *s == ' ')
s++;
if (!*s)
break;
***************
*** 7391,7397 ****
new_unnamed |= CLIP_UNNAMED;
p += 7;
}
! else if (STRNCMP(p, "unnamedplus", 11) == 0
&& (p[11] == ',' || p[11] == NUL))
{
new_unnamed |= CLIP_UNNAMED_PLUS;
--- 7391,7397 ----
new_unnamed |= CLIP_UNNAMED;
p += 7;
}
! else if (STRNCMP(p, "unnamedplus", 11) == 0
&& (p[11] == ',' || p[11] == NUL))
{
new_unnamed |= CLIP_UNNAMED_PLUS;
*** ../vim-7.3.576/src/os_amiga.c 2011-10-20 18:24:16.000000000 +0200
--- src/os_amiga.c 2012-06-29 15:33:59.000000000 +0200
***************
*** 191,206 ****
}
/*
! * Return amount of memory still available.
*/
long_u
mch_avail_mem(special)
int special;
{
#ifdef __amigaos4__
! return (long_u)AvailMem(MEMF_ANY);
#else
! return (long_u)AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY);
#endif
}
--- 191,206 ----
}
/*
! * Return amount of memory still available in Kbyte.
*/
long_u
mch_avail_mem(special)
int special;
{
#ifdef __amigaos4__
! return (long_u)AvailMem(MEMF_ANY) >> 10;
#else
! return (long_u)(AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY)) >> 10;
#endif
}
*** ../vim-7.3.576/src/os_msdos.c 2011-06-19 01:14:22.000000000 +0200
--- src/os_msdos.c 2012-06-29 15:33:26.000000000 +0200
***************
*** 550,564 ****
#endif
/*
! * Return amount of memory currently available.
*/
long_u
mch_avail_mem(int special)
{
#ifdef DJGPP
! return _go32_dpmi_remaining_virtual_memory();
#else
! return coreleft();
#endif
}
--- 550,564 ----
#endif
/*
! * Return amount of memory currently available in Kbyte.
*/
long_u
mch_avail_mem(int special)
{
#ifdef DJGPP
! return _go32_dpmi_remaining_virtual_memory() >> 10;
#else
! return coreleft() >> 10;
#endif
}
*** ../vim-7.3.576/src/os_win16.c 2011-10-20 18:24:16.000000000 +0200
--- src/os_win16.c 2012-06-29 15:34:18.000000000 +0200
***************
*** 379,391 ****
/*
! * How much memory is available?
*/
long_u
mch_avail_mem(
int special)
{
! return GetFreeSpace(0);
}
--- 379,391 ----
/*
! * How much memory is available in Kbyte?
*/
long_u
mch_avail_mem(
int special)
{
! return GetFreeSpace(0) >> 10;
}
*** ../vim-7.3.576/src/os_win32.c 2012-06-29 13:13:59.000000000 +0200
--- src/os_win32.c 2012-06-29 15:39:52.000000000 +0200
***************
*** 4992,5009 ****
/*
! * How much memory is available?
* Return sum of available physical and page file memory.
*/
/*ARGSUSED*/
long_u
mch_avail_mem(int special)
{
! MEMORYSTATUS ms;
! ms.dwLength = sizeof(MEMORYSTATUS);
! GlobalMemoryStatus(&ms);
! return (long_u) (ms.dwAvailPhys + ms.dwAvailPageFile);
}
#ifdef FEAT_MBYTE
--- 4992,5020 ----
/*
! * How much memory is available in Kbyte?
* Return sum of available physical and page file memory.
*/
/*ARGSUSED*/
long_u
mch_avail_mem(int special)
{
! if (g_PlatformId != VER_PLATFORM_WIN32_NT)
! {
! MEMORYSTATUS ms;
! ms.dwLength = sizeof(MEMORYSTATUS);
! GlobalMemoryStatus(&ms);
! return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
! }
! else
! {
! MEMORYSTATUSEX ms;
!
! ms.dwLength = sizeof(MEMORYSTATUSEX);
! GlobalMemoryStatusEx(&ms);
! return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
! }
}
#ifdef FEAT_MBYTE
*** ../vim-7.3.576/src/version.c 2012-06-29 15:04:34.000000000 +0200
--- src/version.c 2012-06-29 15:45:44.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 577,
/**/
--
hundred-and-one symptoms of being an internet addict:
75. You start wondering whether you could actually upgrade your brain
with a Pentium Pro microprocessor 80. The upgrade works just fine.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

80
7.3.578 Normal file
View File

@ -0,0 +1,80 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.578
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.578
Problem: Misplaced declaration.
Solution: Move declaration to start of block.
Files: src/if_py_both.h
*** ../vim-7.3.577/src/if_py_both.h 2012-06-29 12:54:32.000000000 +0200
--- src/if_py_both.h 2012-06-29 16:15:29.000000000 +0200
***************
*** 818,838 ****
if (valObject == NULL)
{
if (di == NULL)
{
PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
return -1;
}
! hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
hash_remove(&d->dv_hashtab, hi);
dictitem_free(di);
return 0;
}
if (ConvertFromPyObject(valObject, &tv) == -1)
- {
return -1;
- }
if (di == NULL)
{
--- 818,838 ----
if (valObject == NULL)
{
+ hashitem_T *hi;
+
if (di == NULL)
{
PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
return -1;
}
! hi = hash_find(&d->dv_hashtab, di->di_key);
hash_remove(&d->dv_hashtab, hi);
dictitem_free(di);
return 0;
}
if (ConvertFromPyObject(valObject, &tv) == -1)
return -1;
if (di == NULL)
{
*** ../vim-7.3.577/src/version.c 2012-06-29 15:51:26.000000000 +0200
--- src/version.c 2012-06-29 16:18:10.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 578,
/**/
--
hundred-and-one symptoms of being an internet addict:
77. The phone company asks you to test drive their new PBX system
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

232
7.3.579 Normal file
View File

@ -0,0 +1,232 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.579
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.579 (after 7.3.569)
Problem: Can't compile with Python 2.5.
Solution: Use PyCObject when Capsules are not available.
Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
*** ../vim-7.3.578/src/if_py_both.h 2012-06-29 16:19:46.000000000 +0200
--- src/if_py_both.h 2012-06-29 16:15:29.000000000 +0200
***************
*** 56,62 ****
/* name, function, calling, documentation */
{"write", OutputWrite, 1, ""},
{"writelines", OutputWritelines, 1, ""},
! {"flush", OutputFlush, 1, ""},
{ NULL, NULL, 0, NULL}
};
--- 56,62 ----
/* name, function, calling, documentation */
{"write", OutputWrite, 1, ""},
{"writelines", OutputWritelines, 1, ""},
! {"flush", OutputFlush, 1, ""},
{ NULL, NULL, 0, NULL}
};
***************
*** 506,513 ****
/* name, function, calling, documentation */
{"command", VimCommand, 1, "Execute a Vim ex-mode command" },
{"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
{ NULL, NULL, 0, NULL }
};
--- 506,513 ----
/* name, function, calling, documentation */
{"command", VimCommand, 1, "Execute a Vim ex-mode command" },
{"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
{ NULL, NULL, 0, NULL }
};
***************
*** 2432,2448 ****
--- 2432,2463 ----
convert_dl(PyObject *obj, typval_T *tv,
pytotvfunc py_to_tv, PyObject *lookupDict)
{
+ # ifdef PY_USE_CAPSULE
PyObject *capsule;
+ # else
+ PyCObject *cobject;
+ # endif
char hexBuf[sizeof(void *) * 2 + 3];
sprintf(hexBuf, "%p", obj);
+ # ifdef PY_USE_CAPSULE
capsule = PyDict_GetItemString(lookupDict, hexBuf);
if (capsule == NULL)
+ # else
+ cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf);
+ if (cobject == NULL)
+ # endif
{
+ # ifdef PY_USE_CAPSULE
capsule = PyCapsule_New(tv, NULL, NULL);
PyDict_SetItemString(lookupDict, hexBuf, capsule);
Py_DECREF(capsule);
+ # else
+ cobject = PyCObject_FromVoidPtr(tv, NULL);
+ PyDict_SetItemString(lookupDict, hexBuf, cobject);
+ Py_DECREF(cobject);
+ # endif
if (py_to_tv(obj, tv, lookupDict) == -1)
{
tv->v_type = VAR_UNKNOWN;
***************
*** 2458,2464 ****
}
else
{
! typval_T *v = PyCapsule_GetPointer(capsule, NULL);
copy_tv(v, tv);
}
return 0;
--- 2473,2485 ----
}
else
{
! typval_T *v;
!
! # ifdef PY_USE_CAPSULE
! v = PyCapsule_GetPointer(capsule, NULL);
! # else
! v = PyCObject_AsVoidPtr(cobject);
! # endif
copy_tv(v, tv);
}
return 0;
*** ../vim-7.3.578/src/if_python.c 2012-06-29 12:54:32.000000000 +0200
--- src/if_python.c 2012-06-29 16:17:44.000000000 +0200
***************
*** 71,76 ****
--- 71,80 ----
# define PySequenceMethods Py_ssize_t
#endif
+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ # define PY_USE_CAPSULE
+ #endif
+
#if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
# define PyInt Py_ssize_t
# define PyInquiry lenfunc
***************
*** 220,227 ****
# define PyObject_Malloc dll_PyObject_Malloc
# define PyObject_Free dll_PyObject_Free
# endif
! # define PyCapsule_New dll_PyCapsule_New
! # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
/*
* Pointers for dynamic link
--- 224,236 ----
# define PyObject_Malloc dll_PyObject_Malloc
# define PyObject_Free dll_PyObject_Free
# endif
! # ifdef PY_USE_CAPSULE
! # define PyCapsule_New dll_PyCapsule_New
! # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
! # else
! # define PyCObject_FromVoidPtr dll_PyCObject_FromVoidPtr
! # define PyCObject_AsVoidPtr dll_PyCObject_AsVoidPtr
! # endif
/*
* Pointers for dynamic link
***************
*** 309,316 ****
--- 318,330 ----
static void* (*dll_PyObject_Malloc)(size_t);
static void (*dll_PyObject_Free)(void*);
# endif
+ # ifdef PY_USE_CAPSULE
static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
+ # else
+ static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
+ static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *);
+ # endif
static HINSTANCE hinstPython = 0; /* Instance of python.dll */
***************
*** 403,409 ****
{"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
{"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
{"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
! # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
{"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
# else
{"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
--- 417,424 ----
{"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
{"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
{"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
! # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \
! && SIZEOF_SIZE_T != SIZEOF_INT
{"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
# else
{"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
***************
*** 424,431 ****
--- 439,451 ----
{"PyObject_Malloc", (PYTHON_PROC*)&dll_PyObject_Malloc},
{"PyObject_Free", (PYTHON_PROC*)&dll_PyObject_Free},
# endif
+ # ifdef PY_USE_CAPSULE
{"PyCapsule_New", (PYTHON_PROC*)&dll_PyCapsule_New},
{"PyCapsule_GetPointer", (PYTHON_PROC*)&dll_PyCapsule_GetPointer},
+ # else
+ {"PyCObject_FromVoidPtr", (PYTHON_PROC*)&dll_PyCObject_FromVoidPtr},
+ {"PyCObject_AsVoidPtr", (PYTHON_PROC*)&dll_PyCObject_AsVoidPtr},
+ # endif
{"", NULL},
};
*** ../vim-7.3.578/src/if_python3.c 2012-06-29 12:54:32.000000000 +0200
--- src/if_python3.c 2012-06-29 16:16:54.000000000 +0200
***************
*** 75,80 ****
--- 75,83 ----
# define CODEC_ERROR_HANDLER NULL
#endif
+ /* Python 3 does not support CObjects, always use Capsules */
+ #define PY_USE_CAPSULE
+
#define PyInt Py_ssize_t
#define PyString_Check(obj) PyUnicode_Check(obj)
#define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER)
*** ../vim-7.3.578/src/version.c 2012-06-29 16:19:46.000000000 +0200
--- src/version.c 2012-06-29 16:21:25.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 579,
/**/
--
hundred-and-one symptoms of being an internet addict:
78. You find yourself dialing IP numbers on the phone.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.3.580 Normal file
View File

@ -0,0 +1,52 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.580
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.580
Problem: Warning on 64 bit MS-Windows.
Solution: Add type cast. (Mike Williams)
Files: src/if_py_both.h
*** ../vim-7.3.579/src/if_py_both.h 2012-06-29 16:28:23.000000000 +0200
--- src/if_py_both.h 2012-06-29 17:49:59.000000000 +0200
***************
*** 495,501 ****
if (!PyArg_ParseTuple(args, "s", &expr))
return NULL;
! return PyLong_FromLong(mb_string2cells((char_u *)expr, STRLEN(expr)));
}
/*
--- 495,501 ----
if (!PyArg_ParseTuple(args, "s", &expr))
return NULL;
! return PyLong_FromLong(mb_string2cells((char_u *)expr, (int)STRLEN(expr)));
}
/*
*** ../vim-7.3.579/src/version.c 2012-06-29 16:28:23.000000000 +0200
--- src/version.c 2012-06-29 17:50:36.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 580,
/**/
--
hundred-and-one symptoms of being an internet addict:
79. All of your most erotic dreams have a scrollbar at the right side.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

117
7.3.581 Normal file
View File

@ -0,0 +1,117 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.581
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.581
Problem: Problems compiling with Python.
Solution: Pick UCS2 or UCS4 function at runtime. (lilydjwg)
Files: src/if_python.c
*** ../vim-7.3.580/src/if_python.c 2012-06-29 16:28:23.000000000 +0200
--- src/if_python.c 2012-06-29 19:10:53.000000000 +0200
***************
*** 196,202 ****
# define PyString_Size dll_PyString_Size
# define PyString_Type (*dll_PyString_Type)
# define PyUnicode_Type (*dll_PyUnicode_Type)
! # define PyUnicodeUCS4_AsEncodedString (*dll_PyUnicodeUCS4_AsEncodedString)
# define PyFloat_AsDouble dll_PyFloat_AsDouble
# define PyFloat_FromDouble dll_PyFloat_FromDouble
# define PyFloat_Type (*dll_PyFloat_Type)
--- 196,203 ----
# define PyString_Size dll_PyString_Size
# define PyString_Type (*dll_PyString_Type)
# define PyUnicode_Type (*dll_PyUnicode_Type)
! # undef PyUnicode_AsEncodedString
! # define PyUnicode_AsEncodedString py_PyUnicode_AsEncodedString
# define PyFloat_AsDouble dll_PyFloat_AsDouble
# define PyFloat_FromDouble dll_PyFloat_FromDouble
# define PyFloat_Type (*dll_PyFloat_Type)
***************
*** 290,296 ****
static PyInt(*dll_PyString_Size)(PyObject *);
static PyTypeObject* dll_PyString_Type;
static PyTypeObject* dll_PyUnicode_Type;
! static PyObject *(*PyUnicodeUCS4_AsEncodedString)(PyObject *, char *, char *);
static double(*dll_PyFloat_AsDouble)(PyObject *);
static PyObject*(*dll_PyFloat_FromDouble)(double);
static PyTypeObject* dll_PyFloat_Type;
--- 291,297 ----
static PyInt(*dll_PyString_Size)(PyObject *);
static PyTypeObject* dll_PyString_Type;
static PyTypeObject* dll_PyUnicode_Type;
! static PyObject *(*py_PyUnicode_AsEncodedString)(PyObject *, char *, char *);
static double(*dll_PyFloat_AsDouble)(PyObject *);
static PyObject*(*dll_PyFloat_FromDouble)(double);
static PyTypeObject* dll_PyFloat_Type;
***************
*** 406,412 ****
{"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size},
{"PyString_Type", (PYTHON_PROC*)&dll_PyString_Type},
{"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type},
- {"PyUnicodeUCS4_AsEncodedString", (PYTHON_PROC*)&dll_PyUnicodeUCS4_AsEncodedString},
{"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type},
{"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble},
{"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble},
--- 407,412 ----
***************
*** 471,476 ****
--- 471,477 ----
python_runtime_link_init(char *libname, int verbose)
{
int i;
+ void *ucs_as_encoded_string;
#if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3)
/* Can't have Python and Python3 loaded at the same time.
***************
*** 506,511 ****
--- 507,531 ----
return FAIL;
}
}
+
+ /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+ * will be present in the library. */
+ ucs_as_encoded_string = symbol_from_dll(hinstPython,
+ "PyUnicodeUCS2_AsEncodedString");
+ if (ucs_as_encoded_string == NULL)
+ ucs_as_encoded_string = symbol_from_dll(hinstPython,
+ "PyUnicodeUCS4_AsEncodedString");
+ if (ucs_as_encoded_string != NULL)
+ py_PyUnicode_AsEncodedString = ucs_as_encoded_string;
+ else
+ {
+ close_dll(hinstPython);
+ hinstPython = 0;
+ if (verbose)
+ EMSG2(_(e_loadfunc), "PyUnicode_UCSX_*");
+ return FAIL;
+ }
+
return OK;
}
*** ../vim-7.3.580/src/version.c 2012-06-29 17:51:58.000000000 +0200
--- src/version.c 2012-06-29 19:13:47.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 581,
/**/
--
ASCII stupid question, get a stupid ANSI.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

61
7.3.582 Normal file
View File

@ -0,0 +1,61 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.582
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.582 (after 7.3.576)
Problem: Missing parts of the test OK file.
Solution: Add the missing parts.
Files: src/testdir/test68.ok
*** ../vim-7.3.581/src/testdir/test68.ok 2012-06-13 17:28:51.000000000 +0200
--- src/testdir/test68.ok 2012-06-29 15:00:13.000000000 +0200
***************
*** 35,40 ****
--- 35,48 ----
{
+ 1 a
+ b
+ # 1 a
+ # b
+ }
+
+
+ {
# 1 a
# b
}
***************
*** 48,50 ****
--- 56,62 ----
{ 1aa ^^2bb }
+
+ # 1 xxxxx
+ # foobar
+
*** ../vim-7.3.581/src/version.c 2012-06-29 19:14:48.000000000 +0200
--- src/version.c 2012-06-29 23:57:43.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 582,
/**/
--
If your nose runs, and your feet smell, you might be upside down.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

79
7.3.583 Normal file
View File

@ -0,0 +1,79 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.583
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.583
Problem: PyObject_NextNotImplemented is not defined before Python 2.7.
(Danek Duvall)
Solution: Add #ifdefs.
Files: src/if_python.c
*** ../vim-7.3.582/src/if_python.c 2012-06-29 19:14:48.000000000 +0200
--- src/if_python.c 2012-06-30 12:59:38.000000000 +0200
***************
*** 214,220 ****
# define Py_Finalize dll_Py_Finalize
# define Py_IsInitialized dll_Py_IsInitialized
# define _PyObject_New dll__PyObject_New
! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
# define _Py_NoneStruct (*dll__Py_NoneStruct)
# define PyObject_Init dll__PyObject_Init
# define PyObject_GetIter dll_PyObject_GetIter
--- 214,222 ----
# define Py_Finalize dll_Py_Finalize
# define Py_IsInitialized dll_Py_IsInitialized
# define _PyObject_New dll__PyObject_New
! # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
! # endif
# define _Py_NoneStruct (*dll__Py_NoneStruct)
# define PyObject_Init dll__PyObject_Init
# define PyObject_GetIter dll_PyObject_GetIter
***************
*** 310,316 ****
--- 312,320 ----
static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *);
static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *);
static PyObject* (*dll_PyObject_GetIter)(PyObject *);
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
static iternextfunc dll__PyObject_NextNotImplemented;
+ # endif
static PyObject* dll__Py_NoneStruct;
# if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
static int (*dll_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
***************
*** 430,436 ****
--- 434,442 ----
{"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New},
{"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init},
{"PyObject_GetIter", (PYTHON_PROC*)&dll_PyObject_GetIter},
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
{"_PyObject_NextNotImplemented", (PYTHON_PROC*)&dll__PyObject_NextNotImplemented},
+ # endif
{"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct},
# if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
{"PyType_IsSubtype", (PYTHON_PROC*)&dll_PyType_IsSubtype},
*** ../vim-7.3.582/src/version.c 2012-06-29 23:57:50.000000000 +0200
--- src/version.c 2012-06-30 13:20:46.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 583,
/**/
--
hundred-and-one symptoms of being an internet addict:
90. Instead of calling you to dinner, your spouse sends e-mail.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

134
7.3.584 Normal file
View File

@ -0,0 +1,134 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.584
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.584
Problem: PyCObject is not always defined.
Solution: Use PyObject instead.
Files: src/if_py_both.h, src/if_python.c
*** ../vim-7.3.583/src/if_py_both.h 2012-06-29 17:51:58.000000000 +0200
--- src/if_py_both.h 2012-06-30 13:25:24.000000000 +0200
***************
*** 2432,2463 ****
convert_dl(PyObject *obj, typval_T *tv,
pytotvfunc py_to_tv, PyObject *lookupDict)
{
- # ifdef PY_USE_CAPSULE
PyObject *capsule;
- # else
- PyCObject *cobject;
- # endif
char hexBuf[sizeof(void *) * 2 + 3];
sprintf(hexBuf, "%p", obj);
# ifdef PY_USE_CAPSULE
capsule = PyDict_GetItemString(lookupDict, hexBuf);
- if (capsule == NULL)
# else
! cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf);
! if (cobject == NULL)
# endif
{
# ifdef PY_USE_CAPSULE
capsule = PyCapsule_New(tv, NULL, NULL);
- PyDict_SetItemString(lookupDict, hexBuf, capsule);
- Py_DECREF(capsule);
# else
! cobject = PyCObject_FromVoidPtr(tv, NULL);
! PyDict_SetItemString(lookupDict, hexBuf, cobject);
! Py_DECREF(cobject);
# endif
if (py_to_tv(obj, tv, lookupDict) == -1)
{
tv->v_type = VAR_UNKNOWN;
--- 2432,2456 ----
convert_dl(PyObject *obj, typval_T *tv,
pytotvfunc py_to_tv, PyObject *lookupDict)
{
PyObject *capsule;
char hexBuf[sizeof(void *) * 2 + 3];
sprintf(hexBuf, "%p", obj);
# ifdef PY_USE_CAPSULE
capsule = PyDict_GetItemString(lookupDict, hexBuf);
# else
! capsule = (PyObject *)PyDict_GetItemString(lookupDict, hexBuf);
# endif
+ if (capsule == NULL)
{
# ifdef PY_USE_CAPSULE
capsule = PyCapsule_New(tv, NULL, NULL);
# else
! capsule = PyCObject_FromVoidPtr(tv, NULL);
# endif
+ PyDict_SetItemString(lookupDict, hexBuf, capsule);
+ Py_DECREF(capsule);
if (py_to_tv(obj, tv, lookupDict) == -1)
{
tv->v_type = VAR_UNKNOWN;
***************
*** 2478,2484 ****
# ifdef PY_USE_CAPSULE
v = PyCapsule_GetPointer(capsule, NULL);
# else
! v = PyCObject_AsVoidPtr(cobject);
# endif
copy_tv(v, tv);
}
--- 2471,2477 ----
# ifdef PY_USE_CAPSULE
v = PyCapsule_GetPointer(capsule, NULL);
# else
! v = PyCObject_AsVoidPtr(capsule);
# endif
copy_tv(v, tv);
}
*** ../vim-7.3.583/src/if_python.c 2012-06-30 13:21:03.000000000 +0200
--- src/if_python.c 2012-06-30 13:23:22.000000000 +0200
***************
*** 327,334 ****
static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
# else
! static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
! static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *);
# endif
static HINSTANCE hinstPython = 0; /* Instance of python.dll */
--- 327,334 ----
static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
# else
! static PyObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
! static void* (*dll_PyCObject_AsVoidPtr)(PyObject *);
# endif
static HINSTANCE hinstPython = 0; /* Instance of python.dll */
*** ../vim-7.3.583/src/version.c 2012-06-30 13:21:03.000000000 +0200
--- src/version.c 2012-06-30 13:33:08.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 584,
/**/
--
hundred-and-one symptoms of being an internet addict:
91. It's Saturday afternoon in the middle of May and you
are on computer.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

56
7.3.585 Normal file
View File

@ -0,0 +1,56 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.585
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.585
Problem: Calling changed_bytes() too often.
Solution: Move changed_bytes() out of a loop. (Tor Perkins)
Files: src/edit.c
*** ../vim-7.3.584/src/edit.c 2012-06-29 15:04:34.000000000 +0200
--- src/edit.c 2012-07-06 13:29:25.000000000 +0200
***************
*** 6350,6359 ****
* add the additional whitespace needed after the
* comment leader for the numbered list. */
for (i = 0; i < padding; i++)
- {
ins_str((char_u *)" ");
! changed_bytes(curwin->w_cursor.lnum, leader_len);
! }
}
else
{
--- 6350,6357 ----
* add the additional whitespace needed after the
* comment leader for the numbered list. */
for (i = 0; i < padding; i++)
ins_str((char_u *)" ");
! changed_bytes(curwin->w_cursor.lnum, leader_len);
}
else
{
*** ../vim-7.3.584/src/version.c 2012-07-06 13:36:02.000000000 +0200
--- src/version.c 2012-07-06 13:35:03.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 585,
/**/
--
From "know your smileys":
:'-D Laughing so much that they're crying
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

103
7.3.586 Normal file
View File

@ -0,0 +1,103 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.586
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.586
Problem: When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined.
Solution: Set the default for WINVER to 0x0500.
Files: src/Make_ming.mak, src/Make_cyg.mak
*** ../vim-7.3.585/src/Make_ming.mak 2012-04-20 16:13:21.000000000 +0200
--- src/Make_ming.mak 2012-06-30 21:23:55.000000000 +0200
***************
*** 52,58 ****
OLE=no
# Set the default $(WINVER) to make it work with pre-Win2k
ifndef WINVER
! WINVER = 0x0400
endif
# Set to yes to enable Cscope support
CSCOPE=yes
--- 52,58 ----
OLE=no
# Set the default $(WINVER) to make it work with pre-Win2k
ifndef WINVER
! WINVER = 0x0500
endif
# Set to yes to enable Cscope support
CSCOPE=yes
*** ../vim-7.3.585/src/Make_cyg.mak 2011-09-30 16:56:00.000000000 +0200
--- src/Make_cyg.mak 2012-06-30 21:23:42.000000000 +0200
***************
*** 1,6 ****
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2010 Nov 03
#
# Also read INSTALLpc.txt!
#
--- 1,6 ----
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2012 Jun 30
#
# Also read INSTALLpc.txt!
#
***************
*** 48,54 ****
# -L/lib/w32api to EXTRA_LIBS.
# POSTSCRIPT no or yes: set to yes for PostScript printing (no)
# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
! # WINVER Lowest Win32 version to support. (0x0400)
# CSCOPE no or yes: to include cscope interface support (yes)
# OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
# NETBEANS no or yes: to include netbeans interface support (yes when GUI
--- 48,54 ----
# -L/lib/w32api to EXTRA_LIBS.
# POSTSCRIPT no or yes: set to yes for PostScript printing (no)
# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
! # WINVER Lowest Win32 version to support. (0x0500)
# CSCOPE no or yes: to include cscope interface support (yes)
# OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
# NETBEANS no or yes: to include netbeans interface support (yes when GUI
***************
*** 85,91 ****
endif
ifndef WINVER
! WINVER = 0x0400
endif
ifndef CSCOPE
--- 85,91 ----
endif
ifndef WINVER
! WINVER = 0x0500
endif
ifndef CSCOPE
*** ../vim-7.3.585/src/version.c 2012-07-06 13:36:36.000000000 +0200
--- src/version.c 2012-07-06 13:39:41.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 586,
/**/
--
From "know your smileys":
:-& Eating spaghetti
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

84
7.3.587 Normal file
View File

@ -0,0 +1,84 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.587
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.587
Problem: Compiler warning for local var shadowing global var.
Solution: Rename the var and move it to an inner block. (Christian Brabandt)
Files: src/buffer.c
*** ../vim-7.3.586/src/buffer.c 2012-06-20 17:54:34.000000000 +0200
--- src/buffer.c 2012-07-06 16:19:32.000000000 +0200
***************
*** 1363,1371 ****
int action;
{
buf_T *prevbuf;
- #ifdef FEAT_WINDOWS
- win_T *prevwin;
- #endif
int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
|| action == DOBUF_WIPE);
--- 1363,1368 ----
***************
*** 1406,1412 ****
#endif
{
#ifdef FEAT_WINDOWS
! prevwin = curwin;
#endif
if (prevbuf == curbuf)
u_sync(FALSE);
--- 1403,1409 ----
#endif
{
#ifdef FEAT_WINDOWS
! win_T *previouswin = curwin;
#endif
if (prevbuf == curbuf)
u_sync(FALSE);
***************
*** 1415,1423 ****
&& !P_HID(prevbuf)
&& !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
#ifdef FEAT_WINDOWS
! if (curwin != prevwin && win_valid(prevwin))
/* autocommands changed curwin, Grr! */
! curwin = prevwin;
#endif
}
}
--- 1412,1420 ----
&& !P_HID(prevbuf)
&& !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
#ifdef FEAT_WINDOWS
! if (curwin != previouswin && win_valid(previouswin))
/* autocommands changed curwin, Grr! */
! curwin = previouswin;
#endif
}
}
*** ../vim-7.3.586/src/version.c 2012-07-06 13:40:44.000000000 +0200
--- src/version.c 2012-07-06 16:19:08.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 587,
/**/
--
There's no place like $(HOME)!
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

85
7.3.588 Normal file
View File

@ -0,0 +1,85 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.588
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.588
Problem: Crash on NULL pointer.
Solution: Fix the immediate problem by checking for NULL. (Lech Lorens)
Files: src/window.c
*** ../vim-7.3.587/src/window.c 2012-06-13 18:15:13.000000000 +0200
--- src/window.c 2012-07-06 16:32:59.000000000 +0200
***************
*** 2184,2190 ****
}
#ifdef FEAT_AUTOCMD
! if (win->w_closing || win->w_buffer->b_closing)
return; /* window is already being closed */
if (win == aucmd_win)
{
--- 2184,2190 ----
}
#ifdef FEAT_AUTOCMD
! if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
return; /* window is already being closed */
if (win == aucmd_win)
{
***************
*** 3723,3729 ****
enter_tabpage(tp, old_curbuf, trigger_autocmds)
tabpage_T *tp;
buf_T *old_curbuf UNUSED;
! int trigger_autocmds UNUSED;
{
int old_off = tp->tp_firstwin->w_winrow;
win_T *next_prevwin = tp->tp_prevwin;
--- 3723,3729 ----
enter_tabpage(tp, old_curbuf, trigger_autocmds)
tabpage_T *tp;
buf_T *old_curbuf UNUSED;
! int trigger_autocmds UNUSED;
{
int old_off = tp->tp_firstwin->w_winrow;
win_T *next_prevwin = tp->tp_prevwin;
***************
*** 3868,3874 ****
void
goto_tabpage_tp(tp, trigger_autocmds)
tabpage_T *tp;
! int trigger_autocmds;
{
/* Don't repeat a message in another tab page. */
set_keep_msg(NULL, 0);
--- 3868,3874 ----
void
goto_tabpage_tp(tp, trigger_autocmds)
tabpage_T *tp;
! int trigger_autocmds;
{
/* Don't repeat a message in another tab page. */
set_keep_msg(NULL, 0);
*** ../vim-7.3.587/src/version.c 2012-07-06 16:21:58.000000000 +0200
--- src/version.c 2012-07-06 16:37:47.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 588,
/**/
--
Momento mori, ergo carpe diem
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

69
7.3.589 Normal file
View File

@ -0,0 +1,69 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.589
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.589
Problem: Crash when $HOME is not set.
Solution: Check for a NULL pointer. (Chris Webb)
Files: src/misc1.c
*** ../vim-7.3.588/src/misc1.c 2012-06-29 15:04:34.000000000 +0200
--- src/misc1.c 2012-07-06 16:44:39.000000000 +0200
***************
*** 4496,4503 ****
#else
homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
#endif
#if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
! if (vim_strchr(homedir_env, '~') != NULL)
{
int usedlen = 0;
int flen;
--- 4496,4507 ----
#else
homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
#endif
+ /* Empty is the same as not set. */
+ if (homedir_env != NULL && *homedir_env == NUL)
+ homedir_env = NULL;
+
#if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
! if (homedir_env != NULL && vim_strchr(homedir_env, '~') != NULL)
{
int usedlen = 0;
int flen;
***************
*** 4513,4520 ****
}
#endif
- if (homedir_env != NULL && *homedir_env == NUL)
- homedir_env = NULL;
if (homedir_env != NULL)
envlen = STRLEN(homedir_env);
--- 4517,4522 ----
*** ../vim-7.3.588/src/version.c 2012-07-06 16:39:43.000000000 +0200
--- src/version.c 2012-07-06 16:45:18.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 589,
/**/
--
I AM THANKFUL...
...for the taxes that I pay because it means that I am employed.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

61
7.3.590 Normal file
View File

@ -0,0 +1,61 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.590
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.590
Problem: The '< and '> marks cannot be set directly.
Solution: Allow setting '< and '>. (Christian Brabandt)
Files: src/mark.c
*** ../vim-7.3.589/src/mark.c 2011-02-25 15:11:17.000000000 +0100
--- src/mark.c 2012-07-06 17:47:23.000000000 +0200
***************
*** 98,103 ****
--- 98,116 ----
return OK;
}
+ #ifdef FEAT_VISUAL
+ if (c == '<')
+ {
+ curbuf->b_visual.vi_start = *pos;
+ return OK;
+ }
+ if (c == '>')
+ {
+ curbuf->b_visual.vi_end = *pos;
+ return OK;
+ }
+ #endif
+
#ifndef EBCDIC
if (c > 'z') /* some islower() and isupper() cannot handle
characters above 127 */
*** ../vim-7.3.589/src/version.c 2012-07-06 16:49:37.000000000 +0200
--- src/version.c 2012-07-06 17:49:00.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 590,
/**/
--
The primary purpose of the DATA statement is to give names to constants;
instead of referring to pi as 3.141592653589793 at every appearance, the
variable PI can be given that value with a DATA statement and used instead
of the longer form of the constant. This also simplifies modifying the
program, should the value of pi change.
-- FORTRAN manual for Xerox Computers
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

208
7.3.591 Normal file
View File

@ -0,0 +1,208 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.591
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.591
Problem: Can only move to a tab by absolute number.
Solution: Move a number of tabs to the left or the right. (Lech Lorens)
Files: runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c,
src/testdir/test62.in, src/testdir/test62.ok, src/window.c
*** ../vim-7.3.590/runtime/doc/tabpage.txt 2010-08-15 21:57:17.000000000 +0200
--- runtime/doc/tabpage.txt 2012-07-06 18:10:06.000000000 +0200
***************
*** 173,182 ****
--- 173,192 ----
REORDERING TAB PAGES:
:tabm[ove] [N] *:tabm* *:tabmove*
+ :[N]tabm[ove]
Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. Without N the tab
page is made the last one.
+ :tabm[ove] +[N]
+ :tabm[ove] -[N]
+ Move the current tab page N places to the right (with +) or to
+ the left (with -).
+
+ Note that although it is possible to move a tab behind the N-th one by using
+ :Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For
+ clarification what +N means in this context see |[range]|.
+
LOOPING OVER TAB PAGES:
*** ../vim-7.3.590/src/ex_cmds.h 2012-05-18 18:47:11.000000000 +0200
--- src/ex_cmds.h 2012-07-06 18:10:13.000000000 +0200
***************
*** 944,950 ****
EX(CMD_tabfirst, "tabfirst", ex_tabnext,
TRLBAR),
EX(CMD_tabmove, "tabmove", ex_tabmove,
! RANGE|NOTADR|ZEROR|COUNT|TRLBAR|ZEROR),
EX(CMD_tablast, "tablast", ex_tabnext,
TRLBAR),
EX(CMD_tabnext, "tabnext", ex_tabnext,
--- 944,950 ----
EX(CMD_tabfirst, "tabfirst", ex_tabnext,
TRLBAR),
EX(CMD_tabmove, "tabmove", ex_tabmove,
! RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
EX(CMD_tablast, "tablast", ex_tabnext,
TRLBAR),
EX(CMD_tabnext, "tabnext", ex_tabnext,
*** ../vim-7.3.590/src/ex_docmd.c 2012-06-06 19:02:40.000000000 +0200
--- src/ex_docmd.c 2012-07-06 18:16:25.000000000 +0200
***************
*** 7478,7484 ****
ex_tabmove(eap)
exarg_T *eap;
{
! tabpage_move(eap->addr_count == 0 ? 9999 : (int)eap->line2);
}
/*
--- 7478,7519 ----
ex_tabmove(eap)
exarg_T *eap;
{
! int tab_number = 9999;
!
! if (eap->arg && *eap->arg != NUL)
! {
! char_u *p = eap->arg;
! int relative = 0; /* argument +N/-N means: move N places to the
! * right/left relative to the current position. */
!
! if (*eap->arg == '-')
! {
! relative = -1;
! p = eap->arg + 1;
! }
! else if (*eap->arg == '+')
! {
! relative = 1;
! p = eap->arg + 1;
! }
! else
! p = eap->arg;
!
! if (p == skipdigits(p))
! {
! /* No numbers as argument. */
! eap->errmsg = e_invarg;
! return;
! }
!
! tab_number = getdigits(&p);
! if (relative != 0)
! tab_number = tab_number * relative + tabpage_index(curtab) - 1;;
! }
! else if (eap->addr_count != 0)
! tab_number = eap->line2;
!
! tabpage_move(tab_number);
}
/*
*** ../vim-7.3.590/src/testdir/test62.in 2012-03-07 22:55:17.000000000 +0100
--- src/testdir/test62.in 2012-07-06 18:10:13.000000000 +0200
***************
*** 93,98 ****
--- 93,126 ----
:endif
:"
:"
+ :for i in range(9) | tabnew | endfor
+ 1gt
+ Go=tabpagenr() 
+ :tabmove 5
+ i=tabpagenr() 
+ :tabmove -2
+ i=tabpagenr() 
+ :tabmove +4
+ i=tabpagenr() 
+ :tabmove
+ i=tabpagenr() 
+ :tabmove -20
+ i=tabpagenr() 
+ :tabmove +20
+ i=tabpagenr() 
+ :3tabmove
+ i=tabpagenr() 
+ :7tabmove 5
+ i=tabpagenr() 
+ :let a='No error caught.'
+ :try
+ :tabmove foo
+ :catch E474
+ :let a='E474 caught.'
+ :endtry
+ i=a 
+ :"
+ :"
:/^Results/,$w! test.out
:qa!
ENDTEST
*** ../vim-7.3.590/src/testdir/test62.ok 2012-02-22 19:13:00.000000000 +0100
--- src/testdir/test62.ok 2012-07-06 18:10:13.000000000 +0200
***************
*** 8,10 ****
--- 8,20 ----
tab drop 1: pass
tab drop 2: pass
tab drop 3: pass
+ 1
+ 6
+ 4
+ 8
+ 10
+ 1
+ 10
+ 4
+ 6
+ E474 caught.
*** ../vim-7.3.590/src/window.c 2012-07-06 16:39:43.000000000 +0200
--- src/window.c 2012-07-06 18:10:13.000000000 +0200
***************
*** 3929,3935 ****
}
/* Re-insert it at the specified position. */
! if (n == 0)
{
curtab->tp_next = first_tabpage;
first_tabpage = curtab;
--- 3929,3935 ----
}
/* Re-insert it at the specified position. */
! if (n <= 0)
{
curtab->tp_next = first_tabpage;
first_tabpage = curtab;
*** ../vim-7.3.590/src/version.c 2012-07-06 17:51:24.000000000 +0200
--- src/version.c 2012-07-06 18:11:08.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 591,
/**/
--
Bare feet magnetize sharp metal objects so they point upward from the
floor -- especially in the dark.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

126
7.3.592 Normal file
View File

@ -0,0 +1,126 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.592
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.592
Problem: Vim on GTK does not support g:browsefilter.
Solution: Add a GtkFileFilter to the file chooser. (Christian Brabandt)
Files: src/gui_gtk.c
*** ../vim-7.3.591/src/gui_gtk.c 2012-06-06 16:14:36.000000000 +0200
--- src/gui_gtk.c 2012-07-10 13:08:06.000000000 +0200
***************
*** 840,846 ****
char_u *dflt,
char_u *ext UNUSED,
char_u *initdir,
! char_u *filter UNUSED)
{
#ifdef USE_FILE_CHOOSER
GtkWidget *fc;
--- 840,846 ----
char_u *dflt,
char_u *ext UNUSED,
char_u *initdir,
! char_u *filter)
{
#ifdef USE_FILE_CHOOSER
GtkWidget *fc;
***************
*** 848,853 ****
--- 848,854 ----
char_u dirbuf[MAXPATHL];
guint log_handler;
const gchar *domain = "Gtk";
+ GtkFileFilter *gfilter;
title = CONVERT_TO_UTF8(title);
***************
*** 879,884 ****
--- 880,924 ----
NULL);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc),
(const gchar *)dirbuf);
+
+ if (filter != NULL && *filter != NUL)
+ {
+ int i = 0;
+ char_u *patt;
+ char_u *p = filter;
+
+ gfilter = gtk_file_filter_new();
+ patt = alloc(STRLEN(filter));
+ while (p != NULL && *p != NUL)
+ {
+ if (*p == '\n' || *p == ';' || *p == '\t')
+ {
+ STRNCPY(patt, filter, i);
+ patt[i] = '\0';
+ if (*p == '\t')
+ gtk_file_filter_set_name(gfilter, (gchar *)patt);
+ else
+ {
+ gtk_file_filter_add_pattern(gfilter, (gchar *)patt);
+ if (*p == '\n')
+ {
+ gtk_file_chooser_add_filter((GtkFileChooser *)fc,
+ gfilter);
+ if (*(p + 1) != NUL)
+ gfilter = gtk_file_filter_new();
+ }
+ }
+ filter = ++p;
+ i = 0;
+ }
+ else
+ {
+ p++;
+ i++;
+ }
+ }
+ vim_free(patt);
+ }
if (saving && dflt != NULL && *dflt != NUL)
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(fc), (char *)dflt);
***************
*** 1304,1310 ****
gtk_widget_show(entry);
/* Make Enter work like pressing OK. */
! gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
text = CONVERT_TO_UTF8(textfield);
gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
--- 1344,1350 ----
gtk_widget_show(entry);
/* Make Enter work like pressing OK. */
! gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
text = CONVERT_TO_UTF8(textfield);
gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
*** ../vim-7.3.591/src/version.c 2012-07-06 18:27:34.000000000 +0200
--- src/version.c 2012-07-10 13:00:29.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 592,
/**/
--
To be rich is not the end, but only a change of worries.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

81
7.3.593 Normal file
View File

@ -0,0 +1,81 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.593
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.593
Problem: No easy way to decide if b:browsefilter will work.
Solution: Add the browsefilter feature.
Files: src/gui_gtk.c, src/eval.c, src/vim.h
*** ../vim-7.3.592/src/gui_gtk.c 2012-07-10 13:12:46.000000000 +0200
--- src/gui_gtk.c 2012-07-10 13:40:38.000000000 +0200
***************
*** 779,787 ****
/*
* Implementation of the file selector related stuff
*/
- #if GTK_CHECK_VERSION(2,4,0)
- # define USE_FILE_CHOOSER
- #endif
#ifndef USE_FILE_CHOOSER
static void
--- 779,784 ----
*** ../vim-7.3.592/src/eval.c 2012-06-29 12:54:32.000000000 +0200
--- src/eval.c 2012-07-10 13:34:10.000000000 +0200
***************
*** 12044,12049 ****
--- 12044,12054 ----
"all_builtin_terms",
# endif
#endif
+ #if defined(FEAT_BROWSE) && (defined(USE_FILE_CHOOSER) \
+ || defined(FEAT_GUI_W32) \
+ || defined(FEAT_GUI_MOTIF))
+ "browsefilter",
+ #endif
#ifdef FEAT_BYTEOFF
"byte_offset",
#endif
*** ../vim-7.3.592/src/vim.h 2012-06-13 17:28:51.000000000 +0200
--- src/vim.h 2012-07-10 13:30:44.000000000 +0200
***************
*** 2125,2130 ****
--- 2125,2136 ----
# endif
#endif
+ #if defined(FEAT_BROWSE) && defined(GTK_CHECK_VERSION)
+ # if GTK_CHECK_VERSION(2,4,0)
+ # define USE_FILE_CHOOSER
+ # endif
+ #endif
+
#ifndef FEAT_NETBEANS_INTG
# undef NBDEBUG
#endif
*** ../vim-7.3.592/src/version.c 2012-07-10 13:12:46.000000000 +0200
--- src/version.c 2012-07-10 13:34:50.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 593,
/**/
--
hundred-and-one symptoms of being an internet addict:
102. When filling out your driver's license application, you give
your IP address.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

171
7.3.594 Normal file
View File

@ -0,0 +1,171 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.594
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.594
Problem: The X command server doesn't work perfectly. It sends an empty
reply for as-keys requests.
Solution: Remove duplicate ga_init2(). Do not send a reply for as-keys
requests. (Brian Burns)
Files: src/if_xcmdsrv.c
*** ../vim-7.3.593/src/if_xcmdsrv.c 2010-08-15 21:57:27.000000000 +0200
--- src/if_xcmdsrv.c 2012-07-10 14:15:59.000000000 +0200
***************
*** 655,661 ****
if (SendInit(dpy) < 0)
return NULL;
}
- ga_init2(&ga, 1, 100);
/*
* Read the registry property.
--- 655,660 ----
***************
*** 1198,1206 ****
if ((*p == 'c' || *p == 'k') && (p[1] == 0))
{
Window resWindow;
! char_u *name, *script, *serial, *end, *res;
Bool asKeys = *p == 'k';
- garray_T reply;
char_u *enc;
/*
--- 1197,1204 ----
if ((*p == 'c' || *p == 'k') && (p[1] == 0))
{
Window resWindow;
! char_u *name, *script, *serial, *end;
Bool asKeys = *p == 'k';
char_u *enc;
/*
***************
*** 1256,1305 ****
if (script == NULL || name == NULL)
continue;
! /*
! * Initialize the result property, so that we're ready at any
! * time if we need to return an error.
! */
! if (resWindow != None)
! {
! ga_init2(&reply, 1, 100);
#ifdef FEAT_MBYTE
! ga_grow(&reply, 50 + STRLEN(p_enc));
! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ",
0, 0, p_enc, 0, serial, 0);
! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial);
#else
! ga_grow(&reply, 50);
! sprintf(reply.ga_data, "%cr%c-s %s%c-r ", 0, 0, serial, 0);
! reply.ga_len = 10 + STRLEN(serial);
#endif
! }
! res = NULL;
! if (serverName != NULL && STRICMP(name, serverName) == 0)
! {
! script = serverConvert(enc, script, &tofree);
! if (asKeys)
! server_to_input_buf(script);
! else
! res = eval_client_expr_to_string(script);
! vim_free(tofree);
! }
! if (resWindow != None)
! {
! if (res != NULL)
! ga_concat(&reply, res);
! else if (asKeys == 0)
! {
! ga_concat(&reply, (char_u *)_(e_invexprmsg));
! ga_append(&reply, 0);
! ga_concat(&reply, (char_u *)"-c 1");
! }
! ga_append(&reply, NUL);
! (void)AppendPropCarefully(dpy, resWindow, commProperty,
! reply.ga_data, reply.ga_len);
! ga_clear(&reply);
! }
! vim_free(res);
}
else if (*p == 'r' && p[1] == 0)
{
--- 1254,1305 ----
if (script == NULL || name == NULL)
continue;
! if (serverName != NULL && STRICMP(name, serverName) == 0)
! {
! script = serverConvert(enc, script, &tofree);
! if (asKeys)
! server_to_input_buf(script);
! else
! {
! char_u *res;
!
! res = eval_client_expr_to_string(script);
! if (resWindow != None)
! {
! garray_T reply;
!
! /* Initialize the result property. */
! ga_init2(&reply, 1, 100);
#ifdef FEAT_MBYTE
! ga_grow(&reply, 50 + STRLEN(p_enc));
! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ",
0, 0, p_enc, 0, serial, 0);
! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial);
#else
! ga_grow(&reply, 50);
! sprintf(reply.ga_data, "%cr%c-s %s%c-r ",
! 0, 0, serial, 0);
! reply.ga_len = 10 + STRLEN(serial);
#endif
!
! /* Evaluate the expression and return the result. */
! if (res != NULL)
! ga_concat(&reply, res);
! else
! {
! ga_concat(&reply, (char_u *)_(e_invexprmsg));
! ga_append(&reply, 0);
! ga_concat(&reply, (char_u *)"-c 1");
! }
! ga_append(&reply, NUL);
! (void)AppendPropCarefully(dpy, resWindow, commProperty,
! reply.ga_data, reply.ga_len);
! ga_clear(&reply);
! }
! vim_free(res);
! }
! vim_free(tofree);
! }
}
else if (*p == 'r' && p[1] == 0)
{
*** ../vim-7.3.593/src/version.c 2012-07-10 13:41:09.000000000 +0200
--- src/version.c 2012-07-10 14:17:50.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 594,
/**/
--
A meeting is an event at which the minutes are kept and the hours are lost.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

154
7.3.595 Normal file
View File

@ -0,0 +1,154 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.595
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.595
Problem: The X command server responds slowly
Solution: Change the loop that waits for replies. (Brian Burns)
Files: src/if_xcmdsrv.c
*** ../vim-7.3.594/src/if_xcmdsrv.c 2012-07-10 14:25:00.000000000 +0200
--- src/if_xcmdsrv.c 2012-07-10 14:44:13.000000000 +0200
***************
*** 572,632 ****
{
time_t start;
time_t now;
- time_t lastChk = 0;
XEvent event;
! XPropertyEvent *e = (XPropertyEvent *)&event;
! # define SEND_MSEC_POLL 50
time(&start);
! while (endCond(endData) == 0)
{
time(&now);
if (seconds >= 0 && (now - start) >= seconds)
break;
! if (now != lastChk)
! {
! lastChk = now;
! if (!WindowValid(dpy, w))
! break;
! /*
! * Sometimes the PropertyChange event doesn't come.
! * This can be seen in eg: vim -c 'echo remote_expr("gvim", "3+2")'
! */
! serverEventProc(dpy, NULL);
! }
if (localLoop)
{
- /* Just look out for the answer without calling back into Vim */
#ifndef HAVE_SELECT
- struct pollfd fds;
-
- fds.fd = ConnectionNumber(dpy);
- fds.events = POLLIN;
if (poll(&fds, 1, SEND_MSEC_POLL) < 0)
break;
#else
! fd_set fds;
! struct timeval tv;
!
! tv.tv_sec = 0;
! tv.tv_usec = SEND_MSEC_POLL * 1000;
! FD_ZERO(&fds);
! FD_SET(ConnectionNumber(dpy), &fds);
! if (select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &tv) < 0)
break;
#endif
- while (XEventsQueued(dpy, QueuedAfterReading) > 0)
- {
- XNextEvent(dpy, &event);
- if (event.type == PropertyNotify && e->window == commWindow)
- serverEventProc(dpy, &event);
- }
}
else
{
if (got_int)
break;
! ui_delay((long)SEND_MSEC_POLL, TRUE);
ui_breakcheck();
}
}
--- 572,626 ----
{
time_t start;
time_t now;
XEvent event;
!
! #define UI_MSEC_DELAY 50
! #define SEND_MSEC_POLL 500
! #ifndef HAVE_SELECT
! struct pollfd fds;
!
! fds.fd = ConnectionNumber(dpy);
! fds.events = POLLIN;
! #else
! fd_set fds;
! struct timeval tv;
!
! tv.tv_sec = 0;
! tv.tv_usec = SEND_MSEC_POLL * 1000;
! FD_ZERO(&fds);
! FD_SET(ConnectionNumber(dpy), &fds);
! #endif
time(&start);
! while (TRUE)
{
+ while (XCheckWindowEvent(dpy, commWindow, PropertyChangeMask, &event))
+ serverEventProc(dpy, &event);
+
+ if (endCond(endData) != 0)
+ break;
+ if (!WindowValid(dpy, w))
+ break;
time(&now);
if (seconds >= 0 && (now - start) >= seconds)
break;
!
! /* Just look out for the answer without calling back into Vim */
if (localLoop)
{
#ifndef HAVE_SELECT
if (poll(&fds, 1, SEND_MSEC_POLL) < 0)
break;
#else
! if (select(FD_SETSIZE, &fds, NULL, NULL, &tv) < 0)
break;
#endif
}
else
{
if (got_int)
break;
! ui_delay((long)UI_MSEC_DELAY, TRUE);
ui_breakcheck();
}
}
*** ../vim-7.3.594/src/version.c 2012-07-10 14:25:00.000000000 +0200
--- src/version.c 2012-07-10 14:52:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 595,
/**/
--
hundred-and-one symptoms of being an internet addict:
104. When people ask about the Presidential Election you ask "Which country?"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

171
7.3.596 Normal file
View File

@ -0,0 +1,171 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.596
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.596
Problem: Can't remove all signs for a file or buffer.
Solution: Support "*" for the sign id. (Christian Brabandt)
Files: runtime/doc/sign.txt, src/buffer.c, src/ex_cmds.c,
src/proto/buffer.pro
*** ../vim-7.3.595/runtime/doc/sign.txt 2010-08-15 21:57:17.000000000 +0200
--- runtime/doc/sign.txt 2012-07-10 15:05:19.000000000 +0200
***************
*** 150,157 ****
Remove the previously placed sign {id} from file {fname}.
See remark above about {fname} |:sign-fname|.
:sign unplace {id} buffer={nr}
! Same, but use buffer {nr}.
:sign unplace {id}
Remove the previously placed sign {id} from all files it
--- 153,166 ----
Remove the previously placed sign {id} from file {fname}.
See remark above about {fname} |:sign-fname|.
+ :sign unplace * file={fname}
+ Remove all placed signs in file {fname}.
+
:sign unplace {id} buffer={nr}
! Remove the previously placed sign {id} from buffer {nr}.
!
! :sign unplace * buffer={nr}
! Remove all placed signs in buffer {nr}.
:sign unplace {id}
Remove the previously placed sign {id} from all files it
*** ../vim-7.3.595/src/buffer.c 2012-07-06 16:21:58.000000000 +0200
--- src/buffer.c 2012-07-10 15:06:05.000000000 +0200
***************
*** 57,63 ****
#if defined(FEAT_SIGNS)
static void insert_sign __ARGS((buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr));
- static void buf_delete_signs __ARGS((buf_T *buf));
#endif
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
--- 57,62 ----
***************
*** 5537,5543 ****
/*
* Delete signs in buffer "buf".
*/
! static void
buf_delete_signs(buf)
buf_T *buf;
{
--- 5536,5542 ----
/*
* Delete signs in buffer "buf".
*/
! void
buf_delete_signs(buf)
buf_T *buf;
{
*** ../vim-7.3.595/src/ex_cmds.c 2012-05-18 16:24:06.000000000 +0200
--- src/ex_cmds.c 2012-07-10 15:14:22.000000000 +0200
***************
*** 6997,7002 ****
--- 6997,7012 ----
lnum = atoi((char *)arg);
arg = skiptowhite(arg);
}
+ else if (STRNCMP(arg, "*", 1) == 0 && idx == SIGNCMD_UNPLACE)
+ {
+ if (id != -1)
+ {
+ EMSG(_(e_invarg));
+ return;
+ }
+ id = -2;
+ arg = skiptowhite(arg + 1);
+ }
else if (STRNCMP(arg, "name=", 5) == 0)
{
arg += 5;
***************
*** 7033,7039 ****
{
EMSG2(_("E158: Invalid buffer name: %s"), arg);
}
! else if (id <= 0)
{
if (lnum >= 0 || sign_name != NULL)
EMSG(_(e_invarg));
--- 7043,7049 ----
{
EMSG2(_("E158: Invalid buffer name: %s"), arg);
}
! else if (id <= 0 && !(idx == SIGNCMD_UNPLACE && id == -2))
{
if (lnum >= 0 || sign_name != NULL)
EMSG(_(e_invarg));
***************
*** 7074,7084 ****
}
else if (idx == SIGNCMD_UNPLACE)
{
- /* ":sign unplace {id} file={fname}" */
if (lnum >= 0 || sign_name != NULL)
EMSG(_(e_invarg));
else
{
lnum = buf_delsign(buf, id);
update_debug_sign(buf, lnum);
}
--- 7084,7100 ----
}
else if (idx == SIGNCMD_UNPLACE)
{
if (lnum >= 0 || sign_name != NULL)
EMSG(_(e_invarg));
+ else if (id == -2)
+ {
+ /* ":sign unplace * file={fname}" */
+ redraw_buf_later(buf, NOT_VALID);
+ buf_delete_signs(buf);
+ }
else
{
+ /* ":sign unplace {id} file={fname}" */
lnum = buf_delsign(buf, id);
update_debug_sign(buf, lnum);
}
*** ../vim-7.3.595/src/proto/buffer.pro 2012-02-22 14:58:24.000000000 +0100
--- src/proto/buffer.pro 2012-07-10 15:06:10.000000000 +0200
***************
*** 60,65 ****
--- 60,66 ----
int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum));
int buf_findsigntype_id __ARGS((buf_T *buf, linenr_T lnum, int typenr));
int buf_signcount __ARGS((buf_T *buf, linenr_T lnum));
+ void buf_delete_signs __ARGS((buf_T *buf));
void buf_delete_all_signs __ARGS((void));
void sign_list_placed __ARGS((buf_T *rbuf));
void sign_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
*** ../vim-7.3.595/src/version.c 2012-07-10 14:56:42.000000000 +0200
--- src/version.c 2012-07-10 15:16:40.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 596,
/**/
--
hundred-and-one symptoms of being an internet addict:
105. When someone asks you for your address, you tell them your URL.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

720
7.3.597 Normal file
View File

@ -0,0 +1,720 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.597
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.597
Problem: 'clipboard' "autoselect" only applies to the * register. (Sergey
Vakulenko)
Solution: Make 'autoselect' work for the + register. (Christian Brabant)
Add the "autoselectplus" option in 'clipboard' and the "P" flag in
'guioptions'.
Files: runtime/doc/options.txt, src/normal.c, src/ops.c, src/screen.c,
src/ui.c, src/globals.h, src/proto/ui.pro, src/option.h, src/gui.c
*** ../vim-7.3.596/runtime/doc/options.txt 2012-02-20 22:18:23.000000000 +0100
--- runtime/doc/options.txt 2012-07-10 15:40:35.000000000 +0200
***************
*** 1437,1442 ****
--- 1452,1458 ----
This option is a list of comma separated names.
These names are recognized:
+ *clipboard-unnamed*
unnamed When included, Vim will use the clipboard register '*'
for all yank, delete, change and put operations which
would normally go to the unnamed register. When a
***************
*** 1446,1460 ****
explicitly accessed using the "* notation. Also see
|gui-clipboard|.
unnamedplus A variant of "unnamed" flag which uses the clipboard
register '+' (|quoteplus|) instead of register '*' for
all operations except yank. Yank shall copy the text
into register '+' and also into '*' when "unnamed" is
included.
! Only available with the |+x11| feature.
Availability can be checked with: >
if has('unnamedplus')
<
autoselect Works like the 'a' flag in 'guioptions': If present,
then whenever Visual mode is started, or the Visual
area extended, Vim tries to become the owner of the
--- 1462,1478 ----
explicitly accessed using the "* notation. Also see
|gui-clipboard|.
+ *clipboard-unnamedplus*
unnamedplus A variant of "unnamed" flag which uses the clipboard
register '+' (|quoteplus|) instead of register '*' for
all operations except yank. Yank shall copy the text
into register '+' and also into '*' when "unnamed" is
included.
! Only available with the |+X11| feature.
Availability can be checked with: >
if has('unnamedplus')
<
+ *clipboard-autoselect*
autoselect Works like the 'a' flag in 'guioptions': If present,
then whenever Visual mode is started, or the Visual
area extended, Vim tries to become the owner of the
***************
*** 1466,1474 ****
--- 1484,1499 ----
"autoselect" flag is used.
Also applies to the modeless selection.
+ *clipboard-autoselectplus*
+ autoselectplus Like "autoselect" but using the + register instead of
+ the * register. Compare to the 'P' flag in
+ 'guioptions'.
+
+ *clipboard-autoselectml*
autoselectml Like "autoselect", but for the modeless selection
only. Compare to the 'A' flag in 'guioptions'.
+ *clipboard-html*
html When the clipboard contains HTML, use this when
pasting. When putting text on the clipboard, mark it
as HTML. This works to copy rendered HTML from
***************
*** 1479,1484 ****
--- 1504,1510 ----
Only supported for GTK version 2 and later.
Only available with the |+multi_byte| feature.
+ *clipboard-exclude*
exclude:{pattern}
Defines a pattern that is matched against the name of
the terminal 'term'. If there is a match, no
***************
*** 3547,3552 ****
--- 3600,3608 ----
windowing system's global selection unless explicitly told to
by a yank or delete operation for the "* register.
The same applies to the modeless selection.
+ *'go-P'*
+ 'P' Like autoselect but using the "+ register instead of the "*
+ register.
*'go-A'*
'A' Autoselect for the modeless selection. Like 'a', but only
applies to the modeless selection.
*** ../vim-7.3.596/src/normal.c 2012-06-29 13:56:01.000000000 +0200
--- src/normal.c 2012-07-10 15:44:24.000000000 +0200
***************
*** 1451,1457 ****
* This could call do_pending_operator() recursively, but that's OK
* because gui_yank will be TRUE for the nested call.
*/
! if (clip_star.available
&& oap->op_type != OP_NOP
&& !gui_yank
# ifdef FEAT_VISUAL
--- 1451,1457 ----
* This could call do_pending_operator() recursively, but that's OK
* because gui_yank will be TRUE for the nested call.
*/
! if ((clip_star.available || clip_plus.available)
&& oap->op_type != OP_NOP
&& !gui_yank
# ifdef FEAT_VISUAL
*** ../vim-7.3.596/src/ops.c 2012-06-29 13:34:15.000000000 +0200
--- src/ops.c 2012-07-10 16:20:29.000000000 +0200
***************
*** 962,969 ****
* selection too. */
if (name == '*' && clip_star.available)
{
! if (clip_isautosel())
! clip_update_selection();
may_get_selection(name);
}
#endif
--- 962,975 ----
* selection too. */
if (name == '*' && clip_star.available)
{
! if (clip_isautosel_star())
! clip_update_selection(&clip_star);
! may_get_selection(name);
! }
! if (name == '+' && clip_plus.available)
! {
! if (clip_isautosel_plus())
! clip_update_selection(&clip_plus);
may_get_selection(name);
}
#endif
***************
*** 3190,3196 ****
clip_own_selection(&clip_plus);
clip_gen_set_selection(&clip_plus);
! if (!clip_isautosel() && !did_star && curr == &(y_regs[PLUS_REGISTER]))
{
copy_yank_reg(&(y_regs[STAR_REGISTER]));
clip_own_selection(&clip_star);
--- 3196,3203 ----
clip_own_selection(&clip_plus);
clip_gen_set_selection(&clip_plus);
! if (!clip_isautosel_star() && !did_star
! && curr == &(y_regs[PLUS_REGISTER]))
{
copy_yank_reg(&(y_regs[STAR_REGISTER]));
clip_own_selection(&clip_star);
*** ../vim-7.3.596/src/screen.c 2012-06-13 18:06:32.000000000 +0200
--- src/screen.c 2012-07-10 16:39:01.000000000 +0200
***************
*** 519,526 ****
# endif
# ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. */
! if (clip_star.available && clip_isautosel())
! clip_update_selection();
# endif
#ifdef FEAT_GUI
/* Remove the cursor before starting to do anything, because
--- 519,528 ----
# endif
# ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. */
! if (clip_star.available && clip_isautosel_star())
! clip_update_selection(&clip_star);
! if (clip_plus.available && clip_isautosel_plus())
! clip_update_selection(&clip_plus);
# endif
#ifdef FEAT_GUI
/* Remove the cursor before starting to do anything, because
***************
*** 814,821 ****
#ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. */
! if (clip_star.available && clip_isautosel())
! clip_update_selection();
#endif
win_update(wp);
--- 816,825 ----
#ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. */
! if (clip_star.available && clip_isautosel_star())
! clip_update_selection(&clip_star);
! if (clip_plus.available && clip_isautosel_plus())
! clip_update_selection(&clip_plus);
#endif
win_update(wp);
***************
*** 3000,3006 ****
area_highlighting = TRUE;
attr = hl_attr(HLF_V);
#if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
! if (clip_star.available && !clip_star.owned && clip_isautosel())
attr = hl_attr(HLF_VNC);
#endif
}
--- 3004,3013 ----
area_highlighting = TRUE;
attr = hl_attr(HLF_V);
#if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
! if ((clip_star.available && !clip_star.owned
! && clip_isautosel_star())
! || (clip_plus.available && !clip_plus.owned
! && clip_isautosel_plus()))
attr = hl_attr(HLF_VNC);
#endif
}
***************
*** 9060,9066 ****
|| (wp != NULL && wp->w_width != Columns)
# endif
)
! clip_clear_selection();
else
clip_scroll_selection(-line_count);
#endif
--- 9067,9073 ----
|| (wp != NULL && wp->w_width != Columns)
# endif
)
! clip_clear_selection(&clip_star);
else
clip_scroll_selection(-line_count);
#endif
***************
*** 9281,9287 ****
|| (wp != NULL && wp->w_width != Columns)
# endif
)
! clip_clear_selection();
else
clip_scroll_selection(line_count);
#endif
--- 9288,9294 ----
|| (wp != NULL && wp->w_width != Columns)
# endif
)
! clip_clear_selection(&clip_star);
else
clip_scroll_selection(line_count);
#endif
*** ../vim-7.3.596/src/ui.c 2012-02-12 01:35:06.000000000 +0100
--- src/ui.c 2012-07-10 16:43:17.000000000 +0200
***************
*** 381,386 ****
--- 381,388 ----
#if defined(FEAT_CLIPBOARD) || defined(PROTO)
+ static void clip_copy_selection __ARGS((VimClipboard *clip));
+
/*
* Selection stuff using Visual mode, for cutting and pasting text to other
* windows.
***************
*** 423,431 ****
* this is called whenever VIsual mode is ended.
*/
void
! clip_update_selection()
{
! pos_T start, end;
/* If visual mode is only due to a redo command ("."), then ignore it */
if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
--- 425,434 ----
* this is called whenever VIsual mode is ended.
*/
void
! clip_update_selection(clip)
! VimClipboard *clip;
{
! pos_T start, end;
/* If visual mode is only due to a redo command ("."), then ignore it */
if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
***************
*** 444,460 ****
start = curwin->w_cursor;
end = VIsual;
}
! if (!equalpos(clip_star.start, start)
! || !equalpos(clip_star.end, end)
! || clip_star.vmode != VIsual_mode)
{
! clip_clear_selection();
! clip_star.start = start;
! clip_star.end = end;
! clip_star.vmode = VIsual_mode;
! clip_free_selection(&clip_star);
! clip_own_selection(&clip_star);
! clip_gen_set_selection(&clip_star);
}
}
}
--- 447,463 ----
start = curwin->w_cursor;
end = VIsual;
}
! if (!equalpos(clip->start, start)
! || !equalpos(clip->end, end)
! || clip->vmode != VIsual_mode)
{
! clip_clear_selection(clip);
! clip->start = start;
! clip->end = end;
! clip->vmode = VIsual_mode;
! clip_free_selection(clip);
! clip_own_selection(clip);
! clip_gen_set_selection(clip);
}
}
}
***************
*** 475,481 ****
int was_owned = cbd->owned;
cbd->owned = (clip_gen_own_selection(cbd) == OK);
! if (!was_owned && cbd == &clip_star)
{
/* May have to show a different kind of highlighting for the
* selected area. There is no specific redraw command for this,
--- 478,484 ----
int was_owned = cbd->owned;
cbd->owned = (clip_gen_own_selection(cbd) == OK);
! if (!was_owned && (cbd == &clip_star || cbd == &clip_plus))
{
/* May have to show a different kind of highlighting for the
* selected area. There is no specific redraw command for this,
***************
*** 483,489 ****
if (cbd->owned
&& (get_real_state() == VISUAL
|| get_real_state() == SELECTMODE)
! && clip_isautosel()
&& hl_attr(HLF_V) != hl_attr(HLF_VNC))
redraw_curbuf_later(INVERTED_ALL);
}
--- 486,493 ----
if (cbd->owned
&& (get_real_state() == VISUAL
|| get_real_state() == SELECTMODE)
! && (cbd == &clip_star ? clip_isautosel_star()
! : clip_isautosel_plus())
&& hl_attr(HLF_V) != hl_attr(HLF_VNC))
redraw_curbuf_later(INVERTED_ALL);
}
***************
*** 502,513 ****
#ifdef FEAT_X11
int was_owned = cbd->owned;
#endif
! int visual_selection = (cbd == &clip_star);
clip_free_selection(cbd);
cbd->owned = FALSE;
if (visual_selection)
! clip_clear_selection();
clip_gen_lose_selection(cbd);
#ifdef FEAT_X11
if (visual_selection)
--- 506,520 ----
#ifdef FEAT_X11
int was_owned = cbd->owned;
#endif
! int visual_selection = FALSE;
!
! if (cbd == &clip_star || cbd == &clip_plus)
! visual_selection = TRUE;
clip_free_selection(cbd);
cbd->owned = FALSE;
if (visual_selection)
! clip_clear_selection(cbd);
clip_gen_lose_selection(cbd);
#ifdef FEAT_X11
if (visual_selection)
***************
*** 518,524 ****
if (was_owned
&& (get_real_state() == VISUAL
|| get_real_state() == SELECTMODE)
! && clip_isautosel()
&& hl_attr(HLF_V) != hl_attr(HLF_VNC))
{
update_curbuf(INVERTED_ALL);
--- 525,532 ----
if (was_owned
&& (get_real_state() == VISUAL
|| get_real_state() == SELECTMODE)
! && (cbd == &clip_star ?
! clip_isautosel_star() : clip_isautosel_plus())
&& hl_attr(HLF_V) != hl_attr(HLF_VNC))
{
update_curbuf(INVERTED_ALL);
***************
*** 534,551 ****
#endif
}
! void
! clip_copy_selection()
! {
! if (VIsual_active && (State & NORMAL) && clip_star.available)
! {
! if (clip_isautosel())
! clip_update_selection();
! clip_free_selection(&clip_star);
! clip_own_selection(&clip_star);
! if (clip_star.owned)
! clip_get_selection(&clip_star);
! clip_gen_set_selection(&clip_star);
}
}
--- 542,559 ----
#endif
}
! static void
! clip_copy_selection(clip)
! VimClipboard *clip;
! {
! if (VIsual_active && (State & NORMAL) && clip->available)
! {
! clip_update_selection(clip);
! clip_free_selection(clip);
! clip_own_selection(clip);
! if (clip->owned)
! clip_get_selection(clip);
! clip_gen_set_selection(clip);
}
}
***************
*** 555,575 ****
void
clip_auto_select()
{
! if (clip_isautosel())
! clip_copy_selection();
}
/*
! * Return TRUE if automatic selection of Visual area is desired.
*/
int
! clip_isautosel()
{
return (
#ifdef FEAT_GUI
gui.in_use ? (vim_strchr(p_go, GO_ASEL) != NULL) :
#endif
! clip_autoselect);
}
--- 563,600 ----
void
clip_auto_select()
{
! if (clip_isautosel_star())
! clip_copy_selection(&clip_star);
! if (clip_isautosel_plus())
! clip_copy_selection(&clip_plus);
}
/*
! * Return TRUE if automatic selection of Visual area is desired for the *
! * register.
*/
int
! clip_isautosel_star()
{
return (
#ifdef FEAT_GUI
gui.in_use ? (vim_strchr(p_go, GO_ASEL) != NULL) :
#endif
! clip_autoselect_star);
! }
!
! /*
! * Return TRUE if automatic selection of Visual area is desired for the +
! * register.
! */
! int
! clip_isautosel_plus()
! {
! return (
! #ifdef FEAT_GUI
! gui.in_use ? (vim_strchr(p_go, GO_ASELPLUS) != NULL) :
! #endif
! clip_autoselect_plus);
}
***************
*** 657,663 ****
VimClipboard *cb = &clip_star;
if (cb->state == SELECT_DONE)
! clip_clear_selection();
row = check_row(row);
col = check_col(col);
--- 682,688 ----
VimClipboard *cb = &clip_star;
if (cb->state == SELECT_DONE)
! clip_clear_selection(cb);
row = check_row(row);
col = check_col(col);
***************
*** 749,755 ****
printf("Selection ended: (%u,%u) to (%u,%u)\n", cb->start.lnum,
cb->start.col, cb->end.lnum, cb->end.col);
#endif
! if (clip_isautosel()
|| (
#ifdef FEAT_GUI
gui.in_use ? (vim_strchr(p_go, GO_ASELML) != NULL) :
--- 774,780 ----
printf("Selection ended: (%u,%u) to (%u,%u)\n", cb->start.lnum,
cb->start.col, cb->end.lnum, cb->end.col);
#endif
! if (clip_isautosel_star()
|| (
#ifdef FEAT_GUI
gui.in_use ? (vim_strchr(p_go, GO_ASELML) != NULL) :
***************
*** 932,947 ****
* Called from outside to clear selected region from the display
*/
void
! clip_clear_selection()
{
- VimClipboard *cb = &clip_star;
! if (cb->state == SELECT_CLEARED)
return;
! clip_invert_area((int)cb->start.lnum, cb->start.col, (int)cb->end.lnum,
! cb->end.col, CLIP_CLEAR);
! cb->state = SELECT_CLEARED;
}
/*
--- 957,972 ----
* Called from outside to clear selected region from the display
*/
void
! clip_clear_selection(cbd)
! VimClipboard *cbd;
{
! if (cbd->state == SELECT_CLEARED)
return;
! clip_invert_area((int)cbd->start.lnum, cbd->start.col, (int)cbd->end.lnum,
! cbd->end.col, CLIP_CLEAR);
! cbd->state = SELECT_CLEARED;
}
/*
***************
*** 954,960 ****
if (clip_star.state == SELECT_DONE
&& row2 >= clip_star.start.lnum
&& row1 <= clip_star.end.lnum)
! clip_clear_selection();
}
/*
--- 979,985 ----
if (clip_star.state == SELECT_DONE
&& row2 >= clip_star.start.lnum
&& row1 <= clip_star.end.lnum)
! clip_clear_selection(&clip_star);
}
/*
*** ../vim-7.3.596/src/globals.h 2012-06-29 12:35:40.000000000 +0200
--- src/globals.h 2012-07-10 16:35:13.000000000 +0200
***************
*** 517,523 ****
# define CLIP_UNNAMED_PLUS 2
EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
! EXTERN int clip_autoselect INIT(= FALSE);
EXTERN int clip_autoselectml INIT(= FALSE);
EXTERN int clip_html INIT(= FALSE);
EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
--- 517,524 ----
# define CLIP_UNNAMED_PLUS 2
EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
! EXTERN int clip_autoselect_star INIT(= FALSE);
! EXTERN int clip_autoselect_plus INIT(= FALSE);
EXTERN int clip_autoselectml INIT(= FALSE);
EXTERN int clip_html INIT(= FALSE);
EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
*** ../vim-7.3.596/src/proto/ui.pro 2010-08-15 21:57:28.000000000 +0200
--- src/proto/ui.pro 2012-07-10 16:37:35.000000000 +0200
***************
*** 11,27 ****
void ui_new_shellsize __ARGS((void));
void ui_breakcheck __ARGS((void));
void clip_init __ARGS((int can_use));
! void clip_update_selection __ARGS((void));
void clip_own_selection __ARGS((VimClipboard *cbd));
void clip_lose_selection __ARGS((VimClipboard *cbd));
- void clip_copy_selection __ARGS((void));
void clip_auto_select __ARGS((void));
! int clip_isautosel __ARGS((void));
void clip_modeless __ARGS((int button, int is_click, int is_drag));
void clip_start_selection __ARGS((int col, int row, int repeated_click));
void clip_process_selection __ARGS((int button, int col, int row, int_u repeated_click));
void clip_may_redraw_selection __ARGS((int row, int col, int len));
! void clip_clear_selection __ARGS((void));
void clip_may_clear_selection __ARGS((int row1, int row2));
void clip_scroll_selection __ARGS((int rows));
void clip_copy_modeless_selection __ARGS((int both));
--- 11,27 ----
void ui_new_shellsize __ARGS((void));
void ui_breakcheck __ARGS((void));
void clip_init __ARGS((int can_use));
! void clip_update_selection __ARGS((VimClipboard *clip));
void clip_own_selection __ARGS((VimClipboard *cbd));
void clip_lose_selection __ARGS((VimClipboard *cbd));
void clip_auto_select __ARGS((void));
! int clip_isautosel_star __ARGS((void));
! int clip_isautosel_plus __ARGS((void));
void clip_modeless __ARGS((int button, int is_click, int is_drag));
void clip_start_selection __ARGS((int col, int row, int repeated_click));
void clip_process_selection __ARGS((int button, int col, int row, int_u repeated_click));
void clip_may_redraw_selection __ARGS((int row, int col, int len));
! void clip_clear_selection __ARGS((VimClipboard *cbd));
void clip_may_clear_selection __ARGS((int row1, int row2));
void clip_scroll_selection __ARGS((int rows));
void clip_copy_modeless_selection __ARGS((int both));
*** ../vim-7.3.596/src/option.h 2012-06-06 16:12:54.000000000 +0200
--- src/option.h 2012-07-10 15:54:32.000000000 +0200
***************
*** 229,234 ****
--- 229,235 ----
#define GO_MENUS 'm' /* use menu bar */
#define GO_NOSYSMENU 'M' /* don't source system menu */
#define GO_POINTER 'p' /* pointer enter/leave callbacks */
+ #define GO_ASELPLUS 'P' /* autoselectPlus */
#define GO_RIGHT 'r' /* use right scrollbar */
#define GO_VRIGHT 'R' /* right scrollbar with vert split */
#define GO_TEAROFF 't' /* add tear-off menu items */
*** ../vim-7.3.596/src/gui.c 2012-05-27 00:37:45.000000000 +0200
--- src/gui.c 2012-07-10 16:43:34.000000000 +0200
***************
*** 3154,3160 ****
}
if (clip_star.state != SELECT_CLEARED && !did_clip)
! clip_clear_selection();
#endif
/* Don't put events in the input queue now. */
--- 3154,3160 ----
}
if (clip_star.state != SELECT_CLEARED && !did_clip)
! clip_clear_selection(&clip_star);
#endif
/* Don't put events in the input queue now. */
*** ../vim-7.3.596/src/version.c 2012-07-10 15:18:18.000000000 +0200
--- src/version.c 2012-07-10 16:32:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 597,
/**/
--
hundred-and-one symptoms of being an internet addict:
106. When told to "go to your room" you inform your parents that you
can't...because you were kicked out and banned.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

73
7.3.598 Normal file
View File

@ -0,0 +1,73 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.598
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.598
Problem: Cannot act upon end of completion. (Taro Muraoka)
Solution: Add an autocommand event that is triggered when completion has
finished. (Idea by Florian Klein)
Files: src/edit.c, src/fileio.c, src/vim.h
*** ../vim-7.3.597/src/edit.c 2012-07-06 13:36:36.000000000 +0200
--- src/edit.c 2012-07-10 17:02:37.000000000 +0200
***************
*** 3824,3829 ****
--- 3824,3834 ----
if (want_cindent && in_cinkeys(KEY_COMPLETE, ' ', inindent(0)))
do_c_expr_indent();
#endif
+ #ifdef FEAT_AUTOCMD
+ /* Trigger the CompleteDone event to give scripts a chance to act
+ * upon the completion. */
+ apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
+ #endif
}
}
*** ../vim-7.3.597/src/fileio.c 2012-06-13 14:28:16.000000000 +0200
--- src/fileio.c 2012-07-10 17:05:51.000000000 +0200
***************
*** 7643,7648 ****
--- 7643,7649 ----
{"CmdwinEnter", EVENT_CMDWINENTER},
{"CmdwinLeave", EVENT_CMDWINLEAVE},
{"ColorScheme", EVENT_COLORSCHEME},
+ {"CompleteDone", EVENT_COMPLETEDONE},
{"CursorHold", EVENT_CURSORHOLD},
{"CursorHoldI", EVENT_CURSORHOLDI},
{"CursorMoved", EVENT_CURSORMOVED},
*** ../vim-7.3.597/src/vim.h 2012-07-10 13:41:09.000000000 +0200
--- src/vim.h 2012-07-10 17:06:24.000000000 +0200
***************
*** 1241,1246 ****
--- 1241,1247 ----
EVENT_CMDWINENTER, /* after entering the cmdline window */
EVENT_CMDWINLEAVE, /* before leaving the cmdline window */
EVENT_COLORSCHEME, /* after loading a colorscheme */
+ EVENT_COMPLETEDONE, /* after finishing insert complete */
EVENT_FILEAPPENDPOST, /* after appending to a file */
EVENT_FILEAPPENDPRE, /* before appending to a file */
EVENT_FILEAPPENDCMD, /* append to a file using command */
*** ../vim-7.3.597/src/version.c 2012-07-10 16:49:08.000000000 +0200
--- src/version.c 2012-07-10 17:08:41.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 598,
/**/
--
Laughing helps. It's like jogging on the inside.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

107
7.3.599 Normal file
View File

@ -0,0 +1,107 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.599
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.599 (after 7.3.597)
Problem: Missing change in one file.
Solution: Patch for changed clip_autoselect().
Files: src/option.c
*** ../vim-7.3.598/src/option.c 2012-06-29 15:51:26.000000000 +0200
--- src/option.c 2012-07-10 16:35:07.000000000 +0200
***************
*** 7377,7383 ****
check_clipboard_option()
{
int new_unnamed = 0;
! int new_autoselect = FALSE;
int new_autoselectml = FALSE;
int new_html = FALSE;
regprog_T *new_exclude_prog = NULL;
--- 7377,7384 ----
check_clipboard_option()
{
int new_unnamed = 0;
! int new_autoselect_star = FALSE;
! int new_autoselect_plus = FALSE;
int new_autoselectml = FALSE;
int new_html = FALSE;
regprog_T *new_exclude_prog = NULL;
***************
*** 7398,7410 ****
p += 11;
}
else if (STRNCMP(p, "autoselect", 10) == 0
! && (p[10] == ',' || p[10] == NUL))
{
! new_autoselect = TRUE;
p += 10;
}
else if (STRNCMP(p, "autoselectml", 12) == 0
! && (p[12] == ',' || p[12] == NUL))
{
new_autoselectml = TRUE;
p += 12;
--- 7399,7417 ----
p += 11;
}
else if (STRNCMP(p, "autoselect", 10) == 0
! && (p[10] == ',' || p[10] == NUL))
{
! new_autoselect_star = TRUE;
p += 10;
}
+ else if (STRNCMP(p, "autoselectplus", 14) == 0
+ && (p[14] == ',' || p[14] == NUL))
+ {
+ new_autoselect_plus = TRUE;
+ p += 14;
+ }
else if (STRNCMP(p, "autoselectml", 12) == 0
! && (p[12] == ',' || p[12] == NUL))
{
new_autoselectml = TRUE;
p += 12;
***************
*** 7433,7439 ****
if (errmsg == NULL)
{
clip_unnamed = new_unnamed;
! clip_autoselect = new_autoselect;
clip_autoselectml = new_autoselectml;
clip_html = new_html;
vim_free(clip_exclude_prog);
--- 7440,7447 ----
if (errmsg == NULL)
{
clip_unnamed = new_unnamed;
! clip_autoselect_star = new_autoselect_star;
! clip_autoselect_plus = new_autoselect_plus;
clip_autoselectml = new_autoselectml;
clip_html = new_html;
vim_free(clip_exclude_prog);
*** ../vim-7.3.598/src/version.c 2012-07-10 17:14:50.000000000 +0200
--- src/version.c 2012-07-10 18:30:17.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 599,
/**/
--
hundred-and-one symptoms of being an internet addict:
108. While reading a magazine, you look for the Zoom icon for a better
look at a photograph.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

68
7.3.600 Normal file
View File

@ -0,0 +1,68 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.600
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.600
Problem: <f-args> is not expanded properly with DBCS encoding.
Solution: Skip over character instead of byte. (Yukihiro Nakadaira)
Files: src/ex_docmd.c
*** ../vim-7.3.599/src/ex_docmd.c 2012-07-06 18:27:34.000000000 +0200
--- src/ex_docmd.c 2012-07-10 19:20:10.000000000 +0200
***************
*** 5845,5852 ****
--- 5845,5858 ----
}
else
{
+ #ifdef FEAT_MBYTE
+ int charlen = (*mb_ptr2len)(p);
+ len += charlen;
+ p += charlen;
+ #else
++len;
++p;
+ #endif
}
}
***************
*** 5889,5895 ****
}
else
{
! *q++ = *p++;
}
}
*q++ = '"';
--- 5895,5901 ----
}
else
{
! MB_COPY_CHAR(p, q);
}
}
*q++ = '"';
*** ../vim-7.3.599/src/version.c 2012-07-10 18:31:49.000000000 +0200
--- src/version.c 2012-07-10 19:21:29.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 600,
/**/
--
In a world without walls and borders, who needs windows and gates?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

51
7.3.601 Normal file
View File

@ -0,0 +1,51 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.601
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.601
Problem: Bad code style.
Solution: Insert space, remove parens.
Files: src/farsi.c
*** ../vim-7.3.600/src/farsi.c 2010-08-15 21:57:28.000000000 +0200
--- src/farsi.c 2012-07-12 21:59:15.000000000 +0200
***************
*** 1813,1819 ****
ptr[i] = toF_leading(ptr[i]);
++i;
! while(canF_Rjoin(ptr[i]) && (i < llen))
{
ptr[i] = toF_Rjoin(ptr[i]);
if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
--- 1813,1819 ----
ptr[i] = toF_leading(ptr[i]);
++i;
! while (canF_Rjoin(ptr[i]) && i < llen)
{
ptr[i] = toF_Rjoin(ptr[i]);
if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
*** ../vim-7.3.600/src/version.c 2012-07-10 19:25:06.000000000 +0200
--- src/version.c 2012-07-16 17:25:48.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 601,
/**/
--
There are three kinds of persons: Those who can count and those who can't.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.3.602 Normal file
View File

@ -0,0 +1,55 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.602
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.602
Problem: Missing files in distribution.
Solution: Update the list of files.
Files: Filelist
*** ../vim-7.3.601/Filelist 2011-10-20 16:35:25.000000000 +0200
--- Filelist 2012-06-20 12:06:41.000000000 +0200
***************
*** 463,468 ****
--- 463,469 ----
runtime/macros/hanoi/hanoi.vim \
runtime/macros/hanoi/poster \
runtime/macros/justify.vim \
+ runtime/macros/less.bat \
runtime/macros/less.sh \
runtime/macros/less.vim \
runtime/macros/life/click.me \
***************
*** 666,671 ****
--- 667,674 ----
# generic language files
LANG_GEN = \
+ runtime/doc/*-de.1 \
+ runtime/doc/*-de.UTF-8.1 \
runtime/doc/*-fr.1 \
runtime/doc/*-fr.UTF-8.1 \
runtime/doc/*-it.1 \
*** ../vim-7.3.601/src/version.c 2012-07-16 17:26:18.000000000 +0200
--- src/version.c 2012-07-16 17:27:31.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 602,
/**/
--
Never eat yellow snow.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

370
7.3.603 Normal file
View File

@ -0,0 +1,370 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.603
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.603
Problem: It is possible to add replace builtin functions by calling
extend() on g:.
Solution: Add a flag to a dict to indicate it is a scope. Check for
existing functions. (ZyX)
Files: src/buffer.c, src/eval.c, src/proto/eval.pro, src/structs.h,
src/testdir/test34.in, src/testdir/test34.ok, src/window.c
*** ../vim-7.3.602/src/buffer.c 2012-07-10 15:18:18.000000000 +0200
--- src/buffer.c 2012-07-16 16:52:58.000000000 +0200
***************
*** 1747,1753 ****
buf->b_wininfo->wi_win = curwin;
#ifdef FEAT_EVAL
! init_var_dict(&buf->b_vars, &buf->b_bufvar); /* init b: variables */
#endif
#ifdef FEAT_SYN_HL
hash_init(&buf->b_s.b_keywtab);
--- 1747,1754 ----
buf->b_wininfo->wi_win = curwin;
#ifdef FEAT_EVAL
! /* init b: variables */
! init_var_dict(&buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
#endif
#ifdef FEAT_SYN_HL
hash_init(&buf->b_s.b_keywtab);
*** ../vim-7.3.602/src/eval.c 2012-07-10 13:41:09.000000000 +0200
--- src/eval.c 2012-07-16 17:18:11.000000000 +0200
***************
*** 850,857 ****
int i;
struct vimvar *p;
! init_var_dict(&globvardict, &globvars_var);
! init_var_dict(&vimvardict, &vimvars_var);
vimvardict.dv_lock = VAR_FIXED;
hash_init(&compat_hashtab);
hash_init(&func_hashtab);
--- 850,857 ----
int i;
struct vimvar *p;
! init_var_dict(&globvardict, &globvars_var, VAR_DEF_SCOPE);
! init_var_dict(&vimvardict, &vimvars_var, VAR_SCOPE);
vimvardict.dv_lock = VAR_FIXED;
hash_init(&compat_hashtab);
hash_init(&func_hashtab);
***************
*** 2725,2738 ****
lp->ll_dict = lp->ll_tv->vval.v_dict;
lp->ll_di = dict_find(lp->ll_dict, key, len);
! /* When assigning to g: check that a function and variable name is
! * valid. */
! if (rettv != NULL && lp->ll_dict == &globvardict)
{
! if (rettv->v_type == VAR_FUNC
&& var_check_func_name(key, lp->ll_di == NULL))
! return NULL;
! if (!valid_varname(key))
return NULL;
}
--- 2725,2750 ----
lp->ll_dict = lp->ll_tv->vval.v_dict;
lp->ll_di = dict_find(lp->ll_dict, key, len);
! /* When assigning to a scope dictionary check that a function and
! * variable name is valid (only variable name unless it is l: or
! * g: dictionary). Disallow overwriting a builtin function. */
! if (rettv != NULL && lp->ll_dict->dv_scope != 0)
{
! int prevval;
! int wrong;
!
! if (len != -1)
! {
! prevval = key[len];
! key[len] = NUL;
! }
! wrong = (lp->ll_dict->dv_scope == VAR_DEF_SCOPE
! && rettv->v_type == VAR_FUNC
&& var_check_func_name(key, lp->ll_di == NULL))
! || !valid_varname(key);
! if (len != -1)
! key[len] = prevval;
! if (wrong)
return NULL;
}
***************
*** 6951,6957 ****
d = (dict_T *)alloc(sizeof(dict_T));
if (d != NULL)
{
! /* Add the list to the list of dicts for garbage collection. */
if (first_dict != NULL)
first_dict->dv_used_prev = d;
d->dv_used_next = first_dict;
--- 6963,6969 ----
d = (dict_T *)alloc(sizeof(dict_T));
if (d != NULL)
{
! /* Add the dict to the list of dicts for garbage collection. */
if (first_dict != NULL)
first_dict->dv_used_prev = d;
d->dv_used_next = first_dict;
***************
*** 6960,6965 ****
--- 6972,6978 ----
hash_init(&d->dv_hashtab);
d->dv_lock = 0;
+ d->dv_scope = 0;
d->dv_refcount = 0;
d->dv_copyID = 0;
}
***************
*** 10203,10208 ****
--- 10216,10234 ----
{
--todo;
di1 = dict_find(d1, hi2->hi_key, -1);
+ if (d1->dv_scope != 0)
+ {
+ /* Disallow replacing a builtin function in l: and g:.
+ * Check the key to be valid when adding to any
+ * scope. */
+ if (d1->dv_scope == VAR_DEF_SCOPE
+ && HI2DI(hi2)->di_tv.v_type == VAR_FUNC
+ && var_check_func_name(hi2->hi_key,
+ di1 == NULL))
+ break;
+ if (!valid_varname(hi2->hi_key))
+ break;
+ }
if (di1 == NULL)
{
di1 = dictitem_copy(HI2DI(hi2));
***************
*** 20027,20033 ****
{
sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
(scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
! init_var_dict(&sv->sv_dict, &sv->sv_var);
++ga_scripts.ga_len;
}
}
--- 20053,20059 ----
{
sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
(scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
! init_var_dict(&sv->sv_dict, &sv->sv_var, VAR_SCOPE);
++ga_scripts.ga_len;
}
}
***************
*** 20038,20049 ****
* point to it.
*/
void
! init_var_dict(dict, dict_var)
dict_T *dict;
dictitem_T *dict_var;
{
hash_init(&dict->dv_hashtab);
dict->dv_lock = 0;
dict->dv_refcount = DO_NOT_FREE_CNT;
dict->dv_copyID = 0;
dict_var->di_tv.vval.v_dict = dict;
--- 20064,20077 ----
* point to it.
*/
void
! init_var_dict(dict, dict_var, scope)
dict_T *dict;
dictitem_T *dict_var;
+ int scope;
{
hash_init(&dict->dv_hashtab);
dict->dv_lock = 0;
+ dict->dv_scope = scope;
dict->dv_refcount = DO_NOT_FREE_CNT;
dict->dv_copyID = 0;
dict_var->di_tv.vval.v_dict = dict;
***************
*** 22304,22310 ****
/*
* Init l: variables.
*/
! init_var_dict(&fc->l_vars, &fc->l_vars_var);
if (selfdict != NULL)
{
/* Set l:self to "selfdict". Use "name" to avoid a warning from
--- 22332,22338 ----
/*
* Init l: variables.
*/
! init_var_dict(&fc->l_vars, &fc->l_vars_var, VAR_DEF_SCOPE);
if (selfdict != NULL)
{
/* Set l:self to "selfdict". Use "name" to avoid a warning from
***************
*** 22325,22331 ****
* Set a:0 to "argcount".
* Set a:000 to a list with room for the "..." arguments.
*/
! init_var_dict(&fc->l_avars, &fc->l_avars_var);
add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0",
(varnumber_T)(argcount - fp->uf_args.ga_len));
/* Use "name" to avoid a warning from some compiler that checks the
--- 22353,22359 ----
* Set a:0 to "argcount".
* Set a:000 to a list with room for the "..." arguments.
*/
! init_var_dict(&fc->l_avars, &fc->l_avars_var, VAR_SCOPE);
add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0",
(varnumber_T)(argcount - fp->uf_args.ga_len));
/* Use "name" to avoid a warning from some compiler that checks the
*** ../vim-7.3.602/src/proto/eval.pro 2012-06-29 12:54:32.000000000 +0200
--- src/proto/eval.pro 2012-07-16 16:55:16.000000000 +0200
***************
*** 93,99 ****
char_u *get_tv_string_chk __ARGS((typval_T *varp));
char_u *get_var_value __ARGS((char_u *name));
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));
--- 93,99 ----
char_u *get_tv_string_chk __ARGS((typval_T *varp));
char_u *get_var_value __ARGS((char_u *name));
void new_script_vars __ARGS((scid_T id));
! void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var, int scope));
void vars_clear __ARGS((hashtab_T *ht));
void copy_tv __ARGS((typval_T *from, typval_T *to));
void ex_echo __ARGS((exarg_T *eap));
*** ../vim-7.3.602/src/structs.h 2012-06-06 19:02:40.000000000 +0200
--- src/structs.h 2012-07-16 16:56:43.000000000 +0200
***************
*** 1106,1111 ****
--- 1106,1116 ----
#define VAR_DICT 5 /* "v_dict" is used */
#define VAR_FLOAT 6 /* "v_float" is used */
+ /* Values for "dv_scope". */
+ #define VAR_SCOPE 1 /* a:, v:, s:, etc. scope dictionaries */
+ #define VAR_DEF_SCOPE 2 /* l:, g: scope dictionaries: here funcrefs are not
+ allowed to mask existing functions */
+
/* Values for "v_lock". */
#define VAR_LOCKED 1 /* locked with lock(), can use unlock() */
#define VAR_FIXED 2 /* locked forever */
***************
*** 1181,1186 ****
--- 1186,1192 ----
int dv_copyID; /* ID used by deepcopy() */
dict_T *dv_copydict; /* copied dict used by deepcopy() */
char dv_lock; /* zero, VAR_LOCKED, VAR_FIXED */
+ char dv_scope; /* zero, VAR_SCOPE, VAR_DEF_SCOPE */
dict_T *dv_used_next; /* next dict in used dicts list */
dict_T *dv_used_prev; /* previous dict in used dicts list */
};
*** ../vim-7.3.602/src/testdir/test34.in 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test34.in 2012-07-16 16:51:29.000000000 +0200
***************
*** 1,5 ****
--- 1,6 ----
Test for user functions.
Also test an <expr> mapping calling a function.
+ Also test that a builtin function cannot be replaced.
STARTTEST
:so small.vim
***************
*** 58,64 ****
---*---
(one
(two
! [(one again:$-5,$w! test.out
:delfunc Table
:delfunc Compute
:delfunc Expr1
--- 59,68 ----
---*---
(one
(two
! [(one again:call append(line('$'), max([1, 2, 3]))
! :call extend(g:, {'max': function('min')})
! :call append(line('$'), max([1, 2, 3]))
! :$-7,$w! test.out
:delfunc Table
:delfunc Compute
:delfunc Expr1
*** ../vim-7.3.602/src/testdir/test34.ok 2011-10-12 22:02:07.000000000 +0200
--- src/testdir/test34.ok 2012-07-16 16:43:15.000000000 +0200
***************
*** 4,6 ****
--- 4,8 ----
1. one
2. two
1. one again
+ 3
+ 3
*** ../vim-7.3.602/src/window.c 2012-07-06 18:27:34.000000000 +0200
--- src/window.c 2012-07-16 16:53:45.000000000 +0200
***************
*** 3468,3474 ****
# endif
#ifdef FEAT_EVAL
/* init t: variables */
! init_var_dict(&tp->tp_vars, &tp->tp_winvar);
#endif
tp->tp_ch_used = p_ch;
}
--- 3468,3474 ----
# endif
#ifdef FEAT_EVAL
/* init t: variables */
! init_var_dict(&tp->tp_vars, &tp->tp_winvar, VAR_SCOPE);
#endif
tp->tp_ch_used = p_ch;
}
***************
*** 4410,4416 ****
#endif
#ifdef FEAT_EVAL
/* init w: variables */
! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
#endif
#ifdef FEAT_FOLDING
foldInitWin(new_wp);
--- 4410,4416 ----
#endif
#ifdef FEAT_EVAL
/* init w: variables */
! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar, VAR_SCOPE);
#endif
#ifdef FEAT_FOLDING
foldInitWin(new_wp);
*** ../vim-7.3.602/src/version.c 2012-07-16 17:27:57.000000000 +0200
--- src/version.c 2012-07-16 17:29:06.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 603,
/**/
--
Birthdays are healthy. The more you have them, the longer you live.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

60
7.3.604 Normal file
View File

@ -0,0 +1,60 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.604
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.604
Problem: inputdialog() doesn't use the cancel argument in the console.
(David Fishburn)
Solution: Use the third argument. (Christian Brabant)
Files: src/eval.c
*** ../vim-7.3.603/src/eval.c 2012-07-16 17:31:48.000000000 +0200
--- src/eval.c 2012-07-16 19:20:47.000000000 +0200
***************
*** 12940,12945 ****
--- 12940,12946 ----
int xp_namelen;
long argt;
+ /* input() with a third argument: completion */
rettv->vval.v_string = NULL;
xp_name = get_tv_string_buf_chk(&argvars[2], buf);
***************
*** 12958,12963 ****
--- 12959,12969 ----
rettv->vval.v_string =
getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
xp_type, xp_arg);
+ if (rettv->vval.v_string == NULL
+ && argvars[1].v_type != VAR_UNKNOWN
+ && argvars[2].v_type != VAR_UNKNOWN)
+ rettv->vval.v_string = vim_strsave(get_tv_string_buf(
+ &argvars[2], buf));
vim_free(xp_arg);
*** ../vim-7.3.603/src/version.c 2012-07-16 17:31:48.000000000 +0200
--- src/version.c 2012-07-16 19:23:11.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 604,
/**/
--
hundred-and-one symptoms of being an internet addict:
135. You cut classes or miss work so you can stay home and browse the web.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -546,3 +546,92 @@ Individual patches for Vim 7.3:
3925 7.3.513 cannot use CTRL-E and CTRL-Y with "r"
7792 7.3.514 no completion for :history command
2073 7.3.515 'wildignorecase' only applies to the last part of the path
2784 7.3.516 extend(o, o) may crash Vim
1718 7.3.517 crash when using "vipvv"
1976 7.3.518 ":helptags" cannot find tag when 'encoding' is double-byte
1894 7.3.519 completefunction cannot indicate end of completion mode
4238 7.3.520 Gvim starts up slow on Unbuntu 12.04
3388 7.3.521 spell checking may crash when using multi-byte characters
1885 7.3.522 crash in vim_realloc() when using MEM_PROFILE
3493 7.3.523 ":diffupdate" doesn't check for files changed elsewhere
1271 7.3.524 missing comma in version.c
1884 7.3.525 compiler warning on 64 bit MS-Windows
1950 7.3.526 confusing indenting for #ifdef
4408 7.3.527 clang complains about non-ASCII characters in a string
5919 7.3.528 crash when closing last window in a tab
2439 7.3.529 using a count before "v" and "V" does not work
1559 7.3.530 (after 7.3.520) gvim does not work when 'guioptions' has "f"
1546 7.3.531 (after 7.3.530) GUI does not work on MS-Windows
1685 7.3.532 compiler warning from Clang
1323 7.3.533 memory leak when writing undo file
2944 7.3.534 (after 7.3.461) autoindent fails with InsertCharPre autocmd
8436 7.3.535 many #ifdefs for MB_MAXBYTES
2014 7.3.536 German sharp s is not seen as a word character
1352 7.3.537 unecessary call to init_spell_chartab()
9735 7.3.538 'efm' does not handle Tabs in pointer lines
1625 7.3.539 redraw multi-byte char on command line does not work properly
1658 7.3.540 cursor is left on the text instead of the command line
31063 7.3.541 when joining lines comment leaders need to be removed manually
2240 7.3.542 (after 7.3.506) function is sometimes unused
1632 7.3.543 the cursor is in the wrong line after using ":copen"
3088 7.3.544 no autocommand for :quit before deciding to exit
10435 7.3.545 autocommands may close a window that is already being closed
1628 7.3.546 weird line break
1661 7.3.547 (after 7.3.541) compiler warning for uninitialized variable
1552 7.3.548 compiler warning on 64 bit Windows
2957 7.3.549 in 'cinoptions' "0s" is interpreted as one shiftwidth
4392 7.3.550 (after 7.3.541) with "j" in 'fo' a list leader is not removed
13725 7.3.551 on :tablose a TabEnter autocommand is triggered too early
17001 7.3.552 inside comments formatting does not use the "2" flag in 'fo'
2515 7.3.553 text displayed one cell off if 'listchars' contains "precedes"
1660 7.3.554 compiler warning for unused argument
7968 7.3.555 building on IBM z/OS fails
2194 7.3.556 compiler warnings on 64 bit Windows
2958 7.3.557 crash when an autocommand wipes out a buffer when it is hidden
2956 7.3.558 (after 7.3.552) memory access error
3483 7.3.559 home_replace() does not work with 8.3 filename
1551 7.3.560 get an error for a locked argument in extend()
1511 7.3.561 refresh: always in a complete function breaks the "." command
1659 7.3.562 ":profdel" works when the +profile feature is disabled
2742 7.3.563 (after 7.3.557) can't build with tiny features
1785 7.3.564 (after 7.3.559) warning for pointer conversion
1806 7.3.565 can't generate proto file for Python 3
2363 7.3.566 (after 7.3.561) redo works incorrectly without refresh:always
1739 7.3.567 missing copyright notice
3890 7.3.568 bad indents for #ifdefs
133265 7.3.569 evaluating Vim expression in Python is insufficient
4659 7.3.570 ":vimgrep" does not obey 'wildignore'
3915 7.3.571 duplicated condition
1915 7.3.572 duplicate statement in if and else
1419 7.3.573 using array index before bounds checking
2491 7.3.574 a CTRL-L character is not pasted on the search command line
1586 7.3.575 "ygt" tries to yank instead of giving an error
7301 7.3.576 formatting of lists inside comments is not right yet
6542 7.3.577 size of memory does not fit in 32 bit unsigned
2025 7.3.578 misplaced declaration.
7644 7.3.579 (after 7.3.569) can't compile with Python 2.5
1517 7.3.580 warning on 64 bit MS-Windows
4236 7.3.581 problems compiling with Python
1342 7.3.582 missing pieces in test OK file
3125 7.3.583 PyObject_NextNotImplemented is not defined before Python 2.7
4088 7.3.584 PyCObject is not always defined
1696 7.3.585 calling changed_bytes() too often
3055 7.3.586 MEMORYSTATUSEX not defined when compiling with Cygwin or MingW
2248 7.3.587 compiler warning for local var shadowing global var
2464 7.3.588 crash on NULL pointer
1974 7.3.589 crash when $HOME is not set
1804 7.3.590 the '< and '> marks cannot be set directly
5247 7.3.591 can only move to a tab by absolute number
3343 7.3.592 Vim on GTK does not support g:browsefilter
2237 7.3.593 no easy way to decide if b:browsefilter will work
4873 7.3.594 the X command server sends an empty reply for as-keys requests
3921 7.3.595 the X command server responds slowly
4967 7.3.596 can't remove all signs for a file or buffer
21669 7.3.597 'clipboard' "autoselect" only applies to the * register
2635 7.3.598 cannot act upon end of insert mode completion
3042 7.3.599 (after 7.3.597) missing change in one file
1572 7.3.600 <f-args> is not expanded properly with DBCS encoding
1492 7.3.601 bad code style
1532 7.3.602 missing files in distribution
11248 7.3.603 it is possible to add or replace builtin functions
1861 7.3.604 inputdialog() doesn't use the cancel argument in the console

208
vim.spec
View File

@ -18,7 +18,7 @@
#used for pre-releases:
%define beta %{nil}
%define vimdir vim73%{?beta}
%define patchlevel 515
%define patchlevel 604
Summary: The VIM editor
URL: http://www.vim.org/
@ -571,6 +571,95 @@ Patch512: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.512
Patch513: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.513
Patch514: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.514
Patch515: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.515
Patch516: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.516
Patch517: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.517
Patch518: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.518
Patch519: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.519
Patch520: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.520
Patch521: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.521
Patch522: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.522
Patch523: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.523
Patch524: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.524
Patch525: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.525
Patch526: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.526
Patch527: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.527
Patch528: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.528
Patch529: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.529
Patch530: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.530
Patch531: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.531
Patch532: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.532
Patch533: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.533
Patch534: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.534
Patch535: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.535
Patch536: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.536
Patch537: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.537
Patch538: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.538
Patch539: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.539
Patch540: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.540
Patch541: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.541
Patch542: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.542
Patch543: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.543
Patch544: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.544
Patch545: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.545
Patch546: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.546
Patch547: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.547
Patch548: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.548
Patch549: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.549
Patch550: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.550
Patch551: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.551
Patch552: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.552
Patch553: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.553
Patch554: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.554
Patch555: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.555
Patch556: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.556
Patch557: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.557
Patch558: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.558
Patch559: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.559
Patch560: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.560
Patch561: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.561
Patch562: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.562
Patch563: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.563
Patch564: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.564
Patch565: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.565
Patch566: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.566
Patch567: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.567
Patch568: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.568
Patch569: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.569
Patch570: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.570
Patch571: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.571
Patch572: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.572
Patch573: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.573
Patch574: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.574
Patch575: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.575
Patch576: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.576
Patch577: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.577
Patch578: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.578
Patch579: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.579
Patch580: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.580
Patch581: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.581
Patch582: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.582
Patch583: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.583
Patch584: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.584
Patch585: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.585
Patch586: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.586
Patch587: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.587
Patch588: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.588
Patch589: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.589
Patch590: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.590
Patch591: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.591
Patch592: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.592
Patch593: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.593
Patch594: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.594
Patch595: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.595
Patch596: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.596
Patch597: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.597
Patch598: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.598
Patch599: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.599
Patch600: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.600
Patch601: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.601
Patch602: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.602
Patch603: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.603
Patch604: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.604
Patch3000: vim-7.3-syntax.patch
Patch3002: vim-7.1-nowarnings.patch
@ -1232,6 +1321,95 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
%patch513 -p0
%patch514 -p0
%patch515 -p0
%patch516 -p0
%patch517 -p0
%patch518 -p0
%patch519 -p0
%patch520 -p0
%patch521 -p0
%patch522 -p0
%patch523 -p0
%patch524 -p0
%patch525 -p0
%patch526 -p0
%patch527 -p0
%patch528 -p0
%patch529 -p0
%patch530 -p0
%patch531 -p0
%patch532 -p0
%patch533 -p0
%patch534 -p0
%patch535 -p0
%patch536 -p0
%patch537 -p0
%patch538 -p0
%patch539 -p0
%patch540 -p0
%patch541 -p0
%patch542 -p0
%patch543 -p0
%patch544 -p0
%patch545 -p0
%patch546 -p0
%patch547 -p0
%patch548 -p0
%patch549 -p0
%patch550 -p0
%patch551 -p0
%patch552 -p0
%patch553 -p0
%patch554 -p0
%patch555 -p0
%patch556 -p0
%patch557 -p0
%patch558 -p0
%patch559 -p0
%patch560 -p0
%patch561 -p0
%patch562 -p0
%patch563 -p0
%patch564 -p0
%patch565 -p0
%patch566 -p0
%patch567 -p0
%patch568 -p0
%patch569 -p0
%patch570 -p0
%patch571 -p0
%patch572 -p0
%patch573 -p0
%patch574 -p0
%patch575 -p0
%patch576 -p0
%patch577 -p0
%patch578 -p0
%patch579 -p0
%patch580 -p0
%patch581 -p0
%patch582 -p0
%patch583 -p0
%patch584 -p0
%patch585 -p0
%patch586 -p0
%patch587 -p0
%patch588 -p0
%patch589 -p0
%patch590 -p0
%patch591 -p0
%patch592 -p0
%patch593 -p0
%patch594 -p0
%patch595 -p0
%patch596 -p0
%patch597 -p0
%patch598 -p0
%patch599 -p0
%patch600 -p0
%patch601 -p0
%patch602 -p0
%patch603 -p0
%patch604 -p0
# install spell files
@ -1688,8 +1866,32 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/icons/hicolor/*/apps/*
%changelog
* Tue May 29 2012 Karsten Hopp <karsten@redhat.com> 7.3.515-2
- fix spec template
* Wed Jul 18 2012 Karsten Hopp <karsten@redhat.com> 7.3.604-1
- patchlevel 604
* Wed Jul 11 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.594-2
- Perl 5.16 rebuild
* Tue Jul 10 2012 Karsten Hopp <karsten@redhat.com> 7.3.594-1
- patchlevel 594
* Tue Jul 10 2012 Karsten Hopp <karsten@redhat.com> 7.3.592-1
- patchlevel 592
* Mon Jul 09 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.584-2
- Perl 5.16 rebuild
* Mon Jul 02 2012 Karsten Hopp <karsten@redhat.com> 7.3.584-1
- patchlevel 584
* Thu Jun 28 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.556-2
- Perl 5.16 rebuild
* Mon Jun 18 2012 Karsten Hopp <karsten@redhat.com> 7.3.556-1
- patchlevel 556
* Mon Jun 11 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.515-2
- Perl 5.16 rebuild
* Mon May 21 2012 Karsten Hopp <karsten@redhat.com> 7.3.515-1
- enable highlighting for older log files (#816848)