Compare commits

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

5 commits

Author SHA1 Message Date
Fedora Release Engineering
97eb68ee0a dist-git conversion 2010-07-29 14:59:16 +00:00
Bill Nottingham
c16b1f77fc Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:14:06 +00:00
Karsten Hopp
0ecb7a29dd - build patchlevel 245 for F-8 2008-02-11 15:11:34 +00:00
Karsten Hopp
83440b4151 - build patchlevel 211 for F-8 2008-01-10 10:07:54 +00:00
Jesse Keating
a15009eaa8 Initialize branch F-8 for vim 2007-10-20 18:46:24 +00:00
116 changed files with 20252 additions and 24 deletions

View file

47
7.1.136 Normal file
View file

@ -0,0 +1,47 @@
To: vim-dev@vim.org
Subject: Patch 7.1.136
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.136
Problem: Memory leak when using Ruby syntax highlighting. (Dominique Pelle)
Solution: Free the contained-in list.
Files: src/syntax.c
*** ../vim-7.1.135/src/syntax.c Thu Aug 30 19:36:52 2007
--- src/syntax.c Sun Oct 7 15:10:54 2007
***************
*** 3354,3359 ****
--- 3354,3360 ----
{
vim_free(SYN_ITEMS(buf)[i].sp_cont_list);
vim_free(SYN_ITEMS(buf)[i].sp_next_list);
+ vim_free(SYN_ITEMS(buf)[i].sp_syn.cont_in_list);
}
}
*** ../vim-7.1.135/src/version.c Wed Oct 3 14:30:54 2007
--- src/version.c Sun Oct 7 15:20:22 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 136,
/**/
--
Every engineer dreams about saving the universe and having sex with aliens.
This is much more glamorous than the real life of an engineer, which consists
of hiding from the universe and having sex without the participation of other
life forms. (Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

49
7.1.137 Normal file
View file

@ -0,0 +1,49 @@
To: vim-dev@vim.org
Subject: Patch 7.1.137
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.137
Problem: Build failure when using EXITFREE. (Dominique Pelle)
Solution: Add an #ifdef around using clip_exclude_prog.
Files: src/misc2.c
*** ../vim-7.1.136/src/misc2.c Sat Sep 29 14:15:00 2007
--- src/misc2.c Sun Sep 30 18:00:09 2007
***************
*** 1037,1043 ****
--- 1038,1046 ----
/* Free some global vars. */
vim_free(username);
+ # ifdef FEAT_CLIPBOARD
vim_free(clip_exclude_prog);
+ # endif
vim_free(last_cmdline);
vim_free(new_last_cmdline);
set_keep_msg(NULL, 0);
*** ../vim-7.1.136/src/version.c Sun Oct 7 15:21:31 2007
--- src/version.c Sun Oct 7 15:42:26 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 137,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

66
7.1.138 Normal file
View file

@ -0,0 +1,66 @@
To: vim-dev@vim.org
Subject: Patch 7.1.138
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.138
Problem: The Perl Msg() function doesn't stop when "q" is typed at the more
prompt. (Hari Krishna Dara)
Solution: Check got_int.
Files: src/if_perl.xs
*** ../vim-7.1.137/src/if_perl.xs Sat Sep 15 14:48:57 2007
--- src/if_perl.xs Wed Oct 3 17:00:16 2007
***************
*** 445,457 ****
char *next;
char *token = (char *)s;
! while ((next = strchr(token, '\n')))
{
*next++ = '\0'; /* replace \n with \0 */
msg_attr((char_u *)token, attr);
token = next;
}
! if (*token)
msg_attr((char_u *)token, attr);
}
--- 445,457 ----
char *next;
char *token = (char *)s;
! while ((next = strchr(token, '\n')) && !got_int)
{
*next++ = '\0'; /* replace \n with \0 */
msg_attr((char_u *)token, attr);
token = next;
}
! if (*token && !got_int)
msg_attr((char_u *)token, attr);
}
*** ../vim-7.1.137/src/version.c Sun Oct 7 15:44:28 2007
--- src/version.c Tue Oct 9 10:45:08 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 138,
/**/
--
A consultant is a person who takes your money and annoys your employees while
tirelessly searching for the best way to extend the consulting contract.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.1.139 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.1.139
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.139
Problem: When using marker folding and ending Insert mode with CTRL-C the
current fold is truncated. (Fred Kater)
Solution: Ignore got_int while updating folds.
Files: src/fold.c
*** ../vim-7.1.138/src/fold.c Thu May 10 21:02:13 2007
--- src/fold.c Sun Oct 14 15:27:13 2007
***************
*** 858,864 ****
--- 858,871 ----
|| foldmethodIsDiff(wp)
#endif
|| foldmethodIsSyntax(wp))
+ {
+ int save_got_int = got_int;
+
+ /* reset got_int here, otherwise it won't work */
+ got_int = FALSE;
foldUpdateIEMS(wp, top, bot);
+ got_int |= save_got_int;
+ }
}
/* foldUpdateAll() {{{2 */
*** ../vim-7.1.138/src/version.c Tue Oct 9 10:46:39 2007
--- src/version.c Sun Oct 14 15:31:18 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 139,
/**/
--
If Pacman had affected us as kids we'd be running around in dark rooms,
munching pills and listening to repetitive music.
-- Marcus Brigstocke
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.1.140 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.1.140
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.140
Problem: v:count is set only after typing a non-digit, that makes it
difficult to make a nice mapping.
Solution: Set v:count while still typing the count.
Files: src/normal.c
*** ../vim-7.1.139/src/normal.c Thu Sep 13 18:25:08 2007
--- src/normal.c Sun Oct 14 17:15:36 2007
***************
*** 690,695 ****
--- 690,702 ----
ca.count0 = ca.count0 * 10 + (c - '0');
if (ca.count0 < 0) /* got too large! */
ca.count0 = 999999999L;
+ #ifdef FEAT_EVAL
+ /* Set v:count here, when called from main() and not a stuffed
+ * command, so that v:count can be used in an expression mapping
+ * right after the count. */
+ if (toplevel && stuff_empty())
+ set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0);
+ #endif
if (ctrl_w)
{
++no_mapping;
*** ../vim-7.1.139/src/version.c Sun Oct 14 15:32:10 2007
--- src/version.c Sun Oct 14 17:13:15 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 140,
/**/
--
How To Keep A Healthy Level Of Insanity:
11. Specify that your drive-through order is "to go".
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

97
7.1.141 Normal file
View file

@ -0,0 +1,97 @@
To: vim-dev@vim.org
Subject: Patch 7.1.141
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.141
Problem: GTK: -geom argument doesn't support a negative offset.
Solution: Compute position from the right/lower corner.
Files: src/gui_gtk_x11.c
*** ../vim-7.1.140/src/gui_gtk_x11.c Sat Sep 15 14:06:41 2007
--- src/gui_gtk_x11.c Mon Oct 8 21:26:50 2007
***************
*** 4044,4049 ****
--- 4044,4051 ----
unsigned int w, h;
int x = 0;
int y = 0;
+ guint pixel_width;
+ guint pixel_height;
mask = XParseGeometry((char *)gui.geom, &x, &y, &w, &h);
***************
*** 4055,4066 ****
--- 4057,4087 ----
p_window = h - 1;
Rows = h;
}
+
+ pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width);
+ pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height);
+
+ #ifdef HAVE_GTK2
+ pixel_width += get_menu_tool_width();
+ pixel_height += get_menu_tool_height();
+ #endif
+
if (mask & (XValue | YValue))
+ {
+ int w, h;
+ gui_mch_get_screen_dimensions(&w, &h);
+ h += p_ghr + get_menu_tool_height();
+ w += get_menu_tool_width();
+ if (mask & XNegative)
+ x += w - pixel_width;
+ if (mask & YNegative)
+ y += h - pixel_height;
#ifdef HAVE_GTK2
gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
#else
gtk_widget_set_uposition(gui.mainwin, x, y);
#endif
+ }
vim_free(gui.geom);
gui.geom = NULL;
***************
*** 4071,4084 ****
*/
if (gtk_socket_id != 0 && (mask & WidthValue || mask & HeightValue))
{
- guint pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width);
- guint pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height);
-
- #ifdef HAVE_GTK2
- pixel_width += get_menu_tool_width();
- pixel_height += get_menu_tool_height();
- #endif
-
update_window_manager_hints(pixel_width, pixel_height);
init_window_hints_state = 1;
g_timeout_add(1000, check_startup_plug_hints, NULL);
--- 4092,4097 ----
*** ../vim-7.1.140/src/version.c Sun Oct 14 17:15:45 2007
--- src/version.c Fri Oct 19 14:28:52 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 141,
/**/
--
hundred-and-one symptoms of being an internet addict:
35. Your husband tells you he's had the beard for 2 months.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

77
7.1.142 Normal file
View file

@ -0,0 +1,77 @@
To: vim-dev@vim.org
Subject: Patch 7.1.142
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.142
Problem: ":redir @A>" doesn't work.
Solution: Ignore the extra ">" also when appending. (James Vega)
Files: src/ex_docmd.c
*** ../vim-7.1.141/src/ex_docmd.c Sun Sep 30 14:00:41 2007
--- src/ex_docmd.c Tue Oct 9 11:09:09 2007
***************
*** 8426,8446 ****
|| *arg == '"')
{
redir_reg = *arg++;
! if (*arg == '>' && arg[1] == '>')
arg += 2;
! else if ((*arg == NUL || (*arg == '>' && arg[1] == NUL)) &&
! (islower(redir_reg)
! # ifdef FEAT_CLIPBOARD
! || redir_reg == '*'
! || redir_reg == '+'
! # endif
! || redir_reg == '"'))
{
if (*arg == '>')
arg++;
!
! /* make register empty */
! write_reg_contents(redir_reg, (char_u *)"", -1, FALSE);
}
}
if (*arg != NUL)
--- 8426,8442 ----
|| *arg == '"')
{
redir_reg = *arg++;
! if (*arg == '>' && arg[1] == '>') /* append */
arg += 2;
! else
{
+ /* Can use both "@a" and "@a>". */
if (*arg == '>')
arg++;
! /* Make register empty when not using @A-@Z and the
! * command is valid. */
! if (*arg == NUL && !isupper(redir_reg))
! write_reg_contents(redir_reg, (char_u *)"", -1, FALSE);
}
}
if (*arg != NUL)
*** ../vim-7.1.141/src/version.c Fri Oct 19 14:32:50 2007
--- src/version.c Fri Oct 19 16:18:36 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 142,
/**/
--
hundred-and-one symptoms of being an internet addict:
36. You miss more than five meals a week downloading the latest games from
Apogee.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.1.143 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.1.143
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.143
Problem: Uninitialized memory read when diffing three files. (Dominique
Pelle)
Solution: Remove "+ !notset" so that we don't use fields that were not
computed.
Files: src/diff.c
*** ../vim-7.1.142/src/diff.c Sat Sep 29 14:15:00 2007
--- src/diff.c Sun Oct 14 21:52:56 2007
***************
*** 1310,1316 ****
dp->df_count[idx_new] += -off;
off = 0;
}
! for (i = idx_orig; i < idx_new + !notset; ++i)
if (curtab->tp_diffbuf[i] != NULL)
dp->df_count[i] = dpl->df_lnum[i] + dpl->df_count[i]
- dp->df_lnum[i] + off;
--- 1310,1316 ----
dp->df_count[idx_new] += -off;
off = 0;
}
! for (i = idx_orig; i < idx_new; ++i)
if (curtab->tp_diffbuf[i] != NULL)
dp->df_count[i] = dpl->df_lnum[i] + dpl->df_count[i]
- dp->df_lnum[i] + off;
*** ../vim-7.1.142/src/version.c Fri Oct 19 16:20:09 2007
--- src/version.c Fri Oct 19 17:32:18 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 143,
/**/
--
hundred-and-one symptoms of being an internet addict:
37. You start looking for hot HTML addresses in public restrooms.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

46
7.1.144 Normal file
View file

@ -0,0 +1,46 @@
To: vim-dev@vim.org
Subject: Patch 7.1.144
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.144
Problem: After ":diffup" cursor can be in the wrong position.
Solution: Force recomputing the cursor position.
Files: src/diff.c
*** ../vim-7.1.143/src/diff.c Fri Oct 19 17:32:58 2007
--- src/diff.c Fri Oct 19 18:54:13 2007
***************
*** 791,796 ****
--- 791,799 ----
}
mch_remove(tmp_orig);
+ /* force updating cursor position on screen */
+ curwin->w_valid_cursor.lnum = 0;
+
diff_redraw(TRUE);
theend:
*** ../vim-7.1.143/src/version.c Fri Oct 19 17:32:58 2007
--- src/version.c Fri Oct 19 18:56:49 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 144,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

171
7.1.145 Normal file
View file

@ -0,0 +1,171 @@
To: vim-dev@vim.org
Subject: Patch 7.1.145
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.145
Problem: Insert mode completion: When using the popup menu, after
completing a word and typing a non-word character Vim is still
completing the same word, following CTRL-N doesn't work.
Insert mode Completion: When using CTRL-X O and there is only
"struct." before the cursor, typing one char to reduce the
matches, then BS completion stops.
Solution: When typing a character that is not part of the item being
completed, stop complete mode. For whole line completion also
accept a space. For file name completion stop at a path
separator.
For omni completion stay in completion mode even if completing
with empty string.
Files: src/edit.c
*** ../vim-7.1.144/src/edit.c Thu Sep 13 18:25:08 2007
--- src/edit.c Fri Oct 19 16:04:38 2007
***************
*** 129,134 ****
--- 129,135 ----
static void ins_ctrl_x __ARGS((void));
static int has_compl_option __ARGS((int dict_opt));
+ static int ins_compl_accept_char __ARGS((int c));
static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int adup));
static int ins_compl_equal __ARGS((compl_T *match, char_u *str, int len));
static void ins_compl_longest_match __ARGS((compl_T *match));
***************
*** 754,761 ****
continue;
}
! /* A printable, non-white character: Add to "compl_leader". */
! if (vim_isprintc(c) && !vim_iswhite(c))
{
ins_compl_addleader(c);
continue;
--- 755,763 ----
continue;
}
! /* A non-white character that fits in with the current
! * completion: Add to "compl_leader". */
! if (ins_compl_accept_char(c))
{
ins_compl_addleader(c);
continue;
***************
*** 2053,2058 ****
--- 2055,2094 ----
}
/*
+ * Return TRUE when character "c" is part of the item currently being
+ * completed. Used to decide whether to abandon complete mode when the menu
+ * is visible.
+ */
+ static int
+ ins_compl_accept_char(c)
+ int c;
+ {
+ if (ctrl_x_mode & CTRL_X_WANT_IDENT)
+ /* When expanding an identifier only accept identifier chars. */
+ return vim_isIDc(c);
+
+ switch (ctrl_x_mode)
+ {
+ case CTRL_X_FILES:
+ /* When expanding file name only accept file name chars. But not
+ * path separators, so that "proto/<Tab>" expands files in
+ * "proto", not "proto/" as a whole */
+ return vim_isfilec(c) && !vim_ispathsep(c);
+
+ case CTRL_X_CMDLINE:
+ case CTRL_X_OMNI:
+ /* Command line and Omni completion can work with just about any
+ * printable character, but do stop at white space. */
+ return vim_isprintc(c) && !vim_iswhite(c);
+
+ case CTRL_X_WHOLE_LINE:
+ /* For while line completion a space can be part of the line. */
+ return vim_isprintc(c);
+ }
+ return vim_iswordc(c);
+ }
+
+ /*
* This is like ins_compl_add(), but if 'ic' and 'inf' are set, then the
* case of the originally typed text is used, and the case of the completed
* text is inferred, ie this tries to work out what case you probably wanted
***************
*** 3128,3135 ****
p = line + curwin->w_cursor.col;
mb_ptr_back(line, p);
! /* Stop completion when the whole word was deleted. */
! if ((int)(p - line) - (int)compl_col <= 0)
return K_BS;
/* Deleted more than what was used to find matches or didn't finish
--- 3164,3174 ----
p = line + curwin->w_cursor.col;
mb_ptr_back(line, p);
! /* Stop completion when the whole word was deleted. For Omni completion
! * allow the word to be deleted, we won't match everything. */
! if ((int)(p - line) - (int)compl_col < 0
! || ((int)(p - line) - (int)compl_col == 0
! && (ctrl_x_mode & CTRL_X_OMNI) == 0))
return K_BS;
/* Deleted more than what was used to find matches or didn't finish
***************
*** 4591,4604 ****
curs_col = curwin->w_cursor.col;
compl_pending = 0;
! /* if this same ctrl_x_mode has been interrupted use the text from
* "compl_startpos" to the cursor as a pattern to add a new word
* instead of expand the one before the cursor, in word-wise if
! * "compl_startpos"
! * is not in the same line as the cursor then fix it (the line has
! * been split because it was longer than 'tw'). if SOL is set then
! * skip the previous pattern, a word at the beginning of the line has
! * been inserted, we'll look for that -- Acevedo. */
if ((compl_cont_status & CONT_INTRPT) == CONT_INTRPT
&& compl_cont_mode == ctrl_x_mode)
{
--- 4630,4642 ----
curs_col = curwin->w_cursor.col;
compl_pending = 0;
! /* If this same ctrl_x_mode has been interrupted use the text from
* "compl_startpos" to the cursor as a pattern to add a new word
* instead of expand the one before the cursor, in word-wise if
! * "compl_startpos" is not in the same line as the cursor then fix it
! * (the line has been split because it was longer than 'tw'). if SOL
! * is set then skip the previous pattern, a word at the beginning of
! * the line has been inserted, we'll look for that -- Acevedo. */
if ((compl_cont_status & CONT_INTRPT) == CONT_INTRPT
&& compl_cont_mode == ctrl_x_mode)
{
*** ../vim-7.1.144/src/version.c Fri Oct 19 18:57:33 2007
--- src/version.c Fri Oct 19 20:38:21 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 145,
/**/
--
Micro$oft: where do you want to go today?
Linux: where do you want to go tomorrow?
FreeBSD: are you guys coming, or what?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

92
7.1.146 Normal file
View file

@ -0,0 +1,92 @@
To: vim-dev@vim.org
Subject: Patch 7.1.146 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.146 (extra)
Problem: VMS: Files with a very rare record organization (VFC) cannot be
properly written by Vim.
On older VAX systems mms runs into a syntax error.
Solution: Check for this special situation. Do not wrap a comment, make it
one long line. (Zoltan Arpadffy)
Files: src/fileio.c, src/Make_vms.mms
*** ../vim-7.1.145/src/fileio.c Wed Oct 3 12:49:24 2007
--- src/fileio.c Mon Oct 22 21:10:00 2007
***************
*** 4251,4257 ****
* they don't it adds one.
* With other RMS structures it works perfect without this fix.
*/
! if ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0)
{
int b2write;
--- 4252,4259 ----
* they don't it adds one.
* With other RMS structures it works perfect without this fix.
*/
! if (buf->b_fab_rfm == FAB$C_VFC
! || ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0))
{
int b2write;
*** ../vim-7.1.145/src/Make_vms.mms Thu May 10 20:47:35 2007
--- src/Make_vms.mms Mon Oct 22 21:13:08 2007
***************
*** 2,8 ****
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
! # Last change: 2007 May 07
#
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK
--- 2,8 ----
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
! # Last change: 2007 Oct 22
#
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK
***************
*** 96,103 ****
.IFDEF MMSVAX
.IFDEF DECC # VAX with DECC
! CC_DEF = cc # /decc # some system requires this switch
! # but when it is not required /ver might fail
PREFIX = /prefix=all
.ELSE # VAX with VAXC
CC_DEF = cc
--- 96,102 ----
.IFDEF MMSVAX
.IFDEF DECC # VAX with DECC
! CC_DEF = cc # /decc # some system requires this switch but when it is not required /ver might fail
PREFIX = /prefix=all
.ELSE # VAX with VAXC
CC_DEF = cc
*** ../vim-7.1.145/src/version.c Fri Oct 19 20:39:56 2007
--- src/version.c Mon Oct 29 22:36:20 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 146,
/**/
--
Be thankful to be in a traffic jam, because it means you own a car.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

75
7.1.147 Normal file
View file

@ -0,0 +1,75 @@
To: vim-dev@vim.org
Subject: Patch 7.1.147
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.147 (after 7.1.127)
Problem: Freeing memory already freed when completing user name. (Meino
Cramer)
Solution: Use a flag to remember if "orig" needs to be freed.
Files: src/ex_getln.c
*** ../vim-7.1.146/src/ex_getln.c Sun Sep 30 22:10:45 2007
--- src/ex_getln.c Tue Oct 30 17:13:33 2007
***************
*** 3353,3358 ****
--- 3353,3359 ----
char_u *ss = NULL;
static int findex;
static char_u *orig_save = NULL; /* kept value of orig */
+ int orig_saved = FALSE;
int i;
long_u len;
int non_suf_match; /* number without matching suffix */
***************
*** 3421,3426 ****
--- 3422,3428 ----
{
vim_free(orig_save);
orig_save = orig;
+ orig_saved = TRUE;
/*
* Do the expansion.
***************
*** 3546,3552 ****
ExpandCleanup(xp);
/* Free "orig" if it wasn't stored in "orig_save". */
! if (orig != orig_save)
vim_free(orig);
return ss;
--- 3548,3554 ----
ExpandCleanup(xp);
/* Free "orig" if it wasn't stored in "orig_save". */
! if (!orig_saved)
vim_free(orig);
return ss;
*** ../vim-7.1.146/src/version.c Mon Oct 29 22:37:57 2007
--- src/version.c Tue Oct 30 17:30:35 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 147,
/**/
--
hundred-and-one symptoms of being an internet addict:
59. Your wife says communication is important in a marriage...so you buy
another computer and install a second phone line so the two of you can
chat.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

73
7.1.148 Normal file
View file

@ -0,0 +1,73 @@
To: vim-dev@vim.org
Subject: Patch 7.1.148
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.148
Problem: Some types are not found by configure.
Solution: Test for the sys/types.h header file. (Sean Boudreau)
Files: src/configure.in, src/auto/configure
*** ../vim-7.1.147/src/configure.in Thu Jun 28 13:02:22 2007
--- src/configure.in Sat Oct 27 15:52:16 2007
***************
*** 2026,2032 ****
fi
AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \
iconv.h langinfo.h unistd.h stropts.h errno.h \
sys/resource.h sys/systeminfo.h locale.h \
sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
--- 2026,2032 ----
fi
AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
iconv.h langinfo.h unistd.h stropts.h errno.h \
sys/resource.h sys/systeminfo.h locale.h \
sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
*** ../vim-7.1.147/src/auto/configure Thu Jun 28 13:02:22 2007
--- src/auto/configure Sun Nov 4 15:34:14 2007
***************
*** 10265,10272 ****
for ac_header in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \
iconv.h langinfo.h unistd.h stropts.h errno.h \
sys/resource.h sys/systeminfo.h locale.h \
sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
--- 10265,10273 ----
+
for ac_header in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
! termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
iconv.h langinfo.h unistd.h stropts.h errno.h \
sys/resource.h sys/systeminfo.h locale.h \
sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
*** ../vim-7.1.147/src/version.c Tue Oct 30 17:36:31 2007
--- src/version.c Sun Nov 4 15:34:26 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 148,
/**/
--
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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

180
7.1.149 Normal file
View file

@ -0,0 +1,180 @@
To: vim-dev@vim.org
Subject: Patch 7.1.149
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.149
Problem: GTK GUI: When the completion popup menu is used scrolling another
window by the scrollbar is OK, but using the scroll wheel it
behaves line <Enter>.
Solution: Ignore K_MOUSEDOWN and K_MOUSEUP. Fix redrawing the popup menu.
Files: src/edit.c, src/gui.c
*** ../vim-7.1.148/src/edit.c Fri Oct 19 20:39:56 2007
--- src/edit.c Sun Nov 4 16:17:42 2007
***************
*** 3385,3392 ****
if (c != Ctrl_R && vim_is_ctrl_x_key(c))
edit_submode_extra = NULL;
! /* Ignore end of Select mode mapping */
! if (c == K_SELECT)
return retval;
/* Set "compl_get_longest" when finding the first matches. */
--- 3385,3392 ----
if (c != Ctrl_R && vim_is_ctrl_x_key(c))
edit_submode_extra = NULL;
! /* Ignore end of Select mode mapping and mouse scroll buttons. */
! if (c == K_SELECT || c == K_MOUSEDOWN || c == K_MOUSEUP)
return retval;
/* Set "compl_get_longest" when finding the first matches. */
***************
*** 8652,8666 ****
int up;
{
pos_T tpos;
! # if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
! win_T *old_curwin;
# endif
tpos = curwin->w_cursor;
# if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
- old_curwin = curwin;
-
/* Currently the mouse coordinates are only known in the GUI. */
if (gui.in_use && mouse_row >= 0 && mouse_col >= 0)
{
--- 8652,8667 ----
int up;
{
pos_T tpos;
! # if defined(FEAT_WINDOWS)
! win_T *old_curwin = curwin;
! # endif
! # ifdef FEAT_INS_EXPAND
! int did_scroll = FALSE;
# endif
tpos = curwin->w_cursor;
# if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
/* Currently the mouse coordinates are only known in the GUI. */
if (gui.in_use && mouse_row >= 0 && mouse_col >= 0)
{
***************
*** 8677,8692 ****
# endif
undisplay_dollar();
! if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
! scroll_redraw(up, (long)(curwin->w_botline - curwin->w_topline));
! else
! scroll_redraw(up, 3L);
# if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
curwin->w_redr_status = TRUE;
curwin = old_curwin;
curbuf = curwin->w_buffer;
# endif
if (!equalpos(curwin->w_cursor, tpos))
--- 8678,8717 ----
# endif
undisplay_dollar();
! # ifdef FEAT_INS_EXPAND
! /* Don't scroll the window in which completion is being done. */
! if (!pum_visible()
! # if defined(FEAT_WINDOWS)
! || curwin != old_curwin
! # endif
! )
! # endif
! {
! if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
! scroll_redraw(up, (long)(curwin->w_botline - curwin->w_topline));
! else
! scroll_redraw(up, 3L);
! # ifdef FEAT_INS_EXPAND
! did_scroll = TRUE;
! # endif
! }
# if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
curwin->w_redr_status = TRUE;
curwin = old_curwin;
curbuf = curwin->w_buffer;
+ # endif
+
+ # ifdef FEAT_INS_EXPAND
+ /* The popup menu may overlay the window, need to redraw it.
+ * TODO: Would be more efficient to only redraw the windows that are
+ * overlapped by the popup menu. */
+ if (pum_visible() && did_scroll)
+ {
+ redraw_all_later(NOT_VALID);
+ ins_compl_show_pum();
+ }
# endif
if (!equalpos(curwin->w_cursor, tpos))
*** ../vim-7.1.148/src/gui.c Wed Sep 5 21:45:54 2007
--- src/gui.c Fri Oct 19 16:14:57 2007
***************
*** 4214,4220 ****
#endif
)
{
! redraw_win_later(wp, VALID);
updateWindow(wp); /* update window, status line, and cmdline */
}
--- 4214,4232 ----
#endif
)
{
! int type = VALID;
!
! #ifdef FEAT_INS_EXPAND
! if (pum_visible())
! {
! type = NOT_VALID;
! wp->w_lines_valid = 0;
! }
! #endif
! /* Don't set must_redraw here, it may cause the popup menu to
! * disappear when losing focus after a scrollbar drag. */
! if (wp->w_redr_type < type)
! wp->w_redr_type = type;
updateWindow(wp); /* update window, status line, and cmdline */
}
*** ../vim-7.1.148/src/version.c Sun Nov 4 15:35:23 2007
--- src/version.c Tue Nov 6 22:21:03 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 149,
/**/
--
From "know your smileys":
...---... SOS
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

59
7.1.150 Normal file
View file

@ -0,0 +1,59 @@
To: vim-dev@vim.org
Subject: Patch 7.1.150
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.150
Problem: When 'clipboard' has "unnamed" using "p" in Visual mode doesn't
work correctly. (Jianrong Yu)
Solution: When 'clipboard' has "unnamed" also obtain the selection when
getting the default register.
Files: src/ops.c
*** ../vim-7.1.149/src/ops.c Tue Sep 25 14:19:35 2007
--- src/ops.c Sun Oct 28 13:58:35 2007
***************
*** 933,941 ****
#ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. Obtain the
* selection too. */
! if (name == '*' && clip_star.available && clip_isautosel())
{
! clip_update_selection();
may_get_selection(name);
}
#endif
--- 933,942 ----
#ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. Obtain the
* selection too. */
! if (name == '*' && clip_star.available)
{
! if (clip_isautosel())
! clip_update_selection();
may_get_selection(name);
}
#endif
*** ../vim-7.1.149/src/version.c Tue Nov 6 22:26:39 2007
--- src/version.c Thu Nov 8 10:34:18 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 150,
/**/
--
From "know your smileys":
8<}} Glasses, big nose, beard
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

70
7.1.151 Normal file
View file

@ -0,0 +1,70 @@
To: vim-dev@vim.org
Subject: Patch 7.1.151
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.151
Problem: Using whole line completion with 'ignorecase' and 'infercase' set
and the line is empty get an lalloc(0) error.
Solution: Don't try changing case for an empty match. (Matthew Wozniski)
Files: src/edit.c
*** ../vim-7.1.150/src/edit.c Tue Nov 6 22:26:39 2007
--- src/edit.c Sun Nov 4 16:17:42 2007
***************
*** 2111,2117 ****
int has_lower = FALSE;
int was_letter = FALSE;
! if (p_ic && curbuf->b_p_inf)
{
/* Infer case of completed part. */
--- 2111,2117 ----
int has_lower = FALSE;
int was_letter = FALSE;
! if (p_ic && curbuf->b_p_inf && len > 0)
{
/* Infer case of completed part. */
***************
*** 2225,2231 ****
wca[i] = MB_TOUPPER(wca[i]);
}
! /*
* Generate encoding specific output from wide character array.
* Multi-byte characters can occupy up to five bytes more than
* ASCII characters, and we also need one byte for NUL, so stay
--- 2225,2231 ----
wca[i] = MB_TOUPPER(wca[i]);
}
! /*
* Generate encoding specific output from wide character array.
* Multi-byte characters can occupy up to five bytes more than
* ASCII characters, and we also need one byte for NUL, so stay
*** ../vim-7.1.150/src/version.c Thu Nov 8 10:35:02 2007
--- src/version.c Thu Nov 8 13:01:34 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 151,
/**/
--
From "know your smileys":
%-) After staring at screen for 15 hours
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

118
7.1.152 Normal file
View file

@ -0,0 +1,118 @@
To: vim-dev@vim.org
Subject: Patch 7.1.152
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.152
Problem: Display problem when 'hls' and 'cursorcolumn' are set and
searching for "$". (John Mullin) Also when scrolling
horizontally when 'wrap' is off.
Solution: Keep track of the column where highlighting was set. Check the
column offset when skipping characters.
Files: src/screen.c
*** ../vim-7.1.151/src/screen.c Mon Sep 17 22:37:05 2007
--- src/screen.c Fri Oct 19 15:18:49 2007
***************
*** 2599,2604 ****
--- 2599,2605 ----
int syntax_attr = 0; /* attributes desired by syntax */
int has_syntax = FALSE; /* this buffer has syntax highl. */
int save_did_emsg;
+ int eol_hl_off = 0; /* 1 if highlighted char after EOL */
#endif
#ifdef FEAT_SPELL
int has_spell = FALSE; /* this buffer has spell checking */
***************
*** 4312,4317 ****
--- 4313,4322 ----
{
#ifdef FEAT_SEARCH_EXTRA
long prevcol = (long)(ptr - line) - (c == NUL);
+
+ /* we're not really at that column when skipping some text */
+ if ((wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol)
+ ++prevcol;
#endif
/* invert at least one char, used for Visual and empty line or
***************
*** 4408,4418 ****
--- 4413,4432 ----
ScreenAttrs[off] = char_attr;
#ifdef FEAT_RIGHTLEFT
if (wp->w_p_rl)
+ {
--col;
+ --off;
+ }
else
#endif
+ {
++col;
+ ++off;
+ }
++vcol;
+ #ifdef FEAT_SYN_HL
+ eol_hl_off = 1;
+ #endif
}
}
***************
*** 4422,4427 ****
--- 4436,4449 ----
if (c == NUL)
{
#ifdef FEAT_SYN_HL
+ if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol)
+ {
+ /* highlight last char after line */
+ --col;
+ --off;
+ --vcol;
+ }
+
/* Highlight 'cursorcolumn' past end of the line. */
if (wp->w_p_wrap)
v = wp->w_skipcol;
***************
*** 4432,4438 ****
vcol = v + col - win_col_off(wp);
if (wp->w_p_cuc
! && (int)wp->w_virtcol >= vcol
&& (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1)
+ v
&& lnum != wp->w_cursor.lnum
--- 4454,4460 ----
vcol = v + col - win_col_off(wp);
if (wp->w_p_cuc
! && (int)wp->w_virtcol >= vcol - eol_hl_off
&& (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1)
+ v
&& lnum != wp->w_cursor.lnum
*** ../vim-7.1.151/src/version.c Thu Nov 8 13:03:33 2007
--- src/version.c Thu Nov 8 14:48:59 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 152,
/**/
--
From "know your smileys":
2B|^2B Message from Shakespeare
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

143
7.1.153 Normal file
View file

@ -0,0 +1,143 @@
To: vim-dev@vim.org
Subject: Patch 7.1.153
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.153
Problem: Compiler warnings on SGI. Undefined XpmAllocColor (Charles
Campbell)
Solution: Add type casts. Init st_dev and st_ino separately. Don't use
type casts for vim_snprintf() when HAVE_STDARG_H is defined.
Define XpmAllocColor when needed.
Files: src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c,
src/gui_xmebw.c
*** ../vim-7.1.152/src/eval.c Tue Oct 2 22:07:58 2007
--- src/eval.c Mon Oct 1 20:56:09 2007
***************
*** 8729,8735 ****
static int fnum = 0;
static int change_start = 0;
static int change_end = 0;
! static hlf_T hlID = 0;
int filler_lines;
int col;
--- 8729,8735 ----
static int fnum = 0;
static int change_start = 0;
static int change_end = 0;
! static hlf_T hlID = (hlf_T)0;
int filler_lines;
int col;
*** ../vim-7.1.152/src/ex_cmds.c Thu Sep 13 18:25:08 2007
--- src/ex_cmds.c Thu Sep 13 16:19:40 2007
***************
*** 1774,1780 ****
* overwrite a user's viminfo file after a "su root", with a
* viminfo file that the user can't read.
*/
! st_old.st_dev = st_old.st_ino = 0;
st_old.st_mode = 0600;
if (mch_stat((char *)fname, &st_old) == 0
&& getuid() != ROOT_UID
--- 1774,1781 ----
* overwrite a user's viminfo file after a "su root", with a
* viminfo file that the user can't read.
*/
! st_old.st_dev = 0;
! st_old.st_ino = 0;
st_old.st_mode = 0600;
if (mch_stat((char *)fname, &st_old) == 0
&& getuid() != ROOT_UID
*** ../vim-7.1.152/src/fileio.c Mon Oct 29 22:37:57 2007
--- src/fileio.c Mon Oct 22 21:10:00 2007
***************
*** 3209,3215 ****
* Get information about original file (if there is one).
*/
#if defined(UNIX) && !defined(ARCHIE)
! st_old.st_dev = st_old.st_ino = 0;
perm = -1;
if (mch_stat((char *)fname, &st_old) < 0)
newfile = TRUE;
--- 3209,3216 ----
* Get information about original file (if there is one).
*/
#if defined(UNIX) && !defined(ARCHIE)
! st_old.st_dev = 0;
! st_old.st_ino = 0;
perm = -1;
if (mch_stat((char *)fname, &st_old) < 0)
newfile = TRUE;
*** ../vim-7.1.152/src/misc2.c Sun Oct 7 15:44:28 2007
--- src/misc2.c Sun Sep 30 18:00:09 2007
***************
*** 5924,5930 ****
--- 5925,5935 ----
{
if (emsg_not_now())
return TRUE; /* no error messages at the moment */
+ #ifdef HAVE_STDARG_H
+ vim_snprintf((char *)IObuff, IOSIZE, (char *)s, a1, a2);
+ #else
vim_snprintf((char *)IObuff, IOSIZE, (char *)s, (long_u)a1, (long_u)a2);
+ #endif
return emsg(IObuff);
}
*** ../vim-7.1.152/src/gui_xmebw.c Thu May 10 19:46:55 2007
--- src/gui_xmebw.c Thu Sep 6 12:57:51 2007
***************
*** 395,405 ****
/* Create the "highlight" pixmap. */
color[4].pixel = eb->primitive.bottom_shadow_color;
attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor;
attr.closeness = 65535; /* accuracy isn't crucial */
attr.colorsymbols = color;
attr.numsymbols = XtNumber(color);
- attr.alloc_color = alloc_color;
status = XpmCreatePixmapFromData(dpy, root, data, &pix, NULL, &attr);
XpmFreeAttributes(&attr);
--- 395,409 ----
/* Create the "highlight" pixmap. */
color[4].pixel = eb->primitive.bottom_shadow_color;
+ #ifdef XpmAllocColor /* SGI doesn't have it */
attr.valuemask = XpmColorSymbols | XpmCloseness | XpmAllocColor;
+ attr.alloc_color = alloc_color;
+ #else
+ attr.valuemask = XpmColorSymbols | XpmCloseness;
+ #endif
attr.closeness = 65535; /* accuracy isn't crucial */
attr.colorsymbols = color;
attr.numsymbols = XtNumber(color);
status = XpmCreatePixmapFromData(dpy, root, data, &pix, NULL, &attr);
XpmFreeAttributes(&attr);
*** ../vim-7.1.152/src/version.c Thu Nov 8 14:50:58 2007
--- src/version.c Thu Nov 8 20:45:56 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 153,
/**/
--
From "know your smileys":
@:-() Elvis Presley
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.1.154 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.1.154
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.154
Problem: Compiler warning for signed/unsigned compare.
Solution: Add type cast.
Files: src/screen.c
*** ../vim-7.1.153/src/screen.c Thu Nov 8 14:50:58 2007
--- src/screen.c Thu Nov 8 21:18:46 2007
***************
*** 4315,4321 ****
long prevcol = (long)(ptr - line) - (c == NUL);
/* we're not really at that column when skipping some text */
! if ((wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol)
++prevcol;
#endif
--- 4315,4321 ----
long prevcol = (long)(ptr - line) - (c == NUL);
/* we're not really at that column when skipping some text */
! if ((long)(wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol)
++prevcol;
#endif
*** ../vim-7.1.153/src/version.c Thu Nov 8 20:47:34 2007
--- src/version.c Thu Nov 8 21:19:59 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 154,
/**/
--
From "know your smileys":
:-F Bucktoothed vampire with one tooth missing
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

53
7.1.155 Normal file
View file

@ -0,0 +1,53 @@
To: vim-dev@vim.org
Subject: Patch 7.1.155
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.155
Problem: Crash when 'undolevels' is 0 and repeating "udd". (James Vega)
Solution: When there is only one branch use u_freeheader() to delete it.
Files: src/undo.c
*** ../vim-7.1.154/src/undo.c Mon Oct 1 22:53:27 2007
--- src/undo.c Sat Nov 10 13:45:28 2007
***************
*** 1677,1682 ****
--- 1677,1690 ----
u_header_T **uhpp; /* if not NULL reset when freeing this header */
{
u_header_T *tofree, *next;
+
+ /* If this is the top branch we may need to use u_freeheader() to update
+ * all the pointers. */
+ if (uhp == buf->b_u_oldhead)
+ {
+ u_freeheader(buf, uhp, uhpp);
+ return;
+ }
if (uhp->uh_alt_prev != NULL)
uhp->uh_alt_prev->uh_alt_next = NULL;
*** ../vim-7.1.154/src/version.c Thu Nov 8 21:23:34 2007
--- src/version.c Sat Nov 10 22:49:40 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 155,
/**/
--
I AM THANKFUL...
...for the piles of laundry and ironing because it means I
have plenty of clothes to wear.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

121
7.1.156 Normal file
View file

@ -0,0 +1,121 @@
To: vim-dev@vim.org
Subject: Patch 7.1.156
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.156
Problem: Overlapping arguments for strcpy() when expanding command line
variables.
Solution: Use mch_memmove() instead of STRCPY(). Also fix a few typos.
(Dominique Pelle)
Files: src/ex_docmd.c
*** ../vim-7.1.155/src/ex_docmd.c Fri Oct 19 16:20:09 2007
--- src/ex_docmd.c Sat Nov 10 12:39:51 2007
***************
*** 666,672 ****
if (ex_pressedreturn)
{
/* go up one line, to overwrite the ":<CR>" line, so the
! * output doensn't contain empty lines. */
msg_row = prev_msg_row;
if (prev_msg_row == Rows - 1)
msg_row--;
--- 666,672 ----
if (ex_pressedreturn)
{
/* go up one line, to overwrite the ":<CR>" line, so the
! * output doesn't contain empty lines. */
msg_row = prev_msg_row;
if (prev_msg_row == Rows - 1)
msg_row--;
***************
*** 2760,2766 ****
/*
* Isolate the command and search for it in the command table.
! * Exeptions:
* - the 'k' command can directly be followed by any character.
* - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r'
* but :sre[wind] is another command, as are :scrip[tnames],
--- 2760,2766 ----
/*
* Isolate the command and search for it in the command table.
! * Exceptions:
* - the 'k' command can directly be followed by any character.
* - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r'
* but :sre[wind] is another command, as are :scrip[tnames],
***************
*** 6677,6683 ****
* The list should be allocated using alloc(), as should each item in the
* list. This function takes over responsibility for freeing the list.
*
! * XXX The list is made into the arggument list. This is freed using
* FreeWild(), which does a series of vim_free() calls, unless the two defines
* __EMX__ and __ALWAYS_HAS_TRAILING_NUL_POINTER are set. In this case, a
* routine _fnexplodefree() is used. This may cause problems, but as the drop
--- 6677,6683 ----
* The list should be allocated using alloc(), as should each item in the
* list. This function takes over responsibility for freeing the list.
*
! * XXX The list is made into the argument list. This is freed using
* FreeWild(), which does a series of vim_free() calls, unless the two defines
* __EMX__ and __ALWAYS_HAS_TRAILING_NUL_POINTER are set. In this case, a
* routine _fnexplodefree() is used. This may cause problems, but as the drop
***************
*** 7795,7801 ****
if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
&& !eap->forceit)
{
! EMSG(_("E747: Cannot change directory, buffer is modifed (add ! to override)"));
return;
}
--- 7795,7801 ----
if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
&& !eap->forceit)
{
! EMSG(_("E747: Cannot change directory, buffer is modified (add ! to override)"));
return;
}
***************
*** 9391,9397 ****
if (src > srcstart && src[-1] == '\\')
{
*usedlen = 0;
! STRCPY(src - 1, src); /* remove backslash */
return NULL;
}
--- 9391,9397 ----
if (src > srcstart && src[-1] == '\\')
{
*usedlen = 0;
! mch_memmove(src - 1, src, STRLEN(src) + 1); /* remove backslash */
return NULL;
}
*** ../vim-7.1.155/src/version.c Sat Nov 10 22:50:20 2007
--- src/version.c Sun Nov 11 19:15:51 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 156,
/**/
--
Common sense is what tells you that the world is flat.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.1.157 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.1.157
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.157
Problem: In Ex mode, :" gives an error at end-of-file. (Michael Hordijk)
Solution: Only give an error for an empty line, not for a comment.
Files: src/ex_docmd.c
*** ../vim-7.1.156/src/ex_docmd.c Sun Nov 11 19:16:44 2007
--- src/ex_docmd.c Sat Nov 17 20:23:38 2007
***************
*** 1741,1747 ****
}
/* ignore comment and empty lines */
! if (*ea.cmd == '"' || *ea.cmd == NUL)
{
ex_pressedreturn = TRUE;
goto doend;
--- 1741,1749 ----
}
/* ignore comment and empty lines */
! if (*ea.cmd == '"')
! goto doend;
! if (*ea.cmd == NUL)
{
ex_pressedreturn = TRUE;
goto doend;
*** ../vim-7.1.156/src/version.c Sun Nov 11 19:16:44 2007
--- src/version.c Tue Nov 20 12:28:22 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 157,
/**/
--
hundred-and-one symptoms of being an internet addict:
119. You are reading a book and look for the scroll bar to get to
the next page.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

157
7.1.158 Normal file
View file

@ -0,0 +1,157 @@
To: vim-dev@vim.org
Subject: Patch 7.1.158 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.158 (extra)
Problem: Win32 console: When 'encoding' is "utf-8" and typing Alt-y the
result is wrong. Win32 GUI: Alt-y results in "u" when 'encoding'
is "cp1250" (Lukas Cerman)
Solution: For utf-8 don't set the 7th bit in a byte, convert to the correct
byte sequence. For cp1250, when conversion to 'encoding' results
in the 7th bit not set, set the 7th bit after conversion.
Files: src/os_win32.c, src/gui_w48.c
*** ../vim-7.1.157/src/os_win32.c Mon Oct 1 20:33:45 2007
--- src/os_win32.c Sat Oct 27 17:35:04 2007
***************
*** 1521,1527 ****
--- 1521,1532 ----
#endif
)
{
+ #ifdef FEAT_MBYTE
+ n = (*mb_char2bytes)(typeahead[typeaheadlen] | 0x80,
+ typeahead + typeaheadlen);
+ #else
typeahead[typeaheadlen] |= 0x80;
+ #endif
modifiers &= ~MOD_MASK_ALT;
}
*** ../vim-7.1.157/src/gui_w48.c Sun Sep 30 14:00:41 2007
--- src/gui_w48.c Mon Oct 29 20:00:25 2007
***************
*** 486,495 ****
/*
* Convert Unicode character "ch" to bytes in "string[slen]".
* Return the length.
*/
static int
! char_to_string(int ch, char_u *string, int slen)
{
int len;
int i;
--- 486,496 ----
/*
* Convert Unicode character "ch" to bytes in "string[slen]".
+ * When "had_alt" is TRUE the ALT key was included in "ch".
* Return the length.
*/
static int
! char_to_string(int ch, char_u *string, int slen, int had_alt)
{
int len;
int i;
***************
*** 522,529 ****
--- 523,544 ----
* "enc_codepage" is non-zero use the standard Win32 function,
* otherwise use our own conversion function (e.g., for UTF-8). */
if (enc_codepage > 0)
+ {
len = WideCharToMultiByte(enc_codepage, 0, wstring, len,
string, slen, 0, NULL);
+ /* If we had included the ALT key into the character but now the
+ * upper bit is no longer set, that probably means the conversion
+ * failed. Convert the original character and set the upper bit
+ * afterwards. */
+ if (had_alt && len == 1 && ch >= 0x80 && string[0] < 0x80)
+ {
+ wstring[0] = ch & 0x7f;
+ len = WideCharToMultiByte(enc_codepage, 0, wstring, len,
+ string, slen, 0, NULL);
+ if (len == 1) /* safety check */
+ string[0] |= 0x80;
+ }
+ }
else
{
len = 1;
***************
*** 573,579 ****
char_u string[40];
int len = 0;
! len = char_to_string(ch, string, 40);
if (len == 1 && string[0] == Ctrl_C && ctrl_c_interrupts)
{
trash_input_buf();
--- 588,594 ----
char_u string[40];
int len = 0;
! len = char_to_string(ch, string, 40, FALSE);
if (len == 1 && string[0] == Ctrl_C && ctrl_c_interrupts)
{
trash_input_buf();
***************
*** 640,646 ****
{
/* Although the documentation isn't clear about it, we assume "ch" is
* a Unicode character. */
! len += char_to_string(ch, string + len, 40 - len);
}
add_to_input_buf(string, len);
--- 655,661 ----
{
/* Although the documentation isn't clear about it, we assume "ch" is
* a Unicode character. */
! len += char_to_string(ch, string + len, 40 - len, TRUE);
}
add_to_input_buf(string, len);
***************
*** 1775,1781 ****
int len;
/* Handle "key" as a Unicode character. */
! len = char_to_string(key, string, 40);
add_to_input_buf(string, len);
}
break;
--- 1790,1796 ----
int len;
/* Handle "key" as a Unicode character. */
! len = char_to_string(key, string, 40, FALSE);
add_to_input_buf(string, len);
}
break;
*** ../vim-7.1.157/src/version.c Tue Nov 20 12:30:31 2007
--- src/version.c Tue Nov 20 17:19:18 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 158,
/**/
--
hundred-and-one symptoms of being an internet addict:
123. You ask the car dealer to install an extra cigarette lighter
on your new car to power your notebook.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.1.159 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.1.159
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.159
Problem: strcpy() has overlapping arguments.
Solution: Use mch_memmove() instead. (Dominique Pelle)
Files: src/ex_cmds.c
*** ../vim-7.1.158/src/ex_cmds.c Thu Nov 8 20:47:34 2007
--- src/ex_cmds.c Sun Nov 18 14:11:58 2007
***************
*** 4885,4891 ****
++line2;
/* move the cursor to the new line, like Vi */
++curwin->w_cursor.lnum;
! STRCPY(new_start, p1 + 1); /* copy the rest */
p1 = new_start - 1;
}
}
--- 4885,4892 ----
++line2;
/* move the cursor to the new line, like Vi */
++curwin->w_cursor.lnum;
! /* copy the rest */
! mch_memmove(new_start, p1 + 1, STRLEN(p1 + 1) + 1);
p1 = new_start - 1;
}
}
*** ../vim-7.1.158/src/version.c Tue Nov 20 17:21:28 2007
--- src/version.c Tue Nov 20 18:01:45 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 159,
/**/
--
hundred-and-one symptoms of being an internet addict:
125. You begin to wonder how often it REALLY is necessary to get up
and shower or bathe.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.1.160 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.1.160
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.160
Problem: When a focus autocommand is defined, getting or losing focus
causes the hit-enter prompt to be redrawn. (Bjorn Winckler)
Solution: Overwrite the last line.
Files: src/message.c
*** ../vim-7.1.159/src/message.c Thu Sep 13 22:04:30 2007
--- src/message.c Sun Nov 4 17:33:15 2007
***************
*** 2850,2855 ****
--- 2850,2864 ----
}
else if (State == HITRETURN || State == SETWSIZE)
{
+ if (msg_row == Rows - 1)
+ {
+ /* Avoid drawing the "hit-enter" prompt below the previous one,
+ * overwrite it. Esp. useful when regaining focus and a
+ * FocusGained autocmd exists but didn't draw anything. */
+ msg_didout = FALSE;
+ msg_col = 0;
+ msg_clr_eos();
+ }
hit_return_msg();
msg_row = Rows - 1;
}
*** ../vim-7.1.159/src/version.c Tue Nov 20 18:03:34 2007
--- src/version.c Sat Nov 24 15:41:43 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 160,
/**/
--
hundred-and-one symptoms of being an internet addict:
142. You dream about creating the world's greatest web site.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

176
7.1.161 Normal file
View file

@ -0,0 +1,176 @@
To: vim-dev@vim.org
Subject: Patch 7.1.161
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.161
Problem: Compilation errors with tiny features and EXITFREE.
Solution: Add #ifdefs. (Dominique Pelle)
Files: src/edit.c, src/misc2.c
*** ../vim-7.1.160/src/edit.c Thu Nov 8 13:03:33 2007
--- src/edit.c Sat Nov 24 14:57:46 2007
***************
*** 2236,2242 ****
while (i < actual_len && (p - IObuff + 6) < IOSIZE)
#ifdef FEAT_MBYTE
if (has_mbyte)
! p += mb_char2bytes(wca[i++], p);
else
#endif
*(p++) = wca[i++];
--- 2236,2242 ----
while (i < actual_len && (p - IObuff + 6) < IOSIZE)
#ifdef FEAT_MBYTE
if (has_mbyte)
! p += (*mb_char2bytes)(wca[i++], p);
else
#endif
*(p++) = wca[i++];
***************
*** 6444,6451 ****
--- 6444,6453 ----
{
vim_free(last_insert);
last_insert = NULL;
+ # ifdef FEAT_INS_EXPAND
vim_free(compl_orig_text);
compl_orig_text = NULL;
+ # endif
}
#endif
*** ../vim-7.1.160/src/misc2.c Thu Nov 8 20:47:34 2007
--- src/misc2.c Sat Nov 24 15:01:46 2007
***************
*** 964,970 ****
{
buf_T *buf, *nextbuf;
static int entered = FALSE;
- win_T *win;
/* When we cause a crash here it is caught and Vim tries to exit cleanly.
* Don't try freeing everything again. */
--- 965,970 ----
***************
*** 972,986 ****
return;
entered = TRUE;
block_autocmds(); /* don't want to trigger autocommands here */
! #ifdef FEAT_WINDOWS
/* close all tabs and windows */
if (first_tabpage->tp_next != NULL)
do_cmdline_cmd((char_u *)"tabonly!");
if (firstwin != lastwin)
do_cmdline_cmd((char_u *)"only!");
! #endif
# if defined(FEAT_SPELL)
/* Free all spell info. */
--- 972,988 ----
return;
entered = TRUE;
+ # ifdef FEAT_AUTOCMD
block_autocmds(); /* don't want to trigger autocommands here */
+ # endif
! # ifdef FEAT_WINDOWS
/* close all tabs and windows */
if (first_tabpage->tp_next != NULL)
do_cmdline_cmd((char_u *)"tabonly!");
if (firstwin != lastwin)
do_cmdline_cmd((char_u *)"only!");
! # endif
# if defined(FEAT_SPELL)
/* Free all spell info. */
***************
*** 1031,1038 ****
--- 1033,1044 ----
free_regexp_stuff();
free_tag_stuff();
free_cd_dir();
+ # ifdef FEAT_EVAL
set_expr_line(NULL);
+ # endif
+ # ifdef FEAT_DIFF
diff_clear(curtab);
+ # endif
clear_sb_text(); /* free any scrollback text */
/* Free some global vars. */
***************
*** 1041,1059 ****
vim_free(clip_exclude_prog);
# endif
vim_free(last_cmdline);
vim_free(new_last_cmdline);
set_keep_msg(NULL, 0);
vim_free(ff_expand_buffer);
/* Clear cmdline history. */
p_hi = 0;
init_history();
#ifdef FEAT_QUICKFIX
! qf_free_all(NULL);
! /* Free all location lists */
! FOR_ALL_WINDOWS(win)
! qf_free_all(win);
#endif
/* Close all script inputs. */
--- 1047,1073 ----
vim_free(clip_exclude_prog);
# endif
vim_free(last_cmdline);
+ # ifdef FEAT_CMDHIST
vim_free(new_last_cmdline);
+ # endif
set_keep_msg(NULL, 0);
vim_free(ff_expand_buffer);
/* Clear cmdline history. */
p_hi = 0;
+ # ifdef FEAT_CMDHIST
init_history();
+ # endif
#ifdef FEAT_QUICKFIX
! {
! win_T *win;
!
! qf_free_all(NULL);
! /* Free all location lists */
! FOR_ALL_WINDOWS(win)
! qf_free_all(win);
! }
#endif
/* Close all script inputs. */
*** ../vim-7.1.160/src/version.c Sat Nov 24 15:44:17 2007
--- src/version.c Sat Nov 24 20:55:38 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 161,
/**/
--
hundred-and-one symptoms of being an internet addict:
143. You dream in pallettes of 216 websafe colors.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

172
7.1.162 Normal file
View file

@ -0,0 +1,172 @@
To: vim-dev@vim.org
Subject: Patch 7.1.162
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.162
Problem: Crash when using a modifier before "while" or "for". (A.Politz)
Solution: Skip modifiers when checking for a loop command.
Files: src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c
*** ../vim-7.1.161/src/proto/ex_docmd.pro Sun Sep 30 14:00:41 2007
--- src/proto/ex_docmd.pro Sat Nov 24 16:34:06 2007
***************
*** 5,10 ****
--- 5,11 ----
int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
+ int modifier_len __ARGS((char_u *cmd));
int cmd_exists __ARGS((char_u *name));
char_u *set_one_cmd_context __ARGS((expand_T *xp, char_u *buff));
char_u *skip_range __ARGS((char_u *cmd, int *ctx));
*** ../vim-7.1.161/src/ex_docmd.c Tue Nov 20 12:30:31 2007
--- src/ex_docmd.c Sat Nov 24 16:41:20 2007
***************
*** 2963,2968 ****
--- 2963,3019 ----
#endif
#if defined(FEAT_EVAL) || defined(PROTO)
+ static struct cmdmod
+ {
+ char *name;
+ int minlen;
+ int has_count; /* :123verbose :3tab */
+ } cmdmods[] = {
+ {"aboveleft", 3, FALSE},
+ {"belowright", 3, FALSE},
+ {"botright", 2, FALSE},
+ {"browse", 3, FALSE},
+ {"confirm", 4, FALSE},
+ {"hide", 3, FALSE},
+ {"keepalt", 5, FALSE},
+ {"keepjumps", 5, FALSE},
+ {"keepmarks", 3, FALSE},
+ {"leftabove", 5, FALSE},
+ {"lockmarks", 3, FALSE},
+ {"rightbelow", 6, FALSE},
+ {"sandbox", 3, FALSE},
+ {"silent", 3, FALSE},
+ {"tab", 3, TRUE},
+ {"topleft", 2, FALSE},
+ {"verbose", 4, TRUE},
+ {"vertical", 4, FALSE},
+ };
+
+ /*
+ * Return length of a command modifier (including optional count).
+ * Return zero when it's not a modifier.
+ */
+ int
+ modifier_len(cmd)
+ char_u *cmd;
+ {
+ int i, j;
+ char_u *p = cmd;
+
+ if (VIM_ISDIGIT(*cmd))
+ p = skipwhite(skipdigits(cmd));
+ for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i)
+ {
+ for (j = 0; p[j] != NUL; ++j)
+ if (p[j] != cmdmods[i].name[j])
+ break;
+ if (!isalpha(p[j]) && j >= cmdmods[i].minlen
+ && (p == cmd || cmdmods[i].has_count))
+ return j + (p - cmd);
+ }
+ return 0;
+ }
+
/*
* Return > 0 if an Ex command "name" exists.
* Return 2 if there is an exact match.
***************
*** 2977,3006 ****
int i;
int j;
char_u *p;
- static struct cmdmod
- {
- char *name;
- int minlen;
- } cmdmods[] = {
- {"aboveleft", 3},
- {"belowright", 3},
- {"botright", 2},
- {"browse", 3},
- {"confirm", 4},
- {"hide", 3},
- {"keepalt", 5},
- {"keepjumps", 5},
- {"keepmarks", 3},
- {"leftabove", 5},
- {"lockmarks", 3},
- {"rightbelow", 6},
- {"sandbox", 3},
- {"silent", 3},
- {"tab", 3},
- {"topleft", 2},
- {"verbose", 4},
- {"vertical", 4},
- };
/* Check command modifiers. */
for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i)
--- 3028,3033 ----
*** ../vim-7.1.161/src/ex_eval.c Wed Aug 1 15:47:06 2007
--- src/ex_eval.c Sat Nov 24 16:34:09 2007
***************
*** 2269,2277 ****
has_loop_cmd(p)
char_u *p;
{
! p = skipwhite(p);
! while (*p == ':')
! p = skipwhite(p + 1);
if ((p[0] == 'w' && p[1] == 'h')
|| (p[0] == 'f' && p[1] == 'o' && p[2] == 'r'))
return TRUE;
--- 2269,2286 ----
has_loop_cmd(p)
char_u *p;
{
! int len;
!
! /* skip modifiers, white space and ':' */
! for (;;)
! {
! while (*p == ' ' || *p == '\t' || *p == ':')
! ++p;
! len = modifier_len(p);
! if (len == 0)
! break;
! p += len;
! }
if ((p[0] == 'w' && p[1] == 'h')
|| (p[0] == 'f' && p[1] == 'o' && p[2] == 'r'))
return TRUE;
*** ../vim-7.1.161/src/version.c Sat Nov 24 21:27:33 2007
--- src/version.c Sat Nov 24 21:48:38 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 162,
/**/
--
hundred-and-one symptoms of being an internet addict:
144. You eagerly await the update of the "Cool Site of the Day."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

72
7.1.163 Normal file
View file

@ -0,0 +1,72 @@
To: vim-dev@vim.org
Subject: Patch 7.1.163
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.163
Problem: Warning for the unknown option 'bufsecret'.
Solution: Remove the lines .vim that use this option. (Andy Wokula)
Files: runtime/menu.vim
*** ../vim-7.1.162/runtime/menu.vim Sun May 6 15:21:23 2007
--- runtime/menu.vim Mon Nov 19 23:17:11 2007
***************
*** 2,8 ****
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
! " Last Change: 2007 Jan 09
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
--- 2,8 ----
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
! " Last Change: 2007 Nov 19
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
***************
*** 658,664 ****
let buf = 1
while buf <= bufnr('$')
if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
- \ && !getbufvar(buf, "&bufsecret")
let s:bmenu_count = s:bmenu_count + 1
endif
let buf = buf + 1
--- 658,663 ----
***************
*** 671,677 ****
let buf = 1
while buf <= bufnr('$')
if bufexists(buf) && !isdirectory(bufname(buf)) && buflisted(buf)
- \ && !getbufvar(buf, "&bufsecret")
call <SID>BMFilename(bufname(buf), buf)
endif
let buf = buf + 1
--- 670,675 ----
*** ../vim-7.1.162/src/version.c Sat Nov 24 21:49:19 2007
--- src/version.c Thu Nov 29 17:44:08 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 163,
/**/
--
hundred-and-one symptoms of being an internet addict:
158. You get a tuner card so you can watch TV while surfing.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

52
7.1.164 Normal file
View file

@ -0,0 +1,52 @@
To: vim-dev@vim.org
Subject: Patch 7.1.164
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.164
Problem: Reading past end of regexp pattern. (Dominique Pelle)
Solution: Use utf_ptr2len().
Files: src/regexp.c
*** ../vim-7.1.163/src/regexp.c Sat Aug 11 13:57:31 2007
--- src/regexp.c Sat Nov 24 13:23:53 2007
***************
*** 2770,2776 ****
{
#ifdef FEAT_MBYTE
if (enc_utf8)
! prevchr_len += utf_char2len(mb_ptr2char(regparse + prevchr_len));
else if (has_mbyte)
prevchr_len += (*mb_ptr2len)(regparse + prevchr_len);
else
--- 2770,2777 ----
{
#ifdef FEAT_MBYTE
if (enc_utf8)
! /* exclude composing chars that mb_ptr2len does include */
! prevchr_len += utf_ptr2len(regparse + prevchr_len);
else if (has_mbyte)
prevchr_len += (*mb_ptr2len)(regparse + prevchr_len);
else
*** ../vim-7.1.163/src/version.c Thu Nov 29 17:46:01 2007
--- src/version.c Thu Nov 29 21:25:45 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 164,
/**/
--
Send $25.00 for handy leaflet on how to make money by selling leaflets
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

177
7.1.165 Normal file
View file

@ -0,0 +1,177 @@
To: vim-dev@vim.org
Subject: Patch 7.1.165
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.165
Problem: Crash related to getting X window ID. (Dominique Pelle)
Solution: Don't trust the window ID that we got in the past, check it every
time.
Files: src/os_unix.c
*** ../vim-7.1.164/src/os_unix.c Thu Aug 30 11:46:46 2007
--- src/os_unix.c Thu Nov 29 18:19:56 2007
***************
*** 310,316 ****
}
/*
! * mch_inchar(): low level input funcion.
* Get a characters from the keyboard.
* Return the number of characters that are available.
* If wtime == 0 do not wait for characters.
--- 310,316 ----
}
/*
! * mch_inchar(): low level input function.
* Get a characters from the keyboard.
* Return the number of characters that are available.
* If wtime == 0 do not wait for characters.
***************
*** 1567,1584 ****
#ifdef FEAT_XCLIPBOARD
if (xterm_dpy != NULL && x11_window != 0)
{
! /* Checked it already. */
! if (x11_display_from == XD_XTERM)
! return OK;
!
! /*
! * If the X11 display was opened here before, for the window where Vim
! * was started, close that one now to avoid a memory leak.
! */
! if (x11_display_from == XD_HERE && x11_display != NULL)
! XCloseDisplay(x11_display);
! x11_display = xterm_dpy;
! x11_display_from = XD_XTERM;
if (test_x11_window(x11_display) == FAIL)
{
/* probably bad $WINDOWID */
--- 1567,1585 ----
#ifdef FEAT_XCLIPBOARD
if (xterm_dpy != NULL && x11_window != 0)
{
! /* We may have checked it already, but Gnome terminal can move us to
! * another window, so we need to check every time. */
! if (x11_display_from != XD_XTERM)
! {
! /*
! * If the X11 display was opened here before, for the window where
! * Vim was started, close that one now to avoid a memory leak.
! */
! if (x11_display_from == XD_HERE && x11_display != NULL)
! XCloseDisplay(x11_display);
! x11_display = xterm_dpy;
! x11_display_from = XD_XTERM;
! }
if (test_x11_window(x11_display) == FAIL)
{
/* probably bad $WINDOWID */
***************
*** 2421,2427 ****
/*
* Set the case of the file name, if it already exists. This will cause the
* file name to remain exactly the same.
! * Only required for file systems where case is ingored and preserved.
*/
/*ARGSUSED*/
void
--- 2422,2428 ----
/*
* Set the case of the file name, if it already exists. This will cause the
* file name to remain exactly the same.
! * Only required for file systems where case is ignored and preserved.
*/
/*ARGSUSED*/
void
***************
*** 4653,4659 ****
ret = poll(fds, nfd, towait);
# ifdef FEAT_MZSCHEME
if (ret == 0 && mzquantum_used)
! /* MzThreads scheduling is required and timeout occured */
finished = FALSE;
# endif
--- 4654,4660 ----
ret = poll(fds, nfd, towait);
# ifdef FEAT_MZSCHEME
if (ret == 0 && mzquantum_used)
! /* MzThreads scheduling is required and timeout occurred */
finished = FALSE;
# endif
***************
*** 4801,4807 ****
#endif
# ifdef FEAT_MZSCHEME
if (ret == 0 && mzquantum_used)
! /* loop if MzThreads must be scheduled and timeout occured */
finished = FALSE;
# endif
--- 4802,4808 ----
#endif
# ifdef FEAT_MZSCHEME
if (ret == 0 && mzquantum_used)
! /* loop if MzThreads must be scheduled and timeout occurred */
finished = FALSE;
# endif
***************
*** 5191,5197 ****
{
/* When using system() always add extra quotes, because the shell
* is started twice. Otherwise put a backslash before special
! * characters, except insice ``. */
#ifdef USE_SYSTEM
STRCAT(command, " \"");
STRCAT(command, pat[i]);
--- 5192,5198 ----
{
/* When using system() always add extra quotes, because the shell
* is started twice. Otherwise put a backslash before special
! * characters, except inside ``. */
#ifdef USE_SYSTEM
STRCAT(command, " \"");
STRCAT(command, pat[i]);
***************
*** 5675,5681 ****
/* gpm library tries to handling TSTP causes
* problems. Anyways, we close connection to Gpm whenever
* we are going to suspend or starting an external process
! * so we should'nt have problem with this
*/
signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
return 1; /* succeed */
--- 5676,5682 ----
/* gpm library tries to handling TSTP causes
* problems. Anyways, we close connection to Gpm whenever
* we are going to suspend or starting an external process
! * so we shouldn't have problem with this
*/
signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
return 1; /* succeed */
*** ../vim-7.1.164/src/version.c Thu Nov 29 21:26:38 2007
--- src/version.c Sat Dec 1 17:17:20 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 165,
/**/
--
"Hit any key to continue" is very confusing when you have two keyboards.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

80
7.1.166 Normal file
View file

@ -0,0 +1,80 @@
To: vim-dev@vim.org
Subject: Patch 7.1.166
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.166
Problem: Memory leak for using "gp" in Visual mode.
Solution: Free memory in put_register(). (Dominique Pelle)
Files: src/ops.c
*** ../vim-7.1.165/src/ops.c Thu Nov 8 10:35:02 2007
--- src/ops.c Sun Nov 25 15:17:43 2007
***************
*** 927,934 ****
int name;
int copy; /* make a copy, if FALSE make register empty. */
{
! static struct yankreg *reg;
! int i;
#ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. Obtain the
--- 927,934 ----
int name;
int copy; /* make a copy, if FALSE make register empty. */
{
! struct yankreg *reg;
! int i;
#ifdef FEAT_CLIPBOARD
/* When Visual area changed, may have to update selection. Obtain the
***************
*** 967,973 ****
}
/*
! * Put "reg" into register "name". Free any previous contents.
*/
void
put_register(name, reg)
--- 967,973 ----
}
/*
! * Put "reg" into register "name". Free any previous contents and "reg".
*/
void
put_register(name, reg)
***************
*** 977,982 ****
--- 977,983 ----
get_yank_register(name, 0);
free_yank_all();
*y_current = *(struct yankreg *)reg;
+ vim_free(reg);
# ifdef FEAT_CLIPBOARD
/* Send text written to clipboard register to the clipboard. */
*** ../vim-7.1.165/src/version.c Sat Dec 1 17:18:45 2007
--- src/version.c Sat Dec 1 21:11:25 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 166,
/**/
--
An error has occurred. Hit any user to continue.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

80
7.1.167 Normal file
View file

@ -0,0 +1,80 @@
To: vim-dev@vim.org
Subject: Patch 7.1.167
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.167
Problem: Xxd crashes when using "xxd -b -c 110". (Debian bug 452789)
Solution: Allocate more memory. Fix check for maximum number of columns.
Files: src/xxd/xxd.c
*** ../vim-7.1.166/src/xxd/xxd.c Thu May 10 19:07:42 2007
--- src/xxd/xxd.c Thu Nov 29 21:05:16 2007
***************
*** 212,218 ****
#define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
#define COLS 256 /* change here, if you ever need more columns */
! #define LLEN (9 + (5*COLS-1)/2 + 2 + COLS)
char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa;
--- 212,218 ----
#define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
#define COLS 256 /* change here, if you ever need more columns */
! #define LLEN (11 + (9*COLS-1)/1 + COLS + 2)
char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa;
***************
*** 590,596 ****
default: octspergrp = 0; break;
}
! if (cols < 1 || (!hextype && (cols > COLS)))
{
fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS);
exit(1);
--- 590,597 ----
default: octspergrp = 0; break;
}
! if (cols < 1 || ((hextype == HEX_NORMAL || hextype == HEX_BITS)
! && (cols > COLS)))
{
fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS);
exit(1);
***************
*** 750,755 ****
--- 751,757 ----
}
if (ebcdic)
e = (e < 64) ? '.' : etoa64[e-64];
+ /* When changing this update definition of LLEN above. */
l[11 + (grplen * cols - 1)/octspergrp + p] =
#ifdef __MVS__
(e >= 64)
*** ../vim-7.1.166/src/version.c Sat Dec 1 21:12:23 2007
--- src/version.c Mon Dec 3 21:30:31 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 167,
/**/
--
hundred-and-one symptoms of being an internet addict:
178. You look for an icon to double-click to open your bedroom window.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

112
7.1.168 Normal file
View file

@ -0,0 +1,112 @@
To: vim-dev@vim.org
Subject: Patch 7.1.168 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.168 (extra)
Problem: Win32 GUI: Since patch 7.1.095, when the Vim window does not have
focus, clicking in it doesn't position the cursor. (Juergen
Kraemer)
Solution: Don't reset s_button_pending just after receiving focus.
Files: src/gui_w48.c
*** ../vim-7.1.167/src/gui_w48.c Tue Nov 20 17:21:28 2007
--- src/gui_w48.c Mon Dec 3 22:13:16 2007
***************
*** 290,295 ****
--- 290,300 ----
/* Local variables */
static int s_button_pending = -1;
+
+ /* s_getting_focus is set when we got focus but didn't see mouse-up event yet,
+ * so don't reset s_button_pending. */
+ static int s_getting_focus = FALSE;
+
static int s_x_pending;
static int s_y_pending;
static UINT s_kFlags_pending;
***************
*** 671,676 ****
--- 676,683 ----
{
int vim_modifiers = 0x0;
+ s_getting_focus = FALSE;
+
if (keyFlags & MK_SHIFT)
vim_modifiers |= MOUSE_SHIFT;
if (keyFlags & MK_CONTROL)
***************
*** 792,797 ****
--- 799,805 ----
{
int button;
+ s_getting_focus = FALSE;
if (s_button_pending > -1)
{
/* Delayed action for mouse down event */
***************
*** 1951,1958 ****
allow_scrollbar = FALSE;
/* Clear pending mouse button, the release event may have been
! * taken by the dialog window. */
! s_button_pending = -1;
return OK;
}
--- 1959,1968 ----
allow_scrollbar = FALSE;
/* Clear pending mouse button, the release event may have been
! * taken by the dialog window. But don't do this when getting
! * focus, we need the mouse-up event then. */
! if (!s_getting_focus)
! s_button_pending = -1;
return OK;
}
***************
*** 2702,2707 ****
--- 2712,2718 ----
HWND hwndOldFocus)
{
gui_focus_change(TRUE);
+ s_getting_focus = TRUE;
(void)MyWindowProc(hwnd, WM_SETFOCUS, (WPARAM)hwndOldFocus, 0);
}
***************
*** 2711,2716 ****
--- 2722,2728 ----
HWND hwndNewFocus)
{
gui_focus_change(FALSE);
+ s_getting_focus = FALSE;
(void)MyWindowProc(hwnd, WM_KILLFOCUS, (WPARAM)hwndNewFocus, 0);
}
*** ../vim-7.1.167/src/version.c Mon Dec 3 21:31:56 2007
--- src/version.c Mon Dec 3 22:16:32 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 168,
/**/
--
Rule #1: Don't give somebody a tool that he's going to hurt himself with.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

75
7.1.169 Normal file
View file

@ -0,0 +1,75 @@
To: vim-dev@vim.org
Subject: Patch 7.1.169
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.169
Problem: Using uninitialized variable when system() fails. (Dominique
Pelle)
Solution: Let system() return an empty string when it fails.
Files: src/eval.c
*** ../vim-7.1.168/src/eval.c Thu Nov 8 20:47:34 2007
--- src/eval.c Fri Nov 30 21:01:26 2007
***************
*** 15826,15832 ****
FILE *fd;
if (check_restricted() || check_secure())
! return;
if (argvars[1].v_type != VAR_UNKNOWN)
{
--- 15826,15832 ----
FILE *fd;
if (check_restricted() || check_secure())
! goto done;
if (argvars[1].v_type != VAR_UNKNOWN)
{
***************
*** 15837,15843 ****
if ((infile = vim_tempname('i')) == NULL)
{
EMSG(_(e_notmp));
! return;
}
fd = mch_fopen((char *)infile, WRITEBIN);
--- 15837,15843 ----
if ((infile = vim_tempname('i')) == NULL)
{
EMSG(_(e_notmp));
! goto done;
}
fd = mch_fopen((char *)infile, WRITEBIN);
*** ../vim-7.1.168/src/version.c Mon Dec 3 22:20:17 2007
--- src/version.c Fri Dec 7 17:07:32 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 169,
/**/
--
% cat /usr/include/sys/errno.h
#define EPERM 1 /* Operation not permitted */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such process */
[...]
#define EMACS 666 /* Too many macros */
%
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

58
7.1.170 Normal file
View file

@ -0,0 +1,58 @@
To: vim-dev@vim.org
Subject: Patch 7.1.170
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.170
Problem: Valgrind warning for overlapping arguments for strcpy().
Solution: Use mch_memmove() instead. (Dominique Pelle)
Files: src/getchar.c
*** ../vim-7.1.169/src/getchar.c Thu Sep 13 18:25:08 2007
--- src/getchar.c Mon Dec 3 20:42:29 2007
***************
*** 253,260 ****
return;
}
else if (buf->bh_index != 0)
! STRCPY(buf->bh_first.b_next->b_str,
! buf->bh_first.b_next->b_str + buf->bh_index);
buf->bh_index = 0;
if (buf->bh_space >= (int)slen)
--- 253,261 ----
return;
}
else if (buf->bh_index != 0)
! mch_memmove(buf->bh_first.b_next->b_str,
! buf->bh_first.b_next->b_str + buf->bh_index,
! STRLEN(buf->bh_first.b_next->b_str + buf->bh_index) + 1);
buf->bh_index = 0;
if (buf->bh_space >= (int)slen)
*** ../vim-7.1.169/src/version.c Fri Dec 7 17:08:35 2007
--- src/version.c Fri Dec 7 17:27:13 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 170,
/**/
--
Some of the well know MS-Windows errors:
ESLEEP Operator fell asleep
ENOERR No error yet
EDOLLAR OS too expensive
EWINDOWS MS-Windows loaded, system in danger
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

79
7.1.171 Normal file
View file

@ -0,0 +1,79 @@
To: vim-dev@vim.org
Subject: Patch 7.1.171
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.171
Problem: Reading one byte before allocated memory.
Solution: Check index not to become negative. (Dominique Pelle)
Files: src/ex_getln.c
*** ../vim-7.1.170/src/ex_getln.c Tue Oct 30 17:36:31 2007
--- src/ex_getln.c Tue Dec 4 21:49:24 2007
***************
*** 1186,1195 ****
case K_LEFT:
case K_S_LEFT:
case K_C_LEFT:
do
{
- if (ccline.cmdpos == 0)
- break;
--ccline.cmdpos;
#ifdef FEAT_MBYTE
if (has_mbyte) /* move to first byte of char */
--- 1186,1195 ----
case K_LEFT:
case K_S_LEFT:
case K_C_LEFT:
+ if (ccline.cmdpos == 0)
+ goto cmdline_not_changed;
do
{
--ccline.cmdpos;
#ifdef FEAT_MBYTE
if (has_mbyte) /* move to first byte of char */
***************
*** 1198,1204 ****
#endif
ccline.cmdspos -= cmdline_charsize(ccline.cmdpos);
}
! while ((c == K_S_LEFT || c == K_C_LEFT
|| (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)))
&& ccline.cmdbuff[ccline.cmdpos - 1] != ' ');
#ifdef FEAT_MBYTE
--- 1198,1205 ----
#endif
ccline.cmdspos -= cmdline_charsize(ccline.cmdpos);
}
! while (ccline.cmdpos > 0
! && (c == K_S_LEFT || c == K_C_LEFT
|| (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)))
&& ccline.cmdbuff[ccline.cmdpos - 1] != ' ');
#ifdef FEAT_MBYTE
*** ../vim-7.1.170/src/version.c Fri Dec 7 17:30:04 2007
--- src/version.c Fri Dec 7 20:00:06 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 171,
/**/
--
Some of the well know MS-Windows errors:
EMULTI Multitasking attempted, system confused
EKEYBOARD Keyboard locked, try getting out of this one!
EXPLAIN Unexplained error, please tell us what happened
EFUTURE Reserved for our future mistakes
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

50
7.1.172 Normal file
View file

@ -0,0 +1,50 @@
To: vim-dev@vim.org
Subject: Patch 7.1.172
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.172
Problem: When 'buftype' is "acwrite" Vim still checks if the file or
directory exists before overwriting.
Solution: Don't check for overwriting when the buffer name is not a file
name.
Files: src/ex_cmds.c
*** ../vim-7.1.171/src/ex_cmds.c Tue Nov 20 18:03:34 2007
--- src/ex_cmds.c Fri Dec 7 22:13:32 2007
***************
*** 2732,2737 ****
--- 2732,2740 ----
&& vim_strchr(p_cpo, CPO_OVERNEW) == NULL)
|| (buf->b_flags & BF_READERR))
&& !p_wa
+ #ifdef FEAT_QUICKFIX
+ && !bt_nofile(buf)
+ #endif
&& vim_fexists(ffname))
{
if (!eap->forceit && !eap->append)
*** ../vim-7.1.171/src/version.c Fri Dec 7 20:28:13 2007
--- src/version.c Sat Dec 8 22:18:54 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 172,
/**/
--
hundred-and-one symptoms of being an internet addict:
206. You religiously respond immediately to e-mail, while ignoring
your growing pile of snail mail.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

61
7.1.173 Normal file
View file

@ -0,0 +1,61 @@
To: vim-dev@vim.org
Subject: Patch 7.1.173
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.173
Problem: Accessing freed memory. (Dominique Pelle)
Solution: Don't call reg_getline() to check if a line is the first in the
file.
Files: src/regexp.c
*** ../vim-7.1.172/src/regexp.c Thu Nov 29 21:26:38 2007
--- src/regexp.c Sat Dec 8 15:54:05 2007
***************
*** 3810,3820 ****
break;
case RE_BOF:
! /* Passing -1 to the getline() function provided for the search
! * should always return NULL if the current line is the first
! * line of the file. */
if (reglnum != 0 || reginput != regline
! || (REG_MULTI && reg_getline((linenr_T)-1) != NULL))
status = RA_NOMATCH;
break;
--- 3810,3820 ----
break;
case RE_BOF:
! /* We're not at the beginning of the file when below the first
! * line where we started, not at the start of the line or we
! * didn't start at the first line of the buffer. */
if (reglnum != 0 || reginput != regline
! || (REG_MULTI && reg_firstlnum > 1))
status = RA_NOMATCH;
break;
*** ../vim-7.1.172/src/version.c Sat Dec 8 22:20:24 2007
--- src/version.c Sun Dec 9 19:24:36 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 173,
/**/
--
hundred-and-one symptoms of being an internet addict:
213. Your kids start referring to you as "that guy in front of the monitor."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

71
7.1.174 Normal file
View file

@ -0,0 +1,71 @@
To: vim-dev@vim.org
Subject: Patch 7.1.174
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.174
Problem: Writing NUL past end of a buffer.
Solution: Copy one byte less when using strncat(). (Dominuque Pelle)
Files: src/ex_cmds.c, src/ex_docmd.c
*** ../vim-7.1.173/src/ex_cmds.c Sat Dec 8 22:20:24 2007
--- src/ex_cmds.c Fri Dec 7 22:13:32 2007
***************
*** 1650,1656 ****
{
vim_snprintf((char *)IObuff, IOSIZE, _("%sviminfo: %s in line: "),
errnum, message);
! STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff));
if (IObuff[STRLEN(IObuff) - 1] == '\n')
IObuff[STRLEN(IObuff) - 1] = NUL;
emsg(IObuff);
--- 1650,1656 ----
{
vim_snprintf((char *)IObuff, IOSIZE, _("%sviminfo: %s in line: "),
errnum, message);
! STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff) - 1);
if (IObuff[STRLEN(IObuff) - 1] == '\n')
IObuff[STRLEN(IObuff) - 1] = NUL;
emsg(IObuff);
*** ../vim-7.1.173/src/ex_docmd.c Sat Nov 24 21:49:19 2007
--- src/ex_docmd.c Fri Dec 7 21:01:03 2007
***************
*** 2660,2666 ****
errormsg = IObuff;
}
STRCAT(errormsg, ": ");
! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff));
}
emsg(errormsg);
}
--- 2660,2666 ----
errormsg = IObuff;
}
STRCAT(errormsg, ": ");
! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1);
}
emsg(errormsg);
}
*** ../vim-7.1.173/src/version.c Sun Dec 9 19:25:35 2007
--- src/version.c Sun Dec 9 19:36:50 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 174,
/**/
--
hundred-and-one symptoms of being an internet addict:
214. Your MCI "Circle of Friends" are all Hayes-compatible.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

179
7.1.175 Normal file
View file

@ -0,0 +1,179 @@
To: vim-dev@vim.org
Subject: Patch 7.1.175
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.175
Problem: <BS> doesn't work with some combination of 'sts', 'linebreak' and
'backspace'. (Francois Ingelrest)
Solution: When adding white space results in not moving back delete one
character.
Files: src/edit.c
*** ../vim-7.1.174/src/edit.c Sat Nov 24 21:27:33 2007
--- src/edit.c Fri Dec 7 21:32:48 2007
***************
*** 8189,8194 ****
--- 8189,8217 ----
AppendCharToRedobuff(K_DEL);
}
+ static void ins_bs_one __ARGS((colnr_T *vcolp));
+
+ /*
+ * Delete one character for ins_bs().
+ */
+ static void
+ ins_bs_one(vcolp)
+ colnr_T *vcolp;
+ {
+ dec_cursor();
+ getvcol(curwin, &curwin->w_cursor, vcolp, NULL, NULL);
+ if (State & REPLACE_FLAG)
+ {
+ /* Don't delete characters before the insert point when in
+ * Replace mode */
+ if (curwin->w_cursor.lnum != Insstart.lnum
+ || curwin->w_cursor.col >= Insstart.col)
+ replace_do_bs();
+ }
+ else
+ (void)del_char(FALSE);
+ }
+
/*
* Handle Backspace, delete-word and delete-line in Insert mode.
* Return TRUE when backspace was actually used.
***************
*** 8418,8426 ****
int ts;
colnr_T vcol;
colnr_T want_vcol;
! #if 0
! int extra = 0;
! #endif
*inserted_space_p = FALSE;
if (p_sta && in_indent)
--- 8441,8447 ----
int ts;
colnr_T vcol;
colnr_T want_vcol;
! colnr_T start_vcol;
*inserted_space_p = FALSE;
if (p_sta && in_indent)
***************
*** 8431,8436 ****
--- 8452,8458 ----
* 'showbreak' may get in the way, need to get the last column of
* the previous character. */
getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
+ start_vcol = vcol;
dec_cursor();
getvcol(curwin, &curwin->w_cursor, NULL, NULL, &want_vcol);
inc_cursor();
***************
*** 8439,8468 ****
/* delete characters until we are at or before want_vcol */
while (vcol > want_vcol
&& (cc = *(ml_get_cursor() - 1), vim_iswhite(cc)))
! {
! dec_cursor();
! getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
! if (State & REPLACE_FLAG)
! {
! /* Don't delete characters before the insert point when in
! * Replace mode */
! if (curwin->w_cursor.lnum != Insstart.lnum
! || curwin->w_cursor.col >= Insstart.col)
! {
! #if 0 /* what was this for? It causes problems when sw != ts. */
! if (State == REPLACE && (int)vcol < want_vcol)
! {
! (void)del_char(FALSE);
! extra = 2; /* don't pop too much */
! }
! else
! #endif
! replace_do_bs();
! }
! }
! else
! (void)del_char(FALSE);
! }
/* insert extra spaces until we are at want_vcol */
while (vcol < want_vcol)
--- 8461,8467 ----
/* delete characters until we are at or before want_vcol */
while (vcol > want_vcol
&& (cc = *(ml_get_cursor() - 1), vim_iswhite(cc)))
! ins_bs_one(&vcol);
/* insert extra spaces until we are at want_vcol */
while (vcol < want_vcol)
***************
*** 8479,8500 ****
#endif
{
ins_str((char_u *)" ");
! if ((State & REPLACE_FLAG) /* && extra <= 1 */)
! {
! #if 0
! if (extra)
! replace_push_off(NUL);
! else
! #endif
! replace_push(NUL);
! }
! #if 0
! if (extra == 2)
! extra = 1;
! #endif
}
getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
}
}
/*
--- 8478,8493 ----
#endif
{
ins_str((char_u *)" ");
! if ((State & REPLACE_FLAG))
! replace_push(NUL);
}
getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
}
+
+ /* If we are now back where we started delete one character. Can
+ * happen when using 'sts' and 'linebreak'. */
+ if (vcol >= start_vcol)
+ ins_bs_one(&vcol);
}
/*
*** ../vim-7.1.174/src/version.c Sun Dec 9 19:37:37 2007
--- src/version.c Sun Dec 9 20:24:11 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 175,
/**/
--
hundred-and-one symptoms of being an internet addict:
215. Your mouse-clicking forearm rivals Popeye's.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

88
7.1.176 Normal file
View file

@ -0,0 +1,88 @@
To: vim-dev@vim.org
Subject: Patch 7.1.176
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.176
Problem: Building with Aap fails when the "compiledby" argument contains
'<' or '>' characters. (Alex Yeh)
Solution: Change how quoting is done in the Aap recipe.
Files: src/main.aap
*** ../vim-7.1.175/src/main.aap Tue Sep 25 22:13:14 2007
--- src/main.aap Fri Dec 7 17:03:31 2007
***************
*** 63,70 ****
@else:
@ arch = "ppc"
:print Building for $arch system
:sys CONFIG_STATUS=auto/config.status
! ./configure.aap `file2string("config.arg")`
--with-mac-arch=$arch
--cache-file=auto/config.cache
--- 63,71 ----
@else:
@ arch = "ppc"
:print Building for $arch system
+ config_args = `file2string("config.arg")`
:sys CONFIG_STATUS=auto/config.status
! ./configure.aap $config_args
--with-mac-arch=$arch
--cache-file=auto/config.cache
***************
*** 440,450 ****
:print >> $target char_u *all_lflags = (char_u *)"$linkcmd";
@if _no.get("COMPILEDBY"):
who = $COMPILEDBY
! where = ''
@else:
:syseval whoami | :eval re.sub("\n", "", stdin) | :assign who
:syseval hostname | :eval re.sub("\n", "", stdin) | :assign where
:print >> $target char_u *compiled_user = (char_u *)"$who";
:print >> $target char_u *compiled_sys = (char_u *)"$where";
--- 441,453 ----
:print >> $target char_u *all_lflags = (char_u *)"$linkcmd";
@if _no.get("COMPILEDBY"):
who = $COMPILEDBY
! where =
@else:
:syseval whoami | :eval re.sub("\n", "", stdin) | :assign who
:syseval hostname | :eval re.sub("\n", "", stdin) | :assign where
+ @who = string.replace(who, '"', '\\"')
+ @where = string.replace(where, '"', '\\"')
:print >> $target char_u *compiled_user = (char_u *)"$who";
:print >> $target char_u *compiled_sys = (char_u *)"$where";
*** ../vim-7.1.175/src/version.c Sun Dec 9 20:25:59 2007
--- src/version.c Mon Dec 31 16:40:01 2007
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 176,
/**/
--
E M A C S
s e l o h
c t t n i
a a t f
p r t
e o
l
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

193
7.1.177 Normal file
View file

@ -0,0 +1,193 @@
To: vim-dev@vim.org
Subject: Patch 7.1.177
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.177
Problem: Freeing memory twice when in debug mode while reading a script.
Solution: Ignore script input while in debug mode.
Files: src/ex_cmds2.c, src/getchar.c, src/globals.h
*** ../vim-7.1.176/src/ex_cmds2.c Thu May 10 20:55:46 2007
--- src/ex_cmds2.c Tue Jan 1 14:13:41 2008
***************
*** 93,98 ****
--- 93,100 ----
int save_emsg_silent = emsg_silent;
int save_redir_off = redir_off;
tasave_T typeaheadbuf;
+ int typeahead_saved = FALSE;
+ int save_ignore_script;
# ifdef FEAT_EX_EXTRA
int save_ex_normal_busy;
# endif
***************
*** 159,176 ****
* This makes sure we get input from the user here and don't interfere
* with the commands being executed. Reset "ex_normal_busy" to avoid
* the side effects of using ":normal". Save the stuff buffer and make
! * it empty. */
# ifdef FEAT_EX_EXTRA
save_ex_normal_busy = ex_normal_busy;
ex_normal_busy = 0;
# endif
if (!debug_greedy)
save_typeahead(&typeaheadbuf);
cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
! if (!debug_greedy)
restore_typeahead(&typeaheadbuf);
# ifdef FEAT_EX_EXTRA
ex_normal_busy = save_ex_normal_busy;
# endif
--- 161,186 ----
* This makes sure we get input from the user here and don't interfere
* with the commands being executed. Reset "ex_normal_busy" to avoid
* the side effects of using ":normal". Save the stuff buffer and make
! * it empty. Set ignore_script to avoid reading from script input. */
# ifdef FEAT_EX_EXTRA
save_ex_normal_busy = ex_normal_busy;
ex_normal_busy = 0;
# endif
if (!debug_greedy)
+ {
save_typeahead(&typeaheadbuf);
+ typeahead_saved = TRUE;
+ save_ignore_script = ignore_script;
+ ignore_script = TRUE;
+ }
cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
! if (typeahead_saved)
! {
restore_typeahead(&typeaheadbuf);
+ ignore_script = save_ignore_script;
+ }
# ifdef FEAT_EX_EXTRA
ex_normal_busy = save_ex_normal_busy;
# endif
*** ../vim-7.1.176/src/getchar.c Fri Dec 7 17:30:04 2007
--- src/getchar.c Tue Jan 1 14:11:42 2008
***************
*** 1279,1286 ****
void
free_typebuf()
{
! vim_free(typebuf.tb_buf);
! vim_free(typebuf.tb_noremap);
}
/*
--- 1279,1292 ----
void
free_typebuf()
{
! if (typebuf.tb_buf == typebuf_init)
! EMSG2(_(e_intern2), "Free typebuf 1");
! else
! vim_free(typebuf.tb_buf);
! if (typebuf.tb_buf == noremapbuf_init)
! EMSG2(_(e_intern2), "Free typebuf 2");
! else
! vim_free(typebuf.tb_noremap);
}
/*
***************
*** 1359,1364 ****
--- 1365,1375 ----
EMSG(_(e_nesting));
return;
}
+ #ifdef FEAT_EVAL
+ if (ignore_script)
+ /* Not reading from script, also don't open one. Warning message? */
+ return;
+ #endif
if (scriptin[curscript] != NULL) /* already reading script */
++curscript;
***************
*** 2346,2352 ****
current_menu->silent[idx]);
}
}
! #endif /* FEAT_GUI */
continue; /* try mapping again */
}
--- 2357,2363 ----
current_menu->silent[idx]);
}
}
! #endif /* FEAT_GUI && FEAT_MENU */
continue; /* try mapping again */
}
***************
*** 2862,2872 ****
undo_off = FALSE; /* restart undo now */
/*
! * first try script file
! * If interrupted: Stop reading script files.
*/
script_char = -1;
! while (scriptin[curscript] != NULL && script_char < 0)
{
if (got_int || (script_char = getc(scriptin[curscript])) < 0)
{
--- 2873,2887 ----
undo_off = FALSE; /* restart undo now */
/*
! * Get a character from a script file if there is one.
! * If interrupted: Stop reading script files, close them all.
*/
script_char = -1;
! while (scriptin[curscript] != NULL && script_char < 0
! #ifdef FEAT_EVAL
! && !ignore_script
! #endif
! )
{
if (got_int || (script_char = getc(scriptin[curscript])) < 0)
{
*** ../vim-7.1.176/src/globals.h Sat Sep 29 14:15:00 2007
--- src/globals.h Mon Dec 31 17:00:21 2007
***************
*** 954,959 ****
--- 954,962 ----
EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */
EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */
#endif
+ #ifdef FEAT_EVAL
+ EXTERN int ignore_script INIT(= FALSE); /* ignore script input */
+ #endif
EXTERN int stop_insert_mode; /* for ":stopinsert" and 'insertmode' */
EXTERN int KeyTyped; /* TRUE if user typed current char */
*** ../vim-7.1.176/src/version.c Mon Dec 31 16:41:31 2007
--- src/version.c Tue Jan 1 14:00:09 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 177,
/**/
--
Back up my hard drive? I can't find the reverse switch!
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.1.178 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.1.178
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.178
Problem: "%" doesn't work on "/* comment *//* comment */".
Solution: Don't handle the "//" in "*//*" as a C++ comment. (Markus
Heidelberg)
Files: src/search.c
*** ../vim-7.1.177/src/search.c Wed Aug 8 22:48:16 2007
--- src/search.c Mon Dec 10 21:21:17 2007
***************
*** 2319,2325 ****
#endif
while ((p = vim_strchr(p, '/')) != NULL)
{
! if (p[1] == '/')
break;
++p;
}
--- 2319,2327 ----
#endif
while ((p = vim_strchr(p, '/')) != NULL)
{
! /* accept a double /, unless it's preceded with * and followed by *,
! * because * / / * is an end and start of a C comment */
! if (p[1] == '/' && (p == line || p[-1] != '*' || p[2] != '*'))
break;
++p;
}
*** ../vim-7.1.177/src/version.c Tue Jan 1 14:16:42 2008
--- src/version.c Tue Jan 1 15:41:33 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 178,
/**/
--
I'd like to meet the man who invented sex and see what he's working on now.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

189
7.1.179 Normal file
View file

@ -0,0 +1,189 @@
To: vim-dev@vim.org
Subject: Patch 7.1.179
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.179
Problem: Need to check for TCL 8.5.
Solution: Adjust configure script. (Alexey Froloff)
Files: src/configure.in, src/auto/configure
*** ../vim-7.1.178/src/configure.in Sun Nov 4 15:35:23 2007
--- src/configure.in Sun Dec 30 13:55:28 2007
***************
*** 759,773 ****
if test "$enable_tclinterp" = "yes"; then
! dnl on FreeBSD tclsh is a silly script, look for tclsh8.[420]
AC_MSG_CHECKING(--with-tclsh argument)
AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
! tclsh_name="tclsh8.4"; AC_MSG_RESULT(no))
AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
AC_SUBST(vi_cv_path_tcl)
! dnl when no specific version specified, also try 8.2 and 8.0
if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
tclsh_name="tclsh8.2"
AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
--- 759,777 ----
if test "$enable_tclinterp" = "yes"; then
! dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
AC_MSG_CHECKING(--with-tclsh argument)
AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
! tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
AC_SUBST(vi_cv_path_tcl)
! dnl when no specific version specified, also try 8.4, 8.2 and 8.0
! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
! tclsh_name="tclsh8.4"
! AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
! fi
if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
tclsh_name="tclsh8.2"
AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
***************
*** 810,815 ****
--- 814,820 ----
AC_MSG_CHECKING(for location of tclConfig.sh script)
if test "x$MACOSX" != "xyes"; then
tclcnf=`echo $tclinc | sed s/include/lib/g`
+ tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
else
dnl For Mac OS X 10.3, use the OS-provided framework location
tclcnf="/System/Library/Frameworks/Tcl.framework"
***************
*** 830,835 ****
--- 835,841 ----
AC_MSG_RESULT(<not found>)
AC_MSG_CHECKING(for Tcl library by myself)
tcllib=`echo $tclinc | sed s/include/lib/g`
+ tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
for ext in .so .a ; do
for ver in "" $tclver ; do
for try in $tcllib ; do
*** ../vim-7.1.178/src/auto/configure Sun Nov 4 15:35:23 2007
--- src/auto/configure Sun Dec 30 13:55:35 2007
***************
*** 4445,4451 ****
tclsh_name="$withval"; echo "$as_me:$LINENO: result: $tclsh_name" >&5
echo "${ECHO_T}$tclsh_name" >&6
else
! tclsh_name="tclsh8.4"; echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi;
# Extract the first word of "$tclsh_name", so it can be a program name with args.
--- 4445,4451 ----
tclsh_name="$withval"; echo "$as_me:$LINENO: result: $tclsh_name" >&5
echo "${ECHO_T}$tclsh_name" >&6
else
! tclsh_name="tclsh8.5"; echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi;
# Extract the first word of "$tclsh_name", so it can be a program name with args.
***************
*** 4489,4495 ****
! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
tclsh_name="tclsh8.2"
# Extract the first word of "$tclsh_name", so it can be a program name with args.
set dummy $tclsh_name; ac_word=$2
--- 4489,4537 ----
! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
! tclsh_name="tclsh8.4"
! # Extract the first word of "$tclsh_name", so it can be a program name with args.
! set dummy $tclsh_name; ac_word=$2
! echo "$as_me:$LINENO: checking for $ac_word" >&5
! echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
! if test "${ac_cv_path_vi_cv_path_tcl+set}" = set; then
! echo $ECHO_N "(cached) $ECHO_C" >&6
! else
! case $vi_cv_path_tcl in
! [\\/]* | ?:[\\/]*)
! ac_cv_path_vi_cv_path_tcl="$vi_cv_path_tcl" # Let the user override the test with a path.
! ;;
! *)
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
! IFS=$as_save_IFS
! test -z "$as_dir" && as_dir=.
! for ac_exec_ext in '' $ac_executable_extensions; do
! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
! ac_cv_path_vi_cv_path_tcl="$as_dir/$ac_word$ac_exec_ext"
! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
! break 2
! fi
! done
! done
!
! ;;
! esac
! fi
! vi_cv_path_tcl=$ac_cv_path_vi_cv_path_tcl
!
! if test -n "$vi_cv_path_tcl"; then
! echo "$as_me:$LINENO: result: $vi_cv_path_tcl" >&5
! echo "${ECHO_T}$vi_cv_path_tcl" >&6
! else
! echo "$as_me:$LINENO: result: no" >&5
! echo "${ECHO_T}no" >&6
! fi
!
! fi
! if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
tclsh_name="tclsh8.2"
# Extract the first word of "$tclsh_name", so it can be a program name with args.
set dummy $tclsh_name; ac_word=$2
***************
*** 4649,4654 ****
--- 4691,4697 ----
echo $ECHO_N "checking for location of tclConfig.sh script... $ECHO_C" >&6
if test "x$MACOSX" != "xyes"; then
tclcnf=`echo $tclinc | sed s/include/lib/g`
+ tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
else
tclcnf="/System/Library/Frameworks/Tcl.framework"
fi
***************
*** 4668,4673 ****
--- 4711,4717 ----
echo "$as_me:$LINENO: checking for Tcl library by myself" >&5
echo $ECHO_N "checking for Tcl library by myself... $ECHO_C" >&6
tcllib=`echo $tclinc | sed s/include/lib/g`
+ tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
for ext in .so .a ; do
for ver in "" $tclver ; do
for try in $tcllib ; do
*** ../vim-7.1.178/src/version.c Tue Jan 1 15:42:45 2008
--- src/version.c Tue Jan 1 16:24:07 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 179,
/**/
--
Just think of all the things we haven't thought of yet.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

266
7.1.180 Normal file
View file

@ -0,0 +1,266 @@
To: vim-dev@vim.org
Subject: Patch 7.1.180
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.180
Problem: Regexp patterns not tested sufficiently.
Solution: Add more checks to the regexp test.
Files: src/testdir/test64.in, src/testdir/test64.ok
*** ../vim-7.1.179/src/testdir/test64.in Tue Sep 25 17:54:41 2007
--- src/testdir/test64.in Mon Dec 31 14:20:23 2007
***************
*** 14,23 ****
--- 14,136 ----
:" etc.
:" When there is no match use only the first two items.
:let tl = []
+ :call add(tl, ['ab', 'aab', 'ab'])
:call add(tl, ['b', 'abcdef', 'b'])
:call add(tl, ['bc*', 'abccccdef', 'bcccc'])
:call add(tl, ['bc\{-}', 'abccccdef', 'b'])
:call add(tl, ['bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
+ :call add(tl, ['bc*', 'abbdef', 'b'])
+ :call add(tl, ['c*', 'ccc', 'ccc'])
+ :call add(tl, ['bc*', 'abdef', 'b'])
+ :call add(tl, ['c*', 'abdef', ''])
+ :call add(tl, ['bc\+', 'abccccdef', 'bcccc'])
+ :call add(tl, ['bc\+', 'abdef']) "no match
+ :"
+ :"operator \|
+ :call add(tl, ['a\|ab', 'cabd', 'a']) "alternation is ordered
+ :"
+ :call add(tl, ['c\?', 'ccb', 'c'])
+ :call add(tl, ['bc\?', 'abd', 'b'])
+ :call add(tl, ['bc\?', 'abccd', 'bc'])
+ :"
+ :call add(tl, ['\va{1}', 'ab', 'a'])
+ :"
+ :call add(tl, ['\va{2}', 'aa', 'aa'])
+ :call add(tl, ['\va{2}', 'caad', 'aa'])
+ :call add(tl, ['\va{2}', 'aba'])
+ :call add(tl, ['\va{2}', 'ab'])
+ :call add(tl, ['\va{2}', 'abaa', 'aa'])
+ :call add(tl, ['\va{2}', 'aaa', 'aa'])
+ :"
+ :call add(tl, ['\vb{1}', 'abca', 'b'])
+ :call add(tl, ['\vba{2}', 'abaa', 'baa'])
+ :call add(tl, ['\vba{3}', 'aabaac'])
+ :"
+ :call add(tl, ['\v(ab){1}', 'ab', 'ab', 'ab'])
+ :call add(tl, ['\v(ab){1}', 'dabc', 'ab', 'ab'])
+ :call add(tl, ['\v(ab){1}', 'acb'])
+ :"
+ :call add(tl, ['\v(ab){0,2}', 'acb', "", ""])
+ :call add(tl, ['\v(ab){0,2}', 'ab', 'ab', 'ab'])
+ :call add(tl, ['\v(ab){1,2}', 'ab', 'ab', 'ab'])
+ :call add(tl, ['\v(ab){1,2}', 'ababc', 'abab', 'ab'])
+ :call add(tl, ['\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
+ :call add(tl, ['\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
+ :"
+ :call add(tl, ['\v(ab){2}', 'abab', 'abab', 'ab'])
+ :call add(tl, ['\v(ab){2}', 'cdababe', 'abab', 'ab'])
+ :call add(tl, ['\v(ab){2}', 'abac'])
+ :call add(tl, ['\v(ab){2}', 'abacabab', 'abab', 'ab'])
+ :call add(tl, ['\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
+ :call add(tl, ['\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
+ :"
+ :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a'])
+ :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa'])
+ :call add(tl, ['\v(a{2}){1}', 'aaac', 'aa', 'aa'])
+ :call add(tl, ['\v(a{2}){1}', 'daaac', 'aa', 'aa'])
+ :call add(tl, ['\v(a{1}){2}', 'daaac', 'aa', 'a'])
+ :call add(tl, ['\v(a{1}){2}', 'aaa', 'aa', 'a'])
+ :call add(tl, ['\v(a{2})+', 'adaac', 'aa', 'aa'])
+ :call add(tl, ['\v(a{2})+', 'aa', 'aa', 'aa'])
+ :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa'])
+ :call add(tl, ['\v(a{1}){2}', 'aa', 'aa', 'a'])
+ :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a'])
+ :call add(tl, ['\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
+ :call add(tl, ['\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
+ :"
+ :call add(tl, ['\v(a+){2}', 'dadaac', 'aa', 'a'])
+ :call add(tl, ['\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
+ :"
+ :call add(tl, ['\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
+ :call add(tl, ['\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
+ :call add(tl, ['\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
+ :call add(tl, ['\v(a{1,3}){3}', 'daac'])
+ :call add(tl, ['\v(a{1,2}){2}', 'dac'])
+ :call add(tl, ['\v(a+)+', 'daac', 'aa', 'aa'])
+ :call add(tl, ['\v(a+)+', 'aaa', 'aaa', 'aaa'])
+ :call add(tl, ['\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
+ :call add(tl, ['\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
+ :call add(tl, ['\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
+ :call add(tl, ['\v(a|b|c)+', 'aacb', 'aacb', 'b'])
+ :call add(tl, ['\v(a|b|c){2}', 'abcb', 'ab', 'b'])
+ :call add(tl, ['\v(abc){2}', 'abcabd', ])
+ :call add(tl, ['\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
+ :"
+ :call add(tl, ['a*', 'cc', ''])
+ :call add(tl, ['\v(a*)+', 'cc', ''])
+ :call add(tl, ['\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
+ :call add(tl, ['\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
+ :call add(tl, ['\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
+ :call add(tl, ['\v(a{0,2})+', 'cc', ''])
+ :call add(tl, ['\v(a*)+', '', ''])
+ :call add(tl, ['\v((a*)+)+', '', ''])
+ :call add(tl, ['\v((ab)*)+', '', ''])
+ :call add(tl, ['\va{1,3}', 'aab', 'aa'])
+ :call add(tl, ['\va{2,3}', 'abaa', 'aa'])
+ :"
+ :call add(tl, ['\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
+ :call add(tl, ['\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
+ :call add(tl, ['\va{2}|b{2}', 'abab'])
+ :call add(tl, ['\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
+ :call add(tl, ['\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
+ :call add(tl, ['\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
+ :call add(tl, ['\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
+ :call add(tl, ['\va(bc){2}d', 'aabcbfbc' ])
+ :call add(tl, ['\va*a{2}', 'a', ])
+ :call add(tl, ['\va*a{2}', 'aa', 'aa' ])
+ :call add(tl, ['\va*a{2}', 'aaa', 'aaa' ])
+ :call add(tl, ['\va*a{2}', 'bbbabcc', ])
+ :call add(tl, ['\va*b*|a*c*', 'a', 'a'])
+ :call add(tl, ['\va{1}b{1}|a{1}b{1}', ''])
+ :"
+ :"submatches
+ :call add(tl, ['\v(a)', 'ab', 'a', 'a'])
+ :call add(tl, ['\v(a)(b)', 'ab', 'ab', 'a', 'b'])
+ :call add(tl, ['\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
+ :call add(tl, ['\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
+ :call add(tl, ['\v(a)|(b)', 'ab', 'a', 'a'])
+ :"
+ :call add(tl, ['\v(a*)+', 'aaaa', 'aaaa', ''])
:call add(tl, ['x', 'abcdef'])
:"
:for t in tl
*** ../vim-7.1.179/src/testdir/test64.ok Tue Aug 14 17:28:14 2007
--- src/testdir/test64.ok Mon Dec 31 14:20:26 2007
***************
*** 4,6 ****
--- 4,102 ----
OK
OK
OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
+ OK
*** ../vim-7.1.179/src/version.c Tue Jan 1 16:25:33 2008
--- src/version.c Tue Jan 1 17:34:32 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 180,
/**/
--
CONCORDE: Message for you, sir.
He falls forward revealing the arrow with the note.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

62
7.1.181 Normal file
View file

@ -0,0 +1,62 @@
To: vim-dev@vim.org
Subject: Patch 7.1.181
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.181
Problem: Accessing uninitialized memory in Farsi mode. (Dominuque Pelle)
Solution: Only invoke lrF_sub() when there is something to do.
Files: src/ex_cmds.c
*** ../vim-7.1.180/src/ex_cmds.c Sun Dec 9 19:37:37 2007
--- src/ex_cmds.c Mon Dec 31 17:29:25 2007
***************
*** 4212,4222 ****
sub_nlines = 0;
}
- #ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */
- if (p_altkeymap && curwin->w_p_rl)
- lrF_sub(cmd);
- #endif
-
if (eap->cmdidx == CMD_tilde)
which_pat = RE_LAST; /* use last used regexp */
else
--- 4212,4217 ----
***************
*** 4252,4257 ****
--- 4247,4256 ----
}
else /* find the end of the regexp */
{
+ #ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */
+ if (p_altkeymap && curwin->w_p_rl)
+ lrF_sub(cmd);
+ #endif
which_pat = RE_LAST; /* use last used regexp */
delimiter = *cmd++; /* remember delimiter character */
pat = cmd; /* remember start of search pat */
*** ../vim-7.1.180/src/version.c Tue Jan 1 17:37:01 2008
--- src/version.c Wed Jan 2 13:57:31 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 181,
/**/
--
Yah, well, we had to carve our electrons out of driftwood we'd
find. In the winter. Uphill. Both ways.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

169
7.1.182 Normal file
View file

@ -0,0 +1,169 @@
To: vim-dev@vim.org
Subject: Patch 7.1.182
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.182
Problem: When using tab pages and an argument list the session file may
contain wrong "next" commands. (Alexander Bluem)
Solution: Use "argu" commands and only when needed.
Files: src/ex_docmd.c
*** ../vim-7.1.181/src/ex_docmd.c Sun Dec 9 19:37:37 2007
--- src/ex_docmd.c Mon Dec 31 18:24:16 2007
***************
*** 372,378 ****
static char_u *arg_all __ARGS((void));
#ifdef FEAT_SESSION
static int makeopens __ARGS((FILE *fd, char_u *dirnow));
! static int put_view __ARGS((FILE *fd, win_T *wp, int add_edit, unsigned *flagp));
static void ex_loadview __ARGS((exarg_T *eap));
static char_u *get_view_file __ARGS((int c));
static int did_lcd; /* whether ":lcd" was produced for a session */
--- 372,378 ----
static char_u *arg_all __ARGS((void));
#ifdef FEAT_SESSION
static int makeopens __ARGS((FILE *fd, char_u *dirnow));
! static int put_view __ARGS((FILE *fd, win_T *wp, int add_edit, unsigned *flagp, int current_arg_idx));
static void ex_loadview __ARGS((exarg_T *eap));
static char_u *get_view_file __ARGS((int c));
static int did_lcd; /* whether ":lcd" was produced for a session */
***************
*** 8762,8768 ****
}
else
{
! failed |= (put_view(fd, curwin, !using_vdir, flagp) == FAIL);
}
if (put_line(fd, "let &so = s:so_save | let &siso = s:siso_save")
== FAIL)
--- 8762,8769 ----
}
else
{
! failed |= (put_view(fd, curwin, !using_vdir, flagp,
! -1) == FAIL);
}
if (put_line(fd, "let &so = s:so_save | let &siso = s:siso_save")
== FAIL)
***************
*** 9761,9766 ****
--- 9762,9769 ----
int tabnr;
win_T *tab_firstwin;
frame_T *tab_topframe;
+ int cur_arg_idx = 0;
+ int next_arg_idx;
if (ssop_flags & SSOP_BUFFERS)
only_save_windows = FALSE; /* Save ALL buffers */
***************
*** 9976,9987 ****
{
if (!ses_do_win(wp))
continue;
! if (put_view(fd, wp, wp != edited_win, &ssop_flags) == FAIL)
return FAIL;
if (nr > 1 && put_line(fd, "wincmd w") == FAIL)
return FAIL;
}
/*
* Restore cursor to the current window if it's not the first one.
*/
--- 9979,9997 ----
{
if (!ses_do_win(wp))
continue;
! if (put_view(fd, wp, wp != edited_win, &ssop_flags,
! cur_arg_idx) == FAIL)
return FAIL;
if (nr > 1 && put_line(fd, "wincmd w") == FAIL)
return FAIL;
+ next_arg_idx = wp->w_arg_idx;
}
+ /* The argument index in the first tab page is zero, need to set it in
+ * each window. For further tab pages it's the window where we do
+ * "tabedit". */
+ cur_arg_idx = next_arg_idx;
+
/*
* Restore cursor to the current window if it's not the first one.
*/
***************
*** 10190,10200 ****
* Caller must make sure 'scrolloff' is zero.
*/
static int
! put_view(fd, wp, add_edit, flagp)
FILE *fd;
win_T *wp;
int add_edit; /* add ":edit" command to view */
unsigned *flagp; /* vop_flags or ssop_flags */
{
win_T *save_curwin;
int f;
--- 10200,10212 ----
* Caller must make sure 'scrolloff' is zero.
*/
static int
! put_view(fd, wp, add_edit, flagp, current_arg_idx)
FILE *fd;
win_T *wp;
int add_edit; /* add ":edit" command to view */
unsigned *flagp; /* vop_flags or ssop_flags */
+ int current_arg_idx; /* current argument index of the window, use
+ * -1 if unknown */
{
win_T *save_curwin;
int f;
***************
*** 10224,10233 ****
/* Only when part of a session: restore the argument index. Some
* arguments may have been deleted, check if the index is valid. */
! if (wp->w_arg_idx != 0 && wp->w_arg_idx <= WARGCOUNT(wp)
&& flagp == &ssop_flags)
{
! if (fprintf(fd, "%ldnext", (long)wp->w_arg_idx) < 0
|| put_eol(fd) == FAIL)
return FAIL;
did_next = TRUE;
--- 10236,10245 ----
/* Only when part of a session: restore the argument index. Some
* arguments may have been deleted, check if the index is valid. */
! if (wp->w_arg_idx != current_arg_idx && wp->w_arg_idx <= WARGCOUNT(wp)
&& flagp == &ssop_flags)
{
! if (fprintf(fd, "%ldargu", (long)wp->w_arg_idx + 1) < 0
|| put_eol(fd) == FAIL)
return FAIL;
did_next = TRUE;
*** ../vim-7.1.181/src/version.c Wed Jan 2 13:58:17 2008
--- src/version.c Wed Jan 2 15:10:01 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 182,
/**/
--
You were lucky. We lived for three months in a brown paper bag in a
septic tank. We used to have to get up at six o'clock in the morning,
clean the bag, eat a crust of stale bread, go to work down mill for
fourteen hours a day week in-week out. When we got home, our Dad
would thrash us to sleep with his belt!
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

99
7.1.183 Normal file
View file

@ -0,0 +1,99 @@
To: vim-dev@vim.org
Subject: Patch 7.1.183
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.183
Problem: "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu
Paul)
Solution: Inside "\%[]" detect \&, \| and \) as an error.
Files: src/regexp.c
*** ../vim-7.1.182/src/regexp.c Sun Dec 9 19:25:35 2007
--- src/regexp.c Wed Jan 2 15:02:37 2008
***************
*** 1288,1295 ****
}
/*
! * regbranch - one alternative of an | operator
! *
* Implements the & operator.
*/
static char_u *
--- 1288,1294 ----
}
/*
! * Handle one alternative of an | operator.
* Implements the & operator.
*/
static char_u *
***************
*** 1330,1337 ****
}
/*
! * regbranch - one alternative of an | or & operator
! *
* Implements the concatenation operator.
*/
static char_u *
--- 1329,1335 ----
}
/*
! * Handle one alternative of an | or & operator.
* Implements the concatenation operator.
*/
static char_u *
***************
*** 1708,1713 ****
--- 1706,1713 ----
case Magic('|'):
case Magic('&'):
case Magic(')'):
+ if (one_exactly)
+ EMSG_ONE_RET_NULL;
EMSG_RET_NULL(_(e_internal)); /* Supposed to be caught earlier. */
/* NOTREACHED */
***************
*** 3106,3112 ****
* slow, we keep one allocated piece of memory and only re-allocate it when
* it's too small. It's freed in vim_regexec_both() when finished.
*/
! static char_u *reg_tofree;
static unsigned reg_tofreelen;
/*
--- 3106,3112 ----
* slow, we keep one allocated piece of memory and only re-allocate it when
* it's too small. It's freed in vim_regexec_both() when finished.
*/
! static char_u *reg_tofree = NULL;
static unsigned reg_tofreelen;
/*
*** ../vim-7.1.182/src/version.c Wed Jan 2 15:12:29 2008
--- src/version.c Wed Jan 2 15:33:52 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 183,
/**/
--
Not too long ago, unzipping in public was illegal...
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

63
7.1.184 Normal file
View file

@ -0,0 +1,63 @@
To: vim-dev@vim.org
Subject: Patch 7.1.184
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.184
Problem: Crash when deleting backwards over a line break in Insert mode.
Solution: Don't advance the cursor when it's already on the NUL after a
line. (Matthew Wozniski)
Files: src/normal.c
*** ../vim-7.1.183/src/normal.c Sun Oct 14 17:15:45 2007
--- src/normal.c Tue Jan 1 16:40:24 2008
***************
*** 5849,5860 ****
/* When the NL before the first char has to be deleted we
* put the cursor on the NUL after the previous line.
* This is a very special case, be careful!
! * don't adjust op_end now, otherwise it won't work */
if ( (cap->oap->op_type == OP_DELETE
|| cap->oap->op_type == OP_CHANGE)
&& !lineempty(curwin->w_cursor.lnum))
{
! ++curwin->w_cursor.col;
cap->retval |= CA_NO_ADJ_OP_END;
}
continue;
--- 5849,5861 ----
/* When the NL before the first char has to be deleted we
* put the cursor on the NUL after the previous line.
* This is a very special case, be careful!
! * Don't adjust op_end now, otherwise it won't work. */
if ( (cap->oap->op_type == OP_DELETE
|| cap->oap->op_type == OP_CHANGE)
&& !lineempty(curwin->w_cursor.lnum))
{
! if (*ml_get_cursor() != NUL)
! ++curwin->w_cursor.col;
cap->retval |= CA_NO_ADJ_OP_END;
}
continue;
*** ../vim-7.1.183/src/version.c Wed Jan 2 15:34:48 2008
--- src/version.c Wed Jan 2 16:24:19 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 184,
/**/
--
Not too long ago, cut and paste was done with scissors and glue...
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

140
7.1.185 Normal file
View file

@ -0,0 +1,140 @@
To: vim-dev@vim.org
Subject: Patch 7.1.185
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.185
Problem: Using "gR" with a multi-byte encoding and typing a CR pushes
characters onto the replace stack incorrectly, resulting in BS
putting back the wrong characters. (Paul B. Mahol)
Solution: Push multi-byte characters onto the replace stack in reverse byte
order. Add replace_push_mb().
Files: src/edit.c, src/misc1.c, src/proto/edit.pro
*** ../vim-7.1.184/src/edit.c Sun Dec 9 20:25:59 2007
--- src/edit.c Tue Jan 1 17:28:07 2008
***************
*** 6939,6944 ****
--- 6939,6963 ----
++replace_stack_nr;
}
+ #if defined(FEAT_MBYTE) || defined(PROTO)
+ /*
+ * Push a character onto the replace stack. Handles a multi-byte character in
+ * reverse byte order, so that the first byte is popped off first.
+ * Return the number of bytes done (includes composing characters).
+ */
+ int
+ replace_push_mb(p)
+ char_u *p;
+ {
+ int l = (*mb_ptr2len)(p);
+ int j;
+
+ for (j = l - 1; j >= 0; --j)
+ replace_push(p[j]);
+ return l;
+ }
+ #endif
+
#if 0
/*
* call replace_push(c) with replace_offset set to the first NUL.
*** ../vim-7.1.184/src/misc1.c Wed Sep 26 22:35:06 2007
--- src/misc1.c Wed Jan 2 17:48:00 2008
***************
*** 591,597 ****
replace_push(NUL);
p = saved_line + curwin->w_cursor.col;
while (*p != NUL)
! replace_push(*p++);
saved_line[curwin->w_cursor.col] = NUL;
}
#endif
--- 592,605 ----
replace_push(NUL);
p = saved_line + curwin->w_cursor.col;
while (*p != NUL)
! {
! #ifdef FEAT_MBYTE
! if (has_mbyte)
! p += replace_push_mb(p);
! else
! #endif
! replace_push(*p++);
! }
saved_line[curwin->w_cursor.col] = NUL;
}
#endif
***************
*** 1914,1920 ****
int charlen;
{
int c = buf[0];
- int l, j;
#endif
int newlen; /* nr of bytes inserted */
int oldlen; /* nr of bytes deleted (0 when not replacing) */
--- 1922,1927 ----
***************
*** 2016,2028 ****
for (i = 0; i < oldlen; ++i)
{
#ifdef FEAT_MBYTE
! l = (*mb_ptr2len)(oldp + col + i) - 1;
! for (j = l; j >= 0; --j)
! replace_push(oldp[col + i + j]);
! i += l;
! #else
! replace_push(oldp[col + i]);
#endif
}
}
--- 2023,2033 ----
for (i = 0; i < oldlen; ++i)
{
#ifdef FEAT_MBYTE
! if (has_mbyte)
! i += replace_push_mb(oldp + col + i) - 1;
! else
#endif
+ replace_push(oldp[col + i]);
}
}
*** ../vim-7.1.184/src/proto/edit.pro Sat May 5 20:21:34 2007
--- src/proto/edit.pro Tue Jan 1 17:21:24 2008
***************
*** 32,37 ****
--- 32,38 ----
char_u *get_last_insert __ARGS((void));
char_u *get_last_insert_save __ARGS((void));
void replace_push __ARGS((int c));
+ int replace_push_mb __ARGS((char_u *p));
void fixthisline __ARGS((int (*get_the_indent)(void)));
void fix_indent __ARGS((void));
int in_cinkeys __ARGS((int keytyped, int when, int line_is_empty));
*** ../vim-7.1.184/src/version.c Wed Jan 2 16:25:20 2008
--- src/version.c Wed Jan 2 17:45:10 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 185,
/**/
--
Not too long ago, a keyboard was something to make music with...
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

111
7.1.186 Normal file
View file

@ -0,0 +1,111 @@
To: vim-dev@vim.org
Subject: Patch 7.1.186
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.186
Problem: "expand('<afile>')" returns a bogus value after changing
directory. (Dave Fishburn)
Solution: Copy "autocmd_fname" to allocated memory and expand to full
filename. Shorten the path when expanding <afile>.
Files: src/ex_docmd.c, src/fileio.c
*** ../vim-7.1.185/src/ex_docmd.c Wed Jan 2 15:12:29 2008
--- src/ex_docmd.c Wed Jan 2 20:12:33 2008
***************
*** 7799,7804 ****
--- 7799,7805 ----
free_cd_dir()
{
vim_free(prev_dir);
+ prev_dir = NULL;
}
#endif
***************
*** 9521,9526 ****
--- 9522,9528 ----
*errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"<afile>\"");
return NULL;
}
+ result = shorten_fname1(result);
break;
case SPEC_ABUF: /* buffer number for autocommand */
*** ../vim-7.1.185/src/fileio.c Thu Nov 8 20:47:34 2007
--- src/fileio.c Wed Jan 2 20:21:43 2008
***************
*** 5556,5562 ****
#endif
#if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \
! defined(FEAT_QUICKFIX) || defined(PROTO)
/*
* Try to find a shortname by comparing the fullname with the current
* directory.
--- 5556,5562 ----
#endif
#if defined(FEAT_VIMINFO) || defined(FEAT_BROWSE) || \
! defined(FEAT_QUICKFIX) || defined(FEAT_AUTOCMD) || defined(PROTO)
/*
* Try to find a shortname by comparing the fullname with the current
* directory.
***************
*** 8546,8551 ****
--- 8546,8553 ----
/*
* Set the file name to be used for <afile>.
+ * Make a copy to avoid that changing a buffer name or directory makes it
+ * invalid.
*/
if (fname_io == NULL)
{
***************
*** 8558,8563 ****
--- 8560,8567 ----
}
else
autocmd_fname = fname_io;
+ if (autocmd_fname != NULL)
+ autocmd_fname = FullName_save(autocmd_fname, FALSE);
/*
* Set the buffer number to be used for <abuf>.
***************
*** 8740,8745 ****
--- 8744,8750 ----
vim_free(sourcing_name);
sourcing_name = save_sourcing_name;
sourcing_lnum = save_sourcing_lnum;
+ vim_free(autocmd_fname);
autocmd_fname = save_autocmd_fname;
autocmd_bufnr = save_autocmd_bufnr;
autocmd_match = save_autocmd_match;
*** ../vim-7.1.185/src/version.c Wed Jan 2 17:48:24 2008
--- src/version.c Wed Jan 2 21:06:35 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 186,
/**/
--
LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and
hacks him to the floor. Blood. Swashbuckling music (perhaps).
LAUNCELOT races through into the castle screaming.
SECOND SENTRY: Hey!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

81
7.1.187 Normal file
View file

@ -0,0 +1,81 @@
To: vim-dev@vim.org
Subject: Patch 7.1.187
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.187
Problem: Win32 GUI: Custom completion using system() no longer works
after patch 7.1.104. (Erik Falor)
Solution: Loop when safe_vgetc() returns K_IGNORE.
Files: src/ex_getln.c
*** ../vim-7.1.186/src/ex_getln.c Fri Dec 7 20:28:13 2007
--- src/ex_getln.c Wed Jan 2 21:42:51 2008
***************
*** 335,341 ****
quit_more = FALSE; /* reset after CTRL-D which had a more-prompt */
cursorcmd(); /* set the cursor on the right spot */
! c = safe_vgetc();
if (KeyTyped)
{
some_key_typed = TRUE;
--- 335,348 ----
quit_more = FALSE; /* reset after CTRL-D which had a more-prompt */
cursorcmd(); /* set the cursor on the right spot */
!
! /* Get a character. Ignore K_IGNORE, it should not do anything, such
! * as stop completion. */
! do
! {
! c = safe_vgetc();
! } while (c == K_IGNORE);
!
if (KeyTyped)
{
some_key_typed = TRUE;
***************
*** 1209,1215 ****
goto cmdline_not_changed;
case K_IGNORE:
! goto cmdline_not_changed; /* Ignore mouse */
#ifdef FEAT_GUI_W32
/* On Win32 ignore <M-F4>, we get it when closing the window was
--- 1216,1223 ----
goto cmdline_not_changed;
case K_IGNORE:
! /* Ignore mouse event or ex_window() result. */
! goto cmdline_not_changed;
#ifdef FEAT_GUI_W32
/* On Win32 ignore <M-F4>, we get it when closing the window was
*** ../vim-7.1.186/src/version.c Wed Jan 2 21:07:32 2008
--- src/version.c Wed Jan 2 21:53:24 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 187,
/**/
--
FATHER: Who are you?
PRINCE: I'm ... your son ...
FATHER: Not you.
LAUNCELOT: I'm ... er ... Sir Launcelot, sir.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

54
7.1.188 Normal file
View file

@ -0,0 +1,54 @@
To: vim-dev@vim.org
Subject: Patch 7.1.188
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.188
Problem: When 'showmode' is off the message for changing a readonly file is
given in the second column instead of the first. (Payl B. Mahol)
Solution: Put the W10 message in the first column.
Files: src/edit.c
*** ../vim-7.1.187/src/edit.c Wed Jan 2 17:48:24 2008
--- src/edit.c Wed Jan 2 20:56:46 2008
***************
*** 550,556 ****
i = showmode();
if (!p_im && did_restart_edit == 0)
! change_warning(i + 1);
#ifdef CURSOR_SHAPE
ui_cursor_shape(); /* may show different cursor shape */
--- 550,556 ----
i = showmode();
if (!p_im && did_restart_edit == 0)
! change_warning(i == 0 ? 0 : i + 1);
#ifdef CURSOR_SHAPE
ui_cursor_shape(); /* may show different cursor shape */
*** ../vim-7.1.187/src/version.c Wed Jan 2 21:54:33 2008
--- src/version.c Wed Jan 2 22:06:19 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 188,
/**/
--
PRINCE: He's come to rescue me, father.
LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

76
7.1.189 Normal file
View file

@ -0,0 +1,76 @@
To: vim-dev@vim.org
Subject: Patch 7.1.189
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.189 (after 7.1.104)
Problem: Patch 7.1.104 was incomplete.
Solution: Also call plain_vgetc() in ask_yesno().
Files: src/misc1.c
*** ../vim-7.1.188/src/misc1.c Wed Jan 2 17:48:24 2008
--- src/misc1.c Wed Jan 2 17:48:00 2008
***************
*** 222,231 ****
*s++ = *p++;
orig_char_len--;
}
/* Skip over any additional white space (useful when newindent is less
* than old) */
while (vim_iswhite(*p))
! (void)*p++;
}
else
--- 222,232 ----
*s++ = *p++;
orig_char_len--;
}
+
/* Skip over any additional white space (useful when newindent is less
* than old) */
while (vim_iswhite(*p))
! ++p;
}
else
***************
*** 3024,3030 ****
if (direct)
r = get_keystroke();
else
! r = safe_vgetc();
if (r == Ctrl_C || r == ESC)
r = 'n';
msg_putchar(r); /* show what you typed */
--- 3025,3031 ----
if (direct)
r = get_keystroke();
else
! r = plain_vgetc();
if (r == Ctrl_C || r == ESC)
r = 'n';
msg_putchar(r); /* show what you typed */
*** ../vim-7.1.188/src/version.c Wed Jan 2 22:08:43 2008
--- src/version.c Thu Jan 3 12:40:31 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 189,
/**/
--
Q: How does a UNIX Guru do Sex ?
A: unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.1.190 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.1.190
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.190
Problem: Cursor after end-of-line: "iA sentence.<Esc>)"
Solution: Move cursor back and make motion inclusive.
Files: src/normal.c
*** ../vim-7.1.189/src/normal.c Wed Jan 2 16:25:20 2008
--- src/normal.c Wed Jan 2 22:04:38 2008
***************
*** 6564,6569 ****
--- 6564,6575 ----
clearopbeep(cap->oap);
else
{
+ /* Don't leave the cursor on the NUL past a line */
+ if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
+ {
+ --curwin->w_cursor.col;
+ cap->oap->inclusive = TRUE;
+ }
#ifdef FEAT_VIRTUALEDIT
curwin->w_cursor.coladd = 0;
#endif
*** ../vim-7.1.189/src/version.c Thu Jan 3 12:42:39 2008
--- src/version.c Thu Jan 3 13:19:03 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 190,
/**/
--
[clop clop]
GUARD #1: Halt! Who goes there?
ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of
Camelot. King of the Britons, defeator of the Saxons, sovereign of
all England!
GUARD #1: Pull the other one!
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

61
7.1.191 Normal file
View file

@ -0,0 +1,61 @@
To: vim-dev@vim.org
Subject: Patch 7.1.191
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.191
Problem: Win32 GUI: after patch 7.1.168 there is still a problem when
clicking in a scrollbar. (Juergen Jottkaerr)
Solution: Don't check the input buffer when dragging the scrollbar.
Files: src/gui.c
*** ../vim-7.1.190/src/gui.c Tue Nov 6 22:26:39 2007
--- src/gui.c Thu Jan 3 13:16:29 2008
***************
*** 3734,3741 ****
sb->value = value;
#ifdef USE_ON_FLY_SCROLL
! /* When not allowed to do the scrolling right now, return. */
! if (dont_scroll || input_available())
return;
#endif
#ifdef FEAT_INS_EXPAND
--- 3734,3743 ----
sb->value = value;
#ifdef USE_ON_FLY_SCROLL
! /* When not allowed to do the scrolling right now, return.
! * This also checked input_available(), but that causes the first click in
! * a scrollbar to be ignored when Vim doesn't have focus. */
! if (dont_scroll)
return;
#endif
#ifdef FEAT_INS_EXPAND
*** ../vim-7.1.190/src/version.c Thu Jan 3 13:19:50 2008
--- src/version.c Thu Jan 3 16:13:23 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 191,
/**/
--
GUARD #1: What -- a swallow carrying a coconut?
ARTHUR: It could grip it by the husk!
GUARD #1: It's not a question of where he grips it! It's a simple question
of weight ratios! A five ounce bird could not carry a 1 pound
coconut.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

79
7.1.192 Normal file
View file

@ -0,0 +1,79 @@
To: vim-dev@vim.org
Subject: Patch 7.1.192
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.192
Problem: With Visual block selection, "s" and typing something, CTRL-C
doesn't stop Vim from repeating the replacement in other lines,
like happens for "I".
Solution: Check for "got_int" to be set.
Files: src/ops.c
*** ../vim-7.1.191/src/ops.c Sat Dec 1 21:12:23 2007
--- src/ops.c Thu Jan 3 16:26:37 2008
***************
*** 2468,2476 ****
edit(NUL, FALSE, (linenr_T)count1);
! /* if user has moved off this line, we don't know what to do, so do
! * nothing */
! if (curwin->w_cursor.lnum != oap->start.lnum)
return;
if (oap->block_mode)
--- 2468,2477 ----
edit(NUL, FALSE, (linenr_T)count1);
! /* If user has moved off this line, we don't know what to do, so do
! * nothing.
! * Also don't repeat the insert when Insert mode ended with CTRL-C. */
! if (curwin->w_cursor.lnum != oap->start.lnum || got_int)
return;
if (oap->block_mode)
***************
*** 2601,2608 ****
/*
* In Visual block mode, handle copying the new text to all lines of the
* block.
*/
! if (oap->block_mode && oap->start.lnum != oap->end.lnum)
{
/* Auto-indenting may have changed the indent. If the cursor was past
* the indent, exclude that indent change from the inserted text. */
--- 2602,2610 ----
/*
* In Visual block mode, handle copying the new text to all lines of the
* block.
+ * Don't repeat the insert when Insert mode ended with CTRL-C.
*/
! if (oap->block_mode && oap->start.lnum != oap->end.lnum && !got_int)
{
/* Auto-indenting may have changed the indent. If the cursor was past
* the indent, exclude that indent change from the inserted text. */
*** ../vim-7.1.191/src/version.c Thu Jan 3 16:14:25 2008
--- src/version.c Thu Jan 3 16:30:07 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 192,
/**/
--
"A mouse can be just as dangerous as a bullet or a bomb."
(US Representative Lamar Smith, R-Texas)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

100
7.1.193 Normal file
View file

@ -0,0 +1,100 @@
To: vim-dev@vim.org
Subject: Patch 7.1.193
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.193
Problem: Some Vim 5.x digraphs are missing in Vim 7, even though the
character pairs are not used. (Philippe de Muyter)
Solution: Add those Vim 5.x digraphs that don't conflict with others.
Files: src/digraph.c
*** ../vim-7.1.192/src/digraph.c Thu Sep 13 18:25:08 2007
--- src/digraph.c Thu Jan 3 17:48:47 2008
***************
*** 1978,1983 ****
--- 1978,2038 ----
{'f', 't', 0xfb05},
{'s', 't', 0xfb06},
# endif /* FEAT_MBYTE */
+
+ /* Vim 5.x compatible digraphs that don't conflict with the above */
+ {'~', '!', 161}, /* ¡ */
+ {'c', '|', 162}, /* ¢ */
+ {'$', '$', 163}, /* £ */
+ {'o', 'x', 164}, /* ¤ - currency symbol in ISO 8859-1 */
+ {'Y', '-', 165}, /* ¥ */
+ {'|', '|', 166}, /* ¦ */
+ {'c', 'O', 169}, /* © */
+ {'-', ',', 172}, /* ¬ */
+ {'-', '=', 175}, /* ¯ */
+ {'~', 'o', 176}, /* ° */
+ {'2', '2', 178}, /* ² */
+ {'3', '3', 179}, /* ³ */
+ {'p', 'p', 182}, /* ¶ */
+ {'~', '.', 183}, /* · */
+ {'1', '1', 185}, /* ¹ */
+ {'~', '?', 191}, /* ¿ */
+ {'A', '`', 192}, /* À */
+ {'A', '^', 194}, /* Â */
+ {'A', '~', 195}, /* Ã */
+ {'A', '"', 196}, /* Ä */
+ {'A', '@', 197}, /* Å */
+ {'E', '`', 200}, /* È */
+ {'E', '^', 202}, /* Ê */
+ {'E', '"', 203}, /* Ë */
+ {'I', '`', 204}, /* Ì */
+ {'I', '^', 206}, /* Î */
+ {'I', '"', 207}, /* Ï */
+ {'N', '~', 209}, /* Ñ */
+ {'O', '`', 210}, /* Ò */
+ {'O', '^', 212}, /* Ô */
+ {'O', '~', 213}, /* Õ */
+ {'/', '\\', 215}, /* × - multiplication symbol in ISO 8859-1 */
+ {'U', '`', 217}, /* Ù */
+ {'U', '^', 219}, /* Û */
+ {'I', 'p', 222}, /* Þ */
+ {'a', '`', 224}, /* à */
+ {'a', '^', 226}, /* â */
+ {'a', '~', 227}, /* ã */
+ {'a', '"', 228}, /* ä */
+ {'a', '@', 229}, /* å */
+ {'e', '`', 232}, /* è */
+ {'e', '^', 234}, /* ê */
+ {'e', '"', 235}, /* ë */
+ {'i', '`', 236}, /* ì */
+ {'i', '^', 238}, /* î */
+ {'n', '~', 241}, /* ñ */
+ {'o', '`', 242}, /* ò */
+ {'o', '^', 244}, /* ô */
+ {'o', '~', 245}, /* õ */
+ {'u', '`', 249}, /* ù */
+ {'u', '^', 251}, /* û */
+ {'y', '"', 255}, /* x XX */
+
{NUL, NUL, NUL}
};
*** ../vim-7.1.192/src/version.c Thu Jan 3 16:31:17 2008
--- src/version.c Thu Jan 3 17:52:51 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 193,
/**/
--
Futility Factor: No experiment is ever a complete failure - it can always
serve as a negative example.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.1.194 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.1.194
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.194
Problem: ":echo glob('~/{}')" results in /home/user//.
Solution: Don't add a slash if there already is one.
Files: src/os_unix.c
*** ../vim-7.1.193/src/os_unix.c Sat Dec 1 17:18:45 2007
--- src/os_unix.c Thu Jan 3 18:52:22 2008
***************
*** 5482,5488 ****
{
STRCPY(p, (*file)[i]);
if (dir)
! STRCAT(p, "/"); /* add '/' to a directory name */
(*file)[j++] = p;
}
}
--- 5482,5488 ----
{
STRCPY(p, (*file)[i]);
if (dir)
! add_pathsep(p); /* add '/' to a directory name */
(*file)[j++] = p;
}
}
*** ../vim-7.1.193/src/version.c Thu Jan 3 17:53:41 2008
--- src/version.c Thu Jan 3 18:54:41 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 194,
/**/
--
ARTHUR: Will you ask your master if he wants to join my court at Camelot?!
GUARD #1: But then of course African swallows are not migratory.
GUARD #2: Oh, yeah...
GUARD #1: So they couldn't bring a coconut back anyway...
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

75
7.1.195 Normal file
View file

@ -0,0 +1,75 @@
To: vim-dev@vim.org
Subject: Patch 7.1.195
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.195
Problem: '0 mark doesn't work for "~/foo ~ foo".
Solution: Don't expand the whole file name, only "~/".
Files: src/mark.c
*** ../vim-7.1.194/src/mark.c Thu May 10 18:48:03 2007
--- src/mark.c Thu Jan 3 20:17:29 2008
***************
*** 505,513 ****
{
/*
* First expand "~/" in the file name to the home directory.
! * Try to shorten the file name.
*/
! expand_env(fm->fname, NameBuff, MAXPATHL);
mch_dirname(IObuff, IOSIZE);
p = shorten_fname(NameBuff, IObuff);
--- 505,528 ----
{
/*
* First expand "~/" in the file name to the home directory.
! * Don't expand the whole name, it may contain other '~' chars.
*/
! if (fm->fname[0] == '~' && (fm->fname[1] == '/'
! #ifdef BACKSLASH_IN_FILENAME
! || fm->fname[1] == '\\'
! #endif
! ))
! {
! int len;
!
! expand_env((char_u *)"~/", NameBuff, MAXPATHL);
! len = STRLEN(NameBuff);
! vim_strncpy(NameBuff + len, fm->fname + 2, MAXPATHL - len - 1);
! }
! else
! vim_strncpy(NameBuff, fm->fname, MAXPATHL - 1);
!
! /* Try to shorten the file name. */
mch_dirname(IObuff, IOSIZE);
p = shorten_fname(NameBuff, IObuff);
*** ../vim-7.1.194/src/version.c Thu Jan 3 18:55:21 2008
--- src/version.c Thu Jan 3 20:10:16 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 195,
/**/
--
GUARD #2: Wait a minute -- supposing two swallows carried it together?
GUARD #1: No, they'd have to have it on a line.
GUARD #2: Well, simple! They'd just use a standard creeper!
GUARD #1: What, held under the dorsal guiding feathers?
GUARD #2: Well, why not?
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

90
7.1.196 Normal file
View file

@ -0,0 +1,90 @@
To: vim-dev@vim.org
Subject: Patch 7.1.196 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.196 (extra)
Problem: Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik
Falor)
Solution: Use the TTM_SETMAXTIPWIDTH message.
Files: src/gui_w32.c
*** ../vim-7.1.195/src/gui_w32.c Thu Aug 30 12:24:21 2007
--- src/gui_w32.c Thu Jan 3 13:56:26 2008
***************
*** 987,992 ****
--- 987,997 ----
{
LPNMTTDISPINFOW lpdi = (LPNMTTDISPINFOW)lParam;
+ /* Set the maximum width, this also enables using
+ * \n for line break. */
+ SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH,
+ 0, 500);
+
tt_text = enc_to_ucs2(str, NULL);
lpdi->lpszText = tt_text;
/* can't show tooltip if failed */
***************
*** 996,1001 ****
--- 1001,1011 ----
{
LPNMTTDISPINFO lpdi = (LPNMTTDISPINFO)lParam;
+ /* Set the maximum width, this also enables using
+ * \n for line break. */
+ SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH,
+ 0, 500);
+
if (STRLEN(str) < sizeof(lpdi->szText)
|| ((tt_text = vim_strsave(str)) == NULL))
vim_strncpy(lpdi->szText, str,
***************
*** 4734,4745 ****
cur_beval->showState = ShS_NEUTRAL;
break;
case TTN_GETDISPINFO:
! {
! /* if you get there then we have new common controls */
! NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh;
! info->lpszText = (LPSTR)info->lParam;
! info->uFlags |= TTF_DI_SETITEM;
! }
break;
}
}
--- 4744,4755 ----
cur_beval->showState = ShS_NEUTRAL;
break;
case TTN_GETDISPINFO:
! {
! /* if you get there then we have new common controls */
! NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh;
! info->lpszText = (LPSTR)info->lParam;
! info->uFlags |= TTF_DI_SETITEM;
! }
break;
}
}
*** ../vim-7.1.195/src/version.c Thu Jan 3 20:21:34 2008
--- src/version.c Thu Jan 3 20:43:22 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 196,
/**/
--
Shit makes the flowers grow and that's beautiful
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

62
7.1.197 Normal file
View file

@ -0,0 +1,62 @@
To: vim-dev@vim.org
Subject: Patch 7.1.197
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.197
Problem: Mac: "make install" doesn't work when prefix defined.
Solution: Pass different arguments to "make installruntime". (Jjgod Jiang)
Files: src/Makefile
*** ../vim-7.1.196/src/Makefile Thu Jan 3 20:44:40 2008
--- src/Makefile Thu Jan 3 18:30:02 2008
***************
*** 2559,2566 ****
# -mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin
srcdir=`pwd`; $(MAKE) -f Makefile installruntime \
VIMEXE=$$srcdir/$(VIMTARGET) \
! prefix=$(DESTDIR)$(prefix)/$(RESDIR)/vim \
! VIMRTLOC=$(DESTDIR)$(prefix)/$(RESDIR)/vim/runtime
# Put the link back.
ln -s `pwd`/../runtime $(RESDIR)/vim
# Copy rgb.txt, Mac doesn't always have X11
--- 2564,2574 ----
# -mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin
srcdir=`pwd`; $(MAKE) -f Makefile installruntime \
VIMEXE=$$srcdir/$(VIMTARGET) \
! prefix=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR) \
! exec_prefix=$(DESTDIR)$(prefix)/$(APPDIR)/Contents \
! BINDIR=$(DESTDIR)$(prefix)/$(APPDIR)/Contents/MacOS \
! VIMLOC=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR) \
! VIMRTLOC=$(DESTDIR)$(prefix)/$(RESDIR)$(VIMDIR)/runtime
# Put the link back.
ln -s `pwd`/../runtime $(RESDIR)/vim
# Copy rgb.txt, Mac doesn't always have X11
*** ../vim-7.1.196/src/version.c Thu Jan 3 20:44:35 2008
--- src/version.c Fri Jan 4 11:52:46 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 197,
/**/
--
CUSTOMER: Well, can you hang around a couple of minutes? He won't be
long.
MORTICIAN: Naaah, I got to go on to Robinson's -- they've lost nine today.
CUSTOMER: Well, when is your next round?
MORTICIAN: Thursday.
DEAD PERSON: I think I'll go for a walk.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

51
7.1.198 Normal file
View file

@ -0,0 +1,51 @@
To: vim-dev@vim.org
Subject: Patch 7.1.198
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.198
Problem: Hang when using ":s/\n//gn". (Burak Gorkemli)
Solution: Set "skip_match".
Files: src/ex_cmds.c
*** ../vim-7.1.197/src/ex_cmds.c Wed Jan 2 13:58:17 2008
--- src/ex_cmds.c Fri Jan 4 14:46:34 2008
***************
*** 4575,4580 ****
--- 4575,4581 ----
{
matchcol = (colnr_T)STRLEN(sub_firstline);
nmatch = 1;
+ skip_match = TRUE;
}
sub_nsubs++;
did_sub = TRUE;
*** ../vim-7.1.197/src/version.c Fri Jan 4 11:54:11 2008
--- src/version.c Fri Jan 4 14:52:09 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 198,
/**/
--
[clop clop]
ARTHUR: Old woman!
DENNIS: Man!
ARTHUR: Man, sorry. What knight lives in that castle over there?
DENNIS: I'm thirty seven.
ARTHUR: What?
DENNIS: I'm thirty seven -- I'm not old!
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

105
7.1.199 Normal file
View file

@ -0,0 +1,105 @@
To: vim-dev@vim.org
Subject: Patch 7.1.199
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.199
Problem: Can't do command line completion for a specific file name
extension.
Solution: When the pattern ends in "$" don't add a star for completion and
remove the "$" before matching with file names.
Files: runtime/doc/cmdline.txt, src/ex_getln.c
*** ../vim-7.1.198/runtime/doc/cmdline.txt Sat May 12 15:38:39 2007
--- runtime/doc/cmdline.txt Fri Jan 4 15:13:06 2008
***************
*** 1,4 ****
! *cmdline.txt* For Vim version 7.1. Last change: 2006 Jul 18
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *cmdline.txt* For Vim version 7.1. Last change: 2008 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 316,322 ****
command-line is shown. (Note: the shifted arrow keys do not work on all
terminals)
! *his* *:history*
:his[tory] Print the history of last entered commands.
{not in Vi}
{not available when compiled without the |+cmdline_hist|
--- 316,322 ----
command-line is shown. (Note: the shifted arrow keys do not work on all
terminals)
! *:his* *:history*
:his[tory] Print the history of last entered commands.
{not in Vi}
{not available when compiled without the |+cmdline_hist|
***************
*** 447,452 ****
--- 447,457 ----
To completely ignore files with some extension use 'wildignore'.
+ To match only files that end at the end of the typed text append a "$". For
+ example, to match only files that end in ".c": >
+ :e *.c$
+ This will not match a file ending in ".cpp". Without the "$" it does match.
+
The old value of an option can be obtained by hitting 'wildchar' just after
the '='. For example, typing 'wildchar' after ":set dir=" will insert the
current value of 'dir'. This overrules file name completion for the options
*** ../vim-7.1.198/src/ex_getln.c Wed Jan 2 21:54:33 2008
--- src/ex_getln.c Fri Jan 4 15:05:31 2008
***************
*** 4078,4083 ****
--- 4078,4084 ----
* ~ would be at the start of the file name, but not the tail.
* $ could be anywhere in the tail.
* ` could be anywhere in the file name.
+ * When the name ends in '$' don't add a star, remove the '$'.
*/
tail = gettail(retval);
if ((*retval != '~' || tail != retval)
***************
*** 4085,4090 ****
--- 4086,4093 ----
&& vim_strchr(tail, '$') == NULL
&& vim_strchr(retval, '`') == NULL)
retval[len++] = '*';
+ else if (len > 0 && retval[len - 1] == '$')
+ --len;
retval[len] = NUL;
}
}
*** ../vim-7.1.198/src/version.c Fri Jan 4 14:52:14 2008
--- src/version.c Fri Jan 4 15:14:29 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 199,
/**/
--
ARTHUR: Well, I can't just call you `Man'.
DENNIS: Well, you could say `Dennis'.
ARTHUR: Well, I didn't know you were called `Dennis.'
DENNIS: Well, you didn't bother to find out, did you?
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

74
7.1.200 Normal file
View file

@ -0,0 +1,74 @@
To: vim-dev@vim.org
Subject: Patch 7.1.200
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.200 (after 7.1.177 and 7.1.182)
Problem: Compiler warnings for uninitialized variables.
Solution: Init variables.
Files: src/ex_cmds2.c, src/ex_docmd.c
*** ../vim-7.1.199/src/ex_cmds2.c Tue Jan 1 14:16:42 2008
--- src/ex_cmds2.c Fri Jan 4 15:55:54 2008
***************
*** 94,100 ****
int save_redir_off = redir_off;
tasave_T typeaheadbuf;
int typeahead_saved = FALSE;
! int save_ignore_script;
# ifdef FEAT_EX_EXTRA
int save_ex_normal_busy;
# endif
--- 94,100 ----
int save_redir_off = redir_off;
tasave_T typeaheadbuf;
int typeahead_saved = FALSE;
! int save_ignore_script = 0;
# ifdef FEAT_EX_EXTRA
int save_ex_normal_busy;
# endif
*** ../vim-7.1.199/src/ex_docmd.c Wed Jan 2 21:07:32 2008
--- src/ex_docmd.c Fri Jan 4 15:57:28 2008
***************
*** 9765,9771 ****
win_T *tab_firstwin;
frame_T *tab_topframe;
int cur_arg_idx = 0;
! int next_arg_idx;
if (ssop_flags & SSOP_BUFFERS)
only_save_windows = FALSE; /* Save ALL buffers */
--- 9766,9772 ----
win_T *tab_firstwin;
frame_T *tab_topframe;
int cur_arg_idx = 0;
! int next_arg_idx = 0;
if (ssop_flags & SSOP_BUFFERS)
only_save_windows = FALSE; /* Save ALL buffers */
*** ../vim-7.1.199/src/version.c Fri Jan 4 15:16:57 2008
--- src/version.c Fri Jan 4 15:59:46 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 200,
/**/
--
ARTHUR: I did say sorry about the `old woman,' but from the behind you
looked--
DENNIS: What I object to is you automatically treat me like an inferior!
ARTHUR: Well, I AM king...
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

87
7.1.201 Normal file
View file

@ -0,0 +1,87 @@
To: vim-dev@vim.org
Subject: Patch 7.1.201
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.201
Problem: When reading stdin 'fenc' and 'ff are not set.
Solution: Set the options after reading stdin. (Ben Schmidt)
Files: src/fileio.c
*** ../vim-7.1.200/src/fileio.c Wed Jan 2 21:07:32 2008
--- src/fileio.c Fri Jan 4 16:18:27 2008
***************
*** 221,231 ****
{
int fd = 0;
int newfile = (flags & READ_NEW);
- int set_options = newfile || (eap != NULL && eap->read_edit);
int check_readonly;
int filtering = (flags & READ_FILTER);
int read_stdin = (flags & READ_STDIN);
int read_buffer = (flags & READ_BUFFER);
linenr_T read_buf_lnum = 1; /* next line to read from curbuf */
colnr_T read_buf_col = 0; /* next char to read from this line */
char_u c;
--- 221,232 ----
{
int fd = 0;
int newfile = (flags & READ_NEW);
int check_readonly;
int filtering = (flags & READ_FILTER);
int read_stdin = (flags & READ_STDIN);
int read_buffer = (flags & READ_BUFFER);
+ int set_options = newfile || read_buffer
+ || (eap != NULL && eap->read_edit);
linenr_T read_buf_lnum = 1; /* next line to read from curbuf */
colnr_T read_buf_col = 0; /* next char to read from this line */
char_u c;
***************
*** 650,657 ****
if (set_options)
{
! curbuf->b_p_eol = TRUE;
! curbuf->b_start_eol = TRUE;
#ifdef FEAT_MBYTE
curbuf->b_p_bomb = FALSE;
curbuf->b_start_bomb = FALSE;
--- 651,663 ----
if (set_options)
{
! /* Don't change 'eol' if reading from buffer as it will already be
! * correctly set when reading stdin. */
! if (!read_buffer)
! {
! curbuf->b_p_eol = TRUE;
! curbuf->b_start_eol = TRUE;
! }
#ifdef FEAT_MBYTE
curbuf->b_p_bomb = FALSE;
curbuf->b_start_bomb = FALSE;
*** ../vim-7.1.200/src/version.c Fri Jan 4 16:00:10 2008
--- src/version.c Fri Jan 4 16:27:01 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 201,
/**/
--
A mathematician is a device for turning coffee into theorems.
Paul Erdos
A computer programmer is a device for turning coffee into bugs.
Bram Moolenaar
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

83
7.1.202 Normal file
View file

@ -0,0 +1,83 @@
To: vim-dev@vim.org
Subject: Patch 7.1.202
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.202
Problem: Incomplete utf-8 byte sequence is not checked for validity.
Solution: Check the bytes that are present for being valid. (Ben Schmidt)
Files: src/mbyte.c
*** ../vim-7.1.201/src/mbyte.c Thu Aug 30 13:51:52 2007
--- src/mbyte.c Fri Jan 4 17:30:16 2008
***************
*** 1642,1648 ****
* Get the length of UTF-8 byte sequence "p[size]". Does not include any
* following composing characters.
* Returns 1 for "".
! * Returns 1 for an illegal byte sequence.
* Returns number > "size" for an incomplete byte sequence.
*/
int
--- 1642,1648 ----
* Get the length of UTF-8 byte sequence "p[size]". Does not include any
* following composing characters.
* Returns 1 for "".
! * Returns 1 for an illegal byte sequence (also in incomplete byte seq.).
* Returns number > "size" for an incomplete byte sequence.
*/
int
***************
*** 1652,1664 ****
{
int len;
int i;
if (*p == NUL)
return 1;
! len = utf8len_tab[*p];
if (len > size)
! return len; /* incomplete byte sequence. */
! for (i = 1; i < len; ++i)
if ((p[i] & 0xc0) != 0x80)
return 1;
return len;
--- 1652,1665 ----
{
int len;
int i;
+ int m;
if (*p == NUL)
return 1;
! m = len = utf8len_tab[*p];
if (len > size)
! m = size; /* incomplete byte sequence. */
! for (i = 1; i < m; ++i)
if ((p[i] & 0xc0) != 0x80)
return 1;
return len;
*** ../vim-7.1.201/src/version.c Fri Jan 4 16:30:40 2008
--- src/version.c Fri Jan 4 17:45:33 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 202,
/**/
--
A computer programmer is a device for turning requirements into
undocumented features. It runs on cola, pizza and Dilbert cartoons.
Bram Moolenaar
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

68
7.1.203 Normal file
View file

@ -0,0 +1,68 @@
To: vim-dev@vim.org
Subject: Patch 7.1.203
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.203
Problem: When 'virtualedit' is "onemore" then "99|" works but ":normal 99|"
doesn't. (Andy Wokula)
Solution: Check for "onemore" flag in check_cursor_col().
Files: src/misc2.c
*** ../vim-7.1.202/src/misc2.c Sat Nov 24 21:27:33 2007
--- src/misc2.c Fri Jan 4 21:24:46 2008
***************
*** 507,517 ****
curwin->w_cursor.col = 0;
else if (curwin->w_cursor.col >= len)
{
! /* Allow cursor past end-of-line in Insert mode, restarting Insert
! * mode or when in Visual mode and 'selection' isn't "old" */
if ((State & INSERT) || restart_edit
#ifdef FEAT_VISUAL
|| (VIsual_active && *p_sel != 'o')
#endif
|| virtual_active())
curwin->w_cursor.col = len;
--- 508,523 ----
curwin->w_cursor.col = 0;
else if (curwin->w_cursor.col >= len)
{
! /* Allow cursor past end-of-line when:
! * - in Insert mode or restarting Insert mode
! * - in Visual mode and 'selection' isn't "old"
! * - 'virtualedit' is set */
if ((State & INSERT) || restart_edit
#ifdef FEAT_VISUAL
|| (VIsual_active && *p_sel != 'o')
+ #endif
+ #ifdef FEAT_VIRTUALEDIT
+ || (ve_flags & VE_ONEMORE)
#endif
|| virtual_active())
curwin->w_cursor.col = len;
*** ../vim-7.1.202/src/version.c Fri Jan 4 17:46:46 2008
--- src/version.c Fri Jan 4 21:22:29 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 203,
/**/
--
`When any government, or any church for that matter, undertakes to say to
its subjects, "This you may not read, this you must not see, this you are
forbidden to know," the end result is tyranny and oppression no matter how
holy the motives' -- Robert A Heinlein, "If this goes on --"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

74
7.1.204 Normal file
View file

@ -0,0 +1,74 @@
To: vim-dev@vim.org
Subject: Patch 7.1.204 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.204 (extra)
Problem: Win32: Using the example at 'balloonexpr' the balloon disappears
after four seconds and then comes back again. Also moves the
mouse pointer a little bit. (Yongwei Wu)
Solution: Set the autopop time to 30 seconds (the max value). (Sergey
Khorev) Move the mouse two pixels forward and one back to end up
in the same position (really!).
Files: src/gui_w32.c
*** ../vim-7.1.203/src/gui_w32.c Thu Jan 3 20:44:35 2008
--- src/gui_w32.c Sat Jan 5 13:09:56 2008
***************
*** 4575,4585 ****
SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)pti);
/* Make tooltip appear sooner */
SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10);
/*
* HACK: force tooltip to appear, because it'll not appear until
* first mouse move. D*mn M$
*/
! mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0);
mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0);
vim_free(pti);
}
--- 4575,4589 ----
SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)pti);
/* Make tooltip appear sooner */
SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10);
+ /* I've performed some tests and it seems the longest possible life time
+ * of tooltip is 30 seconds */
+ SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_AUTOPOP, 30000);
/*
* HACK: force tooltip to appear, because it'll not appear until
* first mouse move. D*mn M$
+ * Amazingly moving (2, 2) and then (-1, -1) the mouse doesn't move.
*/
! mouse_event(MOUSEEVENTF_MOVE, 2, 2, 0, 0);
mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0);
vim_free(pti);
}
*** ../vim-7.1.203/src/version.c Fri Jan 4 21:25:01 2008
--- src/version.c Sat Jan 5 13:12:22 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 204,
/**/
--
WOMAN: I didn't know we had a king. I thought we were an autonomous
collective.
DENNIS: You're fooling yourself. We're living in a dictatorship. A
self-perpetuating autocracy in which the working classes--
WOMAN: Oh there you go, bringing class into it again.
DENNIS: That's what it's all about if only people would--
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

181
7.1.205 Normal file
View file

@ -0,0 +1,181 @@
To: vim-dev@vim.org
Subject: Patch 7.1.205
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.205
Problem: Can't get the operator in an ":omap".
Solution: Add the "v:operator" variable. (Ben Schmidt)
Files: runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h
*** ../vim-7.1.204/runtime/doc/eval.txt Tue Sep 25 17:54:41 2007
--- runtime/doc/eval.txt Fri Jan 4 20:38:55 2008
***************
*** 1,4 ****
! *eval.txt* For Vim version 7.1. Last change: 2007 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 1401,1410 ****
This is the screen column number, like with |virtcol()|. The
value is zero when there was no mouse button click.
*v:prevcount* *prevcount-variable*
v:prevcount The count given for the last but one Normal mode command.
This is the v:count value of the previous command. Useful if
! you want to cancel Visual mode and then use the count. >
:vmap % <Esc>:call MyFilter(v:prevcount)<CR>
< Read-only.
--- 1401,1424 ----
This is the screen column number, like with |virtcol()|. The
value is zero when there was no mouse button click.
+ *v:operator* *operator-variable*
+ v:operator The last operator given in Normal mode. This is a single
+ character except for commands starting with <g> or <z>,
+ in which case it is two characters. Best used alongside
+ |v:prevcount| and |v:register|. Useful if you want to cancel
+ Operator-pending mode and then use the operator, e.g.: >
+ :omap O <Esc>:call MyMotion(v:operator)<CR>
+ < The value remains set until another operator is entered, thus
+ don't expect it to be empty.
+ v:operator is not set for |:delete|, |:yank| or other Ex
+ commands.
+ Read-only.
+
*v:prevcount* *prevcount-variable*
v:prevcount The count given for the last but one Normal mode command.
This is the v:count value of the previous command. Useful if
! you want to cancel Visual or Operator-pending mode and then
! use the count, e.g.: >
:vmap % <Esc>:call MyFilter(v:prevcount)<CR>
< Read-only.
*** ../vim-7.1.204/src/eval.c Fri Dec 7 17:08:35 2007
--- src/eval.c Sat Jan 5 13:22:52 2008
***************
*** 345,350 ****
--- 345,351 ----
{VV_NAME("mouse_win", VAR_NUMBER), 0},
{VV_NAME("mouse_lnum", VAR_NUMBER), 0},
{VV_NAME("mouse_col", VAR_NUMBER), 0},
+ {VV_NAME("operator", VAR_STRING), VV_RO},
};
/* shorthand */
*** ../vim-7.1.204/src/normal.c Thu Jan 3 13:19:50 2008
--- src/normal.c Fri Jan 4 20:53:43 2008
***************
*** 141,146 ****
--- 141,149 ----
static void nv_Undo __ARGS((cmdarg_T *cap));
static void nv_tilde __ARGS((cmdarg_T *cap));
static void nv_operator __ARGS((cmdarg_T *cap));
+ #ifdef FEAT_EVAL
+ static void set_op_var __ARGS((int optype));
+ #endif
static void nv_lineop __ARGS((cmdarg_T *cap));
static void nv_home __ARGS((cmdarg_T *cap));
static void nv_pipe __ARGS((cmdarg_T *cap));
***************
*** 7180,7185 ****
--- 7183,7191 ----
{
cap->oap->start = curwin->w_cursor;
cap->oap->op_type = OP_DELETE;
+ #ifdef FEAT_EVAL
+ set_op_var(OP_DELETE);
+ #endif
cap->count1 = 1;
nv_dollar(cap);
finish_op = TRUE;
***************
*** 8219,8226 ****
--- 8225,8257 ----
{
cap->oap->start = curwin->w_cursor;
cap->oap->op_type = op_type;
+ #ifdef FEAT_EVAL
+ set_op_var(op_type);
+ #endif
+ }
+ }
+
+ #ifdef FEAT_EVAL
+ /*
+ * Set v:operator to the characters for "optype".
+ */
+ static void
+ set_op_var(optype)
+ int optype;
+ {
+ char_u opchars[3];
+
+ if (optype == OP_NOP)
+ set_vim_var_string(VV_OP, NULL, 0);
+ else
+ {
+ opchars[0] = get_op_char(optype);
+ opchars[1] = get_extra_op_char(optype);
+ opchars[2] = NUL;
+ set_vim_var_string(VV_OP, opchars, -1);
}
}
+ #endif
/*
* Handle linewise operator "dd", "yy", etc.
*** ../vim-7.1.204/src/vim.h Sat Aug 11 13:57:31 2007
--- src/vim.h Fri Jan 4 19:11:31 2008
***************
*** 1688,1694 ****
#define VV_MOUSE_WIN 49
#define VV_MOUSE_LNUM 50
#define VV_MOUSE_COL 51
! #define VV_LEN 52 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
--- 1688,1695 ----
#define VV_MOUSE_WIN 49
#define VV_MOUSE_LNUM 50
#define VV_MOUSE_COL 51
! #define VV_OP 52
! #define VV_LEN 53 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
*** ../vim-7.1.204/src/version.c Sat Jan 5 13:15:08 2008
--- src/version.c Sat Jan 5 13:31:49 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 205,
/**/
--
ARTHUR: Then who is your lord?
WOMAN: We don't have a lord.
ARTHUR: What?
DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in
turns to act as a sort of executive officer for the week.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

59
7.1.206 Normal file
View file

@ -0,0 +1,59 @@
To: vim-dev@vim.org
Subject: Patch 7.1.206
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.206
Problem: Compiler warnings when using MODIFIED_BY.
Solution: Add type casts. (Ben Schmidt)
Files: src/version.c
*** ../vim-7.1.205/src/version.c Sat Jan 5 13:34:01 2008
--- src/version.c Sat Jan 5 13:56:55 2008
***************
*** 1587,1595 ****
if (*mesg == ' ')
{
! vim_strncpy(modby, _("Modified by "), MODBY_LEN - 1);
l = STRLEN(modby);
! vim_strncpy(modby + l, MODIFIED_BY, MODBY_LEN - l - 1);
mesg = modby;
}
#endif
--- 1589,1597 ----
if (*mesg == ' ')
{
! vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1);
l = STRLEN(modby);
! vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1);
mesg = modby;
}
#endif
*** ../vim-7.1.205/src/version.c Sat Jan 5 13:34:01 2008
--- src/version.c Sat Jan 5 13:56:55 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 206,
/**/
--
ARTHUR: I am your king!
WOMAN: Well, I didn't vote for you.
ARTHUR: You don't vote for kings.
WOMAN: Well, 'ow did you become king then?
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

253
7.1.207 Normal file
View file

@ -0,0 +1,253 @@
To: vim-dev@vim.org
Subject: Patch 7.1.207
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.207
Problem: Netbeans: "remove" cannot delete one line.
Solution: Remove partial lines and whole lines properly. Avoid a memory
leak. (Xavier de Gaye)
Files: src/netbeans.c
*** ../vim-7.1.206/src/netbeans.c Thu May 10 18:40:48 2007
--- src/netbeans.c Sat Jan 5 18:03:24 2008
***************
*** 1204,1209 ****
--- 1204,1257 ----
return result;
}
+ /*
+ * Remove from "first" byte to "last" byte (inclusive), at line "lnum" of the
+ * current buffer. Remove to end of line when "last" is MAXCOL.
+ */
+ static void
+ nb_partialremove(linenr_T lnum, colnr_T first, colnr_T last)
+ {
+ char_u *oldtext, *newtext;
+ int oldlen;
+ int lastbyte = last;
+
+ oldtext = ml_get(lnum);
+ oldlen = STRLEN(oldtext);
+ if (first >= oldlen || oldlen == 0) /* just in case */
+ return;
+ if (lastbyte >= oldlen)
+ lastbyte = oldlen - 1;
+ newtext = alloc(oldlen - (int)(lastbyte - first));
+ if (newtext != NULL)
+ {
+ mch_memmove(newtext, oldtext, first);
+ mch_memmove(newtext + first, oldtext + lastbyte + 1, STRLEN(oldtext + lastbyte + 1) + 1);
+ nbdebug((" NEW LINE %d: %s\n", lnum, newtext));
+ ml_replace(lnum, newtext, FALSE);
+ }
+ }
+
+ /*
+ * Replace the "first" line with the concatenation of the "first" and
+ * the "other" line. The "other" line is not removed.
+ */
+ static void
+ nb_joinlines(linenr_T first, linenr_T other)
+ {
+ int len_first, len_other;
+ char_u *p;
+
+ len_first = STRLEN(ml_get(first));
+ len_other = STRLEN(ml_get(other));
+ p = alloc((unsigned)(len_first + len_other + 1));
+ if (p != NULL)
+ {
+ mch_memmove(p, ml_get(first), len_first);
+ mch_memmove(p + len_first, ml_get(other), len_other + 1);
+ ml_replace(first, p, FALSE);
+ }
+ }
+
#define SKIP_STOP 2
#define streq(a,b) (strcmp(a,b) == 0)
static int needupdate = 0;
***************
*** 1371,1376 ****
--- 1419,1426 ----
long count;
pos_T first, last;
pos_T *pos;
+ pos_T *next;
+ linenr_T del_from_lnum, del_to_lnum; /* lines to be deleted as a whole */
int oldFire = netbeansFireChanges;
int oldSuppress = netbeansSuppressNoLines;
int wasChanged;
***************
*** 1420,1444 ****
}
last = *pos;
nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col));
! curwin->w_cursor = first;
doupdate = 1;
! /* keep part of first line */
! if (first.lnum == last.lnum && first.col != last.col)
{
! /* deletion is within one line */
! char_u *p = ml_get(first.lnum);
! mch_memmove(p + first.col, p + last.col + 1, STRLEN(p + last.col) + 1);
! nbdebug((" NEW LINE %d: %s\n", first.lnum, p));
! ml_replace(first.lnum, p, TRUE);
}
! if (first.lnum < last.lnum)
{
int i;
/* delete signs from the lines being deleted */
! for (i = first.lnum; i <= last.lnum; i++)
{
int id = buf_findsign_id(buf->bufp, (linenr_T)i);
if (id > 0)
--- 1470,1544 ----
}
last = *pos;
nbdebug((" LAST POS: line %d, col %d\n", last.lnum, last.col));
! del_from_lnum = first.lnum;
! del_to_lnum = last.lnum;
doupdate = 1;
! /* Get the position of the first byte after the deleted
! * section. "next" is NULL when deleting to the end of the
! * file. */
! next = off2pos(buf->bufp, off + count);
!
! /* Remove part of the first line. */
! if (first.col != 0 || (next != NULL && first.lnum == next->lnum))
{
! if (first.lnum != last.lnum
! || (next != NULL && first.lnum != next->lnum))
! {
! /* remove to the end of the first line */
! nb_partialremove(first.lnum, first.col,
! (colnr_T)MAXCOL);
! if (first.lnum == last.lnum)
! {
! /* Partial line to remove includes the end of
! * line. Join the line with the next one, have
! * the next line deleted below. */
! nb_joinlines(first.lnum, next->lnum);
! del_to_lnum = next->lnum;
! }
! }
! else
! {
! /* remove within one line */
! nb_partialremove(first.lnum, first.col, last.col);
! }
! ++del_from_lnum; /* don't delete the first line */
! }
!
! /* Remove part of the last line. */
! if (first.lnum != last.lnum && next != NULL
! && next->col != 0 && last.lnum == next->lnum)
! {
! nb_partialremove(last.lnum, 0, last.col);
! if (del_from_lnum > first.lnum)
! {
! /* Join end of last line to start of first line; last
! * line is deleted below. */
! nb_joinlines(first.lnum, last.lnum);
! }
! else
! /* First line is deleted as a whole, keep the last
! * line. */
! --del_to_lnum;
}
! /* First is partial line; last line to remove includes
! * the end of line; join first line to line following last
! * line; line following last line is deleted below. */
! if (first.lnum != last.lnum && del_from_lnum > first.lnum
! && next != NULL && last.lnum != next->lnum)
! {
! nb_joinlines(first.lnum, next->lnum);
! del_to_lnum = next->lnum;
! }
!
! /* Delete whole lines if there are any. */
! if (del_to_lnum >= del_from_lnum)
{
int i;
/* delete signs from the lines being deleted */
! for (i = del_from_lnum; i <= del_to_lnum; i++)
{
int id = buf_findsign_id(buf->bufp, (linenr_T)i);
if (id > 0)
***************
*** 1450,1459 ****
nbdebug((" No sign on line %d\n", i));
}
! /* delete whole lines */
! nbdebug((" Deleting lines %d through %d\n", first.lnum, last.lnum));
! del_lines(last.lnum - first.lnum + 1, FALSE);
}
buf->bufp->b_changed = wasChanged; /* logically unchanged */
netbeansFireChanges = oldFire;
netbeansSuppressNoLines = oldSuppress;
--- 1550,1564 ----
nbdebug((" No sign on line %d\n", i));
}
! nbdebug((" Deleting lines %d through %d\n", del_from_lnum, del_to_lnum));
! curwin->w_cursor.lnum = del_from_lnum;
! curwin->w_cursor.col = 0;
! del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
}
+
+ /* Leave cursor at first deleted byte. */
+ curwin->w_cursor = first;
+ check_cursor_lnum();
buf->bufp->b_changed = wasChanged; /* logically unchanged */
netbeansFireChanges = oldFire;
netbeansSuppressNoLines = oldSuppress;
***************
*** 2374,2381 ****
* the current buffer as "buf".
*/
static void
! nb_set_curbuf(buf)
! buf_T *buf;
{
if (curbuf != buf && buf_jump_open_win(buf) == NULL)
set_curbuf(buf, DOBUF_GOTO);
--- 2479,2485 ----
* the current buffer as "buf".
*/
static void
! nb_set_curbuf(buf_T *buf)
{
if (curbuf != buf && buf_jump_open_win(buf) == NULL)
set_curbuf(buf, DOBUF_GOTO);
*** ../vim-7.1.206/src/version.c Sat Jan 5 13:58:48 2008
--- src/version.c Sat Jan 5 18:06:04 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 207,
/**/
--
Q: How many hardware engineers does it take to change a lightbulb?
A: None. We'll fix it in software.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

69
7.1.208 Normal file
View file

@ -0,0 +1,69 @@
To: vim-dev@vim.org
Subject: Patch 7.1.208
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.208
Problem: On Alpha get an unaligned access error.
Solution: Store the dictitem pointer before using it. (Matthew Luckie)
Files: src/eval.c
*** ../vim-7.1.207/src/eval.c Sat Jan 5 13:34:01 2008
--- src/eval.c Sat Jan 5 13:22:52 2008
***************
*** 3407,3412 ****
--- 3407,3413 ----
hashtab_T *ht;
hashitem_T *hi;
char_u *varname;
+ dictitem_T *di;
ht = find_var_ht(name, &varname);
if (ht != NULL && *varname != NUL)
***************
*** 3414,3422 ****
hi = hash_find(ht, varname);
if (!HASHITEM_EMPTY(hi))
{
! if (var_check_fixed(HI2DI(hi)->di_flags, name))
! return FAIL;
! if (var_check_ro(HI2DI(hi)->di_flags, name))
return FAIL;
delete_var(ht, hi);
return OK;
--- 3415,3423 ----
hi = hash_find(ht, varname);
if (!HASHITEM_EMPTY(hi))
{
! di = HI2DI(hi);
! if (var_check_fixed(di->di_flags, name)
! || var_check_ro(di->di_flags, name))
return FAIL;
delete_var(ht, hi);
return OK;
*** ../vim-7.1.207/src/version.c Sat Jan 5 18:06:33 2008
--- src/version.c Sat Jan 5 22:14:17 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 208,
/**/
--
ARTHUR: Bloody peasant!
DENNIS: Oh, what a give away. Did you here that, did you here that, eh?
That's what I'm on about -- did you see him repressing me, you saw it
didn't you?
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

71
7.1.209 Normal file
View file

@ -0,0 +1,71 @@
To: vim-dev@vim.org
Subject: Patch 7.1.209
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.209
Problem: GTK: When using the netrw plugin and doing ":gui" Vim hangs.
Solution: Stop getting a selection after three seconds. This is a hack.
Files: src/gui_gtk_x11.c
*** ../vim-7.1.208/src/gui_gtk_x11.c Fri Oct 19 14:32:50 2007
--- src/gui_gtk_x11.c Sun Jan 6 15:15:52 2008
***************
*** 6660,6665 ****
--- 6660,6666 ----
unsigned i;
int nbytes;
char_u *buffer;
+ time_t start;
for (i = 0; i < N_SELECTION_TARGETS; ++i)
{
***************
*** 6670,6676 ****
cbd->gtk_sel_atom, target,
(guint32)GDK_CURRENT_TIME);
! while (received_selection == RS_NONE)
gtk_main(); /* wait for selection_received_cb */
if (received_selection != RS_FAIL)
--- 6671,6681 ----
cbd->gtk_sel_atom, target,
(guint32)GDK_CURRENT_TIME);
! /* Hack: Wait up to three seconds for the selection. A hang was
! * noticed here when using the netrw plugin combined with ":gui"
! * during the FocusGained event. */
! start = time(NULL);
! while (received_selection == RS_NONE && time(NULL) < start + 3)
gtk_main(); /* wait for selection_received_cb */
if (received_selection != RS_FAIL)
*** ../vim-7.1.208/src/version.c Sat Jan 5 22:15:21 2008
--- src/version.c Sun Jan 6 15:14:48 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 209,
/**/
--
BLACK KNIGHT: I move for no man.
ARTHUR: So be it!
[hah] [parry thrust]
[ARTHUR chops the BLACK KNIGHT's left arm off]
ARTHUR: Now stand aside, worthy adversary.
BLACK KNIGHT: 'Tis but a scratch.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

74
7.1.210 Normal file
View file

@ -0,0 +1,74 @@
To: vim-dev@vim.org
Subject: Patch 7.1.210
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.210
Problem: Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony
Mechelynck)
Solution: Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte.
Files: src/mbyte.c
*** ../vim-7.1.209/src/mbyte.c Fri Jan 4 17:46:46 2008
--- src/mbyte.c Sun Jan 6 17:13:51 2008
***************
*** 2863,2877 ****
buf[m++] = K_SPECIAL;
n += 2;
}
# ifdef FEAT_GUI
! else if (str[n] == CSI
&& str[n + 1] == KS_EXTRA
&& str[n + 2] == (int)KE_CSI)
{
buf[m++] = CSI;
n += 2;
}
- # endif
else if (str[n] == K_SPECIAL
# ifdef FEAT_GUI
|| str[n] == CSI
--- 2882,2898 ----
buf[m++] = K_SPECIAL;
n += 2;
}
+ else if ((str[n] == K_SPECIAL
# ifdef FEAT_GUI
! || str[n] == CSI
! # endif
! )
&& str[n + 1] == KS_EXTRA
&& str[n + 2] == (int)KE_CSI)
{
buf[m++] = CSI;
n += 2;
}
else if (str[n] == K_SPECIAL
# ifdef FEAT_GUI
|| str[n] == CSI
*** ../vim-7.1.209/src/version.c Sun Jan 6 15:16:12 2008
--- src/version.c Sun Jan 6 17:17:25 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 210,
/**/
--
ARTHUR: A scratch? Your arm's off!
BLACK KNIGHT: No, it isn't.
ARTHUR: Well, what's that then?
BLACK KNIGHT: I've had worse.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

748
7.1.211 Normal file
View file

@ -0,0 +1,748 @@
To: vim-dev@vim.org
Subject: Patch 7.1.211
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.211
Problem: The matchparen plugin may take an unexpected amount of time, so
that it looks like Vim hangs.
Solution: Add a timeout to searchpair(), searchpairpos(), search() and
searchpos(). Use half a second timeout in the plugin.
Files: runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c,
src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c,
src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro,
src/search.c
*** ../vim-7.1.210/runtime/doc/eval.txt Sat Jan 5 13:34:01 2008
--- runtime/doc/eval.txt Sun Jan 6 16:27:33 2008
***************
*** 1,4 ****
! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 06
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 1733,1746 ****
repeat( {expr}, {count}) String repeat {expr} {count} times
resolve( {filename}) String get filename a shortcut points to
reverse( {list}) List reverse {list} in-place
! search( {pattern} [, {flags}]) Number search for {pattern}
searchdecl({name} [, {global} [, {thisblock}]])
Number search for variable declaration
! searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
Number search for other end of start/end pair
! searchpairpos( {start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
List search for other end of start/end pair
! searchpos( {pattern} [, {flags} [, {stopline}]])
List search for {pattern}
server2client( {clientid}, {string})
Number send reply string
--- 1733,1747 ----
repeat( {expr}, {count}) String repeat {expr} {count} times
resolve( {filename}) String get filename a shortcut points to
reverse( {list}) List reverse {list} in-place
! search( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
! Number search for {pattern}
searchdecl({name} [, {global} [, {thisblock}]])
Number search for variable declaration
! searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [...]]])
Number search for other end of start/end pair
! searchpairpos( {start}, {middle}, {end} [, {flags} [, {skip} [...]]])
List search for other end of start/end pair
! searchpos( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
List search for {pattern}
server2client( {clientid}, {string})
Number send reply string
***************
*** 4212,4218 ****
If you want a list to remain unmodified make a copy first: >
:let revlist = reverse(copy(mylist))
! search({pattern} [, {flags} [, {stopline}]]) *search()*
Search for regexp pattern {pattern}. The search starts at the
cursor position (you can use |cursor()| to set it).
--- 4216,4222 ----
If you want a list to remain unmodified make a copy first: >
:let revlist = reverse(copy(mylist))
! search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
Search for regexp pattern {pattern}. The search starts at the
cursor position (you can use |cursor()| to set it).
***************
*** 4240,4245 ****
--- 4244,4257 ----
let end = search('END', '', line("w$"))
< When {stopline} is used and it is not zero this also implies
that the search does not wrap around the end of the file.
+ A zero value is equal to not giving the argument.
+
+ When the {timeout} argument is given the search stops when
+ more than this many milli seconds have passed. Thus when
+ {timeout} is 500 the search stops after half a second.
+ The value must not be negative. A zero value is like not
+ giving the argument.
+ {only available when compiled with the +reltime feature}
If there is no match a 0 is returned and the cursor doesn't
move. No error message is given.
***************
*** 4302,4308 ****
endif
<
*searchpair()*
! searchpair({start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
Search for the match of a nested start-end pair. This can be
used to find the "endif" that matches an "if", while other
if/endif pairs in between are ignored.
--- 4314,4321 ----
endif
<
*searchpair()*
! searchpair({start}, {middle}, {end} [, {flags} [, {skip}
! [, {stopline} [, {timeout}]]]])
Search for the match of a nested start-end pair. This can be
used to find the "endif" that matches an "if", while other
if/endif pairs in between are ignored.
***************
*** 4337,4343 ****
When evaluating {skip} causes an error the search is aborted
and -1 returned.
! For {stopline} see |search()|.
The value of 'ignorecase' is used. 'magic' is ignored, the
patterns are used like it's on.
--- 4350,4356 ----
When evaluating {skip} causes an error the search is aborted
and -1 returned.
! For {stopline} and {timeout} see |search()|.
The value of 'ignorecase' is used. 'magic' is ignored, the
patterns are used like it's on.
***************
*** 4383,4389 ****
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')
<
*searchpairpos()*
! searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [, {stopline}]]])
Same as searchpair(), but returns a |List| with the line and
column position of the match. The first element of the |List|
is the line number and the second element is the byte index of
--- 4396,4403 ----
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')
<
*searchpairpos()*
! searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
! [, {stopline} [, {timeout}]]]])
Same as searchpair(), but returns a |List| with the line and
column position of the match. The first element of the |List|
is the line number and the second element is the byte index of
***************
*** 4394,4400 ****
<
See |match-parens| for a bigger and more useful example.
! searchpos({pattern} [, {flags} [, {stopline}]]) *searchpos()*
Same as |search()|, but returns a |List| with the line and
column position of the match. The first element of the |List|
is the line number and the second element is the byte index of
--- 4408,4414 ----
<
See |match-parens| for a bigger and more useful example.
! searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *searchpos()*
Same as |search()|, but returns a |List| with the line and
column position of the match. The first element of the |List|
is the line number and the second element is the byte index of
*** ../vim-7.1.210/runtime/plugin/matchparen.vim Sat Aug 18 18:20:57 2007
--- runtime/plugin/matchparen.vim Sun Jan 6 16:22:39 2008
***************
*** 1,6 ****
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
! " Last Change: 2007 Aug 8
" Exit quickly when:
" - this plugin was already loaded (or disabled)
--- 1,6 ----
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
! " Last Change: 2008 Jan 06
" Exit quickly when:
" - this plugin was already loaded (or disabled)
***************
*** 111,117 ****
\ '=~? "string\\|character\\|singlequote\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
if before > 0
call winrestview(save_cursor)
--- 111,122 ----
\ '=~? "string\\|character\\|singlequote\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
! try
! " Limit the search time to 500 msec to avoid a hang on very long lines.
! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 500)
! catch /E118/
! let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
! endtry
if before > 0
call winrestview(save_cursor)
*** ../vim-7.1.210/src/edit.c Wed Jan 2 22:08:43 2008
--- src/edit.c Sun Jan 6 16:08:00 2008
***************
*** 4062,4068 ****
found_new_match = searchit(NULL, ins_buf, pos,
compl_direction,
compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
! RE_LAST, (linenr_T)0);
--msg_silent;
if (!compl_started)
{
--- 4062,4068 ----
found_new_match = searchit(NULL, ins_buf, pos,
compl_direction,
compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
! RE_LAST, (linenr_T)0, NULL);
--msg_silent;
if (!compl_started)
{
*** ../vim-7.1.210/src/eval.c Sat Jan 5 22:15:21 2008
--- src/eval.c Sun Jan 6 16:37:42 2008
***************
*** 7213,7223 ****
{"repeat", 2, 2, f_repeat},
{"resolve", 1, 1, f_resolve},
{"reverse", 1, 1, f_reverse},
! {"search", 1, 3, f_search},
{"searchdecl", 1, 3, f_searchdecl},
! {"searchpair", 3, 6, f_searchpair},
! {"searchpairpos", 3, 6, f_searchpairpos},
! {"searchpos", 1, 3, f_searchpos},
{"server2client", 2, 2, f_server2client},
{"serverlist", 0, 0, f_serverlist},
{"setbufvar", 3, 3, f_setbufvar},
--- 7213,7223 ----
{"repeat", 2, 2, f_repeat},
{"resolve", 1, 1, f_resolve},
{"reverse", 1, 1, f_reverse},
! {"search", 1, 4, f_search},
{"searchdecl", 1, 3, f_searchdecl},
! {"searchpair", 3, 7, f_searchpair},
! {"searchpairpos", 3, 7, f_searchpairpos},
! {"searchpos", 1, 4, f_searchpos},
{"server2client", 2, 2, f_server2client},
{"serverlist", 0, 0, f_serverlist},
{"setbufvar", 3, 3, f_setbufvar},
***************
*** 14020,14025 ****
--- 14020,14029 ----
int dir;
int retval = 0; /* default: FAIL */
long lnum_stop = 0;
+ proftime_T tm;
+ #ifdef FEAT_RELTIME
+ long time_limit = 0;
+ #endif
int options = SEARCH_KEEP;
int subpatnum;
***************
*** 14033,14047 ****
if (flags & SP_END)
options |= SEARCH_END;
! /* Optional extra argument: line number to stop searching. */
! if (argvars[1].v_type != VAR_UNKNOWN
! && argvars[2].v_type != VAR_UNKNOWN)
{
lnum_stop = get_tv_number_chk(&argvars[2], NULL);
if (lnum_stop < 0)
goto theend;
}
/*
* This function does not accept SP_REPEAT and SP_RETCOUNT flags.
* Check to make sure only those flags are set.
--- 14037,14063 ----
if (flags & SP_END)
options |= SEARCH_END;
! /* Optional arguments: line number to stop searching and timeout. */
! if (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN)
{
lnum_stop = get_tv_number_chk(&argvars[2], NULL);
if (lnum_stop < 0)
goto theend;
+ #ifdef FEAT_RELTIME
+ if (argvars[3].v_type != VAR_UNKNOWN)
+ {
+ time_limit = get_tv_number_chk(&argvars[3], NULL);
+ if (time_limit < 0)
+ goto theend;
+ }
+ #endif
}
+ #ifdef FEAT_RELTIME
+ /* Set the time limit, if there is one. */
+ profile_setlimit(time_limit, &tm);
+ #endif
+
/*
* This function does not accept SP_REPEAT and SP_RETCOUNT flags.
* Check to make sure only those flags are set.
***************
*** 14057,14063 ****
pos = save_cursor = curwin->w_cursor;
subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L,
! options, RE_SEARCH, (linenr_T)lnum_stop);
if (subpatnum != FAIL)
{
if (flags & SP_SUBPAT)
--- 14073,14079 ----
pos = save_cursor = curwin->w_cursor;
subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L,
! options, RE_SEARCH, (linenr_T)lnum_stop, &tm);
if (subpatnum != FAIL)
{
if (flags & SP_SUBPAT)
***************
*** 14147,14152 ****
--- 14163,14169 ----
char_u nbuf3[NUMBUFLEN];
int retval = 0; /* default: FAIL */
long lnum_stop = 0;
+ long time_limit = 0;
/* Get the three pattern arguments: start, middle, end. */
spat = get_tv_string_chk(&argvars[0]);
***************
*** 14182,14194 ****
lnum_stop = get_tv_number_chk(&argvars[5], NULL);
if (lnum_stop < 0)
goto theend;
}
}
if (skip == NULL)
goto theend; /* type error */
retval = do_searchpair(spat, mpat, epat, dir, skip, flags,
! match_pos, lnum_stop);
theend:
p_ws = save_p_ws;
--- 14199,14219 ----
lnum_stop = get_tv_number_chk(&argvars[5], NULL);
if (lnum_stop < 0)
goto theend;
+ #ifdef FEAT_RELTIME
+ if (argvars[6].v_type != VAR_UNKNOWN)
+ {
+ time_limit = get_tv_number_chk(&argvars[6], NULL);
+ if (time_limit < 0)
+ goto theend;
+ }
+ #endif
}
}
if (skip == NULL)
goto theend; /* type error */
retval = do_searchpair(spat, mpat, epat, dir, skip, flags,
! match_pos, lnum_stop, time_limit);
theend:
p_ws = save_p_ws;
***************
*** 14240,14246 ****
* Returns 0 or -1 for no match,
*/
long
! do_searchpair(spat, mpat, epat, dir, skip, flags, match_pos, lnum_stop)
char_u *spat; /* start pattern */
char_u *mpat; /* middle pattern */
char_u *epat; /* end pattern */
--- 14265,14272 ----
* Returns 0 or -1 for no match,
*/
long
! do_searchpair(spat, mpat, epat, dir, skip, flags, match_pos,
! lnum_stop, time_limit)
char_u *spat; /* start pattern */
char_u *mpat; /* middle pattern */
char_u *epat; /* end pattern */
***************
*** 14249,14254 ****
--- 14275,14281 ----
int flags; /* SP_SETPCMARK and other SP_ values */
pos_T *match_pos;
linenr_T lnum_stop; /* stop at this line if not zero */
+ long time_limit; /* stop after this many msec */
{
char_u *save_cpo;
char_u *pat, *pat2 = NULL, *pat3 = NULL;
***************
*** 14263,14273 ****
--- 14290,14306 ----
int nest = 1;
int err;
int options = SEARCH_KEEP;
+ proftime_T tm;
/* Make 'cpoptions' empty, the 'l' flag should not be used here. */
save_cpo = p_cpo;
p_cpo = (char_u *)"";
+ #ifdef FEAT_RELTIME
+ /* Set the time limit, if there is one. */
+ profile_setlimit(time_limit, &tm);
+ #endif
+
/* Make two search patterns: start/end (pat2, for in nested pairs) and
* start/middle/end (pat3, for the top pair). */
pat2 = alloc((unsigned)(STRLEN(spat) + STRLEN(epat) + 15));
***************
*** 14291,14297 ****
for (;;)
{
n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
! options, RE_SEARCH, lnum_stop);
if (n == FAIL || (firstpos.lnum != 0 && equalpos(pos, firstpos)))
/* didn't find it or found the first match again: FAIL */
break;
--- 14324,14330 ----
for (;;)
{
n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
! options, RE_SEARCH, lnum_stop, &tm);
if (n == FAIL || (firstpos.lnum != 0 && equalpos(pos, firstpos)))
/* didn't find it or found the first match again: FAIL */
break;
*** ../vim-7.1.210/src/ex_cmds2.c Fri Jan 4 16:00:10 2008
--- src/ex_cmds2.c Sun Jan 6 18:22:28 2008
***************
*** 895,913 ****
sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart);
# else
sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec);
! #endif
return buf;
}
! # endif /* FEAT_PROFILE || FEAT_RELTIME */
- # if defined(FEAT_PROFILE) || defined(PROTO)
/*
! * Functions for profiling.
*/
! static void script_do_profile __ARGS((scriptitem_T *si));
! static void script_dump_profile __ARGS((FILE *fd));
! static proftime_T prof_wait_time;
/*
* Set the time in "tm" to zero.
--- 895,955 ----
sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart);
# else
sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec);
! # endif
return buf;
}
! /*
! * Put the time "msec" past now in "tm".
! */
! void
! profile_setlimit(msec, tm)
! long msec;
! proftime_T *tm;
! {
! if (msec <= 0) /* no limit */
! profile_zero(tm);
! else
! {
! # ifdef WIN3264
! LARGE_INTEGER fr;
!
! QueryPerformanceCounter(tm);
! QueryPerformanceFrequency(&fr);
! tm->QuadPart += (double)msec / 1000.0 * (double)fr.QuadPart;
! # else
! long usec;
!
! gettimeofday(tm, NULL);
! usec = (long)tm->tv_usec + (long)msec * 1000;
! tm->tv_usec = usec % 1000000L;
! tm->tv_sec += usec / 1000000L;
! # endif
! }
! }
/*
! * Return TRUE if the current time is past "tm".
*/
! int
! profile_passed_limit(tm)
! proftime_T *tm;
! {
! proftime_T now;
!
! # ifdef WIN3264
! if (tm->QuadPart == 0) /* timer was not set */
! return FALSE;
! QueryPerformanceCounter(&now);
! return (now.QuadPart > tm->QuadPart);
! # else
! if (tm->tv_sec == 0) /* timer was not set */
! return FALSE;
! gettimeofday(&now, NULL);
! return (now.tv_sec > tm->tv_sec
! || (now.tv_sec == tm->tv_sec && now.tv_usec > tm->tv_usec));
! # endif
! }
/*
* Set the time in "tm" to zero.
***************
*** 923,928 ****
--- 965,980 ----
tm->tv_sec = 0;
# endif
}
+
+ # endif /* FEAT_PROFILE || FEAT_RELTIME */
+
+ # if defined(FEAT_PROFILE) || defined(PROTO)
+ /*
+ * Functions for profiling.
+ */
+ static void script_do_profile __ARGS((scriptitem_T *si));
+ static void script_dump_profile __ARGS((FILE *fd));
+ static proftime_T prof_wait_time;
/*
* Add the time "tm2" to "tm".
*** ../vim-7.1.210/src/ex_docmd.c Fri Jan 4 16:00:10 2008
--- src/ex_docmd.c Sun Jan 6 16:08:29 2008
***************
*** 3979,3985 ****
*cmd == '?' ? BACKWARD : FORWARD,
(char_u *)"", 1L,
SEARCH_MSG + SEARCH_START,
! i, (linenr_T)0) != FAIL)
lnum = pos.lnum;
else
{
--- 3980,3986 ----
*cmd == '?' ? BACKWARD : FORWARD,
(char_u *)"", 1L,
SEARCH_MSG + SEARCH_START,
! i, (linenr_T)0, NULL) != FAIL)
lnum = pos.lnum;
else
{
*** ../vim-7.1.210/src/normal.c Sat Jan 5 13:34:01 2008
--- src/normal.c Sun Jan 6 16:08:54 2008
***************
*** 4194,4200 ****
for (;;)
{
t = searchit(curwin, curbuf, &curwin->w_cursor, FORWARD,
! pat, 1L, searchflags, RE_LAST, (linenr_T)0);
if (curwin->w_cursor.lnum >= old_pos.lnum)
t = FAIL; /* match after start is failure too */
--- 4194,4200 ----
for (;;)
{
t = searchit(curwin, curbuf, &curwin->w_cursor, FORWARD,
! pat, 1L, searchflags, RE_LAST, (linenr_T)0, NULL);
if (curwin->w_cursor.lnum >= old_pos.lnum)
t = FAIL; /* match after start is failure too */
*** ../vim-7.1.210/src/proto/eval.pro Sun May 6 15:18:09 2007
--- src/proto/eval.pro Sun Jan 6 15:55:47 2008
***************
*** 54,60 ****
long get_dict_number __ARGS((dict_T *d, char_u *key));
char_u *get_function_name __ARGS((expand_T *xp, int idx));
char_u *get_expr_name __ARGS((expand_T *xp, int idx));
! long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop));
void set_vim_var_nr __ARGS((int idx, long val));
long get_vim_var_nr __ARGS((int idx));
char_u *get_vim_var_str __ARGS((int idx));
--- 54,60 ----
long get_dict_number __ARGS((dict_T *d, char_u *key));
char_u *get_function_name __ARGS((expand_T *xp, int idx));
char_u *get_expr_name __ARGS((expand_T *xp, int idx));
! long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit));
void set_vim_var_nr __ARGS((int idx, long val));
long get_vim_var_nr __ARGS((int idx));
char_u *get_vim_var_str __ARGS((int idx));
*** ../vim-7.1.210/src/proto/ex_cmds2.pro Sat May 5 20:21:13 2007
--- src/proto/ex_cmds2.pro Sun Jan 6 16:42:24 2008
***************
*** 14,19 ****
--- 14,21 ----
void profile_end __ARGS((proftime_T *tm));
void profile_sub __ARGS((proftime_T *tm, proftime_T *tm2));
char *profile_msg __ARGS((proftime_T *tm));
+ void profile_setlimit __ARGS((long msec, proftime_T *tm));
+ int profile_passed_limit __ARGS((proftime_T *tm));
void profile_zero __ARGS((proftime_T *tm));
void profile_add __ARGS((proftime_T *tm, proftime_T *tm2));
void profile_self __ARGS((proftime_T *self, proftime_T *total, proftime_T *children));
*** ../vim-7.1.210/src/proto/search.pro Wed Aug 8 22:48:16 2007
--- src/proto/search.pro Sun Jan 6 16:11:53 2008
***************
*** 10,16 ****
void reset_search_dir __ARGS((void));
void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
void last_pat_prog __ARGS((regmmatch_T *regmatch));
! int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum));
int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options));
int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
int searchc __ARGS((cmdarg_T *cap, int t_cmd));
--- 10,16 ----
void reset_search_dir __ARGS((void));
void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast));
void last_pat_prog __ARGS((regmmatch_T *regmatch));
! int searchit __ARGS((win_T *win, buf_T *buf, pos_T *pos, int dir, char_u *pat, long count, int options, int pat_use, linenr_T stop_lnum, proftime_T *tm));
int do_search __ARGS((oparg_T *oap, int dirc, char_u *pat, long count, int options));
int search_for_exact_line __ARGS((buf_T *buf, pos_T *pos, int dir, char_u *pat));
int searchc __ARGS((cmdarg_T *cap, int t_cmd));
*** ../vim-7.1.210/src/search.c Tue Jan 1 15:42:45 2008
--- src/search.c Sun Jan 6 18:23:37 2008
***************
*** 494,501 ****
* When FEAT_EVAL is defined, returns the index of the first matching
* subpattern plus one; one if there was none.
*/
int
! searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum)
win_T *win; /* window to search in; can be NULL for a
buffer without a window! */
buf_T *buf;
--- 494,502 ----
* When FEAT_EVAL is defined, returns the index of the first matching
* subpattern plus one; one if there was none.
*/
+ /*ARGSUSED*/
int
! searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm)
win_T *win; /* window to search in; can be NULL for a
buffer without a window! */
buf_T *buf;
***************
*** 506,511 ****
--- 507,513 ----
int options;
int pat_use; /* which pattern to use when "pat" is empty */
linenr_T stop_lnum; /* stop after this line number when != 0 */
+ proftime_T *tm; /* timeout limit or NULL */
{
int found;
linenr_T lnum; /* no init to shut up Apollo cc */
***************
*** 594,599 ****
--- 596,606 ----
if (stop_lnum != 0 && (dir == FORWARD
? lnum > stop_lnum : lnum < stop_lnum))
break;
+ #ifdef FEAT_RELTIME
+ /* Stop after passing the "tm" time limit. */
+ if (tm != NULL && profile_passed_limit(tm))
+ break;
+ #endif
/*
* Look for a match somewhere in line "lnum".
***************
*** 1249,1255 ****
(SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
+ SEARCH_MSG + SEARCH_START
+ ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
! RE_LAST, (linenr_T)0);
if (dircp != NULL)
*dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
--- 1256,1262 ----
(SEARCH_KEEP + SEARCH_PEEK + SEARCH_HIS
+ SEARCH_MSG + SEARCH_START
+ ((pat != NULL && *pat == ';') ? 0 : SEARCH_NOOF))),
! RE_LAST, (linenr_T)0, NULL);
if (dircp != NULL)
*dircp = dirc; /* restore second '/' or '?' for normal_cmd() */
***************
*** 3780,3786 ****
if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)",
(char_u *)"",
(char_u *)"</[^>]*>", BACKWARD, (char_u *)"", 0,
! NULL, (linenr_T)0) <= 0)
{
curwin->w_cursor = old_pos;
goto theend;
--- 3787,3793 ----
if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)",
(char_u *)"",
(char_u *)"</[^>]*>", BACKWARD, (char_u *)"", 0,
! NULL, (linenr_T)0, 0L) <= 0)
{
curwin->w_cursor = old_pos;
goto theend;
***************
*** 3814,3820 ****
sprintf((char *)epat, "</%.*s>\\c", len, p);
r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
! 0, NULL, (linenr_T)0);
vim_free(spat);
vim_free(epat);
--- 3821,3827 ----
sprintf((char *)epat, "</%.*s>\\c", len, p);
r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
! 0, NULL, (linenr_T)0, 0L);
vim_free(spat);
vim_free(epat);
*** ../vim-7.1.210/src/version.c Sun Jan 6 17:18:16 2008
--- src/version.c Sun Jan 6 20:00:03 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 211,
/**/
--
No letters of the alphabet were harmed in the creation of this message.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

47
7.1.212 Normal file
View file

@ -0,0 +1,47 @@
To: vim-dev@vim.org
Subject: Patch 7.1.212
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.212
Problem: Accessing a byte before a line.
Solution: Check that the column is 1 or more. (Dominuque Pelle)
Files: src/edit.c
*** ../vim-7.1.211/src/edit.c Sun Jan 6 20:05:36 2008
--- src/edit.c Mon Jan 7 22:31:36 2008
***************
*** 8452,8457 ****
--- 8452,8458 ----
if ( mode == BACKSPACE_CHAR
&& ((p_sta && in_indent)
|| (curbuf->b_p_sts != 0
+ && curwin->w_cursor.col > 0
&& (*(ml_get_cursor() - 1) == TAB
|| (*(ml_get_cursor() - 1) == ' '
&& (!*inserted_space_p
*** ../vim-7.1.211/src/version.c Sun Jan 6 20:05:36 2008
--- src/version.c Wed Jan 9 10:11:49 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 212,
/**/
--
CRONE: Who sent you?
ARTHUR: The Knights Who Say Ni!
CRONE: Aaaagh! (she looks around in rear) No! We have no shrubberies here.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

57
7.1.213 Normal file
View file

@ -0,0 +1,57 @@
To: vim-dev@vim.org
Subject: Patch 7.1.213
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.213
Problem: A ":tabedit" command that results in the "swap file exists" dialog
and selecting "abort" doesn't close the new tab. (Al Budden)
Solution: Pass "old_curwin" to do_exedit().
Files: src/ex_docmd.c
*** ../vim-7.1.212/src/ex_docmd.c Sun Jan 6 20:05:36 2008
--- src/ex_docmd.c Wed Jan 9 20:11:13 2008
***************
*** 7126,7132 ****
: eap->addr_count == 0 ? 0
: (int)eap->line2 + 1) != FAIL)
{
! do_exedit(eap, NULL);
/* set the alternate buffer for the window we came from */
if (curwin != old_curwin
--- 7127,7133 ----
: eap->addr_count == 0 ? 0
: (int)eap->line2 + 1) != FAIL)
{
! do_exedit(eap, old_curwin);
/* set the alternate buffer for the window we came from */
if (curwin != old_curwin
*** ../vim-7.1.212/src/version.c Wed Jan 9 10:13:24 2008
--- src/version.c Wed Jan 9 20:29:09 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 213,
/**/
--
Q: What do you call a fish without an eye?
A: fsh!
Q: What do you call a deer with no eyes?
A: no eye deer.
Q: What do you call a deer with no eyes and no legs?
A: still no eye deer.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

266
7.1.214 Normal file
View file

@ -0,0 +1,266 @@
To: vim-dev@vim.org
Subject: Patch 7.1.214
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.214
Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz)
Solution: Start replacing in the line where the match starts.
Files: src/ex_cmds.c
*** ../vim-7.1.213/src/ex_cmds.c Fri Jan 4 14:52:14 2008
--- src/ex_cmds.c Wed Jan 9 22:32:26 2008
***************
*** 4200,4206 ****
linenr_T old_line_count = curbuf->b_ml.ml_line_count;
linenr_T line2;
long nmatch; /* number of lines in match */
- linenr_T sub_firstlnum; /* nr of first sub line */
char_u *sub_firstline; /* allocated copy of first sub line */
int endcolumn = FALSE; /* cursor in last column when done */
pos_T old_cursor = curwin->w_cursor;
--- 4200,4205 ----
***************
*** 4447,4453 ****
#endif
); ++lnum)
{
- sub_firstlnum = lnum;
nmatch = vim_regexec_multi(&regmatch, curwin, curbuf, lnum, (colnr_T)0);
if (nmatch)
{
--- 4446,4451 ----
***************
*** 4463,4468 ****
--- 4461,4467 ----
long nmatch_tl = 0; /* nr of lines matched below lnum */
int do_again; /* do it again after joining lines */
int skip_match = FALSE;
+ linenr_T sub_firstlnum; /* nr of first sub line */
/*
* The new text is build up step by step, to avoid too much
***************
*** 4482,4489 ****
* far.
* new_end The new text, where to append new text.
*
! * lnum The line number where we were looking for the
! * first match in the old line.
* sub_firstlnum The line number in the buffer where to look
* for a match. Can be different from "lnum"
* when the pattern or substitute string contains
--- 4481,4490 ----
* far.
* new_end The new text, where to append new text.
*
! * lnum The line number where we found the start of
! * the match. Can be below the line we searched
! * when there is a \n before a \zs in the
! * pattern.
* sub_firstlnum The line number in the buffer where to look
* for a match. Can be different from "lnum"
* when the pattern or substitute string contains
***************
*** 4507,4518 ****
* updating the screen or handling a multi-line match. The "old_"
* pointers point into this copy.
*/
! sub_firstline = vim_strsave(ml_get(sub_firstlnum));
! if (sub_firstline == NULL)
! {
! vim_free(new_start);
! goto outofmem;
! }
copycol = 0;
matchcol = 0;
--- 4508,4514 ----
* updating the screen or handling a multi-line match. The "old_"
* pointers point into this copy.
*/
! sub_firstlnum = lnum;
copycol = 0;
matchcol = 0;
***************
*** 4533,4538 ****
--- 4529,4556 ----
*/
for (;;)
{
+ /* Advance "lnum" to the line where the match starts. The
+ * match does not start in the first line when there is a line
+ * break before \zs. */
+ if (regmatch.startpos[0].lnum > 0)
+ {
+ lnum += regmatch.startpos[0].lnum;
+ sub_firstlnum += regmatch.startpos[0].lnum;
+ nmatch -= regmatch.startpos[0].lnum;
+ vim_free(sub_firstline);
+ sub_firstline = NULL;
+ }
+
+ if (sub_firstline == NULL)
+ {
+ sub_firstline = vim_strsave(ml_get(sub_firstlnum));
+ if (sub_firstline == NULL)
+ {
+ vim_free(new_start);
+ goto outofmem;
+ }
+ }
+
/* Save the line number of the last change for the final
* cursor position (just like Vi). */
curwin->w_cursor.lnum = lnum;
***************
*** 4638,4644 ****
temp = RedrawingDisabled;
RedrawingDisabled = 0;
! search_match_lines = regmatch.endpos[0].lnum;
search_match_endcol = regmatch.endpos[0].col;
highlight_match = TRUE;
--- 4656,4663 ----
temp = RedrawingDisabled;
RedrawingDisabled = 0;
! search_match_lines = regmatch.endpos[0].lnum
! - regmatch.startpos[0].lnum;
search_match_endcol = regmatch.endpos[0].col;
highlight_match = TRUE;
***************
*** 4749,4755 ****
* 3. substitute the string.
*/
/* get length of substitution part */
! sublen = vim_regsub_multi(&regmatch, sub_firstlnum,
sub, sub_firstline, FALSE, p_magic, TRUE);
/* When the match included the "$" of the last line it may
--- 4768,4775 ----
* 3. substitute the string.
*/
/* get length of substitution part */
! sublen = vim_regsub_multi(&regmatch,
! sub_firstlnum - regmatch.startpos[0].lnum,
sub, sub_firstline, FALSE, p_magic, TRUE);
/* When the match included the "$" of the last line it may
***************
*** 4819,4825 ****
mch_memmove(new_end, sub_firstline + copycol, (size_t)i);
new_end += i;
! (void)vim_regsub_multi(&regmatch, sub_firstlnum,
sub, new_end, TRUE, p_magic, TRUE);
sub_nsubs++;
did_sub = TRUE;
--- 4839,4846 ----
mch_memmove(new_end, sub_firstline + copycol, (size_t)i);
new_end += i;
! (void)vim_regsub_multi(&regmatch,
! sub_firstlnum - regmatch.startpos[0].lnum,
sub, new_end, TRUE, p_magic, TRUE);
sub_nsubs++;
did_sub = TRUE;
***************
*** 4908,4917 ****
skip:
/* We already know that we did the last subst when we are at
* the end of the line, except that a pattern like
! * "bar\|\nfoo" may match at the NUL. */
lastone = (skip_match
|| got_int
|| got_quit
|| !(do_all || do_again)
|| (sub_firstline[matchcol] == NUL && nmatch <= 1
&& !re_multiline(regmatch.regprog)));
--- 4929,4941 ----
skip:
/* We already know that we did the last subst when we are at
* the end of the line, except that a pattern like
! * "bar\|\nfoo" may match at the NUL. "lnum" can be below
! * "line2" when there is a \zs in the pattern after a line
! * break. */
lastone = (skip_match
|| got_int
|| got_quit
+ || lnum > line2
|| !(do_all || do_again)
|| (sub_firstline[matchcol] == NUL && nmatch <= 1
&& !re_multiline(regmatch.regprog)));
***************
*** 4926,4937 ****
* When asking the user we like to show the already replaced
* text, but don't do it when "\<@=" or "\<@!" is used, it
* changes what matches.
*/
if (lastone
|| (do_ask && !re_lookbehind(regmatch.regprog))
|| nmatch_tl > 0
|| (nmatch = vim_regexec_multi(&regmatch, curwin,
! curbuf, sub_firstlnum, matchcol)) == 0)
{
if (new_start != NULL)
{
--- 4950,4964 ----
* When asking the user we like to show the already replaced
* text, but don't do it when "\<@=" or "\<@!" is used, it
* changes what matches.
+ * When the match starts below where we start searching also
+ * need to replace the line first (using \zs after \n).
*/
if (lastone
|| (do_ask && !re_lookbehind(regmatch.regprog))
|| nmatch_tl > 0
|| (nmatch = vim_regexec_multi(&regmatch, curwin,
! curbuf, sub_firstlnum, matchcol)) == 0
! || regmatch.startpos[0].lnum > 0)
{
if (new_start != NULL)
{
***************
*** 5001,5007 ****
--- 5028,5041 ----
* 5. break if there isn't another match in this line
*/
if (nmatch <= 0)
+ {
+ /* If the match found didn't start where we were
+ * searching, do the next search in the line where we
+ * found the match. */
+ if (nmatch == -1)
+ lnum -= regmatch.startpos[0].lnum;
break;
+ }
}
line_breakcheck();
*** ../vim-7.1.213/src/version.c Wed Jan 9 20:29:51 2008
--- src/version.c Wed Jan 9 22:37:47 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 214,
/**/
--
Q: What's orange and sounds like a parrot?
A: A carrot
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

198
7.1.215 Normal file
View file

@ -0,0 +1,198 @@
To: vim-dev@vim.org
Subject: Patch 7.1.215
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.215
Problem: It is difficult to figure out what syntax items are nested at a
certain position.
Solution: Add the synstack() function.
Files: runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro,
src/syntax.c
*** ../vim-7.1.214/runtime/doc/eval.txt Sun Jan 6 20:05:36 2008
--- runtime/doc/eval.txt Thu Jan 10 22:20:31 2008
***************
*** 1,4 ****
! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 06
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 10
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 1786,1791 ****
--- 1786,1792 ----
synIDattr( {synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID}
synIDtrans( {synID}) Number translated syntax ID of {synID}
+ synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and {col}
system( {expr} [, {input}]) String output of shell command/filter {expr}
tabpagebuflist( [{arg}]) List list of buffer numbers in tab page
tabpagenr( [{arg}]) Number number of current or last tab page
***************
*** 4962,4967 ****
--- 4966,4989 ----
highlight the character. Highlight links given with
":highlight link" are followed.
+ synstack({lnum}, {col}) *synstack()*
+ Return a |List|, which is the stack of syntax items at the
+ position {lnum} and {col} in the current window. Each item in
+ the List is an ID like what |synID()| returns.
+ The stack is the situation in between the character at "col"
+ and the next character. Note that a region of only one
+ character will not show up, it only exists inside that
+ character, not in between characters.
+ The first item in the List is the outer region, following are
+ items contained in that one. The last one is what |synID()|
+ returns, unless not the whole item is highlighted or it is a
+ transparent item.
+ This function is useful for debugging a syntax file.
+ Example that shows the syntax stack under the cursor: >
+ for id in synstack(line("."), col("."))
+ echo synIDattr(id, "name")
+ endfor
+
system({expr} [, {input}]) *system()* *E677*
Get the output of the shell command {expr}.
When {input} is given, this string is written to a file and
*** ../vim-7.1.214/src/eval.c Sun Jan 6 20:05:36 2008
--- src/eval.c Wed Jan 9 13:42:56 2008
***************
*** 651,656 ****
--- 651,657 ----
static void f_synID __ARGS((typval_T *argvars, typval_T *rettv));
static void f_synIDattr __ARGS((typval_T *argvars, typval_T *rettv));
static void f_synIDtrans __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_synstack __ARGS((typval_T *argvars, typval_T *rettv));
static void f_system __ARGS((typval_T *argvars, typval_T *rettv));
static void f_tabpagebuflist __ARGS((typval_T *argvars, typval_T *rettv));
static void f_tabpagenr __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 7252,7257 ****
--- 7253,7259 ----
{"synID", 3, 3, f_synID},
{"synIDattr", 2, 3, f_synIDattr},
{"synIDtrans", 1, 1, f_synIDtrans},
+ {"synstack", 2, 2, f_synstack},
{"system", 1, 2, f_system},
{"tabpagebuflist", 0, 1, f_tabpagebuflist},
{"tabpagenr", 0, 1, f_tabpagenr},
***************
*** 15843,15848 ****
--- 15845,15890 ----
id = 0;
rettv->vval.v_number = id;
+ }
+
+ /*
+ * "synstack(lnum, col)" function
+ */
+ /*ARGSUSED*/
+ static void
+ f_synstack(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+ #ifdef FEAT_SYN_HL
+ long lnum;
+ long col;
+ int i;
+ int id;
+ #endif
+
+ rettv->v_type = VAR_LIST;
+ rettv->vval.v_list = NULL;
+
+ #ifdef FEAT_SYN_HL
+ lnum = get_tv_lnum(argvars); /* -1 on type error */
+ col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
+
+ if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
+ && col >= 0 && col < (long)STRLEN(ml_get(lnum))
+ && rettv_list_alloc(rettv) != FAIL)
+ {
+ (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL);
+ for (i = 0; ; ++i)
+ {
+ id = syn_get_stack_item(i);
+ if (id < 0)
+ break;
+ if (list_append_number(rettv->vval.v_list, id) == FAIL)
+ break;
+ }
+ }
+ #endif
}
/*
*** ../vim-7.1.214/src/proto/syntax.pro Tue Jul 24 14:32:44 2007
--- src/proto/syntax.pro Wed Jan 9 13:38:20 2008
***************
*** 13,18 ****
--- 13,19 ----
void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
+ int syn_get_stack_item __ARGS((int i));
int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
void init_highlight __ARGS((int both, int reset));
int load_colors __ARGS((char_u *name));
*** ../vim-7.1.214/src/syntax.c Sun Oct 7 15:21:31 2007
--- src/syntax.c Wed Jan 9 15:17:47 2008
***************
*** 6104,6109 ****
--- 6102,6123 ----
return (trans ? current_trans_id : current_id);
}
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+ /*
+ * Return the syntax ID at position "i" in the current stack.
+ * The caller must have called syn_get_id() before to fill the stack.
+ * Returns -1 when "i" is out of range.
+ */
+ int
+ syn_get_stack_item(i)
+ int i;
+ {
+ if (i >= current_state.ga_len )
+ return -1;
+ return CUR_STATE(i).si_id;
+ }
+ #endif
#if defined(FEAT_FOLDING) || defined(PROTO)
/*
*** ../vim-7.1.214/src/version.c Wed Jan 9 22:39:55 2008
--- src/version.c Thu Jan 10 22:17:38 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 215,
/**/
--
TALL KNIGHT: We are now no longer the Knights Who Say Ni!
ONE KNIGHT: Ni!
OTHERS: Sh!
ONE KNIGHT: (whispers) Sorry.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.1.216 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.1.216
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.216
Problem: Variants of --remote-tab are not mentioned for "vim --help".
Solution: Display optional -wait and -silent.
Files: src/main.c
*** ../vim-7.1.215/src/main.c Tue Sep 25 17:54:41 2007
--- src/main.c Sun Dec 30 15:09:11 2007
***************
*** 3081,3087 ****
main_msg(_("--remote-wait <files> As --remote but wait for files to have been edited"));
main_msg(_("--remote-wait-silent <files> Same, don't complain if there is no server"));
# ifdef FEAT_WINDOWS
! main_msg(_("--remote-tab <files> As --remote but open tab page for each file"));
# endif
main_msg(_("--remote-send <keys>\tSend <keys> to a Vim server and exit"));
main_msg(_("--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"));
--- 3081,3087 ----
main_msg(_("--remote-wait <files> As --remote but wait for files to have been edited"));
main_msg(_("--remote-wait-silent <files> Same, don't complain if there is no server"));
# ifdef FEAT_WINDOWS
! main_msg(_("--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"));
# endif
main_msg(_("--remote-send <keys>\tSend <keys> to a Vim server and exit"));
main_msg(_("--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"));
*** ../vim-7.1.215/src/version.c Thu Jan 10 22:23:22 2008
--- src/version.c Fri Jan 11 20:25:14 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 216,
/**/
--
TIM: But follow only if you are men of valour. For the entrance to this cave
is guarded by a monster, a creature so foul and cruel that no man yet has
fought with it and lived. Bones of full fifty men lie strewn about its
lair ...
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

228
7.1.217 Normal file
View file

@ -0,0 +1,228 @@
To: vim-dev@vim.org
Subject: Patch 7.1.217
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.217
Problem: The "help-tags" tag may be missing from runtime/doc/tags when it
was generated during "make install".
Solution: Add the "++t" argument to ":helptags" to force adding the tag.
Files: runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c,
src/ex_cmds.h
*** ../vim-7.1.216/runtime/doc/Makefile Sat May 5 19:14:15 2007
--- runtime/doc/Makefile Fri Jan 11 20:55:34 2008
***************
*** 301,307 ****
# Use Vim to generate the tags file. Can only be used when Vim has been
# compiled and installed. Supports multiple languages.
vimtags: $(DOCS)
! $(VIMEXE) -u NONE -esX -c "helptags ." -c quit
# Use "doctags" to generate the tags file. Only works for English!
tags: doctags $(DOCS)
--- 301,307 ----
# Use Vim to generate the tags file. Can only be used when Vim has been
# compiled and installed. Supports multiple languages.
vimtags: $(DOCS)
! $(VIMEXE) -u NONE -esX -c "helptags ++t ." -c quit
# Use "doctags" to generate the tags file. Only works for English!
tags: doctags $(DOCS)
*** ../vim-7.1.216/runtime/doc/various.txt Sat May 12 17:05:26 2007
--- runtime/doc/various.txt Fri Jan 11 20:45:45 2008
***************
*** 1,4 ****
! *various.txt* For Vim version 7.1. Last change: 2007 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *various.txt* For Vim version 7.1. Last change: 2008 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 748,754 ****
*:helpt* *:helptags*
*E154* *E150* *E151* *E152* *E153* *E670*
! :helpt[ags] {dir} Generate the help tags file(s) for directory {dir}.
All "*.txt" and "*.??x" files in the directory are
scanned for a help tag definition in between stars.
The "*.??x" files are for translated docs, they
--- 754,761 ----
*:helpt* *:helptags*
*E154* *E150* *E151* *E152* *E153* *E670*
! :helpt[ags] [++t] {dir}
! Generate the help tags file(s) for directory {dir}.
All "*.txt" and "*.??x" files in the directory are
scanned for a help tag definition in between stars.
The "*.??x" files are for translated docs, they
***************
*** 756,761 ****
--- 763,771 ----
The generated tags files are sorted.
When there are duplicates an error message is given.
An existing tags file is silently overwritten.
+ The optional "++t" argument forces adding the
+ "help-tags" tag. This is also done when the {dir} is
+ equal to $VIMRUNTIME/doc.
To rebuild the help tags in the runtime directory
(requires write permission there): >
:helptags $VIMRUNTIME/doc
*** ../vim-7.1.216/src/ex_cmds.c Wed Jan 9 22:39:55 2008
--- src/ex_cmds.c Fri Jan 11 20:47:13 2008
***************
*** 6091,6097 ****
}
#if defined(FEAT_EX_EXTRA) || defined(PROTO)
! static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang));
/*
* ":helptags"
--- 6091,6097 ----
}
#if defined(FEAT_EX_EXTRA) || defined(PROTO)
! static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang, int add_help_tags));
/*
* ":helptags"
***************
*** 6110,6115 ****
--- 6110,6123 ----
char_u fname[8];
int filecount;
char_u **files;
+ int add_help_tags = FALSE;
+
+ /* Check for ":helptags ++t {dir}". */
+ if (STRNCMP(eap->arg, "++t", 3) == 0 && vim_iswhite(eap->arg[3]))
+ {
+ add_help_tags = TRUE;
+ eap->arg = skipwhite(eap->arg + 3);
+ }
if (!mch_isdir(eap->arg))
{
***************
*** 6192,6198 ****
ext[1] = fname[5];
ext[2] = fname[6];
}
! helptags_one(eap->arg, ext, fname);
}
ga_clear(&ga);
--- 6200,6206 ----
ext[1] = fname[5];
ext[2] = fname[6];
}
! helptags_one(eap->arg, ext, fname, add_help_tags);
}
ga_clear(&ga);
***************
*** 6200,6214 ****
#else
/* No language support, just use "*.txt" and "tags". */
! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags");
#endif
}
static void
! helptags_one(dir, ext, tagfname)
! char_u *dir; /* doc directory */
! char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
! char_u *tagfname; /* "tags" for English, "tags-it" for Italian. */
{
FILE *fd_tags;
FILE *fd;
--- 6208,6223 ----
#else
/* No language support, just use "*.txt" and "tags". */
! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags);
#endif
}
static void
! helptags_one(dir, ext, tagfname, add_help_tags)
! char_u *dir; /* doc directory */
! char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
! char_u *tagfname; /* "tags" for English, "tags-fr" for French. */
! int add_help_tags; /* add "help-tags" tag */
{
FILE *fd_tags;
FILE *fd;
***************
*** 6259,6268 ****
}
/*
! * If generating tags for "$VIMRUNTIME/doc" add the "help-tags" tag.
*/
ga_init2(&ga, (int)sizeof(char_u *), 100);
! if (fullpathcmp((char_u *)"$VIMRUNTIME/doc", dir, FALSE) == FPC_SAME)
{
if (ga_grow(&ga, 1) == FAIL)
got_int = TRUE;
--- 6268,6279 ----
}
/*
! * If using the "++t" argument or generating tags for "$VIMRUNTIME/doc"
! * add the "help-tags" tag.
*/
ga_init2(&ga, (int)sizeof(char_u *), 100);
! if (add_help_tags || fullpathcmp((char_u *)"$VIMRUNTIME/doc",
! dir, FALSE) == FPC_SAME)
{
if (ga_grow(&ga, 1) == FAIL)
got_int = TRUE;
*** ../vim-7.1.216/src/ex_cmds.h Thu Mar 8 11:00:55 2007
--- src/ex_cmds.h Fri Jan 11 20:49:18 2008
***************
*** 422,428 ****
EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
EXTRA|NOTRLCOM|NEEDARG),
EX(CMD_helptags, "helptags", ex_helptags,
! NEEDARG|FILE1|TRLBAR|CMDWIN),
EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
EX(CMD_highlight, "highlight", ex_highlight,
--- 422,428 ----
EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
EXTRA|NOTRLCOM|NEEDARG),
EX(CMD_helptags, "helptags", ex_helptags,
! NEEDARG|FILES|TRLBAR|CMDWIN),
EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
EX(CMD_highlight, "highlight", ex_highlight,
*** ../vim-7.1.216/src/version.c Fri Jan 11 20:25:42 2008
--- src/version.c Fri Jan 11 20:58:44 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 217,
/**/
--
My girlfriend told me I should be more affectionate.
So I got TWO girlfriends.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

58
7.1.218 Normal file
View file

@ -0,0 +1,58 @@
To: vim-dev@vim.org
Subject: Patch 7.1.218
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.218
Problem: A syntax region without a "keepend", containing a region with
"extend" could be truncated at the end of the containing region.
Solution: Do not call syn_update_ends() when there are no keepend items.
Files: src/syntax.c
*** ../vim-7.1.217/src/syntax.c Thu Jan 10 22:23:22 2008
--- src/syntax.c Wed Jan 9 15:17:47 2008
***************
*** 2495,2501 ****
if (current_state.ga_len == 0)
break;
! if (had_extend)
{
syn_update_ends(FALSE);
if (current_state.ga_len == 0)
--- 2493,2499 ----
if (current_state.ga_len == 0)
break;
! if (had_extend && keepend_level >= 0)
{
syn_update_ends(FALSE);
if (current_state.ga_len == 0)
*** ../vim-7.1.217/src/version.c Fri Jan 11 21:00:49 2008
--- src/version.c Fri Jan 11 21:25:46 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 218,
/**/
--
The Law of VIM:
For each member b of the possible behaviour space B of program P, there exists
a finite time t before which at least one user u in the total user space U of
program P will request b becomes a member of the allowed behaviour space B'
(B' <= B).
In other words: Sooner or later everyone wants everything as an option.
-- Vince Negri
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

378
7.1.219 Normal file
View file

@ -0,0 +1,378 @@
To: vim-dev@vim.org
Subject: Patch 7.1.219
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.219 (after 7.1.215)
Problem: synstack() returns situation after the current character, can't
see the state for a one-character region.
Solution: Don't update ending states in the requested column.
Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c
*** ../vim-7.1.218/runtime/doc/eval.txt Thu Jan 10 22:23:22 2008
--- runtime/doc/eval.txt Fri Jan 11 22:04:59 2008
***************
*** 1,4 ****
! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 10
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *eval.txt* For Vim version 7.1. Last change: 2008 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 4967,4976 ****
Return a |List|, which is the stack of syntax items at the
position {lnum} and {col} in the current window. Each item in
the List is an ID like what |synID()| returns.
- The stack is the situation in between the character at "col"
- and the next character. Note that a region of only one
- character will not show up, it only exists inside that
- character, not in between characters.
The first item in the List is the outer region, following are
items contained in that one. The last one is what |synID()|
returns, unless not the whole item is highlighted or it is a
--- 4970,4975 ----
*** ../vim-7.1.218/src/eval.c Thu Jan 10 22:23:22 2008
--- src/eval.c Fri Jan 11 21:46:12 2008
***************
*** 15725,15731 ****
if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col < (long)STRLEN(ml_get(lnum)))
! id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL);
#endif
rettv->vval.v_number = id;
--- 15725,15731 ----
if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col < (long)STRLEN(ml_get(lnum)))
! id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL, FALSE);
#endif
rettv->vval.v_number = id;
***************
*** 15874,15880 ****
&& col >= 0 && col < (long)STRLEN(ml_get(lnum))
&& rettv_list_alloc(rettv) != FAIL)
{
! (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL);
for (i = 0; ; ++i)
{
id = syn_get_stack_item(i);
--- 15874,15880 ----
&& col >= 0 && col < (long)STRLEN(ml_get(lnum))
&& rettv_list_alloc(rettv) != FAIL)
{
! (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE);
for (i = 0; ; ++i)
{
id = syn_get_stack_item(i);
*** ../vim-7.1.218/src/hardcopy.c Thu May 10 20:40:02 2007
--- src/hardcopy.c Fri Jan 11 21:46:20 2008
***************
*** 876,882 ****
*/
if (psettings->do_syntax)
{
! id = syn_get_id(curwin, ppos->file_line, col, 1, NULL);
if (id > 0)
id = syn_get_final_id(id);
else
--- 876,882 ----
*/
if (psettings->do_syntax)
{
! id = syn_get_id(curwin, ppos->file_line, col, 1, NULL, FALSE);
if (id > 0)
id = syn_get_final_id(id);
else
*** ../vim-7.1.218/src/proto/syntax.pro Thu Jan 10 22:23:22 2008
--- src/proto/syntax.pro Fri Jan 11 21:54:19 2008
***************
*** 4,10 ****
void syn_stack_apply_changes __ARGS((buf_T *buf));
void syntax_end_parsing __ARGS((linenr_T lnum));
int syntax_check_changed __ARGS((linenr_T lnum));
! int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
void syntax_clear __ARGS((buf_T *buf));
void ex_syntax __ARGS((exarg_T *eap));
int syntax_present __ARGS((buf_T *buf));
--- 4,10 ----
void syn_stack_apply_changes __ARGS((buf_T *buf));
void syntax_end_parsing __ARGS((linenr_T lnum));
int syntax_check_changed __ARGS((linenr_T lnum));
! int get_syntax_attr __ARGS((colnr_T col, int *can_spell, int keep_state));
void syntax_clear __ARGS((buf_T *buf));
void ex_syntax __ARGS((exarg_T *eap));
int syntax_present __ARGS((buf_T *buf));
***************
*** 12,18 ****
void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg));
void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
! int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
int syn_get_stack_item __ARGS((int i));
int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
void init_highlight __ARGS((int both, int reset));
--- 12,18 ----
void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg));
void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
! int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp, int keep_state));
int syn_get_stack_item __ARGS((int i));
int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
void init_highlight __ARGS((int both, int reset));
*** ../vim-7.1.218/src/screen.c Thu Nov 8 21:23:34 2007
--- src/screen.c Fri Jan 11 21:48:10 2008
***************
*** 3885,3891 ****
# ifdef FEAT_SPELL
has_spell ? &can_spell :
# endif
! NULL);
if (did_emsg)
{
--- 3885,3891 ----
# ifdef FEAT_SPELL
has_spell ? &can_spell :
# endif
! NULL, FALSE);
if (did_emsg)
{
*** ../vim-7.1.218/src/spell.c Sun Aug 5 18:32:21 2007
--- src/spell.c Fri Jan 11 21:46:50 2008
***************
*** 2146,2152 ****
{
col = (int)(p - buf);
(void)syn_get_id(wp, lnum, (colnr_T)col,
! FALSE, &can_spell);
if (!can_spell)
attr = HLF_COUNT;
}
--- 2146,2152 ----
{
col = (int)(p - buf);
(void)syn_get_id(wp, lnum, (colnr_T)col,
! FALSE, &can_spell, FALSE);
if (!can_spell)
attr = HLF_COUNT;
}
*** ../vim-7.1.218/src/syntax.c Fri Jan 11 21:26:49 2008
--- src/syntax.c Sat Jan 12 16:42:25 2008
***************
*** 378,384 ****
static int syn_stack_equal __ARGS((synstate_T *sp));
static void validate_current_state __ARGS((void));
static int syn_finish_line __ARGS((int syncing));
! static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell));
static int did_match_already __ARGS((int idx, garray_T *gap));
static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si));
static void check_state_ends __ARGS((void));
--- 378,384 ----
static int syn_stack_equal __ARGS((synstate_T *sp));
static void validate_current_state __ARGS((void));
static int syn_finish_line __ARGS((int syncing));
! static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell, int keep_state));
static int did_match_already __ARGS((int idx, garray_T *gap));
static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si));
static void check_state_ends __ARGS((void));
***************
*** 1691,1697 ****
{
while (!current_finished)
{
! (void)syn_current_attr(syncing, FALSE, NULL);
/*
* When syncing, and found some item, need to check the item.
*/
--- 1690,1696 ----
{
while (!current_finished)
{
! (void)syn_current_attr(syncing, FALSE, NULL, FALSE);
/*
* When syncing, and found some item, need to check the item.
*/
***************
*** 1731,1739 ****
* done.
*/
int
! get_syntax_attr(col, can_spell)
colnr_T col;
int *can_spell;
{
int attr = 0;
--- 1730,1739 ----
* done.
*/
int
! get_syntax_attr(col, can_spell, keep_state)
colnr_T col;
int *can_spell;
+ int keep_state; /* keep state of char at "col" */
{
int attr = 0;
***************
*** 1768,1774 ****
*/
while (current_col <= col)
{
! attr = syn_current_attr(FALSE, TRUE, can_spell);
++current_col;
}
--- 1768,1775 ----
*/
while (current_col <= col)
{
! attr = syn_current_attr(FALSE, TRUE, can_spell,
! current_col == col ? keep_state : FALSE);
++current_col;
}
***************
*** 1779,1788 ****
* Get syntax attributes for current_lnum, current_col.
*/
static int
! syn_current_attr(syncing, displaying, can_spell)
int syncing; /* When 1: called for syncing */
int displaying; /* result will be displayed */
int *can_spell; /* return: do spell checking */
{
int syn_id;
lpos_T endpos; /* was: char_u *endp; */
--- 1780,1790 ----
* Get syntax attributes for current_lnum, current_col.
*/
static int
! syn_current_attr(syncing, displaying, can_spell, keep_state)
int syncing; /* When 1: called for syncing */
int displaying; /* result will be displayed */
int *can_spell; /* return: do spell checking */
+ int keep_state; /* keep syntax stack afterwards */
{
int syn_id;
lpos_T endpos; /* was: char_u *endp; */
***************
*** 2298,2304 ****
* may be for an empty match and a containing item might end in the
* current column.
*/
! if (!syncing)
{
check_state_ends();
if (current_state.ga_len > 0
--- 2300,2306 ----
* may be for an empty match and a containing item might end in the
* current column.
*/
! if (!syncing && !keep_state)
{
check_state_ends();
if (current_state.ga_len > 0
***************
*** 6086,6097 ****
* Function called for expression evaluation: get syntax ID at file position.
*/
int
! syn_get_id(wp, lnum, col, trans, spellp)
win_T *wp;
long lnum;
colnr_T col;
! int trans; /* remove transparancy */
! int *spellp; /* return: can do spell checking */
{
/* When the position is not after the current position and in the same
* line of the same buffer, need to restart parsing. */
--- 6088,6100 ----
* Function called for expression evaluation: get syntax ID at file position.
*/
int
! syn_get_id(wp, lnum, col, trans, spellp, keep_state)
win_T *wp;
long lnum;
colnr_T col;
! int trans; /* remove transparancy */
! int *spellp; /* return: can do spell checking */
! int keep_state; /* keep state of char at "col" */
{
/* When the position is not after the current position and in the same
* line of the same buffer, need to restart parsing. */
***************
*** 6100,6106 ****
|| col < current_col)
syntax_start(wp, lnum);
! (void)get_syntax_attr(col, spellp);
return (trans ? current_trans_id : current_id);
}
--- 6103,6109 ----
|| col < current_col)
syntax_start(wp, lnum);
! (void)get_syntax_attr(col, spellp, keep_state);
return (trans ? current_trans_id : current_id);
}
***************
*** 6115,6122 ****
syn_get_stack_item(i)
int i;
{
! if (i >= current_state.ga_len )
return -1;
return CUR_STATE(i).si_id;
}
#endif
--- 6118,6131 ----
syn_get_stack_item(i)
int i;
{
! if (i >= current_state.ga_len)
! {
! /* Need to invalidate the state, because we didn't properly finish it
! * for the last character, "keep_state" was TRUE. */
! invalidate_current_state();
! current_col = MAXCOL;
return -1;
+ }
return CUR_STATE(i).si_id;
}
#endif
*** ../vim-7.1.218/src/version.c Fri Jan 11 21:26:49 2008
--- src/version.c Sat Jan 12 16:40:47 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 219,
/**/
--
ARTHUR: Go on, Bors, chop its head off.
BORS: Right. Silly little bleeder. One rabbit stew coming up.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

136
7.1.220 Normal file
View file

@ -0,0 +1,136 @@
To: vim-dev@vim.org
Subject: Patch 7.1.220
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.220
Problem: When a ")" or word movement command moves the cursor back from the
end of the line it may end up on the trail byte of a multi-byte
character. It's also moved back when it isn't needed.
Solution: Add the adjust_cursor() function.
Files: src/normal.c
*** ../vim-7.1.219/src/normal.c Sun Jan 6 20:05:36 2008
--- src/normal.c Sat Jan 12 17:10:14 2008
***************
*** 150,155 ****
--- 150,156 ----
static void nv_bck_word __ARGS((cmdarg_T *cap));
static void nv_wordcmd __ARGS((cmdarg_T *cap));
static void nv_beginline __ARGS((cmdarg_T *cap));
+ static void adjust_cursor __ARGS((oparg_T *oap));
#ifdef FEAT_VISUAL
static void adjust_for_sel __ARGS((cmdarg_T *cap));
static int unadjust_for_sel __ARGS((void));
***************
*** 6567,6578 ****
clearopbeep(cap->oap);
else
{
! /* Don't leave the cursor on the NUL past a line */
! if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
! {
! --curwin->w_cursor.col;
! cap->oap->inclusive = TRUE;
! }
#ifdef FEAT_VIRTUALEDIT
curwin->w_cursor.coladd = 0;
#endif
--- 6568,6575 ----
clearopbeep(cap->oap);
else
{
! /* Don't leave the cursor on the NUL past end of line. */
! adjust_cursor(cap->oap);
#ifdef FEAT_VIRTUALEDIT
curwin->w_cursor.coladd = 0;
#endif
***************
*** 8408,8419 ****
else
n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
! /* Don't leave the cursor on the NUL past a line */
! if (n != FAIL && curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
! {
! --curwin->w_cursor.col;
! cap->oap->inclusive = TRUE;
! }
if (n == FAIL && cap->oap->op_type == OP_NOP)
clearopbeep(cap->oap);
--- 8405,8413 ----
else
n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
! /* Don't leave the cursor on the NUL past the end of line. */
! if (n != FAIL)
! adjust_cursor(cap->oap);
if (n == FAIL && cap->oap->op_type == OP_NOP)
clearopbeep(cap->oap);
***************
*** 8426,8431 ****
--- 8420,8458 ----
if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP)
foldOpenCursor();
#endif
+ }
+ }
+
+ /*
+ * Used after a movement command: If the cursor ends up on the NUL after the
+ * end of the line, may move it back to the last character and make the motion
+ * inclusive.
+ */
+ static void
+ adjust_cursor(oap)
+ oparg_T *oap;
+ {
+ /* The cursor cannot remain on the NUL when:
+ * - the column is > 0
+ * - not in Visual mode or 'selection' is "o"
+ * - 'virtualedit' is not "all" and not "onemore".
+ */
+ if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL
+ #ifdef FEAT_VISUAL
+ && (!VIsual_active || *p_sel == 'o')
+ #endif
+ #ifdef FEAT_VIRTUALEDIT
+ && !virtual_active() && (ve_flags & VE_ONEMORE) == 0
+ #endif
+ )
+ {
+ --curwin->w_cursor.col;
+ #ifdef FEAT_MBYTE
+ /* prevent cursor from moving on the trail byte */
+ if (has_mbyte)
+ mb_adjust_cursor();
+ #endif
+ oap->inclusive = TRUE;
}
}
*** ../vim-7.1.219/src/version.c Sat Jan 12 16:45:25 2008
--- src/version.c Sat Jan 12 17:07:28 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 220,
/**/
--
A hamburger walks into a bar, and the bartender says: "I'm sorry,
but we don't serve food here."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

58
7.1.221 Normal file
View file

@ -0,0 +1,58 @@
To: vim-dev@vim.org
Subject: Patch 7.1.221
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.221
Problem: When inserting a "(", triggering the matchparen plugin, the
following highlighting may be messed up.
Solution: Before triggering the CursorMovedI autocommands update the display
to update the stored syntax stacks for the change.
Files: src/edit.c
*** ../vim-7.1.220/src/edit.c Wed Jan 9 10:13:24 2008
--- src/edit.c Sat Jan 12 16:07:41 2008
***************
*** 1455,1460 ****
--- 1455,1468 ----
# endif
)
{
+ # ifdef FEAT_SYN_HL
+ /* Need to update the screen first, to make sure syntax
+ * highlighting is correct after making a change (e.g., inserting
+ * a "(". The autocommand may also require a redraw, so it's done
+ * again below, unfortunately. */
+ if (syntax_present(curbuf) && must_redraw)
+ update_screen(0);
+ # endif
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
last_cursormoved = curwin->w_cursor;
}
*** ../vim-7.1.220/src/version.c Sat Jan 12 17:11:25 2008
--- src/version.c Sat Jan 12 18:11:22 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 221,
/**/
--
ROBIN: The what?
ARTHUR: The Holy Hand Grenade of Antioch. 'Tis one of the sacred relics
Brother Maynard always carries with him.
ALL: Yes. Of course.
ARTHUR: (shouting) Bring up the Holy Hand Grenade!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

135
7.1.222 Normal file
View file

@ -0,0 +1,135 @@
To: vim-dev@vim.org
Subject: Patch 7.1.222
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.222 (after 7.1.217)
Problem: Wildcards in argument of ":helptags" are not expanded. (Marcel
Svitalsky)
Solution: Expand wildcards in the directory name.
Files: src/ex_cmds.c
*** ../vim-7.1.221/src/ex_cmds.c Fri Jan 11 21:00:49 2008
--- src/ex_cmds.c Sat Jan 12 21:40:51 2008
***************
*** 6106,6111 ****
--- 6106,6113 ----
#ifdef FEAT_MULTI_LANG
char_u lang[2];
#endif
+ expand_T xpc;
+ char_u *dirname;
char_u ext[5];
char_u fname[8];
int filecount;
***************
*** 6119,6125 ****
eap->arg = skipwhite(eap->arg + 3);
}
! if (!mch_isdir(eap->arg))
{
EMSG2(_("E150: Not a directory: %s"), eap->arg);
return;
--- 6121,6131 ----
eap->arg = skipwhite(eap->arg + 3);
}
! ExpandInit(&xpc);
! xpc.xp_context = EXPAND_DIRECTORIES;
! dirname = ExpandOne(&xpc, eap->arg, NULL,
! WILD_LIST_NOTFOUND|WILD_SILENT, WILD_EXPAND_FREE);
! if (dirname == NULL || !mch_isdir(dirname))
{
EMSG2(_("E150: Not a directory: %s"), eap->arg);
return;
***************
*** 6127,6133 ****
#ifdef FEAT_MULTI_LANG
/* Get a list of all files in the directory. */
! STRCPY(NameBuff, eap->arg);
add_pathsep(NameBuff);
STRCAT(NameBuff, "*");
if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
--- 6133,6139 ----
#ifdef FEAT_MULTI_LANG
/* Get a list of all files in the directory. */
! STRCPY(NameBuff, dirname);
add_pathsep(NameBuff);
STRCAT(NameBuff, "*");
if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
***************
*** 6135,6140 ****
--- 6141,6147 ----
|| filecount == 0)
{
EMSG2("E151: No match: %s", NameBuff);
+ vim_free(dirname);
return;
}
***************
*** 6200,6206 ****
ext[1] = fname[5];
ext[2] = fname[6];
}
! helptags_one(eap->arg, ext, fname, add_help_tags);
}
ga_clear(&ga);
--- 6207,6213 ----
ext[1] = fname[5];
ext[2] = fname[6];
}
! helptags_one(dirname, ext, fname, add_help_tags);
}
ga_clear(&ga);
***************
*** 6208,6215 ****
#else
/* No language support, just use "*.txt" and "tags". */
! helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags);
#endif
}
static void
--- 6215,6223 ----
#else
/* No language support, just use "*.txt" and "tags". */
! helptags_one(dirname, (char_u *)".txt", (char_u *)"tags", add_help_tags);
#endif
+ vim_free(dirname);
}
static void
*** ../vim-7.1.221/src/version.c Sat Jan 12 18:13:05 2008
--- src/version.c Sun Jan 13 13:27:04 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 222,
/**/
--
Arthur pulls Pin out. The MONK blesses the grenade as ...
ARTHUR: (quietly) One, two, five ...
GALAHAD: Three, sir!
ARTHUR: Three.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

263
7.1.223 Normal file
View file

@ -0,0 +1,263 @@
To: vim-dev@vim.org
Subject: Patch 7.1.223
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.223
Problem: glob() doesn't work properly when 'shell' is "sh" or "bash" and
the expanded name contains spaces, '~', single quotes and other
special characters. (Adri Verhoef, Charles Campbell)
Solution: For Posix shells define a vimglob() function to list the matches
instead of using "echo" directly.
Files: src/os_unix.c
*** ../vim-7.1.222/src/os_unix.c Thu Jan 3 18:55:21 2008
--- src/os_unix.c Sun Jan 13 13:52:53 2008
***************
*** 4946,4951 ****
--- 4946,4954 ----
char_u *p;
int dir;
#ifdef __EMX__
+ /*
+ * This is the OS/2 implementation.
+ */
# define EXPL_ALLOC_INC 16
char_u **expl_files;
size_t files_alloced, files_free;
***************
*** 5056,5075 ****
return OK;
#else /* __EMX__ */
!
int j;
char_u *tempname;
char_u *command;
FILE *fd;
char_u *buffer;
! #define STYLE_ECHO 0 /* use "echo" to expand */
! #define STYLE_GLOB 1 /* use "glob" to expand, for csh */
! #define STYLE_PRINT 2 /* use "print -N" to expand, for zsh */
! #define STYLE_BT 3 /* `cmd` expansion, execute the pattern directly */
int shell_style = STYLE_ECHO;
int check_spaces;
static int did_find_nul = FALSE;
int ampersent = FALSE;
*num_file = 0; /* default: no files found */
*file = NULL;
--- 5059,5084 ----
return OK;
#else /* __EMX__ */
! /*
! * This is the non-OS/2 implementation (really Unix).
! */
int j;
char_u *tempname;
char_u *command;
FILE *fd;
char_u *buffer;
! #define STYLE_ECHO 0 /* use "echo", the default */
! #define STYLE_GLOB 1 /* use "glob", for csh */
! #define STYLE_VIMGLOB 2 /* use "vimglob", for Posix sh */
! #define STYLE_PRINT 3 /* use "print -N", for zsh */
! #define STYLE_BT 4 /* `cmd` expansion, execute the pattern
! * directly */
int shell_style = STYLE_ECHO;
int check_spaces;
static int did_find_nul = FALSE;
int ampersent = FALSE;
+ /* vimglob() function to define for Posix shell */
+ static char *sh_vimglob_func = "vimglob() { while [ $# -ge 1 ]; do echo -n \"$1\"; echo; shift; done }; vimglob >";
*num_file = 0; /* default: no files found */
*file = NULL;
***************
*** 5107,5115 ****
/*
* Let the shell expand the patterns and write the result into the temp
! * file. if expanding `cmd` execute it directly.
! * If we use csh, glob will work better than echo.
! * If we use zsh, print -N will work better than glob.
*/
if (num_pat == 1 && *pat[0] == '`'
&& (len = STRLEN(pat[0])) > 2
--- 5116,5132 ----
/*
* Let the shell expand the patterns and write the result into the temp
! * file.
! * STYLE_BT: NL separated
! * If expanding `cmd` execute it directly.
! * STYLE_GLOB: NUL separated
! * If we use *csh, "glob" will work better than "echo".
! * STYLE_PRINT: NL or NUL separated
! * If we use *zsh, "print -N" will work better than "glob".
! * STYLE_VIMGLOB: NL separated
! * If we use *sh*, we define "vimglob()".
! * STYLE_ECHO: space separated.
! * A shell we don't know, stay safe and use "echo".
*/
if (num_pat == 1 && *pat[0] == '`'
&& (len = STRLEN(pat[0])) > 2
***************
*** 5122,5130 ****
else if (STRCMP(p_sh + len - 3, "zsh") == 0)
shell_style = STYLE_PRINT;
}
!
! /* "unset nonomatch; print -N >" plus two is 29 */
len = STRLEN(tempname) + 29;
for (i = 0; i < num_pat; ++i)
{
/* Count the length of the patterns in the same way as they are put in
--- 5139,5155 ----
else if (STRCMP(p_sh + len - 3, "zsh") == 0)
shell_style = STYLE_PRINT;
}
! if (shell_style == STYLE_ECHO && strstr((char *)gettail(p_sh),
! "sh") != NULL)
! shell_style = STYLE_VIMGLOB;
!
! /* Compute the length of the command. We need 2 extra bytes: for the
! * optional '&' and for the NUL.
! * Worst case: "unset nonomatch; print -N >" plus two is 29 */
len = STRLEN(tempname) + 29;
+ if (shell_style == STYLE_VIMGLOB)
+ len += STRLEN(sh_vimglob_func);
+
for (i = 0; i < num_pat; ++i)
{
/* Count the length of the patterns in the same way as they are put in
***************
*** 5183,5192 ****
--- 5208,5221 ----
STRCAT(command, "glob >");
else if (shell_style == STYLE_PRINT)
STRCAT(command, "print -N >");
+ else if (shell_style == STYLE_VIMGLOB)
+ STRCAT(command, sh_vimglob_func);
else
STRCAT(command, "echo >");
}
+
STRCAT(command, tempname);
+
if (shell_style != STYLE_BT)
for (i = 0; i < num_pat; ++i)
{
***************
*** 5232,5239 ****
if (flags & EW_SILENT)
show_shell_mess = FALSE;
if (ampersent)
! STRCAT(command, "&"); /* put the '&' back after the
! redirection */
/*
* Using zsh -G: If a pattern has no matches, it is just deleted from
--- 5261,5267 ----
if (flags & EW_SILENT)
show_shell_mess = FALSE;
if (ampersent)
! STRCAT(command, "&"); /* put the '&' after the redirection */
/*
* Using zsh -G: If a pattern has no matches, it is just deleted from
***************
*** 5265,5271 ****
show_shell_mess = TRUE;
vim_free(command);
! if (i) /* mch_call_shell() failed */
{
mch_remove(tempname);
vim_free(tempname);
--- 5293,5299 ----
show_shell_mess = TRUE;
vim_free(command);
! if (i != 0) /* mch_call_shell() failed */
{
mch_remove(tempname);
vim_free(tempname);
***************
*** 5336,5342 ****
}
vim_free(tempname);
! #if defined(__CYGWIN__) || defined(__CYGWIN32__)
/* Translate <CR><NL> into <NL>. Caution, buffer may contain NUL. */
p = buffer;
for (i = 0; i < len; ++i)
--- 5364,5370 ----
}
vim_free(tempname);
! # if defined(__CYGWIN__) || defined(__CYGWIN32__)
/* Translate <CR><NL> into <NL>. Caution, buffer may contain NUL. */
p = buffer;
for (i = 0; i < len; ++i)
***************
*** 5359,5365 ****
}
}
/* file names are separated with NL */
! else if (shell_style == STYLE_BT)
{
buffer[len] = NUL; /* make sure the buffer ends in NUL */
p = buffer;
--- 5387,5393 ----
}
}
/* file names are separated with NL */
! else if (shell_style == STYLE_BT || shell_style == STYLE_VIMGLOB)
{
buffer[len] = NUL; /* make sure the buffer ends in NUL */
p = buffer;
***************
*** 5438,5444 ****
{
(*file)[i] = p;
/* Space or NL separates */
! if (shell_style == STYLE_ECHO || shell_style == STYLE_BT)
{
while (!(shell_style == STYLE_ECHO && *p == ' ')
&& *p != '\n' && *p != NUL)
--- 5466,5473 ----
{
(*file)[i] = p;
/* Space or NL separates */
! if (shell_style == STYLE_ECHO || shell_style == STYLE_BT
! || shell_style == STYLE_VIMGLOB)
{
while (!(shell_style == STYLE_ECHO && *p == ' ')
&& *p != '\n' && *p != NUL)
*** ../vim-7.1.222/src/version.c Sun Jan 13 13:30:34 2008
--- src/version.c Sun Jan 13 13:45:04 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 223,
/**/
--
User: I'm having problems with my text editor.
Help desk: Which editor are you using?
User: I don't know, but it's version VI (pronounced: 6).
Help desk: Oh, then you should upgrade to version VIM (pronounced: 994).
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

73
7.1.224 Normal file
View file

@ -0,0 +1,73 @@
To: vim-dev@vim.org
Subject: Patch 7.1.224
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.224
Problem: When using "vim -F -o file1 file2" only one window is
right-to-left. Same for "-H". (Ben Schmidt)
Solution: use set_option_value() to set 'rightleft'.
Files: src/main.c
*** ../vim-7.1.223/src/main.c Fri Jan 11 20:25:42 2008
--- src/main.c Sun Jan 13 16:12:09 2008
***************
*** 1775,1781 ****
case 'F': /* "-F" start in Farsi mode: rl + fkmap set */
#ifdef FEAT_FKMAP
! curwin->w_p_rl = p_fkmap = TRUE;
#else
mch_errmsg(_(e_nofarsi));
mch_exit(2);
--- 1775,1782 ----
case 'F': /* "-F" start in Farsi mode: rl + fkmap set */
#ifdef FEAT_FKMAP
! p_fkmap = TRUE;
! set_option_value((char_u *)"rl", 1L, NULL, 0);
#else
mch_errmsg(_(e_nofarsi));
mch_exit(2);
***************
*** 1792,1798 ****
case 'H': /* "-H" start in Hebrew mode: rl + hkmap set */
#ifdef FEAT_RIGHTLEFT
! curwin->w_p_rl = p_hkmap = TRUE;
#else
mch_errmsg(_(e_nohebrew));
mch_exit(2);
--- 1793,1800 ----
case 'H': /* "-H" start in Hebrew mode: rl + hkmap set */
#ifdef FEAT_RIGHTLEFT
! p_hkmap = TRUE;
! set_option_value((char_u *)"rl", 1L, NULL, 0);
#else
mch_errmsg(_(e_nohebrew));
mch_exit(2);
*** ../vim-7.1.223/src/version.c Sun Jan 13 13:53:30 2008
--- src/version.c Sun Jan 13 16:15:49 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 224,
/**/
--
LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
ARTHUR: No, that's Saint Ives.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.1.225 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.1.225
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.225
Problem: Using unitialized value when XGetWMNormalHints() fails.
Solution: Check the return value. (Dominique Pelle)
Files: src/os_unix.c
*** ../vim-7.1.224/src/os_unix.c Sun Jan 13 13:53:30 2008
--- src/os_unix.c Sun Jan 13 13:52:53 2008
***************
*** 6145,6153 ****
if (xterm_trace == 1)
{
/* Get the hints just before tracking starts. The font size might
! * have changed recently */
! XGetWMNormalHints(xterm_dpy, x11_window, &xterm_hints, &got_hints);
! if (!(got_hints & PResizeInc)
|| xterm_hints.width_inc <= 1
|| xterm_hints.height_inc <= 1)
{
--- 6145,6153 ----
if (xterm_trace == 1)
{
/* Get the hints just before tracking starts. The font size might
! * have changed recently. */
! if (!XGetWMNormalHints(xterm_dpy, x11_window, &xterm_hints, &got_hints)
! || !(got_hints & PResizeInc)
|| xterm_hints.width_inc <= 1
|| xterm_hints.height_inc <= 1)
{
*** ../vim-7.1.224/src/version.c Sun Jan 13 16:17:02 2008
--- src/version.c Sun Jan 13 16:29:51 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 225,
/**/
--
"When I die, I want a tombstone that says "GAME OVER" - Ton Richters
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

68
7.1.226 Normal file
View file

@ -0,0 +1,68 @@
To: vim-dev@vim.org
Subject: Patch 7.1.226
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.226
Problem: Command line completion doesn't work when a file name contains a
'&' character.
Solution: Accept all characters in a file name, except ones that end a
command or white space.
Files: src/ex_docmd.c
*** ../vim-7.1.225/src/ex_docmd.c Wed Jan 9 20:29:51 2008
--- src/ex_docmd.c Wed Jan 9 20:11:13 2008
***************
*** 3338,3349 ****
}
in_quote = !in_quote;
}
#ifdef SPACE_IN_FILENAME
! else if (!vim_isfilec_or_wc(c)
! && (!(ea.argt & NOSPC) || usefilter))
! #else
! else if (!vim_isfilec_or_wc(c))
#endif
{
while (*p != NUL)
{
--- 3338,3350 ----
}
in_quote = !in_quote;
}
+ /* An argument can contain just about everything, except
+ * characters that end the command and white space. */
+ else if (c == '|' || c == '\n' || c == '"' || (vim_iswhite(c)
#ifdef SPACE_IN_FILENAME
! && (!(ea.argt & NOSPC) || usefilter)
#endif
+ ))
{
while (*p != NUL)
{
*** ../vim-7.1.225/src/version.c Sun Jan 13 16:30:23 2008
--- src/version.c Sun Jan 13 17:10:15 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 226,
/**/
--
[Another hideous roar.]
BEDEVERE: That's it!
ARTHUR: What?
BEDEVERE: It's The Legendary Black Beast of Aaaaarrrrrrggghhh!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

188
7.1.227 Normal file
View file

@ -0,0 +1,188 @@
To: vim-dev@vim.org
Subject: Patch 7.1.227
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.227
Problem: Hang in syntax HL when moving over a ")". (Dominique Pelle)
Solution: Avoid storing a syntax state in the wrong position in the list of
remembered states.
Files: src/syntax.c
*** ../vim-7.1.226/src/syntax.c Sat Jan 12 16:45:25 2008
--- src/syntax.c Sat Jan 12 16:45:44 2008
***************
*** 372,378 ****
static int syn_stack_cleanup __ARGS((void));
static void syn_stack_free_entry __ARGS((buf_T *buf, synstate_T *p));
static synstate_T *syn_stack_find_entry __ARGS((linenr_T lnum));
! static synstate_T *store_current_state __ARGS((synstate_T *sp));
static void load_current_state __ARGS((synstate_T *from));
static void invalidate_current_state __ARGS((void));
static int syn_stack_equal __ARGS((synstate_T *sp));
--- 372,378 ----
static int syn_stack_cleanup __ARGS((void));
static void syn_stack_free_entry __ARGS((buf_T *buf, synstate_T *p));
static synstate_T *syn_stack_find_entry __ARGS((linenr_T lnum));
! static synstate_T *store_current_state __ARGS((void));
static void load_current_state __ARGS((synstate_T *from));
static void invalidate_current_state __ARGS((void));
static int syn_stack_equal __ARGS((synstate_T *sp));
***************
*** 464,470 ****
synstate_T *p;
synstate_T *last_valid = NULL;
synstate_T *last_min_valid = NULL;
! synstate_T *sp, *prev;
linenr_T parsed_lnum;
linenr_T first_stored;
int dist;
--- 464,470 ----
synstate_T *p;
synstate_T *last_valid = NULL;
synstate_T *last_min_valid = NULL;
! synstate_T *sp, *prev = NULL;
linenr_T parsed_lnum;
linenr_T first_stored;
int dist;
***************
*** 502,508 ****
if (!current_state_stored)
{
++current_lnum;
! (void)store_current_state(NULL);
}
/*
--- 502,508 ----
if (!current_state_stored)
{
++current_lnum;
! (void)store_current_state();
}
/*
***************
*** 558,564 ****
dist = 999999;
else
dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
- prev = syn_stack_find_entry(current_lnum);
while (current_lnum < lnum)
{
syn_start_line();
--- 558,563 ----
***************
*** 573,581 ****
* equal to the current state. If so, then validate all saved
* states that depended on a change before the parsed line. */
if (prev == NULL)
sp = syn_buf->b_sst_first;
else
! sp = prev->sst_next;
if (sp != NULL
&& sp->sst_lnum == current_lnum
&& syn_stack_equal(sp))
--- 572,584 ----
* equal to the current state. If so, then validate all saved
* states that depended on a change before the parsed line. */
if (prev == NULL)
+ prev = syn_stack_find_entry(current_lnum - 1);
+ if (prev == NULL)
sp = syn_buf->b_sst_first;
else
! sp = prev;
! while (sp != NULL && sp->sst_lnum < current_lnum)
! sp = sp->sst_next;
if (sp != NULL
&& sp->sst_lnum == current_lnum
&& syn_stack_equal(sp))
***************
*** 601,607 ****
else if (prev == NULL
|| current_lnum == lnum
|| current_lnum >= prev->sst_lnum + dist)
! prev = store_current_state(prev);
}
/* This can take a long time: break when CTRL-C pressed. The current
--- 604,610 ----
else if (prev == NULL
|| current_lnum == lnum
|| current_lnum >= prev->sst_lnum + dist)
! prev = store_current_state();
}
/* This can take a long time: break when CTRL-C pressed. The current
***************
*** 1353,1369 ****
* The current state must be valid for the start of the current_lnum line!
*/
static synstate_T *
! store_current_state(sp)
! synstate_T *sp; /* at or before where state is to be saved or
! NULL */
{
int i;
synstate_T *p;
bufstate_T *bp;
stateitem_T *cur_si;
!
! if (sp == NULL)
! sp = syn_stack_find_entry(current_lnum);
/*
* If the current state contains a start or end pattern that continues
--- 1356,1368 ----
* The current state must be valid for the start of the current_lnum line!
*/
static synstate_T *
! store_current_state()
{
int i;
synstate_T *p;
bufstate_T *bp;
stateitem_T *cur_si;
! synstate_T *sp = syn_stack_find_entry(current_lnum);
/*
* If the current state contains a start or end pattern that continues
***************
*** 1667,1673 ****
* Store the current state in b_sst_array[] for later use.
*/
++current_lnum;
! (void)store_current_state(NULL);
}
}
--- 1666,1672 ----
* Store the current state in b_sst_array[] for later use.
*/
++current_lnum;
! (void)store_current_state();
}
}
*** ../vim-7.1.226/src/version.c Sun Jan 13 17:11:25 2008
--- src/version.c Sun Jan 13 17:37:10 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 227,
/**/
--
Dreams are free, but there's a small charge for alterations.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

51
7.1.228 Normal file
View file

@ -0,0 +1,51 @@
To: vim-dev@vim.org
Subject: Patch 7.1.228
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.228
Problem: When 'foldmethod' is "indent" and a fold is created with ">>" it
can't be closed with "zc". (Daniel Shahaf)
Solution: Reset the "small" flag of a fold when adding a line to it.
Files: src/fold.c
*** ../vim-7.1.227/src/fold.c Sun Oct 14 15:32:10 2007
--- src/fold.c Sun Jan 13 21:26:48 2008
***************
*** 2676,2681 ****
--- 2676,2682 ----
if (fp->fd_len < flp->lnum - fp->fd_top)
{
fp->fd_len = flp->lnum - fp->fd_top;
+ fp->fd_small = MAYBE;
fold_changed = TRUE;
}
*** ../vim-7.1.227/src/version.c Sun Jan 13 17:39:29 2008
--- src/version.c Sun Jan 13 21:56:53 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 228,
/**/
--
VOICE OVER: As the horrendous Black Beast lunged forward, escape for Arthur
and his knights seemed hopeless, when, suddenly ... the animator
suffered a fatal heart attack.
ANIMATOR: Aaaaagh!
VOICE OVER: The cartoon peril was no more ... The Quest for Holy Grail could
continue.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

55
7.1.229 Normal file
View file

@ -0,0 +1,55 @@
To: vim-dev@vim.org
Subject: Patch 7.1.229
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.229
Problem: A fold is closed when it shouldn't when 'foldmethod' is "indent"
and backspacing a non-white character so that the indent increases.
Solution: Keep the fold open after backspacing a character.
Files: src/edit.c
*** ../vim-7.1.228/src/edit.c Sat Jan 12 18:13:05 2008
--- src/edit.c Mon Jan 14 20:06:43 2008
***************
*** 8618,8623 ****
--- 8619,8632 ----
if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == 0)
dollar_vcol = curwin->w_virtcol;
+ #ifdef FEAT_FOLDING
+ /* When deleting a char the cursor line must never be in a closed fold.
+ * E.g., when 'foldmethod' is indent and deleting the first non-white
+ * char before a Tab. */
+ if (did_backspace)
+ foldOpenCursor();
+ #endif
+
return did_backspace;
}
*** ../vim-7.1.228/src/version.c Sun Jan 13 21:57:25 2008
--- src/version.c Mon Jan 14 20:08:35 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 229,
/**/
--
ROBIN: (warily) And if you get a question wrong?
ARTHUR: You are cast into the Gorge of Eternal Peril.
ROBIN: Oh ... wacho!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

64
7.1.230 Normal file
View file

@ -0,0 +1,64 @@
To: vim-dev@vim.org
Subject: Patch 7.1.230
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.230
Problem: Memory leak when executing SourceCmd autocommands.
Solution: Free the memory. (Dominique Pelle)
Files: src/ex_cmds2.c
*** ../vim-7.1.229/src/ex_cmds2.c Sun Jan 6 20:05:36 2008
--- src/ex_cmds2.c Tue Jan 15 20:41:28 2008
***************
*** 2889,2899 ****
if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
&& apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
FALSE, curbuf))
# ifdef FEAT_EVAL
! return aborting() ? FAIL : OK;
# else
! return OK;
# endif
/* Apply SourcePre autocommands, they may get the file. */
apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
--- 2889,2902 ----
if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
&& apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
FALSE, curbuf))
+ {
# ifdef FEAT_EVAL
! retval = aborting() ? FAIL : OK;
# else
! retval = OK;
# endif
+ goto theend;
+ }
/* Apply SourcePre autocommands, they may get the file. */
apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
*** ../vim-7.1.229/src/version.c Mon Jan 14 20:11:37 2008
--- src/version.c Tue Jan 15 22:15:03 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 230,
/**/
--
Citizens are not allowed to attend a movie house or theater nor ride in a
public streetcar within at least four hours after eating garlic.
[real standing law in Indiana, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

291
7.1.231 Normal file
View file

@ -0,0 +1,291 @@
To: vim-dev@vim.org
Subject: Patch 7.1.231
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.231
Problem: When shifting lines the change is acted upon multiple times.
Solution: Don't have shift_line() call changed_bytes.
Files: src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro
*** ../vim-7.1.230/src/edit.c Mon Jan 14 20:11:37 2008
--- src/edit.c Mon Jan 14 20:06:43 2008
***************
*** 1662,1672 ****
* if round is TRUE, round the indent to 'shiftwidth' (only with _INC and _Dec).
*/
void
! change_indent(type, amount, round, replaced)
int type;
int amount;
int round;
int replaced; /* replaced character, put on replace stack */
{
int vcol;
int last_vcol;
--- 1662,1673 ----
* if round is TRUE, round the indent to 'shiftwidth' (only with _INC and _Dec).
*/
void
! change_indent(type, amount, round, replaced, call_changed_bytes)
int type;
int amount;
int round;
int replaced; /* replaced character, put on replace stack */
+ int call_changed_bytes; /* call changed_bytes() */
{
int vcol;
int last_vcol;
***************
*** 1723,1729 ****
* Set the new indent. The cursor will be put on the first non-blank.
*/
if (type == INDENT_SET)
! (void)set_indent(amount, SIN_CHANGED);
else
{
#ifdef FEAT_VREPLACE
--- 1724,1730 ----
* Set the new indent. The cursor will be put on the first non-blank.
*/
if (type == INDENT_SET)
! (void)set_indent(amount, call_changed_bytes ? SIN_CHANGED : 0);
else
{
#ifdef FEAT_VREPLACE
***************
*** 1733,1739 ****
if (State & VREPLACE_FLAG)
State = INSERT;
#endif
! shift_line(type == INDENT_DEC, round, 1);
#ifdef FEAT_VREPLACE
State = save_State;
#endif
--- 1734,1740 ----
if (State & VREPLACE_FLAG)
State = INSERT;
#endif
! shift_line(type == INDENT_DEC, round, 1, call_changed_bytes);
#ifdef FEAT_VREPLACE
State = save_State;
#endif
***************
*** 5921,5927 ****
{
#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
! change_indent(INDENT_SET, second_indent, FALSE, NUL);
else
#endif
(void)set_indent(second_indent, SIN_CHANGED);
--- 5922,5928 ----
{
#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);
***************
*** 7227,7233 ****
fixthisline(get_the_indent)
int (*get_the_indent) __ARGS((void));
{
! change_indent(INDENT_SET, get_the_indent(), FALSE, 0);
if (linewhite(curwin->w_cursor.lnum))
did_ai = TRUE; /* delete the indent if the line stays empty */
}
--- 7228,7234 ----
fixthisline(get_the_indent)
int (*get_the_indent) __ARGS((void));
{
! change_indent(INDENT_SET, get_the_indent(), FALSE, 0, TRUE);
if (linewhite(curwin->w_cursor.lnum))
did_ai = TRUE; /* delete the indent if the line stays empty */
}
***************
*** 8170,8179 ****
replace_pop_ins();
if (lastc == '^')
old_indent = get_indent(); /* remember curr. indent */
! change_indent(INDENT_SET, 0, TRUE, 0);
}
else
! change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0);
if (did_ai && *skipwhite(ml_get_curline()) != NUL)
did_ai = FALSE;
--- 8171,8180 ----
replace_pop_ins();
if (lastc == '^')
old_indent = get_indent(); /* remember curr. indent */
! change_indent(INDENT_SET, 0, TRUE, 0, TRUE);
}
else
! change_indent(c == Ctrl_D ? INDENT_DEC : INDENT_INC, 0, TRUE, 0, TRUE);
if (did_ai && *skipwhite(ml_get_curline()) != NUL)
did_ai = FALSE;
***************
*** 9633,9639 ****
curwin->w_cursor = old_pos;
#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
! change_indent(INDENT_SET, i, FALSE, NUL);
else
#endif
(void)set_indent(i, SIN_CHANGED);
--- 9634,9640 ----
curwin->w_cursor = old_pos;
#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
! change_indent(INDENT_SET, i, FALSE, NUL, TRUE);
else
#endif
(void)set_indent(i, SIN_CHANGED);
***************
*** 9662,9668 ****
curwin->w_cursor = old_pos;
}
if (temp)
! shift_line(TRUE, FALSE, 1);
}
}
--- 9663,9669 ----
curwin->w_cursor = old_pos;
}
if (temp)
! shift_line(TRUE, FALSE, 1, TRUE);
}
}
*** ../vim-7.1.230/src/ops.c Thu Jan 3 16:31:17 2008
--- src/ops.c Sun Jan 13 21:52:18 2008
***************
*** 258,264 ****
if (first_char != '#' || !preprocs_left())
#endif
{
! shift_line(oap->op_type == OP_LSHIFT, p_sr, amount);
}
++curwin->w_cursor.lnum;
}
--- 258,264 ----
if (first_char != '#' || !preprocs_left())
#endif
{
! shift_line(oap->op_type == OP_LSHIFT, p_sr, amount, FALSE);
}
++curwin->w_cursor.lnum;
}
***************
*** 321,330 ****
* leaves cursor on first blank in the line
*/
void
! shift_line(left, round, amount)
int left;
int round;
int amount;
{
int count;
int i, j;
--- 321,331 ----
* leaves cursor on first blank in the line
*/
void
! shift_line(left, round, amount, call_changed_bytes)
int left;
int round;
int amount;
+ int call_changed_bytes; /* call changed_bytes() */
{
int count;
int i, j;
***************
*** 363,372 ****
/* Set new indent */
#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
! change_indent(INDENT_SET, count, FALSE, NUL);
else
#endif
! (void)set_indent(count, SIN_CHANGED);
}
#if defined(FEAT_VISUALEXTRA) || defined(PROTO)
--- 364,373 ----
/* Set new indent */
#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
! change_indent(INDENT_SET, count, FALSE, NUL, call_changed_bytes);
else
#endif
! (void)set_indent(count, call_changed_bytes ? SIN_CHANGED : 0);
}
#if defined(FEAT_VISUALEXTRA) || defined(PROTO)
*** ../vim-7.1.230/src/proto/edit.pro Wed Jan 2 17:48:24 2008
--- src/proto/edit.pro Sun Jan 13 21:52:27 2008
***************
*** 3,9 ****
void edit_putchar __ARGS((int c, int highlight));
void edit_unputchar __ARGS((void));
void display_dollar __ARGS((colnr_T col));
! void change_indent __ARGS((int type, int amount, int round, int replaced));
void truncate_spaces __ARGS((char_u *line));
void backspace_until_column __ARGS((int col));
int vim_is_ctrl_x_key __ARGS((int c));
--- 3,9 ----
void edit_putchar __ARGS((int c, int highlight));
void edit_unputchar __ARGS((void));
void display_dollar __ARGS((colnr_T col));
! void change_indent __ARGS((int type, int amount, int round, int replaced, int call_changed_bytes));
void truncate_spaces __ARGS((char_u *line));
void backspace_until_column __ARGS((int col));
int vim_is_ctrl_x_key __ARGS((int c));
*** ../vim-7.1.230/src/proto/ops.pro Sun May 6 13:56:32 2007
--- src/proto/ops.pro Sun Jan 13 21:52:30 2008
***************
*** 4,10 ****
int get_op_char __ARGS((int optype));
int get_extra_op_char __ARGS((int optype));
void op_shift __ARGS((oparg_T *oap, int curs_top, int amount));
! void shift_line __ARGS((int left, int round, int amount));
void op_reindent __ARGS((oparg_T *oap, int (*how)(void)));
int get_expr_register __ARGS((void));
void set_expr_line __ARGS((char_u *new_line));
--- 4,10 ----
int get_op_char __ARGS((int optype));
int get_extra_op_char __ARGS((int optype));
void op_shift __ARGS((oparg_T *oap, int curs_top, int amount));
! void shift_line __ARGS((int left, int round, int amount, int call_changed_bytes));
void op_reindent __ARGS((oparg_T *oap, int (*how)(void)));
int get_expr_register __ARGS((void));
void set_expr_line __ARGS((char_u *new_line));
*** ../vim-7.1.230/src/version.c Tue Jan 15 22:16:36 2008
--- src/version.c Wed Jan 16 19:58:25 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 231,
/**/
--
Snoring is prohibited unless all bedroom windows are closed and securely
locked.
[real standing law in Massachusetts, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

70
7.1.232 Normal file
View file

@ -0,0 +1,70 @@
To: vim-dev@vim.org
Subject: Patch 7.1.232
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.232 (after 7.1.207 and 7.1.211)
Problem: Compiler warnings with MSVC.
Solution: Add type casts. (Mike Williams)
Files: src/ex_cmds2.c, src/netbeans.c
*** ../vim-7.1.231/src/ex_cmds2.c Tue Jan 15 22:16:36 2008
--- src/ex_cmds2.c Tue Jan 15 20:41:28 2008
***************
*** 916,922 ****
QueryPerformanceCounter(tm);
QueryPerformanceFrequency(&fr);
! tm->QuadPart += (double)msec / 1000.0 * (double)fr.QuadPart;
# else
long usec;
--- 916,922 ----
QueryPerformanceCounter(tm);
QueryPerformanceFrequency(&fr);
! tm->QuadPart += (LONGLONG)((double)msec / 1000.0 * (double)fr.QuadPart);
# else
long usec;
*** ../vim-7.1.231/src/netbeans.c Sat Jan 5 18:06:33 2008
--- src/netbeans.c Mon Jan 14 21:11:02 2008
***************
*** 1217,1223 ****
oldtext = ml_get(lnum);
oldlen = STRLEN(oldtext);
! if (first >= oldlen || oldlen == 0) /* just in case */
return;
if (lastbyte >= oldlen)
lastbyte = oldlen - 1;
--- 1217,1223 ----
oldtext = ml_get(lnum);
oldlen = STRLEN(oldtext);
! if (first >= (colnr_T)oldlen || oldlen == 0) /* just in case */
return;
if (lastbyte >= oldlen)
lastbyte = oldlen - 1;
*** ../vim-7.1.231/src/version.c Wed Jan 16 20:01:14 2008
--- src/version.c Fri Jan 18 11:38:39 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 232,
/**/
--
Why is "abbreviation" such a long word?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

109
7.1.233 Normal file
View file

@ -0,0 +1,109 @@
To: vim-dev@vim.org
Subject: Patch 7.1.233
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.233
Problem: Crash when doing Insert mode completion for a user defined
command. (Yegappan Lakshmanan)
Solution: Don't use the non-existing command line.
Files: src/ex_getln.c
*** ../vim-7.1.232/src/ex_getln.c Fri Jan 4 15:16:57 2008
--- src/ex_getln.c Fri Jan 18 13:07:11 2008
***************
*** 4655,4661 ****
static void * call_user_expand_func __ARGS((void *(*user_expand_func) __ARGS((char_u *, int, char_u **, int)), expand_T *xp, int *num_file, char_u ***file));
/*
! * call "user_expand_func()" to invoke a user defined VimL function and return
* the result (either a string or a List).
*/
static void *
--- 4655,4661 ----
static void * call_user_expand_func __ARGS((void *(*user_expand_func) __ARGS((char_u *, int, char_u **, int)), expand_T *xp, int *num_file, char_u ***file));
/*
! * Call "user_expand_func()" to invoke a user defined VimL function and return
* the result (either a string or a List).
*/
static void *
***************
*** 4677,4687 ****
*num_file = 0;
*file = NULL;
! keep = ccline.cmdbuff[ccline.cmdlen];
! ccline.cmdbuff[ccline.cmdlen] = 0;
! sprintf((char *)num, "%d", ccline.cmdpos);
args[0] = xp->xp_pattern;
- args[1] = ccline.cmdbuff;
args[2] = num;
/* Save the cmdline, we don't know what the function may do. */
--- 4677,4698 ----
*num_file = 0;
*file = NULL;
! if (ccline.cmdbuff == NULL)
! {
! /* Completion from Insert mode, pass fake arguments. */
! keep = 0;
! sprintf((char *)num, "%d", STRLEN(xp->xp_pattern));
! args[1] = xp->xp_pattern;
! }
! else
! {
! /* Completion on the command line, pass real arguments. */
! keep = ccline.cmdbuff[ccline.cmdlen];
! ccline.cmdbuff[ccline.cmdlen] = 0;
! sprintf((char *)num, "%d", ccline.cmdpos);
! args[1] = ccline.cmdbuff;
! }
args[0] = xp->xp_pattern;
args[2] = num;
/* Save the cmdline, we don't know what the function may do. */
***************
*** 4694,4701 ****
ccline = save_ccline;
current_SID = save_current_SID;
!
! ccline.cmdbuff[ccline.cmdlen] = keep;
return ret;
}
--- 4705,4712 ----
ccline = save_ccline;
current_SID = save_current_SID;
! if (ccline.cmdbuff != NULL)
! ccline.cmdbuff[ccline.cmdlen] = keep;
return ret;
}
*** ../vim-7.1.232/src/version.c Fri Jan 18 11:40:02 2008
--- src/version.c Fri Jan 18 13:01:05 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 233,
/**/
--
"I love deadlines. I especially like the whooshing sound they
make as they go flying by."
-- Douglas Adams
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

210
7.1.234 Normal file
View file

@ -0,0 +1,210 @@
To: vim-dev@vim.org
Subject: Patch 7.1.234
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.234
Problem: When diff'ing three files the third one isn't displayed correctly.
(Gary Johnson)
Solution: Compute the size of diff blocks correctly when merging blocks.
Compute filler lines correctly when scrolling.
Files: src/diff.c
*** ../vim-7.1.233/src/diff.c Fri Oct 19 18:57:33 2007
--- src/diff.c Fri Jan 18 17:32:31 2008
***************
*** 1299,1305 ****
}
else
/* second overlap of new block with existing block */
! dp->df_count[idx_new] += count_new - count_orig;
/* Adjust the size of the block to include all the lines to the
* end of the existing block or the new diff, whatever ends last. */
--- 1299,1307 ----
}
else
/* second overlap of new block with existing block */
! dp->df_count[idx_new] += count_new - count_orig
! + dpl->df_lnum[idx_orig] + dpl->df_count[idx_orig]
! - (dp->df_lnum[idx_orig] + dp->df_count[idx_orig]);
/* Adjust the size of the block to include all the lines to the
* end of the existing block or the new diff, whatever ends last. */
***************
*** 1628,1641 ****
win_T *fromwin;
win_T *towin;
{
! buf_T *buf = fromwin->w_buffer;
linenr_T lnum = fromwin->w_topline;
! int idx;
diff_T *dp;
int i;
! idx = diff_buf_idx(buf);
! if (idx == DB_COUNT)
return; /* safety check */
if (curtab->tp_diff_invalid)
--- 1630,1645 ----
win_T *fromwin;
win_T *towin;
{
! buf_T *frombuf = fromwin->w_buffer;
linenr_T lnum = fromwin->w_topline;
! int fromidx;
! int toidx;
diff_T *dp;
+ int max_count;
int i;
! fromidx = diff_buf_idx(frombuf);
! if (fromidx == DB_COUNT)
return; /* safety check */
if (curtab->tp_diff_invalid)
***************
*** 1645,1686 ****
/* search for a change that includes "lnum" in the list of diffblocks. */
for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next)
! if (lnum <= dp->df_lnum[idx] + dp->df_count[idx])
break;
if (dp == NULL)
{
/* After last change, compute topline relative to end of file; no
* filler lines. */
towin->w_topline = towin->w_buffer->b_ml.ml_line_count
! - (buf->b_ml.ml_line_count - lnum);
}
else
{
/* Find index for "towin". */
! i = diff_buf_idx(towin->w_buffer);
! if (i == DB_COUNT)
return; /* safety check */
! towin->w_topline = lnum + (dp->df_lnum[i] - dp->df_lnum[idx]);
! if (lnum >= dp->df_lnum[idx])
{
! /* Inside a change: compute filler lines. */
! if (dp->df_count[i] == dp->df_count[idx])
towin->w_topfill = fromwin->w_topfill;
! else if (dp->df_count[i] > dp->df_count[idx])
{
! if (lnum == dp->df_lnum[idx] + dp->df_count[idx])
! towin->w_topline = dp->df_lnum[i] + dp->df_count[i]
! - fromwin->w_topfill;
}
! else
{
! if (towin->w_topline >= dp->df_lnum[i] + dp->df_count[i])
{
! if (diff_flags & DIFF_FILLER)
! towin->w_topfill = dp->df_lnum[idx]
! + dp->df_count[idx] - lnum;
! towin->w_topline = dp->df_lnum[i] + dp->df_count[i];
}
}
}
--- 1649,1720 ----
/* search for a change that includes "lnum" in the list of diffblocks. */
for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next)
! if (lnum <= dp->df_lnum[fromidx] + dp->df_count[fromidx])
break;
if (dp == NULL)
{
/* After last change, compute topline relative to end of file; no
* filler lines. */
towin->w_topline = towin->w_buffer->b_ml.ml_line_count
! - (frombuf->b_ml.ml_line_count - lnum);
}
else
{
/* Find index for "towin". */
! toidx = diff_buf_idx(towin->w_buffer);
! if (toidx == DB_COUNT)
return; /* safety check */
! towin->w_topline = lnum + (dp->df_lnum[toidx] - dp->df_lnum[fromidx]);
! if (lnum >= dp->df_lnum[fromidx])
{
! /* Inside a change: compute filler lines. With three or more
! * buffers we need to know the largest count. */
! max_count = 0;
! for (i = 0; i < DB_COUNT; ++i)
! if (curtab->tp_diffbuf[i] != NULL
! && max_count < dp->df_count[i])
! max_count = dp->df_count[i];
!
! if (dp->df_count[toidx] == dp->df_count[fromidx])
! {
! /* same number of lines: use same filler count */
towin->w_topfill = fromwin->w_topfill;
! }
! else if (dp->df_count[toidx] > dp->df_count[fromidx])
{
! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx])
! {
! /* more lines in towin and fromwin doesn't show diff
! * lines, only filler lines */
! if (max_count - fromwin->w_topfill >= dp->df_count[toidx])
! {
! /* towin also only shows filler lines */
! towin->w_topline = dp->df_lnum[toidx]
! + dp->df_count[toidx];
! towin->w_topfill = fromwin->w_topfill;
! }
! else
! /* towin still has some diff lines to show */
! towin->w_topline = dp->df_lnum[toidx]
! + max_count - fromwin->w_topfill;
! }
}
! else if (towin->w_topline >= dp->df_lnum[toidx]
! + dp->df_count[toidx])
{
! /* less lines in towin and no diff lines to show: compute
! * filler lines */
! towin->w_topline = dp->df_lnum[toidx] + dp->df_count[toidx];
! if (diff_flags & DIFF_FILLER)
{
! if (lnum == dp->df_lnum[fromidx] + dp->df_count[fromidx])
! /* fromwin is also out of diff lines */
! towin->w_topfill = fromwin->w_topfill;
! else
! /* fromwin has some diff lines */
! towin->w_topfill = dp->df_lnum[fromidx]
! + max_count - lnum;
}
}
}
*** ../vim-7.1.233/src/version.c Fri Jan 18 13:15:32 2008
--- src/version.c Fri Jan 18 17:37:32 2008
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 234,
/**/
--
ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY
KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T
HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR
LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER),
BROTHER MAYNARD
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

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