vim: Update to 8.0

This is a major update to the latest stable version of vim.

* Introduce patchlevel.
* Move dowload URL to github, which allows us to get a source tarball,
  including the whole patchset until the given patchlevel.
* Drop old patchset for version 7.3.
* Drop script for getting available patches. (Not needed anymore.)
* Build dynamic interpreter for python3 now.
* Disable support for SElinux.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Stefan Schantl 2017-10-10 14:18:53 +02:00 committed by Michael Tremer
parent 3a94ed2ac1
commit 372067f993
550 changed files with 21 additions and 91773 deletions

View File

@ -1,14 +0,0 @@
#!/bin/bash
last=${1}
vim_version="7.3"
vim_url="ftp://ftp.vim.org/pub/vim/patches/${vim_version}"
filenames="${vim_version}.%s.patch0"
for patch in $(seq 1 ${last}); do
patch=$(printf "${vim_version}.%03d" "${patch}")
wget -O "vim-${patch}.patch0" "${vim_url}/${patch}"
done

View File

@ -1,55 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.001
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.001
Problem: When editing "src/main.c" and 'path' set to "./proto",
":find e<C-D" shows ./proto/eval.pro instead of eval.pro.
Solution: Check for path separator when comparing names. (Nazri Ramliy)
Files: src/misc1.c
*** ../vim-7.3.000/src/misc1.c 2010-08-15 21:57:27.000000000 +0200
--- src/misc1.c 2010-08-16 20:43:25.000000000 +0200
***************
*** 9317,9323 ****
continue; /* it's different when it's shorter */
rival = other_paths[j] + other_path_len - candidate_len;
! if (fnamecmp(maybe_unique, rival) == 0)
return FALSE; /* match */
}
--- 9317,9324 ----
continue; /* it's different when it's shorter */
rival = other_paths[j] + other_path_len - candidate_len;
! if (fnamecmp(maybe_unique, rival) == 0
! && (rival == other_paths[j] || vim_ispathsep(*(rival - 1))))
return FALSE; /* match */
}
*** ../vim-7.3.000/src/version.c 2010-08-15 21:57:25.000000000 +0200
--- src/version.c 2010-08-16 20:53:09.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 1,
/**/
--
From "know your smileys":
(:-# Said something he shouldn't have
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,55 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.002
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.002
Problem: ":find" completion doesn't work when halfway an environment
variable. (Dominique Pelle)
Solution: Only use in-path completion when expanding file names. (Nazri
Ramliy)
Files: src/ex_docmd.c
*** ../vim-7.3.001/src/ex_docmd.c 2010-08-15 21:57:27.000000000 +0200
--- src/ex_docmd.c 2010-08-16 20:51:22.000000000 +0200
***************
*** 3465,3471 ****
case CMD_find:
case CMD_sfind:
case CMD_tabfind:
! xp->xp_context = EXPAND_FILES_IN_PATH;
break;
case CMD_cd:
case CMD_chdir:
--- 3465,3472 ----
case CMD_find:
case CMD_sfind:
case CMD_tabfind:
! if (xp->xp_context == EXPAND_FILES)
! xp->xp_context = EXPAND_FILES_IN_PATH;
break;
case CMD_cd:
case CMD_chdir:
*** ../vim-7.3.001/src/version.c 2010-08-16 21:46:12.000000000 +0200
--- src/version.c 2010-08-16 22:33:13.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 2,
/**/
--
Warning label on a superhero Halloween costume:
"Caution: Cape does not enable user to fly."
/// 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 ///

View File

@ -1,45 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.003
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.003
Problem: Crash with specific BufWritePost autocmd. (Peter Odding)
Solution: Don't free the quickfix title twice. (Lech Lorens)
Files: src/quickfix.c
*** ../vim-7.3.002/src/quickfix.c 2010-08-15 21:57:26.000000000 +0200
--- src/quickfix.c 2010-08-16 21:15:44.000000000 +0200
***************
*** 2125,2130 ****
--- 2125,2131 ----
--qi->qf_lists[idx].qf_count;
}
vim_free(qi->qf_lists[idx].qf_title);
+ qi->qf_lists[idx].qf_title = NULL;
}
/*
*** ../vim-7.3.002/src/version.c 2010-08-16 22:33:55.000000000 +0200
--- src/version.c 2010-08-17 20:23:05.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 3,
/**/
--
From "know your smileys":
:-X My lips are sealed
/// 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 ///

View File

@ -1,44 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.004
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.004
Problem: Crash when using very long regexp. (Peter Odding)
Solution: Reset reg_toolong. (Carlo Teubner)
Files: src/regexp.c
*** ../vim-7.3.003/src/regexp.c 2010-08-15 21:57:29.000000000 +0200
--- src/regexp.c 2010-09-14 10:51:22.000000000 +0200
***************
*** 3538,3543 ****
--- 3538,3544 ----
regline = line;
reglnum = 0;
+ reg_toolong = FALSE;
/* Simplest case: Anchored match need be tried only once. */
if (prog->reganch)
*** ../vim-7.3.003/src/version.c 2010-08-17 20:23:18.000000000 +0200
--- src/version.c 2010-09-14 10:52:09.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 4,
/**/
--
I have a watch cat! Just break in and she'll watch.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,96 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.005
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.005
Problem: Crash when using undotree(). (Christian Brabandt)
Solution: Increase the list reference count. Add a test for undotree()
(Lech Lorens)
Files: src/eval.c, src/testdir/Makefile, src/testdir/test61.in
*** ../vim-7.3.004/src/eval.c 2010-08-15 21:57:26.000000000 +0200
--- src/eval.c 2010-09-14 12:43:04.000000000 +0200
***************
*** 7075,7081 ****
}
/*
! * Add a list entry to dictionary "d".
* Returns FAIL when out of memory and when key already exists.
*/
int
--- 7075,7081 ----
}
/*
! * Add a list entry to dictionary "d".
* Returns FAIL when out of memory and when key already exists.
*/
int
***************
*** 7097,7102 ****
--- 7097,7103 ----
dictitem_free(item);
return FAIL;
}
+ ++list->lv_refcount;
return OK;
}
*** ../vim-7.3.004/src/testdir/Makefile 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/Makefile 2010-09-14 12:38:56.000000000 +0200
***************
*** 44,50 ****
$(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
clean:
! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.pid* viminfo
test1.out: test1.in
-rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
--- 44,50 ----
$(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
clean:
! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.* viminfo
test1.out: test1.in
-rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
*** ../vim-7.3.004/src/testdir/test61.in 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test61.in 2010-09-14 12:38:56.000000000 +0200
***************
*** 4,9 ****
--- 4,13 ----
Also tests :earlier and :later.
STARTTEST
+ :echo undotree().entries
+ ENDTEST
+
+ STARTTEST
:" Delete three characters and undo
Gx:set ul=100
x:set ul=100
*** ../vim-7.3.004/src/version.c 2010-09-14 10:55:24.000000000 +0200
--- src/version.c 2010-09-14 12:39:59.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 5,
/**/
--
I'm writing a book. I've got the page numbers done.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,117 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.006
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.006
Problem: Can't build some multi-byte code with C89.
Solution: Move code to after declarations. (Joachim Schmitz)
Files: src/mbyte.c, src/spell.c
*** ../vim-7.3.005/src/mbyte.c 2010-08-15 21:57:28.000000000 +0200
--- src/mbyte.c 2010-09-18 13:32:40.000000000 +0200
***************
*** 5167,5182 ****
void
xim_set_preedit()
{
- if (xic == NULL)
- return;
-
- xim_set_focus(TRUE);
-
XVaNestedList attr_list;
XRectangle spot_area;
XPoint over_spot;
int line_space;
if (!xim_has_focus)
{
/* hide XIM cursor */
--- 5167,5182 ----
void
xim_set_preedit()
{
XVaNestedList attr_list;
XRectangle spot_area;
XPoint over_spot;
int line_space;
+ if (xic == NULL)
+ return;
+
+ xim_set_focus(TRUE);
+
if (!xim_has_focus)
{
/* hide XIM cursor */
***************
*** 5554,5565 ****
void
xim_set_status_area()
{
- if (xic == NULL)
- return;
-
XVaNestedList preedit_list = 0, status_list = 0, list = 0;
XRectangle pre_area, status_area;
if (input_style & XIMStatusArea)
{
if (input_style & XIMPreeditArea)
--- 5554,5565 ----
void
xim_set_status_area()
{
XVaNestedList preedit_list = 0, status_list = 0, list = 0;
XRectangle pre_area, status_area;
+ if (xic == NULL)
+ return;
+
if (input_style & XIMStatusArea)
{
if (input_style & XIMPreeditArea)
*** ../vim-7.3.005/src/spell.c 2010-08-15 21:57:32.000000000 +0200
--- src/spell.c 2010-09-18 13:34:11.000000000 +0200
***************
*** 4679,4685 ****
buf_T *buf;
char_u fname[MAXPATHL];
! /* Go through all buffers and handle 'spelllang'. */ //<VN>
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
ga_clear(&buf->b_s.b_langp);
--- 4679,4685 ----
buf_T *buf;
char_u fname[MAXPATHL];
! /* Go through all buffers and handle 'spelllang'. <VN> */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
ga_clear(&buf->b_s.b_langp);
*** ../vim-7.3.005/src/version.c 2010-09-14 12:47:30.000000000 +0200
--- src/version.c 2010-09-18 13:34:23.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 6,
/**/
--
hundred-and-one symptoms of being an internet addict:
163. You go outside for the fresh air (at -30 degrees) but open the
window first to hear new mail arrive.
/// 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 ///

View File

@ -1,187 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.007
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.007
Problem: Python code defines global "buffer". Re-implements a grow-array.
Solution: Use a grow-array instead of coding the same functionality. Handle
out-of-memory situation properly.
Files: src/if_py_both.h
*** ../vim-7.3.006/src/if_py_both.h 2010-08-15 21:57:27.000000000 +0200
--- src/if_py_both.h 2010-09-21 16:00:54.000000000 +0200
***************
*** 34,39 ****
--- 34,40 ----
static PyObject *OutputWrite(PyObject *, PyObject *);
static PyObject *OutputWritelines(PyObject *, PyObject *);
+ /* Function to write a line, points to either msg() or emsg(). */
typedef void (*writefn)(char_u *);
static void writer(writefn fn, char_u *str, PyInt n);
***************
*** 122,173 ****
return Py_None;
}
! static char_u *buffer = NULL;
! static PyInt buffer_len = 0;
! static PyInt buffer_size = 0;
!
static writefn old_fn = NULL;
static void
- buffer_ensure(PyInt n)
- {
- PyInt new_size;
- char_u *new_buffer;
-
- if (n < buffer_size)
- return;
-
- new_size = buffer_size;
- while (new_size < n)
- new_size += 80;
-
- if (new_size != buffer_size)
- {
- new_buffer = alloc((unsigned)new_size);
- if (new_buffer == NULL)
- return;
-
- if (buffer)
- {
- memcpy(new_buffer, buffer, buffer_len);
- vim_free(buffer);
- }
-
- buffer = new_buffer;
- buffer_size = new_size;
- }
- }
-
- static void
PythonIO_Flush(void)
{
! if (old_fn && buffer_len)
{
! buffer[buffer_len] = 0;
! old_fn(buffer);
}
!
! buffer_len = 0;
}
static void
--- 123,141 ----
return Py_None;
}
! /* Buffer IO, we write one whole line at a time. */
! static garray_T io_ga = {0, 0, 1, 80, NULL};
static writefn old_fn = NULL;
static void
PythonIO_Flush(void)
{
! if (old_fn != NULL && io_ga.ga_len > 0)
{
! ((char_u *)io_ga.ga_data)[io_ga.ga_len] = NUL;
! old_fn((char_u *)io_ga.ga_data);
}
! io_ga.ga_len = 0;
}
static void
***************
*** 175,204 ****
{
char_u *ptr;
! if (fn != old_fn && old_fn != NULL)
PythonIO_Flush();
-
old_fn = fn;
while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
{
PyInt len = ptr - str;
! buffer_ensure(buffer_len + len + 1);
! memcpy(buffer + buffer_len, str, len);
! buffer_len += len;
! buffer[buffer_len] = 0;
! fn(buffer);
str = ptr + 1;
n -= len + 1;
! buffer_len = 0;
}
! /* Put the remaining text into the buffer for later printing */
! buffer_ensure(buffer_len + n + 1);
! memcpy(buffer + buffer_len, str, n);
! buffer_len += n;
}
/***************/
--- 143,176 ----
{
char_u *ptr;
! /* Flush when switching output function. */
! if (fn != old_fn)
PythonIO_Flush();
old_fn = fn;
+ /* Write each NL separated line. Text after the last NL is kept for
+ * writing later. */
while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
{
PyInt len = ptr - str;
! if (ga_grow(&io_ga, len + 1) == FAIL)
! break;
! mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
! ((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL;
! fn((char_u *)io_ga.ga_data);
str = ptr + 1;
n -= len + 1;
! io_ga.ga_len = 0;
}
! /* Put the remaining text into io_ga for later printing. */
! if (n > 0 && ga_grow(&io_ga, n + 1) == OK)
! {
! mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
! io_ga.ga_len += n;
! }
}
/***************/
*** ../vim-7.3.006/src/version.c 2010-09-18 13:36:41.000000000 +0200
--- src/version.c 2010-09-21 16:49:13.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 7,
/**/
--
hundred-and-one symptoms of being an internet addict:
180. You maintain more than six e-mail addresses.
/// 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 ///

View File

@ -1,439 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.008
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.008
Problem: 'cursorbind' is kept in places where 'scrollbind' is reset.
Solution: Reset 'cursorbind'.
Files: src/buffer.c, src/diff.c, src/ex_cmds.c, src/ex_cmds2.c,
src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, src/macros.h,
src/quickfix.c, src/search.c, src/tag.c, src/window.c
*** ../vim-7.3.007/src/buffer.c 2010-08-15 21:57:32.000000000 +0200
--- src/buffer.c 2010-09-21 16:54:19.000000000 +0200
***************
*** 1288,1296 ****
/* Go to the other buffer. */
set_curbuf(buf, action);
! #if defined(FEAT_LISTCMDS) && defined(FEAT_SCROLLBIND)
if (action == DOBUF_SPLIT)
! curwin->w_p_scb = FALSE; /* reset 'scrollbind' */
#endif
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
--- 1288,1299 ----
/* Go to the other buffer. */
set_curbuf(buf, action);
! #if defined(FEAT_LISTCMDS) \
! && (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
if (action == DOBUF_SPLIT)
! {
! RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
! }
#endif
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
***************
*** 1917,1925 ****
tabpage_new();
else if (win_split(0, 0) == FAIL) /* Open in a new window */
return FAIL;
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
}
}
#endif
--- 1920,1926 ----
tabpage_new();
else if (win_split(0, 0) == FAIL) /* Open in a new window */
return FAIL;
! RESET_BINDING(curwin);
}
}
#endif
*** ../vim-7.3.007/src/diff.c 2010-08-15 21:57:32.000000000 +0200
--- src/diff.c 2010-09-21 16:14:07.000000000 +0200
***************
*** 1127,1137 ****
# endif
wp->w_p_diff = TRUE;
#ifdef FEAT_CURSORBIND
- /* Use cursorbind if it's available */
wp->w_p_crb = TRUE;
#endif
- wp->w_p_scb = TRUE;
wp->w_p_wrap = FALSE;
# ifdef FEAT_FOLDING
curwin = wp;
--- 1127,1139 ----
# endif
wp->w_p_diff = TRUE;
+ /* Use 'scrollbind' and 'cursorbind' when available */
+ #ifdef FEAT_SCROLLBIND
+ wp->w_p_scb = TRUE;
+ #endif
#ifdef FEAT_CURSORBIND
wp->w_p_crb = TRUE;
#endif
wp->w_p_wrap = FALSE;
# ifdef FEAT_FOLDING
curwin = wp;
***************
*** 1177,1186 ****
{
/* Set 'diff', 'scrollbind' off and 'wrap' on. */
wp->w_p_diff = FALSE;
! #ifdef FEAT_CURSORBIND
! wp->w_p_crb = FALSE;
! #endif
! wp->w_p_scb = FALSE;
wp->w_p_wrap = TRUE;
#ifdef FEAT_FOLDING
curwin = wp;
--- 1179,1185 ----
{
/* Set 'diff', 'scrollbind' off and 'wrap' on. */
wp->w_p_diff = FALSE;
! RESET_BINDING(wp);
wp->w_p_wrap = TRUE;
#ifdef FEAT_FOLDING
curwin = wp;
*** ../vim-7.3.007/src/ex_cmds.c 2010-08-15 21:57:26.000000000 +0200
--- src/ex_cmds.c 2010-09-21 16:15:07.000000000 +0200
***************
*** 3498,3506 ****
curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
curwin->w_p_nu = 0; /* no line numbers */
curwin->w_p_rnu = 0; /* no relative line numbers */
! #ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE; /* no scroll binding */
! #endif
#ifdef FEAT_ARABIC
curwin->w_p_arab = FALSE; /* no arabic mode */
#endif
--- 3498,3504 ----
curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
curwin->w_p_nu = 0; /* no line numbers */
curwin->w_p_rnu = 0; /* no relative line numbers */
! RESET_BINDING(curwin); /* no scroll or cursor binding */
#ifdef FEAT_ARABIC
curwin->w_p_arab = FALSE; /* no arabic mode */
#endif
***************
*** 5471,5479 ****
return FALSE;
curwin->w_p_pvw = TRUE;
curwin->w_p_wfh = TRUE;
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE; /* don't take over 'scrollbind' */
! # endif
# ifdef FEAT_DIFF
curwin->w_p_diff = FALSE; /* no 'diff' */
# endif
--- 5469,5476 ----
return FALSE;
curwin->w_p_pvw = TRUE;
curwin->w_p_wfh = TRUE;
! RESET_BINDING(curwin); /* don't take over 'scrollbind'
! and 'cursorbind' */
# ifdef FEAT_DIFF
curwin->w_p_diff = FALSE; /* no 'diff' */
# endif
*** ../vim-7.3.007/src/ex_cmds2.c 2010-08-15 21:57:31.000000000 +0200
--- src/ex_cmds2.c 2010-09-21 16:15:17.000000000 +0200
***************
*** 2165,2173 ****
{
if (win_split(0, 0) == FAIL)
return;
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
}
else
#endif
--- 2165,2171 ----
{
if (win_split(0, 0) == FAIL)
return;
! RESET_BINDING(curwin);
}
else
#endif
*** ../vim-7.3.007/src/ex_docmd.c 2010-08-16 22:33:55.000000000 +0200
--- src/ex_docmd.c 2010-09-21 16:15:39.000000000 +0200
***************
*** 6898,6906 ****
# ifdef FEAT_WINDOWS
if (win_split(0, 0) == FAIL)
return;
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
/* When splitting the window, create a new alist. Otherwise the
* existing one is overwritten. */
--- 6898,6904 ----
# ifdef FEAT_WINDOWS
if (win_split(0, 0) == FAIL)
return;
! RESET_BINDING(curwin);
/* When splitting the window, create a new alist. Otherwise the
* existing one is overwritten. */
***************
*** 7300,7306 ****
|| cmdmod.browse
# endif
)
! curwin->w_p_scb = FALSE;
else
do_check_scrollbind(FALSE);
# endif
--- 7298,7306 ----
|| cmdmod.browse
# endif
)
! {
! RESET_BINDING(curwin);
! }
else
do_check_scrollbind(FALSE);
# endif
*** ../vim-7.3.007/src/ex_getln.c 2010-08-15 21:57:28.000000000 +0200
--- src/ex_getln.c 2010-09-21 16:15:55.000000000 +0200
***************
*** 6147,6155 ****
curwin->w_p_rl = cmdmsg_rl;
cmdmsg_rl = FALSE;
# endif
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
# ifdef FEAT_AUTOCMD
/* Do execute autocommands for setting the filetype (load syntax). */
--- 6147,6153 ----
curwin->w_p_rl = cmdmsg_rl;
cmdmsg_rl = FALSE;
# endif
! RESET_BINDING(curwin);
# ifdef FEAT_AUTOCMD
/* Do execute autocommands for setting the filetype (load syntax). */
*** ../vim-7.3.007/src/if_cscope.c 2010-08-15 21:57:32.000000000 +0200
--- src/if_cscope.c 2010-09-21 16:16:26.000000000 +0200
***************
*** 1274,1282 ****
{
win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags);
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
postponed_split = 0;
}
# endif
--- 1274,1280 ----
{
win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags);
! RESET_BINDING(curwin);
postponed_split = 0;
}
# endif
*** ../vim-7.3.007/src/macros.h 2010-08-15 21:57:28.000000000 +0200
--- src/macros.h 2010-09-21 16:13:10.000000000 +0200
***************
*** 285,287 ****
--- 285,301 ----
#else
# define DO_AUTOCHDIR
#endif
+
+ #if defined(FEAT_SCROLLBIND) && defined(FEAT_CURSORBIND)
+ # define RESET_BINDING(wp) (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE
+ #else
+ # if defined(FEAT_SCROLLBIND)
+ # define RESET_BINDING(wp) (wp)->w_p_scb = FALSE
+ # else
+ # if defined(FEAT_CURSORBIND)
+ # define RESET_BINDING(wp) (wp)->w_p_crb = FALSE
+ # else
+ # define RESET_BINDING(wp)
+ # endif
+ # endif
+ #endif
*** ../vim-7.3.007/src/quickfix.c 2010-08-17 20:23:18.000000000 +0200
--- src/quickfix.c 2010-09-21 16:17:17.000000000 +0200
***************
*** 1656,1664 ****
opened_window = TRUE; /* close it when fail */
p_swb = empty_option; /* don't split again */
swb_flags = 0;
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
if (ll_ref != NULL)
{
/* The new window should use the location list from the
--- 1656,1662 ----
opened_window = TRUE; /* close it when fail */
p_swb = empty_option; /* don't split again */
swb_flags = 0;
! RESET_BINDING(curwin);
if (ll_ref != NULL)
{
/* The new window should use the location list from the
***************
*** 2334,2342 ****
win_goto(lastwin);
if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
return; /* not enough room for window */
! #ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! #endif
if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
{
--- 2332,2338 ----
win_goto(lastwin);
if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
return; /* not enough room for window */
! RESET_BINDING(curwin);
if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
{
*** ../vim-7.3.007/src/search.c 2010-08-15 21:57:32.000000000 +0200
--- src/search.c 2010-09-21 16:17:28.000000000 +0200
***************
*** 5075,5083 ****
if (win_split(0, 0) == FAIL)
#endif
break;
! #ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! #endif
}
if (depth == -1)
{
--- 5075,5081 ----
if (win_split(0, 0) == FAIL)
#endif
break;
! RESET_BINDING(curwin);
}
if (depth == -1)
{
*** ../vim-7.3.007/src/tag.c 2010-08-15 21:57:25.000000000 +0200
--- src/tag.c 2010-09-21 16:17:51.000000000 +0200
***************
*** 3143,3151 ****
{
win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags);
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
}
#endif
--- 3143,3149 ----
{
win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags);
! RESET_BINDING(curwin);
}
#endif
*** ../vim-7.3.007/src/window.c 2010-08-15 21:57:32.000000000 +0200
--- src/window.c 2010-09-21 16:18:44.000000000 +0200
***************
*** 525,533 ****
setpcmark();
if (win_split(0, 0) == OK)
{
! # ifdef FEAT_SCROLLBIND
! curwin->w_p_scb = FALSE;
! # endif
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
ECMD_HIDE, NULL);
if (nchar == 'F' && lnum >= 0)
--- 525,531 ----
setpcmark();
if (win_split(0, 0) == OK)
{
! RESET_BINDING(curwin);
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
ECMD_HIDE, NULL);
if (nchar == 'F' && lnum >= 0)
***************
*** 3277,3285 ****
if (aucmd_win != NULL)
{
win_init_some(aucmd_win, curwin);
! # ifdef FEAT_SCROLLBIND
! aucmd_win->w_p_scb = FALSE;
! # endif
new_frame(aucmd_win);
}
}
--- 3275,3281 ----
if (aucmd_win != NULL)
{
win_init_some(aucmd_win, curwin);
! RESET_BINDING(aucmd_win);
new_frame(aucmd_win);
}
}
***************
*** 3320,3329 ****
/* First window in new tab page, initialize it from "oldwin". */
win_init(curwin, oldwin, 0);
! # ifdef FEAT_SCROLLBIND
! /* We don't want scroll-binding in the first window. */
! curwin->w_p_scb = FALSE;
! # endif
}
#endif
--- 3316,3323 ----
/* First window in new tab page, initialize it from "oldwin". */
win_init(curwin, oldwin, 0);
! /* We don't want cursor- and scroll-binding in the first window. */
! RESET_BINDING(curwin);
}
#endif
*** ../vim-7.3.007/src/version.c 2010-09-21 16:49:29.000000000 +0200
--- src/version.c 2010-09-21 16:53:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 8,
/**/
--
hundred-and-one symptoms of being an internet addict:
181. You make up words that go with the "happy tune" your modem makes
while dialing your ISP.
/// 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 ///

View File

@ -1,99 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.009
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.009
Problem: Win32: Crash on Windows when using a bad argument for strftime().
(Christian Brabandt)
Solution: Use the bad_param_handler(). (Mike Williams)
Files: src/os_win32.c
*** ../vim-7.3.008/src/os_win32.c 2010-08-15 21:57:27.000000000 +0200
--- src/os_win32.c 2010-09-21 17:02:54.000000000 +0200
***************
*** 1615,1620 ****
--- 1615,1649 ----
return TRUE;
}
+ #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
+ __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+ /*
+ * Bad parameter handler.
+ *
+ * Certain MS CRT functions will intentionally crash when passed invalid
+ * parameters to highlight possible security holes. Setting this function as
+ * the bad parameter handler will prevent the crash.
+ *
+ * In debug builds the parameters contain CRT information that might help track
+ * down the source of a problem, but in non-debug builds the arguments are all
+ * NULL/0. Debug builds will also produce assert dialogs from the CRT, it is
+ * worth allowing these to make debugging of issues easier.
+ */
+ static void
+ bad_param_handler(const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file,
+ unsigned int line,
+ uintptr_t pReserved)
+ {
+ }
+
+ # define SET_INVALID_PARAM_HANDLER \
+ ((void)_set_invalid_parameter_handler(bad_param_handler))
+ #else
+ # define SET_INVALID_PARAM_HANDLER
+ #endif
+
#ifdef FEAT_GUI_W32
/*
***************
*** 1627,1632 ****
--- 1656,1664 ----
extern int _fmode;
#endif
+ /* Silently handle invalid parameters to CRT functions */
+ SET_INVALID_PARAM_HANDLER;
+
/* Let critical errors result in a failure, not in a dialog box. Required
* for the timestamp test to work on removed floppies. */
SetErrorMode(SEM_FAILCRITICALERRORS);
***************
*** 2103,2108 ****
--- 2135,2143 ----
extern int _fmode;
#endif
+ /* Silently handle invalid parameters to CRT functions */
+ SET_INVALID_PARAM_HANDLER;
+
/* Let critical errors result in a failure, not in a dialog box. Required
* for the timestamp test to work on removed floppies. */
SetErrorMode(SEM_FAILCRITICALERRORS);
*** ../vim-7.3.008/src/version.c 2010-09-21 16:56:29.000000000 +0200
--- src/version.c 2010-09-21 17:27:36.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 9,
/**/
--
Wizards had always known that the act of observation changed the thing that
was observed, and sometimes forgot that it also changed the observer too.
Terry Pratchett - Interesting times
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,167 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.010
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.010
Problem: Mac GUI: Missing break statements.
Solution: Add the break statements. (Dominique Pelle)
Files: src/gui_mac.c
*** ../vim-7.3.009/src/gui_mac.c 2010-08-15 21:57:28.000000000 +0200
--- src/gui_mac.c 2010-09-21 17:33:13.000000000 +0200
***************
*** 1480,1486 ****
*
* Returns the index inside the menu wher
*/
! short /* Shoulde we return MenuItemIndex? */
gui_mac_get_menu_item_index(vimmenu_T *pMenu)
{
short index;
--- 1480,1486 ----
*
* Returns the index inside the menu wher
*/
! short /* Should we return MenuItemIndex? */
gui_mac_get_menu_item_index(vimmenu_T *pMenu)
{
short index;
***************
*** 1823,1829 ****
p.h += gui.scrollbar_width;
if (gui.which_scrollbars[SBAR_RIGHT])
p.h += gui.scrollbar_width;
! /* ideal height is as heigh as we can get */
p.v = 15 * 1024;
thePart = IsWindowInStandardState(whichWindow, &p, &r)
--- 1823,1829 ----
p.h += gui.scrollbar_width;
if (gui.which_scrollbars[SBAR_RIGHT])
p.h += gui.scrollbar_width;
! /* ideal height is as high as we can get */
p.v = 15 * 1024;
thePart = IsWindowInStandardState(whichWindow, &p, &r)
***************
*** 4481,4487 ****
* event arrives. No need to check for input_buf_full because we are
* returning as soon as it contains a single char.
*/
! /* TODO: reduce wtime accordinly??? */
if (wtime > -1)
sleeppyTick = 60 * wtime / 1000;
else
--- 4481,4487 ----
* event arrives. No need to check for input_buf_full because we are
* returning as soon as it contains a single char.
*/
! /* TODO: reduce wtime accordingly??? */
if (wtime > -1)
sleeppyTick = 60 * wtime / 1000;
else
***************
*** 5723,5735 ****
iconDITL = GetResource('DITL', 131);
switch (type)
{
! case VIM_GENERIC: useIcon = kNoteIcon;
! case VIM_ERROR: useIcon = kStopIcon;
! case VIM_WARNING: useIcon = kCautionIcon;
! case VIM_INFO: useIcon = kNoteIcon;
! case VIM_QUESTION: useIcon = kNoteIcon;
! default: useIcon = kStopIcon;
! };
AppendDITL(theDialog, iconDITL, overlayDITL);
ReleaseResource(iconDITL);
GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
--- 5723,5735 ----
iconDITL = GetResource('DITL', 131);
switch (type)
{
! case VIM_GENERIC:
! case VIM_INFO:
! case VIM_QUESTION: useIcon = kNoteIcon; break;
! case VIM_WARNING: useIcon = kCautionIcon; break;
! case VIM_ERROR: useIcon = kStopIcon; break;
! default: useIcon = kStopIcon;
! }
AppendDITL(theDialog, iconDITL, overlayDITL);
ReleaseResource(iconDITL);
GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
***************
*** 5892,5898 ****
return itemHit;
/*
! * Usefull thing which could be used
* SetDialogTimeout(): Auto click a button after timeout
* SetDialogTracksCursor() : Get the I-beam cursor over input box
* MoveDialogItem(): Probably better than SetDialogItem
--- 5892,5898 ----
return itemHit;
/*
! * Useful thing which could be used
* SetDialogTimeout(): Auto click a button after timeout
* SetDialogTracksCursor() : Get the I-beam cursor over input box
* MoveDialogItem(): Probably better than SetDialogItem
***************
*** 6100,6106 ****
#endif
/*
! * Transfered from os_mac.c for MacOS X using os_unix.c prep work
*/
int
--- 6100,6106 ----
#endif
/*
! * Transferred from os_mac.c for MacOS X using os_unix.c prep work
*/
int
***************
*** 6543,6549 ****
static ControlRef dataBrowser = NULL;
// when the tabline is hidden, vim doesn't call update_tabline(). When
! // the tabline is shown again, show_tabline() is called before upate_tabline(),
// and because of this, the tab labels and vims internal tabs are out of sync
// for a very short time. to prevent inconsistent state, we store the labels
// of the tabs, not pointers to the tabs (which are invalid for a short time).
--- 6543,6549 ----
static ControlRef dataBrowser = NULL;
// when the tabline is hidden, vim doesn't call update_tabline(). When
! // the tabline is shown again, show_tabline() is called before update_tabline(),
// and because of this, the tab labels and vims internal tabs are out of sync
// for a very short time. to prevent inconsistent state, we store the labels
// of the tabs, not pointers to the tabs (which are invalid for a short time).
*** ../vim-7.3.009/src/version.c 2010-09-21 17:29:19.000000000 +0200
--- src/version.c 2010-09-21 17:33:22.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 10,
/**/
--
hundred-and-one symptoms of being an internet addict:
182. You may not know what is happening in the world, but you know
every bit of net-gossip there is.
/// 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 ///

View File

@ -1,290 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.011
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.011
Problem: X11 clipboard doesn't work in Athena/Motif GUI. First selection
after a shell command doesn't work.
Solution: When using the GUI use XtLastTimestampProcessed() instead of
changing a property. (partly by Toni Ronkko)
When executing a shell command disown the selection.
Files: src/ui.c, src/os_unix.c
*** ../vim-7.3.010/src/ui.c 2010-08-15 21:57:31.000000000 +0200
--- src/ui.c 2010-09-21 22:08:22.000000000 +0200
***************
*** 469,475 ****
*/
#ifdef FEAT_X11
/* Always own the selection, we might have lost it without being
! * notified. */
if (cbd->available)
{
int was_owned = cbd->owned;
--- 469,475 ----
*/
#ifdef FEAT_X11
/* Always own the selection, we might have lost it without being
! * notified, e.g. during a ":sh" command. */
if (cbd->available)
{
int was_owned = cbd->owned;
***************
*** 1944,1953 ****
*/
static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *));
-
static void clip_x11_lose_ownership_cb __ARGS((Widget, Atom *));
-
static void clip_x11_timestamp_cb __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
/*
* Property callback to get a timestamp for XtOwnSelection.
--- 1944,1952 ----
*/
static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *));
static void clip_x11_lose_ownership_cb __ARGS((Widget, Atom *));
static void clip_x11_timestamp_cb __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
+ static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
/*
* Property callback to get a timestamp for XtOwnSelection.
***************
*** 1985,1992 ****
return;
/* Get the selection, using the event timestamp. */
! XtOwnSelection(w, xproperty->atom, xproperty->time,
! clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb, NULL);
}
void
--- 1984,2000 ----
return;
/* Get the selection, using the event timestamp. */
! if (XtOwnSelection(w, xproperty->atom, xproperty->time,
! clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
! NULL) == OK)
! {
! /* Set the "owned" flag now, there may have been a call to
! * lose_ownership_cb in between. */
! if (xproperty->atom == clip_plus.sel_atom)
! clip_plus.owned = TRUE;
! else
! clip_star.owned = TRUE;
! }
}
void
***************
*** 1997,2004 ****
/*(XtEventHandler)*/clip_x11_timestamp_cb, (XtPointer)NULL);
}
- static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
-
static void
clip_x11_request_selection_cb(w, success, sel_atom, type, value, length,
format)
--- 2005,2010 ----
***************
*** 2336,2342 ****
void
clip_x11_lose_selection(myShell, cbd)
! Widget myShell;
VimClipboard *cbd;
{
XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
--- 2342,2348 ----
void
clip_x11_lose_selection(myShell, cbd)
! Widget myShell;
VimClipboard *cbd;
{
XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
***************
*** 2344,2357 ****
int
clip_x11_own_selection(myShell, cbd)
! Widget myShell;
VimClipboard *cbd;
{
! /* Get the time by a zero-length append, clip_x11_timestamp_cb will be
! * called with the current timestamp. */
! if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell), cbd->sel_atom,
! timestamp_atom, 32, PropModeAppend, NULL, 0))
return FAIL;
/* Flush is required in a terminal as nothing else is doing it. */
XFlush(XtDisplay(myShell));
return OK;
--- 2350,2378 ----
int
clip_x11_own_selection(myShell, cbd)
! Widget myShell;
VimClipboard *cbd;
{
! /* When using the GUI we have proper timestamps, use the one of the last
! * event. When in the console we don't get events (the terminal gets
! * them), Get the time by a zero-length append, clip_x11_timestamp_cb will
! * be called with the current timestamp. */
! #ifdef FEAT_GUI
! if (gui.in_use)
! {
! if (XtOwnSelection(myShell, cbd->sel_atom,
! XtLastTimestampProcessed(XtDisplay(myShell)),
! clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
! NULL) == False)
return FAIL;
+ }
+ else
+ #endif
+ {
+ if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
+ cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
+ return FAIL;
+ }
/* Flush is required in a terminal as nothing else is doing it. */
XFlush(XtDisplay(myShell));
return OK;
*** ../vim-7.3.010/src/os_unix.c 2010-08-15 21:57:30.000000000 +0200
--- src/os_unix.c 2010-09-21 21:59:25.000000000 +0200
***************
*** 1123,1128 ****
--- 1123,1152 ----
}
#endif
+ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
+ static void loose_clipboard __ARGS((void));
+
+ /*
+ * Called when Vim is going to sleep or execute a shell command.
+ * We can't respond to requests for the X selections. Lose them, otherwise
+ * other applications will hang. But first copy the text to cut buffer 0.
+ */
+ static void
+ loose_clipboard()
+ {
+ if (clip_star.owned || clip_plus.owned)
+ {
+ x11_export_final_selection();
+ if (clip_star.owned)
+ clip_lose_selection(&clip_star);
+ if (clip_plus.owned)
+ clip_lose_selection(&clip_plus);
+ if (x11_display != NULL)
+ XFlush(x11_display);
+ }
+ }
+ #endif
+
/*
* If the machine has job control, use it to suspend the program,
* otherwise fake it by starting a new shell.
***************
*** 1137,1155 ****
out_flush(); /* needed to disable mouse on some systems */
# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
! /* Since we are going to sleep, we can't respond to requests for the X
! * selections. Lose them, otherwise other applications will hang. But
! * first copy the text to cut buffer 0. */
! if (clip_star.owned || clip_plus.owned)
! {
! x11_export_final_selection();
! if (clip_star.owned)
! clip_lose_selection(&clip_star);
! if (clip_plus.owned)
! clip_lose_selection(&clip_plus);
! if (x11_display != NULL)
! XFlush(x11_display);
! }
# endif
# if defined(_REENTRANT) && defined(SIGCONT)
--- 1161,1167 ----
out_flush(); /* needed to disable mouse on some systems */
# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
! loose_clipboard();
# endif
# if defined(_REENTRANT) && defined(SIGCONT)
***************
*** 3706,3711 ****
--- 3718,3727 ----
if (options & SHELL_COOKED)
settmode(TMODE_COOK); /* set to normal mode */
+ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
+ loose_clipboard();
+ # endif
+
# ifdef __EMX__
if (cmd == NULL)
x = system(""); /* this starts an interactive shell in emx */
***************
*** 3814,3826 ****
# endif
int did_settmode = FALSE; /* settmode(TMODE_RAW) called */
out_flush();
if (options & SHELL_COOKED)
settmode(TMODE_COOK); /* set to normal mode */
! newcmd = vim_strsave(p_sh);
! if (newcmd == NULL) /* out of memory */
! goto error;
/*
* Do this loop twice:
--- 3830,3846 ----
# endif
int did_settmode = FALSE; /* settmode(TMODE_RAW) called */
+ newcmd = vim_strsave(p_sh);
+ if (newcmd == NULL) /* out of memory */
+ goto error;
+
out_flush();
if (options & SHELL_COOKED)
settmode(TMODE_COOK); /* set to normal mode */
! # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
! loose_clipboard();
! # endif
/*
* Do this loop twice:
*** ../vim-7.3.010/src/version.c 2010-09-21 17:34:26.000000000 +0200
--- src/version.c 2010-09-21 20:45:02.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 11,
/**/
--
hundred-and-one symptoms of being an internet addict:
184. You no longer ask prospective dates what their sign is, instead
your line is "Hi, what's your URL?"
/// 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 ///

View File

@ -1,71 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.012
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.012
Problem: Problems building with MingW.
Solution: Adjust the MingW makefiles. (Jon)
Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak
*** ../vim-7.3.011/src/Make_ming.mak 2010-08-15 21:57:32.000000000 +0200
--- src/Make_ming.mak 2010-09-29 12:32:13.000000000 +0200
***************
*** 303,309 ****
endif
endif
CC := $(CROSS_COMPILE)gcc
! WINDRES := $(CROSS_COMPILE)windres
#>>>>> end of choices
###########################################################################
--- 303,309 ----
endif
endif
CC := $(CROSS_COMPILE)gcc
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -
#>>>>> end of choices
###########################################################################
*** ../vim-7.3.011/src/GvimExt/Make_ming.mak 2010-08-15 21:57:29.000000000 +0200
--- src/GvimExt/Make_ming.mak 2010-09-29 12:31:07.000000000 +0200
***************
*** 33,39 ****
endif
endif
CXX := $(CROSS_COMPILE)g++
! WINDRES := $(CROSS_COMPILE)windres
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
--- 33,39 ----
endif
endif
CXX := $(CROSS_COMPILE)g++
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
*** ../vim-7.3.011/src/version.c 2010-09-21 22:09:28.000000000 +0200
--- src/version.c 2010-09-29 12:36:42.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 12,
/**/
--
If evolution theories are correct, humans will soon grow a third
hand for operating the mouse.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,208 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.013
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.013
Problem: Dynamic loading with Ruby doesn't work for 1.9.2.
Solution: Handle rb_str2cstr differently. Also support dynamic loading on
Unix. (Jon Maken)
Files: src/if_ruby.c
*** ../vim-7.3.012/src/if_ruby.c 2010-08-15 21:57:25.000000000 +0200
--- src/if_ruby.c 2010-09-29 12:49:50.000000000 +0200
***************
*** 4,9 ****
--- 4,10 ----
*
* Ruby interface by Shugo Maeda
* with improvements by SegPhault (Ryan Paul)
+ * with improvements by Jon Maken
*
* Do ":help uganda" in Vim to read copying and usage conditions.
* Do ":help credits" in Vim to see a list of people who contributed.
***************
*** 26,37 ****
# define RUBYEXTERN extern
#endif
/*
* This is tricky. In ruby.h there is (inline) function rb_class_of()
* definition. This function use these variables. But we want function to
* use dll_* variables.
*/
- #ifdef DYNAMIC_RUBY
# define rb_cFalseClass (*dll_rb_cFalseClass)
# define rb_cFixnum (*dll_rb_cFixnum)
# define rb_cNilClass (*dll_rb_cNilClass)
--- 27,38 ----
# define RUBYEXTERN extern
#endif
+ #ifdef DYNAMIC_RUBY
/*
* This is tricky. In ruby.h there is (inline) function rb_class_of()
* definition. This function use these variables. But we want function to
* use dll_* variables.
*/
# define rb_cFalseClass (*dll_rb_cFalseClass)
# define rb_cFixnum (*dll_rb_cFixnum)
# define rb_cNilClass (*dll_rb_cNilClass)
***************
*** 46,53 ****
--- 47,67 ----
*/
# define RUBY_EXPORT
# endif
+
+ #if !(defined(WIN32) || defined(_WIN64))
+ # include <dlfcn.h>
+ # define HANDLE void*
+ # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
+ # define symbol_from_dll dlsym
+ # define close_dll dlclose
+ #else
+ # define load_dll LoadLibrary
+ # define symbol_from_dll GetProcAddress
+ # define close_dll FreeLibrary
#endif
+ #endif /* ifdef DYNAMIC_RUBY */
+
/* suggested by Ariya Mizutani */
#if (_MSC_VER == 1200)
# undef _WIN32_WINNT
***************
*** 166,172 ****
#define rb_obj_as_string dll_rb_obj_as_string
#define rb_obj_id dll_rb_obj_id
#define rb_raise dll_rb_raise
- #define rb_str2cstr dll_rb_str2cstr
#define rb_str_cat dll_rb_str_cat
#define rb_str_concat dll_rb_str_concat
#define rb_str_new dll_rb_str_new
--- 180,185 ----
***************
*** 178,187 ****
--- 191,203 ----
# define rb_str_new2 dll_rb_str_new2
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ # define rb_string_value dll_rb_string_value
# define rb_string_value_ptr dll_rb_string_value_ptr
# define rb_float_new dll_rb_float_new
# define rb_ary_new dll_rb_ary_new
# define rb_ary_push dll_rb_ary_push
+ #else
+ # define rb_str2cstr dll_rb_str2cstr
#endif
#ifdef RUBY19_OR_LATER
# define rb_errinfo dll_rb_errinfo
***************
*** 246,252 ****
--- 262,272 ----
static VALUE (*dll_rb_obj_as_string) (VALUE);
static VALUE (*dll_rb_obj_id) (VALUE);
static void (*dll_rb_raise) (VALUE, const char*, ...);
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static VALUE (*dll_rb_string_value) (volatile VALUE*);
+ #else
static char *(*dll_rb_str2cstr) (VALUE,int*);
+ #endif
static VALUE (*dll_rb_str_cat) (VALUE, const char*, long);
static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
static VALUE (*dll_rb_str_new) (const char*, long);
***************
*** 347,353 ****
--- 367,377 ----
{"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string},
{"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id},
{"rb_raise", (RUBY_PROC*)&dll_rb_raise},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value},
+ #else
{"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr},
+ #endif
{"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat},
{"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
{"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
***************
*** 399,405 ****
{
if (hinstRuby)
{
! FreeLibrary(hinstRuby);
hinstRuby = 0;
}
}
--- 423,429 ----
{
if (hinstRuby)
{
! close_dll(hinstRuby);
hinstRuby = 0;
}
}
***************
*** 416,422 ****
if (hinstRuby)
return OK;
! hinstRuby = LoadLibrary(libname);
if (!hinstRuby)
{
if (verbose)
--- 440,446 ----
if (hinstRuby)
return OK;
! hinstRuby = load_dll(libname);
if (!hinstRuby)
{
if (verbose)
***************
*** 426,435 ****
for (i = 0; ruby_funcname_table[i].ptr; ++i)
{
! if (!(*ruby_funcname_table[i].ptr = GetProcAddress(hinstRuby,
ruby_funcname_table[i].name)))
{
! FreeLibrary(hinstRuby);
hinstRuby = 0;
if (verbose)
EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
--- 450,459 ----
for (i = 0; ruby_funcname_table[i].ptr; ++i)
{
! if (!(*ruby_funcname_table[i].ptr = symbol_from_dll(hinstRuby,
ruby_funcname_table[i].name)))
{
! close_dll(hinstRuby);
hinstRuby = 0;
if (verbose)
EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
*** ../vim-7.3.012/src/version.c 2010-09-29 12:37:53.000000000 +0200
--- src/version.c 2010-09-29 13:00:42.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 13,
/**/
--
hundred-and-one symptoms of being an internet addict:
223. You set up a web-cam as your home's security system.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,87 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.014
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.014
Problem: Ending a line in a backslash inside an ":append" or ":insert"
command in Ex mode doesn't work properly. (Ray Frush)
Solution: Halve the number of backslashes, only insert a NUL after an odd
number of backslashes.
Files: src/ex_getln.c
*** ../vim-7.3.013/src/ex_getln.c 2010-09-21 16:56:29.000000000 +0200
--- src/ex_getln.c 2010-09-29 15:47:56.000000000 +0200
***************
*** 2342,2356 ****
windgoto(msg_row, msg_col);
pend = (char_u *)(line_ga.ga_data) + line_ga.ga_len;
! /* we are done when a NL is entered, but not when it comes after a
! * backslash */
! if (line_ga.ga_len > 0 && pend[-1] == '\n'
! && (line_ga.ga_len <= 1 || pend[-2] != '\\'))
! {
! --line_ga.ga_len;
! --pend;
! *pend = NUL;
! break;
}
}
--- 2342,2372 ----
windgoto(msg_row, msg_col);
pend = (char_u *)(line_ga.ga_data) + line_ga.ga_len;
! /* We are done when a NL is entered, but not when it comes after an
! * odd number of backslashes, that results in a NUL. */
! if (line_ga.ga_len > 0 && pend[-1] == '\n')
! {
! int bcount = 0;
!
! while (line_ga.ga_len - 2 >= bcount && pend[-2 - bcount] == '\\')
! ++bcount;
!
! if (bcount > 0)
! {
! /* Halve the number of backslashes: "\NL" -> "NUL", "\\NL" ->
! * "\NL", etc. */
! line_ga.ga_len -= (bcount + 1) / 2;
! pend -= (bcount + 1) / 2;
! pend[-1] = '\n';
! }
!
! if ((bcount & 1) == 0)
! {
! --line_ga.ga_len;
! --pend;
! *pend = NUL;
! break;
! }
}
}
*** ../vim-7.3.013/src/version.c 2010-09-29 13:02:48.000000000 +0200
--- src/version.c 2010-09-29 15:45:57.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 14,
/**/
--
hundred-and-one symptoms of being an internet addict:
224. You set up your own Web page. You set up a Web page for each
of your kids... and your pets.
/// 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 ///

View File

@ -1,68 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.015
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.015
Problem: Test is using error message that no longer exists.
Solution: Change E106 to E121. (Dominique Pelle)
Files: src/testdir/test49.vim
*** ../vim-7.3.014/src/testdir/test49.vim 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test49.vim 2010-09-29 16:52:06.000000000 +0200
***************
*** 1,6 ****
" Vim script language tests
" Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
! " Last Change: 2006 Apr 28
"-------------------------------------------------------------------------------
" Test environment {{{1
--- 1,6 ----
" Vim script language tests
" Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
! " Last Change: 2010 Sep 29
"-------------------------------------------------------------------------------
" Test environment {{{1
***************
*** 8711,8717 ****
endif
else
if cmd == "let"
! let match = MATCH(0, thrmsg, 'E106', "Unknown variable")
elseif cmd == "unlet"
let match = MATCH(0, thrmsg, 'E108', "No such variable")
endif
--- 8711,8717 ----
endif
else
if cmd == "let"
! let match = MATCH(0, thrmsg, 'E121', "Undefined variable")
elseif cmd == "unlet"
let match = MATCH(0, thrmsg, 'E108', "No such variable")
endif
*** ../vim-7.3.014/src/version.c 2010-09-29 15:50:14.000000000 +0200
--- src/version.c 2010-09-29 16:55:03.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 15,
/**/
--
hundred-and-one symptoms of being an internet addict:
228. You spend Saturday night making the counter on your home page
pass that 2000 mark.
/// 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 ///

View File

@ -1,240 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.016
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.016
Problem: Netbeans doesn't work under Athena.
Solution: Support Athena, just like Motif. (Xavier de Gaye)
Files: runtime/doc/netbeans.txt, src/gui.c, src/main.c, src/netbeans.c
*** ../vim-7.3.015/runtime/doc/netbeans.txt 2010-08-15 21:57:13.000000000 +0200
--- runtime/doc/netbeans.txt 2010-09-29 17:13:43.000000000 +0200
***************
*** 1,4 ****
! *netbeans.txt* For Vim version 7.3. Last change: 2010 Jul 20
VIM REFERENCE MANUAL by Gordon Prieur et al.
--- 1,4 ----
! *netbeans.txt* For Vim version 7.3. Last change: 2010 Aug 20
VIM REFERENCE MANUAL by Gordon Prieur et al.
***************
*** 118,124 ****
uncommenting a line with "--disable-netbeans" in the Makefile.
Currently the NetBeans interface is supported by Vim running in a terminal and
! by GVim when it is run with one of the following GUIs: GTK, GNOME, and Motif.
If Motif support is required the user must supply XPM libraries. See
|workshop-xpm| for details on obtaining the latest version of XPM.
--- 118,125 ----
uncommenting a line with "--disable-netbeans" in the Makefile.
Currently the NetBeans interface is supported by Vim running in a terminal and
! by GVim when it is run with one of the following GUIs: GTK, GNOME, Windows,
! Athena and Motif.
If Motif support is required the user must supply XPM libraries. See
|workshop-xpm| for details on obtaining the latest version of XPM.
*** ../vim-7.3.015/src/gui.c 2010-08-15 21:57:28.000000000 +0200
--- src/gui.c 2010-09-29 17:13:43.000000000 +0200
***************
*** 2352,2358 ****
if (draw_sign)
/* Draw the sign on top of the spaces. */
gui_mch_drawsign(gui.row, col, gui.highlight_mask);
! # if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_MOTIF) \
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
if (multi_sign)
netbeans_draw_multisign_indicator(gui.row);
--- 2352,2358 ----
if (draw_sign)
/* Draw the sign on top of the spaces. */
gui_mch_drawsign(gui.row, col, gui.highlight_mask);
! # if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
if (multi_sign)
netbeans_draw_multisign_indicator(gui.row);
*** ../vim-7.3.015/src/main.c 2010-08-15 21:57:28.000000000 +0200
--- src/main.c 2010-09-29 17:13:43.000000000 +0200
***************
*** 940,946 ****
if (netbeansArg != NULL && strncmp("-nb", netbeansArg, 3) == 0)
{
# ifdef FEAT_GUI
! # if !defined(FEAT_GUI_MOTIF) && !defined(FEAT_GUI_GTK) \
&& !defined(FEAT_GUI_W32)
if (gui.in_use)
{
--- 940,946 ----
if (netbeansArg != NULL && strncmp("-nb", netbeansArg, 3) == 0)
{
# ifdef FEAT_GUI
! # if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
&& !defined(FEAT_GUI_W32)
if (gui.in_use)
{
*** ../vim-7.3.015/src/netbeans.c 2010-08-15 21:57:26.000000000 +0200
--- src/netbeans.c 2010-09-29 17:13:43.000000000 +0200
***************
*** 87,93 ****
static void nb_init_graphics __ARGS((void));
static void coloncmd __ARGS((char *cmd, ...));
static void nb_set_curbuf __ARGS((buf_T *buf));
! #ifdef FEAT_GUI_MOTIF
static void messageFromNetbeans __ARGS((XtPointer, int *, XtInputId *));
#endif
#ifdef FEAT_GUI_GTK
--- 87,93 ----
static void nb_init_graphics __ARGS((void));
static void coloncmd __ARGS((char *cmd, ...));
static void nb_set_curbuf __ARGS((buf_T *buf));
! #ifdef FEAT_GUI_X11
static void messageFromNetbeans __ARGS((XtPointer, int *, XtInputId *));
#endif
#ifdef FEAT_GUI_GTK
***************
*** 112,118 ****
static NBSOCK nbsock = -1; /* socket fd for Netbeans connection */
#define NETBEANS_OPEN (nbsock != -1)
! #ifdef FEAT_GUI_MOTIF
static XtInputId inputHandler = (XtInputId)NULL; /* Cookie for input */
#endif
#ifdef FEAT_GUI_GTK
--- 112,118 ----
static NBSOCK nbsock = -1; /* socket fd for Netbeans connection */
#define NETBEANS_OPEN (nbsock != -1)
! #ifdef FEAT_GUI_X11
static XtInputId inputHandler = (XtInputId)NULL; /* Cookie for input */
#endif
#ifdef FEAT_GUI_GTK
***************
*** 143,149 ****
netbeans_send_disconnect();
! #ifdef FEAT_GUI_MOTIF
if (inputHandler != (XtInputId)NULL)
{
XtRemoveInput(inputHandler);
--- 143,149 ----
netbeans_send_disconnect();
! #ifdef FEAT_GUI_X11
if (inputHandler != (XtInputId)NULL)
{
XtRemoveInput(inputHandler);
***************
*** 700,706 ****
/*
* Read a command from netbeans.
*/
! #ifdef FEAT_GUI_MOTIF
static void
messageFromNetbeans(XtPointer clientData UNUSED,
int *unused1 UNUSED,
--- 700,706 ----
/*
* Read a command from netbeans.
*/
! #ifdef FEAT_GUI_X11
static void
messageFromNetbeans(XtPointer clientData UNUSED,
int *unused1 UNUSED,
***************
*** 2937,2943 ****
if (!NB_HAS_GUI || !NETBEANS_OPEN)
return;
! # ifdef FEAT_GUI_MOTIF
/* tell notifier we are interested in being called
* when there is input on the editor connection socket
*/
--- 2937,2943 ----
if (!NB_HAS_GUI || !NETBEANS_OPEN)
return;
! # ifdef FEAT_GUI_X11
/* tell notifier we are interested in being called
* when there is input on the editor connection socket
*/
***************
*** 3027,3033 ****
}
}
! #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_W32) || defined(PROTO)
/*
* Tell netbeans that the window was moved or resized.
*/
--- 3027,3033 ----
}
}
! #if defined(FEAT_GUI_X11) || defined(FEAT_GUI_W32) || defined(PROTO)
/*
* Tell netbeans that the window was moved or resized.
*/
***************
*** 3458,3464 ****
return FALSE;
}
! #if defined(FEAT_GUI_MOTIF) || defined(PROTO)
/*
* We have multiple signs to draw at the same location. Draw the
* multi-sign indicator instead. This is the Motif version.
--- 3458,3464 ----
return FALSE;
}
! #if defined(FEAT_GUI_X11) || defined(PROTO)
/*
* We have multiple signs to draw at the same location. Draw the
* multi-sign indicator instead. This is the Motif version.
***************
*** 3487,3493 ****
XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
}
! #endif /* FEAT_GUI_MOTIF */
#if defined(FEAT_GUI_GTK) && !defined(PROTO)
/*
--- 3487,3493 ----
XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
}
! #endif /* FEAT_GUI_X11 */
#if defined(FEAT_GUI_GTK) && !defined(PROTO)
/*
*** ../vim-7.3.015/src/version.c 2010-09-29 16:55:45.000000000 +0200
--- src/version.c 2010-09-29 17:14:47.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 16,
/**/
--
hundred-and-one symptoms of being an internet addict:
229. You spend so much time thinking what to add on this list.
/// 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 ///

View File

@ -1,124 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.017
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.017
Problem: smatch reports errors.
Solution: Fix the reported errors. (Dominique Pelle)
Files: src/spell.c, src/syntax.c
*** ../vim-7.3.016/src/spell.c 2010-09-18 13:36:41.000000000 +0200
--- src/spell.c 2010-09-29 18:25:09.000000000 +0200
***************
*** 4951,4957 ****
char_u *si_info; /* info text chars or NULL */
int si_region_count; /* number of regions supported (1 when there
are no regions) */
! char_u si_region_name[16]; /* region names; used only if
* si_region_count > 1) */
garray_T si_rep; /* list of fromto_T entries from REP lines */
--- 4951,4957 ----
char_u *si_info; /* info text chars or NULL */
int si_region_count; /* number of regions supported (1 when there
are no regions) */
! char_u si_region_name[17]; /* region names; used only if
* si_region_count > 1) */
garray_T si_rep; /* list of fromto_T entries from REP lines */
***************
*** 9530,9536 ****
if (aspath)
/* Use directory of an entry with path, e.g., for
* "/dir/lg.utf-8.spl" use "/dir". */
! vim_strncpy(buf, curbuf->b_s.b_p_spl, lstart - curbuf->b_s.b_p_spl - 1);
else
/* Copy the path from 'runtimepath' to buf[]. */
copy_option_part(&rtp, buf, MAXPATHL, ",");
--- 9530,9537 ----
if (aspath)
/* Use directory of an entry with path, e.g., for
* "/dir/lg.utf-8.spl" use "/dir". */
! vim_strncpy(buf, curbuf->b_s.b_p_spl,
! lstart - curbuf->b_s.b_p_spl - 1);
else
/* Copy the path from 'runtimepath' to buf[]. */
copy_option_part(&rtp, buf, MAXPATHL, ",");
***************
*** 9539,9551 ****
/* Use the first language name from 'spelllang' and the
* encoding used in the first loaded .spl file. */
if (aspath)
! vim_strncpy(buf, curbuf->b_s.b_p_spl, lend - curbuf->b_s.b_p_spl);
else
{
/* Create the "spell" directory if it doesn't exist yet. */
l = (int)STRLEN(buf);
vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
! if (!filewritable(buf) != 2)
vim_mkdir(buf, 0755);
l = (int)STRLEN(buf);
--- 9540,9553 ----
/* Use the first language name from 'spelllang' and the
* encoding used in the first loaded .spl file. */
if (aspath)
! vim_strncpy(buf, curbuf->b_s.b_p_spl,
! lend - curbuf->b_s.b_p_spl);
else
{
/* Create the "spell" directory if it doesn't exist yet. */
l = (int)STRLEN(buf);
vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
! if (filewritable(buf) != 2)
vim_mkdir(buf, 0755);
l = (int)STRLEN(buf);
*** ../vim-7.3.016/src/syntax.c 2010-08-15 21:57:32.000000000 +0200
--- src/syntax.c 2010-09-29 18:28:26.000000000 +0200
***************
*** 7600,7609 ****
/*
* Copy characters from arg[] to buf[], translating <> codes.
*/
! for (p = arg, off = 0; off < 100 && *p; )
{
len = trans_special(&p, buf + off, FALSE);
! if (len) /* recognized special char */
off += len;
else /* copy as normal char */
buf[off++] = *p++;
--- 7600,7609 ----
/*
* Copy characters from arg[] to buf[], translating <> codes.
*/
! for (p = arg, off = 0; off < 100 - 6 && *p; )
{
len = trans_special(&p, buf + off, FALSE);
! if (len > 0) /* recognized special char */
off += len;
else /* copy as normal char */
buf[off++] = *p++;
*** ../vim-7.3.016/src/version.c 2010-09-29 17:26:57.000000000 +0200
--- src/version.c 2010-09-29 17:47:27.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 17,
/**/
--
A computer without Windows is like a fish without a bicycle.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,74 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.018
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.018 (after 7.3.012)
Problem: Missing argument to windres in MingW makefiles.
Solution: Add the argument that was wrapped in the patch. (Jon Maken)
Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak
*** ../vim-7.3.017/src/Make_ming.mak 2010-09-29 12:37:53.000000000 +0200
--- src/Make_ming.mak 2010-09-29 18:37:08.000000000 +0200
***************
*** 303,309 ****
endif
endif
CC := $(CROSS_COMPILE)gcc
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -
#>>>>> end of choices
###########################################################################
--- 303,309 ----
endif
endif
CC := $(CROSS_COMPILE)gcc
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -DRC_INVOKED
#>>>>> end of choices
###########################################################################
*** ../vim-7.3.017/src/GvimExt/Make_ming.mak 2010-09-29 12:37:53.000000000 +0200
--- src/GvimExt/Make_ming.mak 2010-09-29 18:36:39.000000000 +0200
***************
*** 33,39 ****
endif
endif
CXX := $(CROSS_COMPILE)g++
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
--- 33,39 ----
endif
endif
CXX := $(CROSS_COMPILE)g++
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -DRC_INVOKED
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
*** ../vim-7.3.017/src/version.c 2010-09-29 18:32:47.000000000 +0200
--- src/version.c 2010-09-29 18:41:53.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 18,
/**/
--
hundred-and-one symptoms of being an internet addict:
231. You sprinkle Carpet Fresh on the rugs and put your vacuum cleaner
in the front doorway permanently so it always looks like you are
actually attempting to do something about that mess that has amassed
since you discovered the Internet.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,55 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.019
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.019
Problem: ":nbstart" can fail silently.
Solution: Give an error when netbeans is not supported by the GUI. (Xavier
de Gaye)
Files: src/netbeans.c
*** ../vim-7.3.018/src/netbeans.c 2010-09-29 17:26:57.000000000 +0200
--- src/netbeans.c 2010-09-29 17:35:37.000000000 +0200
***************
*** 2773,2778 ****
--- 2773,2788 ----
ex_nbstart(eap)
exarg_T *eap;
{
+ #ifdef FEAT_GUI
+ # if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
+ && !defined(FEAT_GUI_W32)
+ if (gui.in_use)
+ {
+ EMSG(_("E838: netbeans is not supported with this GUI"));
+ return;
+ }
+ # endif
+ #endif
netbeans_open((char *)eap->arg, FALSE);
}
*** ../vim-7.3.018/src/version.c 2010-09-29 18:42:25.000000000 +0200
--- src/version.c 2010-09-30 21:02:03.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 19,
/**/
--
hundred-and-one symptoms of being an internet addict:
233. You start dreaming about web pages...in html.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,131 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.020
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.020
Problem: Cursor position wrong when joining multiple lines and
'formatoptions' contains "a". (Moshe Kamensky)
Solution: Adjust cursor position for skipped indent. (Carlo Teubner)
Files: src/ops.c, src/testdir/test68.in, src/testdir/test68.ok
*** ../vim-7.3.019/src/ops.c 2010-08-15 21:57:28.000000000 +0200
--- src/ops.c 2010-10-09 17:00:35.000000000 +0200
***************
*** 4153,4161 ****
int save_undo;
{
char_u *curr = NULL;
char_u *cend;
char_u *newp;
! char_u *spaces; /* number of spaces inserte before a line */
int endcurr1 = NUL;
int endcurr2 = NUL;
int currsize = 0; /* size of the current line */
--- 4153,4162 ----
int save_undo;
{
char_u *curr = NULL;
+ char_u *curr_start = NULL;
char_u *cend;
char_u *newp;
! char_u *spaces; /* number of spaces inserted before a line */
int endcurr1 = NUL;
int endcurr2 = NUL;
int currsize = 0; /* size of the current line */
***************
*** 4181,4187 ****
*/
for (t = 0; t < count; ++t)
{
! curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
if (insert_space && t > 0)
{
curr = skipwhite(curr);
--- 4182,4188 ----
*/
for (t = 0; t < count; ++t)
{
! curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
if (insert_space && t > 0)
{
curr = skipwhite(curr);
***************
*** 4265,4274 ****
copy_spaces(cend, (size_t)(spaces[t]));
}
mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t,
! (long)(cend - newp + spaces[t]));
if (t == 0)
break;
! curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
if (insert_space && t > 1)
curr = skipwhite(curr);
currsize = (int)STRLEN(curr);
--- 4266,4275 ----
copy_spaces(cend, (size_t)(spaces[t]));
}
mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t,
! (long)(cend - newp + spaces[t] - (curr - curr_start)));
if (t == 0)
break;
! curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
if (insert_space && t > 1)
curr = skipwhite(curr);
currsize = (int)STRLEN(curr);
*** ../vim-7.3.019/src/testdir/test68.in 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test68.in 2010-10-09 16:53:02.000000000 +0200
***************
*** 51,56 ****
--- 51,67 ----
}
STARTTEST
+ /^{/+2
+ :set tw& fo=a
+ I^^
+ ENDTEST
+
+ {
+ 1aa
+ 2bb
+ }
+
+ STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out
ENDTEST
*** ../vim-7.3.019/src/testdir/test68.ok 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test68.ok 2010-10-09 16:53:02.000000000 +0200
***************
*** 33,35 ****
--- 33,38 ----
#a b
}
+
+ { 1aa ^^2bb }
+
*** ../vim-7.3.019/src/version.c 2010-09-30 21:03:13.000000000 +0200
--- src/version.c 2010-10-09 17:05:31.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 20,
/**/
--
Did you hear about the new 3 million dollar West Virginia State Lottery?
The winner gets 3 dollars a year for a million years.
/// 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 ///

View File

@ -1,70 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.021
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.021
Problem: Conflict for defining Boolean in Mac header files.
Solution: Define NO_X11_INCLUDES. (Rainer Muller)
Files: src/os_macosx.m, src/vim.h
*** ../vim-7.3.020/src/os_macosx.m 2010-08-15 21:57:29.000000000 +0200
--- src/os_macosx.m 2010-10-10 17:01:55.000000000 +0200
***************
*** 15,20 ****
--- 15,24 ----
Error: MACOS 9 is no longer supported in Vim 7
#endif
+ /* Avoid a conflict for the definition of Boolean between Mac header files and
+ * X11 header files. */
+ #define NO_X11_INCLUDES
+
#include "vim.h"
#import <Cocoa/Cocoa.h>
*** ../vim-7.3.020/src/vim.h 2010-08-15 21:57:29.000000000 +0200
--- src/vim.h 2010-10-10 17:02:56.000000000 +0200
***************
*** 192,199 ****
#endif
#ifdef NO_X11_INCLUDES
! /* In os_mac_conv.c NO_X11_INCLUDES is defined to avoid X11 headers.
! * Disable all X11 related things to avoid conflicts. */
# ifdef FEAT_X11
# undef FEAT_X11
# endif
--- 192,199 ----
#endif
#ifdef NO_X11_INCLUDES
! /* In os_mac_conv.c and os_macosx.m NO_X11_INCLUDES is defined to avoid
! * X11 headers. Disable all X11 related things to avoid conflicts. */
# ifdef FEAT_X11
# undef FEAT_X11
# endif
*** ../vim-7.3.020/src/version.c 2010-10-09 17:21:42.000000000 +0200
--- src/version.c 2010-10-10 17:05:19.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 21,
/**/
--
hundred-and-one symptoms of being an internet addict:
259. When you enter your name in the AltaVista search engine, the top ten
matches do indeed refer to you.
/// 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 ///

View File

@ -1,54 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.022
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.022
Problem: When opening a new window the 'spellcapcheck' option is cleared.
Solution: Copy the correct option value. (Christian Brabandt)
Files: src/option.c
*** ../vim-7.3.021/src/option.c 2010-08-15 21:57:28.000000000 +0200
--- src/option.c 2010-10-13 13:48:46.000000000 +0200
***************
*** 10011,10017 ****
buf->b_p_smc = p_smc;
#endif
#ifdef FEAT_SPELL
! buf->b_s.b_p_spc = vim_strsave(p_spf);
(void)compile_cap_prog(&buf->b_s);
buf->b_s.b_p_spf = vim_strsave(p_spf);
buf->b_s.b_p_spl = vim_strsave(p_spl);
--- 10011,10017 ----
buf->b_p_smc = p_smc;
#endif
#ifdef FEAT_SPELL
! buf->b_s.b_p_spc = vim_strsave(p_spc);
(void)compile_cap_prog(&buf->b_s);
buf->b_s.b_p_spf = vim_strsave(p_spf);
buf->b_s.b_p_spl = vim_strsave(p_spl);
*** ../vim-7.3.021/src/version.c 2010-10-10 17:08:28.000000000 +0200
--- src/version.c 2010-10-13 14:02:08.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 22,
/**/
--
GALAHAD: Camelot ...
LAUNCELOT: Camelot ...
GAWAIN: It's only a model.
"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 ///

View File

@ -1,69 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.023
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.023
Problem: External program may hang when it tries to write to the tty.
Solution: Don't close the slave tty until after the child exits. (Nikola
Knezevic)
Files: src/os_unix.c
*** ../vim-7.3.022/src/os_unix.c 2010-09-21 22:09:28.000000000 +0200
--- src/os_unix.c 2010-10-13 16:17:33.000000000 +0200
***************
*** 4168,4174 ****
# ifdef FEAT_GUI
if (pty_master_fd >= 0)
{
- close(pty_slave_fd); /* close slave side of pty */
fromshell_fd = pty_master_fd;
toshell_fd = dup(pty_master_fd);
}
--- 4168,4173 ----
***************
*** 4637,4642 ****
--- 4636,4649 ----
break;
}
+ # ifdef FEAT_GUI
+ /* Close slave side of pty. Only do this after the child has
+ * exited, otherwise the child may hang when it tries to write on
+ * the pty. */
+ if (pty_master_fd >= 0)
+ close(pty_slave_fd);
+ # endif
+
/* Make sure the child that writes to the external program is
* dead. */
if (wpid > 0)
*** ../vim-7.3.022/src/version.c 2010-10-13 14:05:29.000000000 +0200
--- src/version.c 2010-10-13 16:20:48.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 23,
/**/
--
We're knights of the Round Table
Our shows are formidable
But many times
We're given rhymes
That are quite unsingable
We're opera mad in Camelot
We sing from the diaphragm a lot.
"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 ///

View File

@ -1,115 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.024
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.024
Problem: Named signs do not use a negative number as intended.
Solution: Fix the numbering of named signs. (Xavier de Gaye)
Files: src/ex_cmds.c
*** ../vim-7.3.023/src/ex_cmds.c 2010-09-21 16:56:29.000000000 +0200
--- src/ex_cmds.c 2010-10-13 16:37:18.000000000 +0200
***************
*** 6670,6680 ****
sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
if (sp == NULL)
return;
- if (sp_prev == NULL)
- first_sign = sp;
- else
- sp_prev->sn_next = sp;
- sp->sn_name = vim_strnsave(arg, (int)(p - arg));
/* If the name is a number use that for the typenr,
* otherwise use a negative number. */
--- 6670,6675 ----
***************
*** 6687,6699 ****
for (lp = first_sign; lp != NULL; lp = lp->sn_next)
{
! if (lp->sn_typenr == last_sign_typenr)
{
--last_sign_typenr;
if (last_sign_typenr == 0)
last_sign_typenr = MAX_TYPENR;
if (last_sign_typenr == start)
{
EMSG(_("E612: Too many signs defined"));
return;
}
--- 6682,6695 ----
for (lp = first_sign; lp != NULL; lp = lp->sn_next)
{
! if (lp->sn_typenr == -last_sign_typenr)
{
--last_sign_typenr;
if (last_sign_typenr == 0)
last_sign_typenr = MAX_TYPENR;
if (last_sign_typenr == start)
{
+ vim_free(sp);
EMSG(_("E612: Too many signs defined"));
return;
}
***************
*** 6702,6711 ****
}
}
! sp->sn_typenr = last_sign_typenr--;
! if (last_sign_typenr == 0)
last_sign_typenr = MAX_TYPENR; /* wrap around */
}
}
/* set values for a defined sign. */
--- 6698,6714 ----
}
}
! sp->sn_typenr = -last_sign_typenr;
! if (--last_sign_typenr == 0)
last_sign_typenr = MAX_TYPENR; /* wrap around */
}
+
+ /* add the new sign to the list of signs */
+ if (sp_prev == NULL)
+ first_sign = sp;
+ else
+ sp_prev->sn_next = sp;
+ sp->sn_name = vim_strnsave(arg, (int)(p - arg));
}
/* set values for a defined sign. */
*** ../vim-7.3.023/src/version.c 2010-10-13 16:22:05.000000000 +0200
--- src/version.c 2010-10-13 16:42:14.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 24,
/**/
--
In war we're tough and able.
Quite indefatigable
Between our quests
We sequin vests
And impersonate Clark Gable
It's a busy life in Camelot.
I have to push the pram a lot.
"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 ///

View File

@ -1,136 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.025
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.025
Problem: ":mksession" does not square brackets escape file name properly.
Solution: Improve escapging of file names. (partly by Peter Odding)
Files: src/ex_docmd.c
*** ../vim-7.3.024/src/ex_docmd.c 2010-09-21 16:56:29.000000000 +0200
--- src/ex_docmd.c 2010-10-13 17:39:17.000000000 +0200
***************
*** 10708,10714 ****
* Write a file name to the session file.
* Takes care of the "slash" option in 'sessionoptions' and escapes special
* characters.
! * Returns FAIL if writing fails.
*/
static int
ses_put_fname(fd, name, flagp)
--- 10708,10714 ----
* Write a file name to the session file.
* Takes care of the "slash" option in 'sessionoptions' and escapes special
* characters.
! * Returns FAIL if writing fails or out of memory.
*/
static int
ses_put_fname(fd, name, flagp)
***************
*** 10717,10765 ****
unsigned *flagp;
{
char_u *sname;
int retval = OK;
- int c;
sname = home_replace_save(NULL, name);
! if (sname != NULL)
! name = sname;
! while (*name != NUL)
! {
! #ifdef FEAT_MBYTE
! {
! int l;
! if (has_mbyte && (l = (*mb_ptr2len)(name)) > 1)
! {
! /* copy a multibyte char */
! while (--l >= 0)
! {
! if (putc(*name, fd) != *name)
! retval = FAIL;
! ++name;
! }
! continue;
! }
! }
! #endif
! c = *name++;
! if (c == '\\' && (*flagp & SSOP_SLASH))
! /* change a backslash to a forward slash */
! c = '/';
! else if ((vim_strchr(escape_chars, c) != NULL
! #ifdef BACKSLASH_IN_FILENAME
! && c != '\\'
! #endif
! ) || c == '#' || c == '%')
! {
! /* escape a special character with a backslash */
! if (putc('\\', fd) != '\\')
! retval = FAIL;
! }
! if (putc(c, fd) != c)
! retval = FAIL;
}
vim_free(sname);
return retval;
}
--- 10717,10748 ----
unsigned *flagp;
{
char_u *sname;
+ char_u *p;
int retval = OK;
sname = home_replace_save(NULL, name);
! if (sname == NULL)
! return FAIL;
! if (*flagp & SSOP_SLASH)
! {
! /* change all backslashes to forward slashes */
! for (p = sname; *p != NUL; mb_ptr_adv(p))
! if (*p == '\\')
! *p = '/';
}
+
+ /* escapse special characters */
+ p = vim_strsave_fnameescape(sname, FALSE);
vim_free(sname);
+ if (p == NULL)
+ return FAIL;
+
+ /* write the result */
+ if (fputs((char *)p, fd) < 0)
+ retval = FAIL;
+
+ vim_free(p);
return retval;
}
*** ../vim-7.3.024/src/version.c 2010-10-13 16:44:17.000000000 +0200
--- src/version.c 2010-10-13 17:49:15.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 25,
/**/
--
"Time flies like an arrow". So I put an arrow on my desk, now
awaiting one of these time flies showing up.
/// 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 ///

View File

@ -1,61 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.026
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.026
Problem: CTRL-] in a help file doesn't always work. (Tony Mechelynck)
Solution: Don't escape special characters. (Carlo Teubner)
Files: src/normal.c
*** ../vim-7.3.025/src/normal.c 2010-08-15 21:57:28.000000000 +0200
--- src/normal.c 2010-10-13 18:01:03.000000000 +0200
***************
*** 5666,5673 ****
else if (cmdchar == '#')
aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
else if (tag_cmd)
! /* Don't escape spaces and Tabs in a tag with a backslash */
! aux_ptr = (char_u *)"\\|\"\n[";
else
aux_ptr = (char_u *)"\\|\"\n*?[";
--- 5666,5678 ----
else if (cmdchar == '#')
aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
else if (tag_cmd)
! {
! if (curbuf->b_help)
! /* ":help" handles unescaped argument */
! aux_ptr = (char_u *)"";
! else
! aux_ptr = (char_u *)"\\|\"\n[";
! }
else
aux_ptr = (char_u *)"\\|\"\n*?[";
*** ../vim-7.3.025/src/version.c 2010-10-13 17:50:02.000000000 +0200
--- src/version.c 2010-10-13 18:04:54.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 26,
/**/
--
MAN: Fetchez la vache!
GUARD: Quoi?
MAN: Fetchez la vache!
"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 ///

View File

@ -1,88 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.027
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.027
Problem: Opening a file on a network share is very slow.
Solution: When fixing file name case append "\*" to directory, server and
network share names. (David Anderson, John Beckett)
Files: src/os_win32.c
*** ../vim-7.3.026/src/os_win32.c 2010-09-21 17:29:19.000000000 +0200
--- src/os_win32.c 2010-10-13 20:31:32.000000000 +0200
***************
*** 2308,2319 ****
--- 2308,2321 ----
int len)
{
char szTrueName[_MAX_PATH + 2];
+ char szTrueNameTemp[_MAX_PATH + 2];
char *ptrue, *ptruePrev;
char *porig, *porigPrev;
int flen;
WIN32_FIND_DATA fb;
HANDLE hFind;
int c;
+ int slen;
flen = (int)STRLEN(name);
if (flen == 0 || flen > _MAX_PATH)
***************
*** 2358,2369 ****
}
*ptrue = NUL;
/* Skip "", "." and "..". */
if (ptrue > ptruePrev
&& (ptruePrev[0] != '.'
|| (ptruePrev[1] != NUL
&& (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
! && (hFind = FindFirstFile(szTrueName, &fb))
!= INVALID_HANDLE_VALUE)
{
c = *porig;
--- 2360,2378 ----
}
*ptrue = NUL;
+ /* To avoid a slow failure append "\*" when searching a directory,
+ * server or network share. */
+ STRCPY(szTrueNameTemp, szTrueName);
+ slen = strlen(szTrueNameTemp);
+ if (*porig == psepc && slen + 2 < _MAX_PATH)
+ STRCPY(szTrueNameTemp + slen, "\\*");
+
/* Skip "", "." and "..". */
if (ptrue > ptruePrev
&& (ptruePrev[0] != '.'
|| (ptruePrev[1] != NUL
&& (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
! && (hFind = FindFirstFile(szTrueNameTemp, &fb))
!= INVALID_HANDLE_VALUE)
{
c = *porig;
*** ../vim-7.3.026/src/version.c 2010-10-13 18:06:42.000000000 +0200
--- src/version.c 2010-10-13 20:37:00.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 27,
/**/
--
A cow comes flying over the battlements, lowing aggressively. The cow
lands on GALAHAD'S PAGE, squashing him completely.
"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 ///

View File

@ -1,179 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.028
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.028 (after 7.3.024)
Problem: Signs don't show up. (Charles Campbell)
Solution: Don't use negative numbers. Also assign a number to signs that
have a name of all digits to avoid using a sign number twice.
Files: src/ex_cmds.c
*** ../vim-7.3.027/src/ex_cmds.c 2010-10-13 16:44:17.000000000 +0200
--- src/ex_cmds.c 2010-10-14 20:59:04.000000000 +0200
***************
*** 6569,6575 ****
};
static sign_T *first_sign = NULL;
! static int last_sign_typenr = MAX_TYPENR; /* is decremented */
static int sign_cmd_idx __ARGS((char_u *begin_cmd, char_u *end_cmd));
static void sign_list_defined __ARGS((sign_T *sp));
--- 6569,6575 ----
};
static sign_T *first_sign = NULL;
! static int next_sign_typenr = 1;
static int sign_cmd_idx __ARGS((char_u *begin_cmd, char_u *end_cmd));
static void sign_list_defined __ARGS((sign_T *sp));
***************
*** 6651,6659 ****
--- 6651,6664 ----
EMSG(_("E156: Missing sign name"));
else
{
+ /* Isolate the sign name. If it's a number skip leading zeroes,
+ * so that "099" and "99" are the same sign. But keep "0". */
p = skiptowhite(arg);
if (*p != NUL)
*p++ = NUL;
+ while (arg[0] == '0' && arg[1] != NUL)
+ ++arg;
+
sp_prev = NULL;
for (sp = first_sign; sp != NULL; sp = sp->sn_next)
{
***************
*** 6666,6706 ****
/* ":sign define {name} ...": define a sign */
if (sp == NULL)
{
/* Allocate a new sign. */
sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
if (sp == NULL)
return;
! /* If the name is a number use that for the typenr,
! * otherwise use a negative number. */
! if (VIM_ISDIGIT(*arg))
! sp->sn_typenr = atoi((char *)arg);
! else
{
! sign_T *lp;
! int start = last_sign_typenr;
!
! for (lp = first_sign; lp != NULL; lp = lp->sn_next)
{
! if (lp->sn_typenr == -last_sign_typenr)
{
! --last_sign_typenr;
! if (last_sign_typenr == 0)
! last_sign_typenr = MAX_TYPENR;
! if (last_sign_typenr == start)
! {
! vim_free(sp);
! EMSG(_("E612: Too many signs defined"));
! return;
! }
! lp = first_sign;
! continue;
}
}
! sp->sn_typenr = -last_sign_typenr;
! if (--last_sign_typenr == 0)
! last_sign_typenr = MAX_TYPENR; /* wrap around */
}
/* add the new sign to the list of signs */
--- 6671,6715 ----
/* ":sign define {name} ...": define a sign */
if (sp == NULL)
{
+ sign_T *lp;
+ int start = next_sign_typenr;
+
/* Allocate a new sign. */
sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
if (sp == NULL)
return;
! /* Check that next_sign_typenr is not already being used.
! * This only happens after wrapping around. Hopefully
! * another one got deleted and we can use its number. */
! for (lp = first_sign; lp != NULL; )
{
! if (lp->sn_typenr == next_sign_typenr)
{
! ++next_sign_typenr;
! if (next_sign_typenr == MAX_TYPENR)
! next_sign_typenr = 1;
! if (next_sign_typenr == start)
{
! vim_free(sp);
! EMSG(_("E612: Too many signs defined"));
! return;
}
+ lp = first_sign; /* start all over */
+ continue;
}
+ lp = lp->sn_next;
+ }
+
+ sp->sn_typenr = next_sign_typenr;
+ if (++next_sign_typenr == MAX_TYPENR)
+ next_sign_typenr = 1; /* wrap around */
! sp->sn_name = vim_strsave(arg);
! if (sp->sn_name == NULL) /* out of memory */
! {
! vim_free(sp);
! return;
}
/* add the new sign to the list of signs */
***************
*** 6708,6714 ****
first_sign = sp;
else
sp_prev->sn_next = sp;
- sp->sn_name = vim_strnsave(arg, (int)(p - arg));
}
/* set values for a defined sign. */
--- 6717,6722 ----
***************
*** 6886,6891 ****
--- 6894,6901 ----
arg = skiptowhite(arg);
if (*arg != NUL)
*arg++ = NUL;
+ while (sign_name[0] == '0' && sign_name[1] != NUL)
+ ++sign_name;
}
else if (STRNCMP(arg, "file=", 5) == 0)
{
*** ../vim-7.3.027/src/version.c 2010-10-13 20:37:37.000000000 +0200
--- src/version.c 2010-10-14 20:50:54.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 28,
/**/
--
This is an airconditioned room, do not open Windows.
/// 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 ///

View File

@ -1,177 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.029
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.029
Problem: ":sort n" sorts lines without a number as number zero. (Beeyawned)
Solution: Make lines without a number sort before lines with a number. Also
fix sorting negative numbers.
Files: src/ex_cmds.c, src/testdir/test57.in, src/testdir/test57.ok
*** ../vim-7.3.028/src/ex_cmds.c 2010-10-14 21:29:31.000000000 +0200
--- src/ex_cmds.c 2010-10-15 20:04:25.000000000 +0200
***************
*** 323,329 ****
/* When sorting numbers "start_col_nr" is the number, not the column
* number. */
if (sort_nr)
! result = l1.start_col_nr - l2.start_col_nr;
else
{
/* We need to copy one line into "sortbuf1", because there is no
--- 323,330 ----
/* When sorting numbers "start_col_nr" is the number, not the column
* number. */
if (sort_nr)
! result = l1.start_col_nr == l2.start_col_nr ? 0
! : l1.start_col_nr > l2.start_col_nr ? 1 : -1;
else
{
/* We need to copy one line into "sortbuf1", because there is no
***************
*** 482,488 ****
* of the match, by temporarily terminating the string there */
s2 = s + end_col;
c = *s2;
! (*s2) = 0;
/* Sorting on number: Store the number itself. */
p = s + start_col;
if (sort_hex)
--- 483,489 ----
* of the match, by temporarily terminating the string there */
s2 = s + end_col;
c = *s2;
! *s2 = NUL;
/* Sorting on number: Store the number itself. */
p = s + start_col;
if (sort_hex)
***************
*** 491,499 ****
s = skiptodigit(p);
if (s > p && s[-1] == '-')
--s; /* include preceding negative sign */
! vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
! &nrs[lnum - eap->line1].start_col_nr, NULL);
! (*s2) = c;
}
else
{
--- 492,504 ----
s = skiptodigit(p);
if (s > p && s[-1] == '-')
--s; /* include preceding negative sign */
! if (*s == NUL)
! /* empty line should sort before any number */
! nrs[lnum - eap->line1].start_col_nr = -MAXLNUM;
! else
! vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
! &nrs[lnum - eap->line1].start_col_nr, NULL);
! *s2 = c;
}
else
{
***************
*** 6556,6563 ****
struct sign
{
sign_T *sn_next; /* next sign in list */
! int sn_typenr; /* type number of sign (negative if not equal
! to name) */
char_u *sn_name; /* name of sign */
char_u *sn_icon; /* name of pixmap */
#ifdef FEAT_SIGN_ICONS
--- 6561,6567 ----
struct sign
{
sign_T *sn_next; /* next sign in list */
! int sn_typenr; /* type number of sign */
char_u *sn_name; /* name of sign */
char_u *sn_icon; /* name of pixmap */
#ifdef FEAT_SIGN_ICONS
*** ../vim-7.3.028/src/testdir/test57.in 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test57.in 2010-10-15 20:12:23.000000000 +0200
***************
*** 53,67 ****
t02: numeric
abc
ab
- a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
--- 53,71 ----
t02: numeric
abc
ab
a321
a123
a122
+ a
+ x-22
b321
b123
+
c123d
+ -24
123b
c321d
+ 0
b322b
b321
b321b
*** ../vim-7.3.028/src/testdir/test57.ok 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test57.ok 2010-10-15 20:11:42.000000000 +0200
***************
*** 21,26 ****
--- 21,30 ----
a
+
+ -24
+ x-22
+ 0
a122
a123
b123
*** ../vim-7.3.028/src/version.c 2010-10-14 21:29:31.000000000 +0200
--- src/version.c 2010-10-15 20:13:52.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 29,
/**/
--
When danger reared its ugly head,
He bravely turned his tail and fled
Yes, Brave Sir Robin turned about
And gallantly he chickened out
Bravely taking to his feet
He beat a very brave retreat
Bravest of the brave Sir Robin
Petrified of being dead
Soiled his pants then brave Sir Robin
Turned away and fled.
"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 ///

View File

@ -1,366 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.030
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.030
Problem: Cannot store Dict and List in viminfo file.
Solution: Add support for this. (Christian Brabandt)
Files: runtime/doc/options.txt, src/eval.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/main.aap, src/testdir/test74.in,
src/testdir/test74.ok
*** ../vim-7.3.029/runtime/doc/options.txt 2010-08-15 21:57:17.000000000 +0200
--- runtime/doc/options.txt 2010-10-20 17:41:18.000000000 +0200
***************
*** 7530,7537 ****
! When included, save and restore global variables that start
with an uppercase letter, and don't contain a lowercase
letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
! and "_K_L_M" are not. Only String and Number types are
! stored.
" Maximum number of lines saved for each register. Old name of
the '<' item, with the disadvantage that you need to put a
backslash before the ", otherwise it will be recognized as the
--- 7530,7538 ----
! When included, save and restore global variables that start
with an uppercase letter, and don't contain a lowercase
letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
! and "_K_L_M" are not. Nested List and Dict items may not be
! read back correctly, you end up with a string representation
! instead.
" Maximum number of lines saved for each register. Old name of
the '<' item, with the disadvantage that you need to put a
backslash before the ", otherwise it will be recognized as the
*** ../vim-7.3.029/src/eval.c 2010-09-14 12:47:30.000000000 +0200
--- src/eval.c 2010-10-20 16:25:54.000000000 +0200
***************
*** 22520,22537 ****
if (tab != NULL)
{
*tab++ = '\0'; /* isolate the variable name */
! if (*tab == 'S') /* string var */
! type = VAR_STRING;
#ifdef FEAT_FLOAT
! else if (*tab == 'F')
! type = VAR_FLOAT;
#endif
tab = vim_strchr(tab, '\t');
if (tab != NULL)
{
tv.v_type = type;
! if (type == VAR_STRING)
tv.vval.v_string = viminfo_readstring(virp,
(int)(tab - virp->vir_line + 1), TRUE);
#ifdef FEAT_FLOAT
--- 22520,22540 ----
if (tab != NULL)
{
*tab++ = '\0'; /* isolate the variable name */
! switch (*tab)
! {
! case 'S': type = VAR_STRING; break;
#ifdef FEAT_FLOAT
! case 'F': type = VAR_FLOAT; break;
#endif
+ case 'D': type = VAR_DICT; break;
+ case 'L': type = VAR_LIST; break;
+ }
tab = vim_strchr(tab, '\t');
if (tab != NULL)
{
tv.v_type = type;
! if (type == VAR_STRING || type == VAR_DICT || type == VAR_LIST)
tv.vval.v_string = viminfo_readstring(virp,
(int)(tab - virp->vir_line + 1), TRUE);
#ifdef FEAT_FLOAT
***************
*** 22540,22548 ****
#endif
else
tv.vval.v_number = atol((char *)tab + 1);
set_var(virp->vir_line + 1, &tv, FALSE);
! if (type == VAR_STRING)
vim_free(tv.vval.v_string);
}
}
}
--- 22543,22569 ----
#endif
else
tv.vval.v_number = atol((char *)tab + 1);
+ if (type == VAR_DICT || type == VAR_LIST)
+ {
+ typval_T *etv = eval_expr(tv.vval.v_string, NULL);
+
+ if (etv == NULL)
+ /* Failed to parse back the dict or list, use it as a
+ * string. */
+ tv.v_type = VAR_STRING;
+ else
+ {
+ vim_free(tv.vval.v_string);
+ tv = *etv;
+ }
+ }
+
set_var(virp->vir_line + 1, &tv, FALSE);
!
! if (tv.v_type == VAR_STRING)
vim_free(tv.vval.v_string);
+ else if (tv.v_type == VAR_DICT || tv.v_type == VAR_LIST)
+ clear_tv(&tv);
}
}
}
***************
*** 22584,22591 ****
case VAR_STRING: s = "STR"; break;
case VAR_NUMBER: s = "NUM"; break;
#ifdef FEAT_FLOAT
! case VAR_FLOAT: s = "FLO"; break;
#endif
default: continue;
}
fprintf(fp, "!%s\t%s\t", this_var->di_key, s);
--- 22605,22614 ----
case VAR_STRING: s = "STR"; break;
case VAR_NUMBER: s = "NUM"; break;
#ifdef FEAT_FLOAT
! case VAR_FLOAT: s = "FLO"; break;
#endif
+ case VAR_DICT: s = "DIC"; break;
+ case VAR_LIST: s = "LIS"; break;
default: continue;
}
fprintf(fp, "!%s\t%s\t", this_var->di_key, s);
*** ../vim-7.3.029/src/testdir/Make_amiga.mak 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/Make_amiga.mak 2010-10-20 16:27:19.000000000 +0200
***************
*** 27,33 ****
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out
.SUFFIXES: .in .out
--- 27,33 ----
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out
.SUFFIXES: .in .out
***************
*** 120,122 ****
--- 120,123 ----
test71.out: test71.in
test72.out: test72.in
test73.out: test73.in
+ test74.out: test74.in
*** ../vim-7.3.029/src/testdir/Make_dos.mak 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/Make_dos.mak 2010-10-20 16:13:35.000000000 +0200
***************
*** 27,33 ****
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
! test68.out test69.out test71.out test72.out test73.out
SCRIPTS32 = test50.out test70.out
--- 27,34 ----
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
! test68.out test69.out test71.out test72.out test73.out \
! test74.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.029/src/testdir/Make_ming.mak 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/Make_ming.mak 2010-10-20 16:26:54.000000000 +0200
***************
*** 47,53 ****
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
! test68.out test69.out test71.out test72.out test72.out
SCRIPTS32 = test50.out test70.out
--- 47,54 ----
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
! test68.out test69.out test71.out test72.out test73.out \
! test74.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.029/src/testdir/Make_os2.mak 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/Make_os2.mak 2010-10-20 16:13:35.000000000 +0200
***************
*** 27,33 ****
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out
.SUFFIXES: .in .out
--- 27,33 ----
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out
.SUFFIXES: .in .out
*** ../vim-7.3.029/src/testdir/Make_vms.mms 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/Make_vms.mms 2010-10-20 16:13:35.000000000 +0200
***************
*** 74,80 ****
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
! test71.out test72.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 74,80 ----
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
! test71.out test72.out test74.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.3.029/src/testdir/Makefile 2010-09-14 12:47:30.000000000 +0200
--- src/testdir/Makefile 2010-10-20 16:13:35.000000000 +0200
***************
*** 10,15 ****
--- 10,16 ----
# This will make testing about 10 times as slow.
# VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$*
+
SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test7.out test8.out test9.out test10.out test11.out \
test12.out test13.out test14.out test15.out test17.out \
***************
*** 23,29 ****
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
! test69.out test70.out test71.out test72.out test73.out
SCRIPTS_GUI = test16.out
--- 24,31 ----
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
! test69.out test70.out test71.out test72.out test73.out \
! test74.out
SCRIPTS_GUI = test16.out
*** ../vim-7.3.029/src/testdir/main.aap 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/main.aap 2010-10-20 16:13:35.000000000 +0200
***************
*** 13,19 ****
test33.out test34.out test35.out test36.out test37.out
test38.out test39.out test40.out test41.out test42.out
test43.out test44.out test45.out test46.out test47.out
! test48.out test49.out
ScriptsGUI = test16.out
--- 13,19 ----
test33.out test34.out test35.out test36.out test37.out
test38.out test39.out test40.out test41.out test42.out
test43.out test44.out test45.out test46.out test47.out
! test48.out test49.out test74.out
ScriptsGUI = test16.out
*** ../vim-7.3.029/src/testdir/test74.in 2010-10-20 17:41:30.000000000 +0200
--- src/testdir/test74.in 2010-10-20 17:37:52.000000000 +0200
***************
*** 0 ****
--- 1,36 ----
+ " Tests for storing global variables in the .viminfo file vim: set ft=vim:
+
+ STARTTEST
+ :so small.vim
+ :" Do all test in a separate window to avoid E211 when we recursively
+ :" delete the Xfind directory during cleanup
+ :"
+ :" This will cause a few errors, do it silently.
+ :set visualbell
+ :set nocp viminfo+=!,nviminfo
+ :let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000}
+ :" store a really long list, so line wrapping will occur in viminfo file
+ :let MY_GLOBAL_LIST=range(1,100)
+ :wv! Xviminfo
+ :unlet MY_GLOBAL_DICT
+ :unlet MY_GLOBAL_LIST
+ :rv! Xviminfo
+ :call delete('Xviminfo')
+ :if exists("MY_GLOBAL_DICT")
+ :redir >> test.out
+ :echo MY_GLOBAL_DICT
+ :redir end
+ :endif
+ :if exists("MY_GLOBAL_LIST")
+ :redir >> test.out
+ :echo MY_GLOBAL_LIST
+ :redir end
+ :endif
+ :redir >> test.out
+ :echo "foobar"
+ :redir end
+ :endif
+ :qa!
+ ENDTEST
+
+ eof
*** ../vim-7.3.029/src/testdir/test74.ok 2010-10-20 17:41:30.000000000 +0200
--- src/testdir/test74.ok 2010-10-20 17:36:57.000000000 +0200
***************
*** 0 ****
--- 1,5 ----
+
+ {'foo': 1, 'longvarible': 1000, 'bar': 0}
+ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
+
+ foobar
*** ../vim-7.3.029/src/version.c 2010-10-15 20:20:00.000000000 +0200
--- src/version.c 2010-10-20 17:23:54.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 30,
/**/
--
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 ///

View File

@ -1,121 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.031
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.031
Problem: Can't pass the X window ID to another application.
Solution: Add v:windowid. (Christian J. Robinson, Lech Lorens)
Files: runtime/doc/eval.txt, src/eval.c, src/gui.c, src/vim.h,
src/os_unix.c
*** ../vim-7.3.030/runtime/doc/eval.txt 2010-08-15 21:57:15.000000000 +0200
--- runtime/doc/eval.txt 2010-10-20 19:11:03.000000000 +0200
***************
*** 1657,1662 ****
--- 1657,1667 ----
*v:warningmsg* *warningmsg-variable*
v:warningmsg Last given warning message. It's allowed to set this variable.
+ *v:windowid* *windowid-variable*
+ v:windowid When any X11 based GUI is running or when running in a
+ terminal and Vim connects to the X server (|-X|) this will be
+ set to the window ID. Otherwise the value is zero.
+
==============================================================================
4. Builtin Functions *functions*
*** ../vim-7.3.030/src/eval.c 2010-10-20 17:44:01.000000000 +0200
--- src/eval.c 2010-10-20 18:48:40.000000000 +0200
***************
*** 362,367 ****
--- 362,368 ----
{VV_NAME("operator", VAR_STRING), VV_RO},
{VV_NAME("searchforward", VAR_NUMBER), 0},
{VV_NAME("oldfiles", VAR_LIST), 0},
+ {VV_NAME("windowid", VAR_NUMBER), VV_RO},
};
/* shorthand */
*** ../vim-7.3.030/src/gui.c 2010-09-29 17:26:57.000000000 +0200
--- src/gui.c 2010-10-20 19:15:56.000000000 +0200
***************
*** 105,112 ****
--- 105,122 ----
#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
if (gui.in_use)
+ {
+ # ifdef FEAT_EVAL
+ Window x11_window;
+ Display *x11_display;
+
+ if (gui_get_x11_windis(&x11_window, &x11_display) == OK)
+ set_vim_var_nr(VV_WINDOWID, (long)x11_window);
+ # endif
+
/* Display error messages in a dialog now. */
display_errors();
+ }
#endif
#if defined(MAY_FORK) && !defined(__QNXNTO__)
*** ../vim-7.3.030/src/vim.h 2010-10-10 17:08:28.000000000 +0200
--- src/vim.h 2010-10-20 18:48:40.000000000 +0200
***************
*** 1842,1848 ****
#define VV_OP 52
#define VV_SEARCHFORWARD 53
#define VV_OLDFILES 54
! #define VV_LEN 55 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
--- 1842,1849 ----
#define VV_OP 52
#define VV_SEARCHFORWARD 53
#define VV_OLDFILES 54
! #define VV_WINDOWID 55
! #define VV_LEN 56 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
*** ../vim-7.3.030/src/os_unix.c 2010-10-13 16:22:05.000000000 +0200
--- src/os_unix.c 2010-10-20 19:15:46.000000000 +0200
***************
*** 1738,1743 ****
--- 1738,1748 ----
}
if (x11_window == 0 || x11_display == NULL)
return (result = FAIL);
+
+ # ifdef FEAT_EVAL
+ set_vim_var_nr(VV_WINDOWID, (long)x11_window);
+ # endif
+
return (result = OK);
}
*** ../vim-7.3.030/src/version.c 2010-10-20 17:44:01.000000000 +0200
--- src/version.c 2010-10-20 19:11:31.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 31,
/**/
--
What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics'
meaning 'bloodsucking creatures'.
/// 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 ///

View File

@ -1,704 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.032
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.032
Problem: maparg() doesn't return the flags, such as <buffer>, <script>,
<silent>. These are needed to save and restore a mapping.
Solution: Improve maparg(). (also by Christian Brabandt)
Files: runtime/doc/eval.txt, src/eval.c, src/getchar.c, src/gui_w48.c, src/message.c, src/proto/getchar.pro, src/proto/message.pro, src/structs.h src/testdir/test75.in, src/testdir/test75.ok
*** ../vim-7.3.031/runtime/doc/eval.txt 2010-10-20 19:17:43.000000000 +0200
--- runtime/doc/eval.txt 2010-10-20 19:44:41.000000000 +0200
***************
*** 1827,1833 ****
log( {expr}) Float natural logarithm (base e) of {expr}
log10( {expr}) Float logarithm of Float {expr} to base 10
map( {expr}, {string}) List/Dict change each item in {expr} to {expr}
! maparg( {name}[, {mode} [, {abbr}]])
String rhs of mapping {name} in mode {mode}
mapcheck( {name}[, {mode} [, {abbr}]])
String check for mappings matching {name}
--- 1827,1833 ----
log( {expr}) Float natural logarithm (base e) of {expr}
log10( {expr}) Float logarithm of Float {expr} to base 10
map( {expr}, {string}) List/Dict change each item in {expr} to {expr}
! maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
String rhs of mapping {name} in mode {mode}
mapcheck( {name}[, {mode} [, {abbr}]])
String check for mappings matching {name}
***************
*** 3971,3993 ****
further items in {expr} are processed.
! maparg({name}[, {mode} [, {abbr}]]) *maparg()*
! Return the rhs of mapping {name} in mode {mode}. When there
! is no mapping for {name}, an empty String is returned.
{mode} can be one of these strings:
"n" Normal
! "v" Visual
"o" Operator-pending
"i" Insert
"c" Cmd-line
"l" langmap |language-mapping|
"" Normal, Visual and Operator-pending
When {mode} is omitted, the modes for "" are used.
When {abbr} is there and it is non-zero use abbreviations
instead of mappings.
! The {name} can have special key names, like in the ":map"
! command. The returned String has special characters
! translated like in the output of the ":map" command listing.
The mappings local to the current buffer are checked first,
then the global mappings.
This function can be used to map a key even when it's already
--- 3972,4022 ----
further items in {expr} are processed.
! maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
! When {dict} is omitted or zero: Return the rhs of mapping
! {name} in mode {mode}. The returned String has special
! characters translated like in the output of the ":map" command
! listing.
!
! When there is no mapping for {name}, an empty String is
! returned.
!
! The {name} can have special key names, like in the ":map"
! command.
!
{mode} can be one of these strings:
"n" Normal
! "v" Visual (including Select)
"o" Operator-pending
"i" Insert
"c" Cmd-line
+ "s" Select
+ "x" Visual
"l" langmap |language-mapping|
"" Normal, Visual and Operator-pending
When {mode} is omitted, the modes for "" are used.
+
When {abbr} is there and it is non-zero use abbreviations
instead of mappings.
!
! When {dict} is there and it is non-zero return a dictionary
! containing all the information of the mapping with the
! following items:
! "lhs" The {lhs} of the mapping.
! "rhs" The {rhs} of the mapping as typed.
! "silent" 1 for a |:map-silent| mapping, else 0.
! "noremap" 1 if the {rhs} of the mapping is remappable.
! "expr" 1 for an expression mapping (|:map-<expr>|).
! "buffer" 1 for a buffer local mapping (|:map-local|).
! "mode" Modes for which the mapping is defined. In
! addition to the modes mentioned above, these
! characters will be used:
! " " Normal, Visual and Operator-pending
! "!" Insert and Commandline mode
! (|mapmpde-ic|)
! "sid" the Script local ID, used for <sid> mappings
! (|<SID>|)
!
The mappings local to the current buffer are checked first,
then the global mappings.
This function can be used to map a key even when it's already
*** ../vim-7.3.031/src/eval.c 2010-10-20 19:17:43.000000000 +0200
--- src/eval.c 2010-10-20 21:15:55.000000000 +0200
***************
*** 7804,7810 ****
{"log10", 1, 1, f_log10},
#endif
{"map", 2, 2, f_map},
! {"maparg", 1, 3, f_maparg},
{"mapcheck", 1, 3, f_mapcheck},
{"match", 2, 4, f_match},
{"matchadd", 2, 4, f_matchadd},
--- 7804,7810 ----
{"log10", 1, 1, f_log10},
#endif
{"map", 2, 2, f_map},
! {"maparg", 1, 4, f_maparg},
{"mapcheck", 1, 3, f_mapcheck},
{"match", 2, 4, f_match},
{"matchadd", 2, 4, f_matchadd},
***************
*** 13292,13299 ****
char_u *keys_buf = NULL;
char_u *rhs;
int mode;
- garray_T ga;
int abbr = FALSE;
/* return empty string for failure */
rettv->v_type = VAR_STRING;
--- 13292,13301 ----
char_u *keys_buf = NULL;
char_u *rhs;
int mode;
int abbr = FALSE;
+ int get_dict = FALSE;
+ mapblock_T *mp;
+ int buffer_local;
/* return empty string for failure */
rettv->v_type = VAR_STRING;
***************
*** 13307,13313 ****
--- 13309,13319 ----
{
which = get_tv_string_buf_chk(&argvars[1], buf);
if (argvars[2].v_type != VAR_UNKNOWN)
+ {
abbr = get_tv_number(&argvars[2]);
+ if (argvars[3].v_type != VAR_UNKNOWN)
+ get_dict = get_tv_number(&argvars[3]);
+ }
}
else
which = (char_u *)"";
***************
*** 13317,13335 ****
mode = get_map_mode(&which, 0);
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, FALSE);
! rhs = check_map(keys, mode, exact, FALSE, abbr);
vim_free(keys_buf);
- if (rhs != NULL)
- {
- ga_init(&ga);
- ga.ga_itemsize = 1;
- ga.ga_growsize = 40;
! while (*rhs != NUL)
! ga_concat(&ga, str2special(&rhs, FALSE));
! ga_append(&ga, NUL);
! rettv->vval.v_string = (char_u *)ga.ga_data;
}
}
--- 13323,13356 ----
mode = get_map_mode(&which, 0);
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, FALSE);
! rhs = check_map(keys, mode, exact, FALSE, abbr, &mp, &buffer_local);
vim_free(keys_buf);
! if (!get_dict)
! {
! /* Return a string. */
! if (rhs != NULL)
! rettv->vval.v_string = str2special_save(rhs, FALSE);
!
! }
! else if (rettv_dict_alloc(rettv) != FAIL && rhs != NULL)
! {
! /* Return a dictionary. */
! char_u *lhs = str2special_save(mp->m_keys, TRUE);
! char_u *mapmode = map_mode_to_chars(mp->m_mode);
! dict_T *dict = rettv->vval.v_dict;
!
! dict_add_nr_str(dict, "lhs", 0L, lhs);
! dict_add_nr_str(dict, "rhs", 0L, mp->m_orig_str);
! dict_add_nr_str(dict, "noremap", mp->m_noremap ? 1L : 0L , NULL);
! dict_add_nr_str(dict, "expr", mp->m_expr ? 1L : 0L, NULL);
! dict_add_nr_str(dict, "silent", mp->m_silent ? 1L : 0L, NULL);
! dict_add_nr_str(dict, "sid", (long)mp->m_script_ID, NULL);
! dict_add_nr_str(dict, "buffer", (long)buffer_local, NULL);
! dict_add_nr_str(dict, "mode", 0L, mapmode);
! vim_free(lhs);
! vim_free(mapmode);
}
}
*** ../vim-7.3.031/src/getchar.c 2010-08-15 21:57:25.000000000 +0200
--- src/getchar.c 2010-10-20 21:16:24.000000000 +0200
***************
*** 3168,3173 ****
--- 3168,3174 ----
int expr = FALSE;
#endif
int noremap;
+ char_u *orig_rhs;
keys = arg;
map_table = maphash;
***************
*** 3266,3271 ****
--- 3267,3273 ----
}
if (*p != NUL)
*p++ = NUL;
+
p = skipwhite(p);
rhs = p;
hasarg = (*rhs != NUL);
***************
*** 3290,3295 ****
--- 3292,3298 ----
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
if (hasarg)
{
+ orig_rhs = rhs;
if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
rhs = (char_u *)"";
else
***************
*** 3298,3304 ****
#ifdef FEAT_FKMAP
/*
! * when in right-to-left mode and alternate keymap option set,
* reverse the character flow in the rhs in Farsi.
*/
if (p_altkeymap && curwin->w_p_rl)
--- 3301,3307 ----
#ifdef FEAT_FKMAP
/*
! * When in right-to-left mode and alternate keymap option set,
* reverse the character flow in the rhs in Farsi.
*/
if (p_altkeymap && curwin->w_p_rl)
***************
*** 3556,3561 ****
--- 3559,3566 ----
}
vim_free(mp->m_str);
mp->m_str = newstr;
+ vim_free(mp->m_orig_str);
+ mp->m_orig_str = vim_strsave(orig_rhs);
mp->m_noremap = noremap;
mp->m_silent = silent;
mp->m_mode = mode;
***************
*** 3633,3642 ****
--- 3638,3649 ----
mp->m_keys = vim_strsave(keys);
mp->m_str = vim_strsave(rhs);
+ mp->m_orig_str = vim_strsave(orig_rhs);
if (mp->m_keys == NULL || mp->m_str == NULL)
{
vim_free(mp->m_keys);
vim_free(mp->m_str);
+ vim_free(mp->m_orig_str);
vim_free(mp);
retval = 4; /* no mem */
goto theend;
***************
*** 3682,3687 ****
--- 3689,3695 ----
mp = *mpp;
vim_free(mp->m_keys);
vim_free(mp->m_str);
+ vim_free(mp->m_orig_str);
*mpp = mp->m_next;
vim_free(mp);
}
***************
*** 3851,3862 ****
}
}
static void
showmap(mp, local)
mapblock_T *mp;
int local; /* TRUE for buffer-local map */
{
! int len = 1;
if (msg_didout || msg_silent != 0)
{
--- 3859,3915 ----
}
}
+ /*
+ * Return characters to represent the map mode in an allocated string.
+ * Returns NULL when out of memory.
+ */
+ char_u *
+ map_mode_to_chars(mode)
+ int mode;
+ {
+ garray_T mapmode;
+
+ ga_init2(&mapmode, 1, 7);
+
+ if ((mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
+ ga_append(&mapmode, '!'); /* :map! */
+ else if (mode & INSERT)
+ ga_append(&mapmode, 'i'); /* :imap */
+ else if (mode & LANGMAP)
+ ga_append(&mapmode, 'l'); /* :lmap */
+ else if (mode & CMDLINE)
+ ga_append(&mapmode, 'c'); /* :cmap */
+ else if ((mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
+ == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
+ ga_append(&mapmode, ' '); /* :map */
+ else
+ {
+ if (mode & NORMAL)
+ ga_append(&mapmode, 'n'); /* :nmap */
+ if (mode & OP_PENDING)
+ ga_append(&mapmode, 'o'); /* :omap */
+ if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
+ ga_append(&mapmode, 'v'); /* :vmap */
+ else
+ {
+ if (mode & VISUAL)
+ ga_append(&mapmode, 'x'); /* :xmap */
+ if (mode & SELECTMODE)
+ ga_append(&mapmode, 's'); /* :smap */
+ }
+ }
+
+ ga_append(&mapmode, NUL);
+ return (char_u *)mapmode.ga_data;
+ }
+
static void
showmap(mp, local)
mapblock_T *mp;
int local; /* TRUE for buffer-local map */
{
! int len = 1;
! char_u *mapchars;
if (msg_didout || msg_silent != 0)
{
***************
*** 3864,3912 ****
if (got_int) /* 'q' typed at MORE prompt */
return;
}
! if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
! msg_putchar('!'); /* :map! */
! else if (mp->m_mode & INSERT)
! msg_putchar('i'); /* :imap */
! else if (mp->m_mode & LANGMAP)
! msg_putchar('l'); /* :lmap */
! else if (mp->m_mode & CMDLINE)
! msg_putchar('c'); /* :cmap */
! else if ((mp->m_mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
! == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
! msg_putchar(' '); /* :map */
! else
{
! len = 0;
! if (mp->m_mode & NORMAL)
! {
! msg_putchar('n'); /* :nmap */
! ++len;
! }
! if (mp->m_mode & OP_PENDING)
! {
! msg_putchar('o'); /* :omap */
! ++len;
! }
! if ((mp->m_mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
! {
! msg_putchar('v'); /* :vmap */
! ++len;
! }
! else
! {
! if (mp->m_mode & VISUAL)
! {
! msg_putchar('x'); /* :xmap */
! ++len;
! }
! if (mp->m_mode & SELECTMODE)
! {
! msg_putchar('s'); /* :smap */
! ++len;
! }
! }
}
while (++len <= 3)
msg_putchar(' ');
--- 3917,3931 ----
if (got_int) /* 'q' typed at MORE prompt */
return;
}
!
! mapchars = map_mode_to_chars(mp->m_mode);
! if (mapchars != NULL)
{
! msg_puts(mapchars);
! len = STRLEN(mapchars);
! vim_free(mapchars);
}
+
while (++len <= 3)
msg_putchar(' ');
***************
*** 3931,3938 ****
msg_putchar(' ');
/* Use FALSE below if we only want things like <Up> to show up as such on
! * the rhs, and not M-x etc, TRUE gets both -- webb
! */
if (*mp->m_str == NUL)
msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
else
--- 3950,3956 ----
msg_putchar(' ');
/* Use FALSE below if we only want things like <Up> to show up as such on
! * the rhs, and not M-x etc, TRUE gets both -- webb */
if (*mp->m_str == NUL)
msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
else
***************
*** 4995,5013 ****
sourcing_name = save_name;
}
! #ifdef FEAT_EVAL
/*
! * Check the string "keys" against the lhs of all mappings
! * Return pointer to rhs of mapping (mapblock->m_str)
! * NULL otherwise
*/
char_u *
! check_map(keys, mode, exact, ign_mod, abbr)
char_u *keys;
int mode;
int exact; /* require exact match */
int ign_mod; /* ignore preceding modifier */
int abbr; /* do abbreviations */
{
int hash;
int len, minlen;
--- 5013,5033 ----
sourcing_name = save_name;
}
! #if defined(FEAT_EVAL) || defined(PROTO)
/*
! * Check the string "keys" against the lhs of all mappings.
! * Return pointer to rhs of mapping (mapblock->m_str).
! * NULL when no mapping found.
*/
char_u *
! check_map(keys, mode, exact, ign_mod, abbr, mp_ptr, local_ptr)
char_u *keys;
int mode;
int exact; /* require exact match */
int ign_mod; /* ignore preceding modifier */
int abbr; /* do abbreviations */
+ mapblock_T **mp_ptr; /* return: pointer to mapblock or NULL */
+ int *local_ptr; /* return: buffer-local mapping or NULL */
{
int hash;
int len, minlen;
***************
*** 5062,5068 ****
--- 5082,5094 ----
minlen = mp->m_keylen - 3;
}
if (STRNCMP(s, keys, minlen) == 0)
+ {
+ if (mp_ptr != NULL)
+ *mp_ptr = mp;
+ if (local_ptr != NULL)
+ *local_ptr = local;
return mp->m_str;
+ }
}
}
}
*** ../vim-7.3.031/src/gui_w48.c 2010-08-15 21:57:29.000000000 +0200
--- src/gui_w48.c 2010-10-20 20:29:20.000000000 +0200
***************
*** 1810,1816 ****
* mapped we want to use the mapping instead. */
if (vk == VK_F10
&& gui.menu_is_active
! && check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
break;
#endif
if (GetKeyState(VK_SHIFT) & 0x8000)
--- 1810,1817 ----
* mapped we want to use the mapping instead. */
if (vk == VK_F10
&& gui.menu_is_active
! && check_map(k10, State, FALSE, TRUE, FALSE,
! NULL, NULL) == NULL)
break;
#endif
if (GetKeyState(VK_SHIFT) & 0x8000)
***************
*** 1924,1930 ****
/* Check for <F10>: Default effect is to select the menu. When <F10> is
* mapped we need to stop it here to avoid strange effects (e.g., for the
* key-up event) */
! if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
#endif
DispatchMessage(&msg);
}
--- 1925,1932 ----
/* Check for <F10>: Default effect is to select the menu. When <F10> is
* mapped we need to stop it here to avoid strange effects (e.g., for the
* key-up event) */
! if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
! NULL, NULL) == NULL)
#endif
DispatchMessage(&msg);
}
*** ../vim-7.3.031/src/message.c 2010-08-15 21:57:29.000000000 +0200
--- src/message.c 2010-10-20 20:31:33.000000000 +0200
***************
*** 1477,1482 ****
--- 1477,1503 ----
return retval;
}
+ #if defined(FEAT_EVAL) || defined(PROTO)
+ /*
+ * Return the lhs or rhs of a mapping, with the key codes turned into printable
+ * strings, in an allocated string.
+ */
+ char_u *
+ str2special_save(str, is_lhs)
+ char_u *str;
+ int is_lhs; /* TRUE for lhs, FALSE for rhs */
+ {
+ garray_T ga;
+ char_u *p = str;
+
+ ga_init2(&ga, 1, 40);
+ while (*p != NUL)
+ ga_concat(&ga, str2special(&p, is_lhs));
+ ga_append(&ga, NUL);
+ return (char_u *)ga.ga_data;
+ }
+ #endif
+
/*
* Return the printable string for the key codes at "*sp".
* Used for translating the lhs or rhs of a mapping to printable chars.
*** ../vim-7.3.031/src/proto/getchar.pro 2010-08-15 21:57:28.000000000 +0200
--- src/proto/getchar.pro 2010-10-20 21:06:01.000000000 +0200
***************
*** 51,56 ****
--- 51,57 ----
int get_map_mode __ARGS((char_u **cmdp, int forceit));
void map_clear __ARGS((char_u *cmdp, char_u *arg, int forceit, int abbr));
void map_clear_int __ARGS((buf_T *buf, int mode, int local, int abbr));
+ char_u *map_mode_to_chars __ARGS((int mode));
int map_to_exists __ARGS((char_u *str, char_u *modechars, int abbr));
int map_to_exists_mode __ARGS((char_u *rhs, int mode, int abbr));
char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx));
***************
*** 61,67 ****
int makemap __ARGS((FILE *fd, buf_T *buf));
int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
void check_map_keycodes __ARGS((void));
! char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr));
void init_mappings __ARGS((void));
void add_map __ARGS((char_u *map, int mode));
/* vim: set ft=c : */
--- 62,68 ----
int makemap __ARGS((FILE *fd, buf_T *buf));
int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
void check_map_keycodes __ARGS((void));
! char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr));
void init_mappings __ARGS((void));
void add_map __ARGS((char_u *map, int mode));
/* vim: set ft=c : */
*** ../vim-7.3.031/src/proto/message.pro 2010-08-15 21:57:28.000000000 +0200
--- src/proto/message.pro 2010-10-20 20:31:25.000000000 +0200
***************
*** 33,38 ****
--- 33,39 ----
int msg_outtrans_len_attr __ARGS((char_u *msgstr, int len, int attr));
void msg_make __ARGS((char_u *arg));
int msg_outtrans_special __ARGS((char_u *strstart, int from));
+ char_u *str2special_save __ARGS((char_u *str, int is_lhs));
char_u *str2special __ARGS((char_u **sp, int from));
void str2specialbuf __ARGS((char_u *sp, char_u *buf, int len));
void msg_prt_line __ARGS((char_u *s, int list));
*** ../vim-7.3.031/src/structs.h 2010-08-15 21:57:28.000000000 +0200
--- src/structs.h 2010-10-20 20:23:38.000000000 +0200
***************
*** 979,987 ****
struct mapblock
{
mapblock_T *m_next; /* next mapblock in list */
! char_u *m_keys; /* mapped from */
int m_keylen; /* strlen(m_keys) */
! char_u *m_str; /* mapped to */
int m_mode; /* valid mode */
int m_noremap; /* if non-zero no re-mapping for m_str */
char m_silent; /* <silent> used, don't echo commands */
--- 979,988 ----
struct mapblock
{
mapblock_T *m_next; /* next mapblock in list */
! char_u *m_keys; /* mapped from, lhs */
int m_keylen; /* strlen(m_keys) */
! char_u *m_str; /* mapped to, rhs */
! char_u *m_orig_str; /* rhs as entered by the user */
int m_mode; /* valid mode */
int m_noremap; /* if non-zero no re-mapping for m_str */
char m_silent; /* <silent> used, don't echo commands */
*** ../vim-7.3.031/src/testdir/test75.in 2010-10-20 21:13:30.000000000 +0200
--- src/testdir/test75.in 2010-10-20 20:54:04.000000000 +0200
***************
*** 0 ****
--- 1,16 ----
+ " Tests for functions.
+
+ STARTTEST
+ :so small.vim
+ :" Test maparg() with a string result
+ :map foo<C-V> is<F4>foo
+ :vnoremap <script> <buffer> <expr> <silent> bar isbar
+ :call append('$', maparg('foo<C-V>'))
+ :call append('$', string(maparg('foo<C-V>', '', 0, 1)))
+ :call append('$', string(maparg('bar', '', 0, 1)))
+ :"
+ :/^eof/+1,$w! test.out
+ :qa!
+ ENDTEST
+
+ eof
*** ../vim-7.3.031/src/testdir/test75.ok 2010-10-20 21:13:30.000000000 +0200
--- src/testdir/test75.ok 2010-10-20 20:54:08.000000000 +0200
***************
*** 0 ****
--- 1,3 ----
+ is<F4>foo
+ {'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
+ {'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
*** ../vim-7.3.031/src/version.c 2010-10-20 19:17:43.000000000 +0200
--- src/version.c 2010-10-20 21:13:18.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 32,
/**/
--
Not too long ago, compress was something you did to garbage...
/// 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 ///

View File

@ -1,49 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.033
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.033 (after 7.3.032)
Problem: Can't build without FEAT_LOCALMAP.
Solution: Add an #ifdef. (John Marriott)
Files: src/getchar.c
*** ../vim-7.3.032/src/getchar.c 2010-10-20 21:22:17.000000000 +0200
--- src/getchar.c 2010-10-22 22:09:40.000000000 +0200
***************
*** 5086,5092 ****
--- 5086,5096 ----
if (mp_ptr != NULL)
*mp_ptr = mp;
if (local_ptr != NULL)
+ #ifdef FEAT_LOCALMAP
*local_ptr = local;
+ #else
+ *local_ptr = 0;
+ #endif
return mp->m_str;
}
}
*** ../vim-7.3.032/src/version.c 2010-10-20 21:22:17.000000000 +0200
--- src/version.c 2010-10-22 21:18:30.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 33,
/**/
--
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 ///

View File

@ -1,431 +0,0 @@
To: vim-dev@vim.org
Subject: Patch 7.3.034
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.034
Problem: Win32: may be loading .dll from the wrong directory.
Solution: Go to the Vim executable directory when opening a library.
Files: src/gui_w32.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs,
src/if_python.c, src/if_python3.c, src/if_ruby.c, src/mbyte.c,
src/os_mswin.c, src/os_win32.c, src/proto/os_win32.pro
*** ../vim-7.3.033/src/gui_w32.c 2010-08-15 21:57:25.000000000 +0200
--- src/gui_w32.c 2010-10-22 21:49:27.000000000 +0200
***************
*** 1260,1266 ****
/* try and load the user32.dll library and get the entry points for
* multi-monitor-support. */
! if ((user32_lib = LoadLibrary("User32.dll")) != NULL)
{
pMonitorFromWindow = (TMonitorFromWindow)GetProcAddress(user32_lib,
"MonitorFromWindow");
--- 1260,1266 ----
/* try and load the user32.dll library and get the entry points for
* multi-monitor-support. */
! if ((user32_lib = vimLoadLib("User32.dll")) != NULL)
{
pMonitorFromWindow = (TMonitorFromWindow)GetProcAddress(user32_lib,
"MonitorFromWindow");
***************
*** 4188,4194 ****
static void
dyn_imm_load(void)
{
! hLibImm = LoadLibrary("imm32.dll");
if (hLibImm == NULL)
return;
--- 4188,4194 ----
static void
dyn_imm_load(void)
{
! hLibImm = vimLoadLib("imm32.dll");
if (hLibImm == NULL)
return;
*** ../vim-7.3.033/src/if_lua.c 2010-08-15 21:57:28.000000000 +0200
--- src/if_lua.c 2010-10-22 21:49:39.000000000 +0200
***************
*** 49,55 ****
# define symbol_from_dll dlsym
# define close_dll dlclose
#else
! # define load_dll LoadLibrary
# define symbol_from_dll GetProcAddress
# define close_dll FreeLibrary
#endif
--- 49,55 ----
# define symbol_from_dll dlsym
# define close_dll dlclose
#else
! # define load_dll vimLoadLib
# define symbol_from_dll GetProcAddress
# define close_dll FreeLibrary
#endif
*** ../vim-7.3.033/src/if_mzsch.c 2010-08-15 21:57:32.000000000 +0200
--- src/if_mzsch.c 2010-10-22 21:49:53.000000000 +0200
***************
*** 556,563 ****
if (hMzGC && hMzSch)
return OK;
! hMzSch = LoadLibrary(sch_dll);
! hMzGC = LoadLibrary(gc_dll);
if (!hMzSch)
{
--- 556,563 ----
if (hMzGC && hMzSch)
return OK;
! hMzSch = vimLoadLib(sch_dll);
! hMzGC = vimLoadLib(gc_dll);
if (!hMzSch)
{
*** ../vim-7.3.033/src/if_perl.xs 2010-08-15 21:57:30.000000000 +0200
--- src/if_perl.xs 2010-10-22 21:53:06.000000000 +0200
***************
*** 106,112 ****
#define close_dll dlclose
#else
#define PERL_PROC FARPROC
! #define load_dll LoadLibrary
#define symbol_from_dll GetProcAddress
#define close_dll FreeLibrary
#endif
--- 106,112 ----
#define close_dll dlclose
#else
#define PERL_PROC FARPROC
! #define load_dll vimLoadLib
#define symbol_from_dll GetProcAddress
#define close_dll FreeLibrary
#endif
*** ../vim-7.3.033/src/if_python.c 2010-08-15 21:57:28.000000000 +0200
--- src/if_python.c 2010-10-22 21:49:57.000000000 +0200
***************
*** 110,116 ****
# define close_dll dlclose
# define symbol_from_dll dlsym
# else
! # define load_dll LoadLibrary
# define close_dll FreeLibrary
# define symbol_from_dll GetProcAddress
# endif
--- 110,116 ----
# define close_dll dlclose
# define symbol_from_dll dlsym
# else
! # define load_dll vimLoadLib
# define close_dll FreeLibrary
# define symbol_from_dll GetProcAddress
# endif
*** ../vim-7.3.033/src/if_python3.c 2010-08-15 21:57:28.000000000 +0200
--- src/if_python3.c 2010-10-22 21:50:01.000000000 +0200
***************
*** 88,94 ****
# define close_dll dlclose
# define symbol_from_dll dlsym
# else
! # define load_dll LoadLibrary
# define close_dll FreeLibrary
# define symbol_from_dll GetProcAddress
# endif
--- 88,94 ----
# define close_dll dlclose
# define symbol_from_dll dlsym
# else
! # define load_dll vimLoadLib
# define close_dll FreeLibrary
# define symbol_from_dll GetProcAddress
# endif
*** ../vim-7.3.033/src/if_ruby.c 2010-09-29 13:02:48.000000000 +0200
--- src/if_ruby.c 2010-10-22 21:50:04.000000000 +0200
***************
*** 55,61 ****
# define symbol_from_dll dlsym
# define close_dll dlclose
#else
! # define load_dll LoadLibrary
# define symbol_from_dll GetProcAddress
# define close_dll FreeLibrary
#endif
--- 55,61 ----
# define symbol_from_dll dlsym
# define close_dll dlclose
#else
! # define load_dll vimLoadLib
# define symbol_from_dll GetProcAddress
# define close_dll FreeLibrary
#endif
*** ../vim-7.3.033/src/mbyte.c 2010-09-18 13:36:41.000000000 +0200
--- src/mbyte.c 2010-10-22 21:50:09.000000000 +0200
***************
*** 4159,4169 ****
{
if (hIconvDLL != 0 && hMsvcrtDLL != 0)
return TRUE;
! hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL);
if (hIconvDLL == 0) /* sometimes it's called libiconv.dll */
! hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL_ALT);
if (hIconvDLL != 0)
! hMsvcrtDLL = LoadLibrary(DYNAMIC_MSVCRT_DLL);
if (hIconvDLL == 0 || hMsvcrtDLL == 0)
{
/* Only give the message when 'verbose' is set, otherwise it might be
--- 4159,4169 ----
{
if (hIconvDLL != 0 && hMsvcrtDLL != 0)
return TRUE;
! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL);
if (hIconvDLL == 0) /* sometimes it's called libiconv.dll */
! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT);
if (hIconvDLL != 0)
! hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL);
if (hIconvDLL == 0 || hMsvcrtDLL == 0)
{
/* Only give the message when 'verbose' is set, otherwise it might be
*** ../vim-7.3.033/src/os_mswin.c 2010-08-15 21:57:29.000000000 +0200
--- src/os_mswin.c 2010-10-22 22:03:26.000000000 +0200
***************
*** 817,823 ****
--- 817,827 ----
BOOL fRunTimeLinkSuccess = FALSE;
// Get a handle to the DLL module.
+ # ifdef WIN16
hinstLib = LoadLibrary(libname);
+ # else
+ hinstLib = vimLoadLib(libname);
+ # endif
// If the handle is valid, try to get the function address.
if (hinstLib != NULL)
*** ../vim-7.3.033/src/os_win32.c 2010-10-13 20:37:37.000000000 +0200
--- src/os_win32.c 2010-10-23 13:16:55.000000000 +0200
***************
*** 206,247 ****
static int suppress_winsize = 1; /* don't fiddle with console */
#endif
static void
get_exe_name(void)
{
! char temp[256];
! static int did_set_PATH = FALSE;
if (exe_name == NULL)
{
/* store the name of the executable, may be used for $VIM */
! GetModuleFileName(NULL, temp, 255);
if (*temp != NUL)
exe_name = FullName_save((char_u *)temp, FALSE);
}
! if (!did_set_PATH && exe_name != NULL)
{
! char_u *p;
! char_u *newpath;
!
! /* Append our starting directory to $PATH, so that when doing "!xxd"
! * it's found in our starting directory. Needed because SearchPath()
! * also looks there. */
! p = mch_getenv("PATH");
! newpath = alloc((unsigned)(STRLEN(p) + STRLEN(exe_name) + 2));
! if (newpath != NULL)
! {
! STRCPY(newpath, p);
! STRCAT(newpath, ";");
! vim_strncpy(newpath + STRLEN(newpath), exe_name,
! gettail_sep(exe_name) - exe_name);
! vim_setenv((char_u *)"PATH", newpath);
! vim_free(newpath);
}
! did_set_PATH = TRUE;
}
}
#if defined(DYNAMIC_GETTEXT) || defined(PROTO)
--- 206,268 ----
static int suppress_winsize = 1; /* don't fiddle with console */
#endif
+ static char_u *exe_path = NULL;
+
static void
get_exe_name(void)
{
! char temp[MAXPATHL];
! char_u *p;
if (exe_name == NULL)
{
/* store the name of the executable, may be used for $VIM */
! GetModuleFileName(NULL, temp, MAXPATHL - 1);
if (*temp != NUL)
exe_name = FullName_save((char_u *)temp, FALSE);
}
! if (exe_path == NULL && exe_name != NULL)
{
! exe_path = vim_strnsave(exe_name, gettail_sep(exe_name) - exe_name);
! if (exe_path != NULL)
! {
! /* Append our starting directory to $PATH, so that when doing
! * "!xxd" it's found in our starting directory. Needed because
! * SearchPath() also looks there. */
! p = mch_getenv("PATH");
! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL);
! {
! STRCPY(temp, p);
! STRCAT(temp, ";");
! STRCAT(temp, exe_path);
! vim_setenv((char_u *)"PATH", temp);
! }
}
+ }
+ }
+
+ /*
+ * Load library "name".
+ */
+ HINSTANCE
+ vimLoadLib(char *name)
+ {
+ HINSTANCE dll = NULL;
+ char old_dir[MAXPATHL];
! if (exe_path == NULL)
! get_exe_name();
! if (exe_path != NULL && mch_dirname(old_dir, MAXPATHL) == OK)
! {
! /* Change directory to where the executable is, both to make sure we
! * find a .dll there and to avoid looking for a .dll in the current
! * directory. */
! mch_chdir(exe_path);
! dll = LoadLibrary(name);
! mch_chdir(old_dir);
}
+ return dll;
}
#if defined(DYNAMIC_GETTEXT) || defined(PROTO)
***************
*** 254,260 ****
static char *null_libintl_bindtextdomain(const char *, const char *);
static char *null_libintl_bind_textdomain_codeset(const char *, const char *);
! static HINSTANCE hLibintlDLL = 0;
char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
char *(*dyn_libintl_bindtextdomain)(const char *, const char *)
--- 275,281 ----
static char *null_libintl_bindtextdomain(const char *, const char *);
static char *null_libintl_bind_textdomain_codeset(const char *, const char *);
! static HINSTANCE hLibintlDLL = NULL;
char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
char *(*dyn_libintl_bindtextdomain)(const char *, const char *)
***************
*** 282,307 ****
if (hLibintlDLL)
return 1;
/* Load gettext library (libintl.dll) */
! hLibintlDLL = LoadLibrary(libname != NULL ? libname : GETTEXT_DLL);
if (!hLibintlDLL)
{
! char_u dirname[_MAX_PATH];
!
! /* Try using the path from gvim.exe to find the .dll there. */
! get_exe_name();
! STRCPY(dirname, exe_name);
! STRCPY(gettail(dirname), GETTEXT_DLL);
! hLibintlDLL = LoadLibrary((char *)dirname);
! if (!hLibintlDLL)
{
! if (p_verbose > 0)
! {
! verbose_enter();
! EMSG2(_(e_loadlib), GETTEXT_DLL);
! verbose_leave();
! }
! return 0;
}
}
for (i = 0; libintl_entry[i].name != NULL
&& libintl_entry[i].ptr != NULL; ++i)
--- 303,318 ----
if (hLibintlDLL)
return 1;
/* Load gettext library (libintl.dll) */
! hLibintlDLL = vimLoadLib(libname != NULL ? libname : GETTEXT_DLL);
if (!hLibintlDLL)
{
! if (p_verbose > 0)
{
! verbose_enter();
! EMSG2(_(e_loadlib), GETTEXT_DLL);
! verbose_leave();
}
+ return 0;
}
for (i = 0; libintl_entry[i].name != NULL
&& libintl_entry[i].ptr != NULL; ++i)
***************
*** 430,436 ****
* Seems like a lot of overhead to load/unload ADVAPI32.DLL each
* time we verify security...
*/
! advapi_lib = LoadLibrary("ADVAPI32.DLL");
if (advapi_lib != NULL)
{
pSetNamedSecurityInfo = (PSNSECINFO)GetProcAddress(advapi_lib,
--- 441,447 ----
* Seems like a lot of overhead to load/unload ADVAPI32.DLL each
* time we verify security...
*/
! advapi_lib = vimLoadLib("ADVAPI32.DLL");
if (advapi_lib != NULL)
{
pSetNamedSecurityInfo = (PSNSECINFO)GetProcAddress(advapi_lib,
*** ../vim-7.3.033/src/proto/os_win32.pro 2010-08-15 21:57:28.000000000 +0200
--- src/proto/os_win32.pro 2010-10-22 22:05:35.000000000 +0200
***************
*** 1,4 ****
--- 1,5 ----
/* os_win32.c */
+ HINSTANCE vimLoadLib __ARGS((char *name));
int dyn_libintl_init __ARGS((char *libname));
void dyn_libintl_end __ARGS((void));
void PlatformId __ARGS((void));
*** ../vim-7.3.033/src/version.c 2010-10-22 22:13:47.000000000 +0200
--- src/version.c 2010-10-23 13:55:21.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 34,
/**/
--
This is the polymorph virus! Follow these instructions carefully:
1. Send this message to everybody you know.
2. Format your harddisk.
Thank you for your cooperation in spreading the most powerful virus ever!
/// 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 ///

View File

@ -1,58 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.035
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.035 (after 7.3.034)
Problem: Stray semicolon after if statement. (Hari G)
Solution: Remove the semicolon.
Files: src/os_win32.c
*** ../vim-7.3.034/src/os_win32.c 2010-10-23 14:02:48.000000000 +0200
--- src/os_win32.c 2010-10-24 14:31:04.000000000 +0200
***************
*** 231,237 ****
* "!xxd" it's found in our starting directory. Needed because
* SearchPath() also looks there. */
p = mch_getenv("PATH");
! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL);
{
STRCPY(temp, p);
STRCAT(temp, ";");
--- 231,237 ----
* "!xxd" it's found in our starting directory. Needed because
* SearchPath() also looks there. */
p = mch_getenv("PATH");
! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL)
{
STRCPY(temp, p);
STRCAT(temp, ";");
*** ../vim-7.3.034/src/version.c 2010-10-23 14:02:48.000000000 +0200
--- src/version.c 2010-10-24 14:32:04.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 35,
/**/
--
[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 ///

View File

@ -1,68 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.036
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.036
Problem: Win32 GUI: When building without menus, the font for dialogs and
tab page headers also changes.
Solution: Define USE_SYSMENU_FONT always. (Harig G.)
Files: src/gui_w32.c
*** ../vim-7.3.035/src/gui_w32.c 2010-10-23 14:02:48.000000000 +0200
--- src/gui_w32.c 2010-10-25 20:29:15.000000000 +0200
***************
*** 289,301 ****
#ifdef FEAT_MENU
static UINT s_menu_id = 100;
/*
* Use the system font for dialogs and tear-off menus. Remove this line to
* use DLG_FONT_NAME.
*/
! # define USE_SYSMENU_FONT
! #endif
#define VIM_NAME "vim"
#define VIM_CLASS "Vim"
--- 289,301 ----
#ifdef FEAT_MENU
static UINT s_menu_id = 100;
+ #endif
/*
* Use the system font for dialogs and tear-off menus. Remove this line to
* use DLG_FONT_NAME.
*/
! #define USE_SYSMENU_FONT
#define VIM_NAME "vim"
#define VIM_CLASS "Vim"
*** ../vim-7.3.035/src/version.c 2010-10-24 14:33:38.000000000 +0200
--- src/version.c 2010-10-27 12:14:39.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 36,
/**/
--
ARTHUR: Bloody peasant!
DENNIS: Oh, what a give away. Did you hear that, did you hear 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 ///

View File

@ -1,137 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.037
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.037
Problem: Compiler warnings for loss of data. (Mike Williams)
Solution: Add type casts.
Files: src/if_py_both.h, src/getchar.c, src/os_win32.c
*** ../vim-7.3.036/src/if_py_both.h 2010-09-21 16:49:29.000000000 +0200
--- src/if_py_both.h 2010-10-25 20:37:07.000000000 +0200
***************
*** 154,160 ****
{
PyInt len = ptr - str;
! if (ga_grow(&io_ga, len + 1) == FAIL)
break;
mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
--- 154,160 ----
{
PyInt len = ptr - str;
! if (ga_grow(&io_ga, (int)(len + 1)) == FAIL)
break;
mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
***************
*** 166,175 ****
}
/* Put the remaining text into io_ga for later printing. */
! if (n > 0 && ga_grow(&io_ga, n + 1) == OK)
{
mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
! io_ga.ga_len += n;
}
}
--- 166,175 ----
}
/* Put the remaining text into io_ga for later printing. */
! if (n > 0 && ga_grow(&io_ga, (int)(n + 1)) == OK)
{
mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
! io_ga.ga_len += (int)n;
}
}
*** ../vim-7.3.036/src/getchar.c 2010-10-22 22:13:47.000000000 +0200
--- src/getchar.c 2010-10-25 20:39:31.000000000 +0200
***************
*** 3922,3928 ****
if (mapchars != NULL)
{
msg_puts(mapchars);
! len = STRLEN(mapchars);
vim_free(mapchars);
}
--- 3922,3928 ----
if (mapchars != NULL)
{
msg_puts(mapchars);
! len = (int)STRLEN(mapchars);
vim_free(mapchars);
}
*** ../vim-7.3.036/src/os_win32.c 2010-10-24 14:33:38.000000000 +0200
--- src/os_win32.c 2010-10-25 20:38:49.000000000 +0200
***************
*** 224,230 ****
if (exe_path == NULL && exe_name != NULL)
{
! exe_path = vim_strnsave(exe_name, gettail_sep(exe_name) - exe_name);
if (exe_path != NULL)
{
/* Append our starting directory to $PATH, so that when doing
--- 224,231 ----
if (exe_path == NULL && exe_name != NULL)
{
! exe_path = vim_strnsave(exe_name,
! (int)(gettail_sep(exe_name) - exe_name));
if (exe_path != NULL)
{
/* Append our starting directory to $PATH, so that when doing
***************
*** 2374,2380 ****
/* To avoid a slow failure append "\*" when searching a directory,
* server or network share. */
STRCPY(szTrueNameTemp, szTrueName);
! slen = strlen(szTrueNameTemp);
if (*porig == psepc && slen + 2 < _MAX_PATH)
STRCPY(szTrueNameTemp + slen, "\\*");
--- 2375,2381 ----
/* To avoid a slow failure append "\*" when searching a directory,
* server or network share. */
STRCPY(szTrueNameTemp, szTrueName);
! slen = (int)strlen(szTrueNameTemp);
if (*porig == psepc && slen + 2 < _MAX_PATH)
STRCPY(szTrueNameTemp + slen, "\\*");
*** ../vim-7.3.036/src/version.c 2010-10-27 12:15:28.000000000 +0200
--- src/version.c 2010-10-27 12:16:53.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 37,
/**/
--
ARTHUR: You fight with the strength of many men, Sir knight.
I am Arthur, King of the Britons. [pause]
I seek the finest and the bravest knights in the land to join me
in my Court of Camelot. [pause]
You have proved yourself worthy; will you join me? [pause]
You make me sad. So be it. Come, Patsy.
BLACK KNIGHT: None shall pass.
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 ///

View File

@ -1,76 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.038
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.038
Problem: v:windowid isn't set on MS-Windows.
Solution: Set it to the window handle. (Chris Sutcliffe)
Files: runtime/doc/eval.txt, src/gui_w32.c
*** ../vim-7.3.037/runtime/doc/eval.txt 2010-10-20 21:22:17.000000000 +0200
--- runtime/doc/eval.txt 2010-10-27 12:23:37.000000000 +0200
***************
*** 1660,1666 ****
*v:windowid* *windowid-variable*
v:windowid When any X11 based GUI is running or when running in a
terminal and Vim connects to the X server (|-X|) this will be
! set to the window ID. Otherwise the value is zero.
==============================================================================
4. Builtin Functions *functions*
--- 1660,1670 ----
*v:windowid* *windowid-variable*
v:windowid When any X11 based GUI is running or when running in a
terminal and Vim connects to the X server (|-X|) this will be
! set to the window ID.
! When an MS-Windows GUI is running this will be set to the
! window handle.
! Otherwise the value is zero.
! Note: for windows inside Vim use |winnr()|.
==============================================================================
4. Builtin Functions *functions*
*** ../vim-7.3.037/src/gui_w32.c 2010-10-27 12:15:28.000000000 +0200
--- src/gui_w32.c 2010-10-27 12:21:22.000000000 +0200
***************
*** 1573,1578 ****
--- 1573,1583 ----
# endif
#endif
+ #ifdef FEAT_EVAL
+ /* set the v:windowid variable */
+ set_vim_var_nr(VV_WINDOWID, (long)s_hwnd);
+ #endif
+
theend:
/* Display any pending error messages */
display_errors();
*** ../vim-7.3.037/src/version.c 2010-10-27 12:17:54.000000000 +0200
--- src/version.c 2010-10-27 12:24:38.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 38,
/**/
--
ARTHUR: What?
BLACK KNIGHT: None shall pass.
ARTHUR: I have no quarrel with you, good Sir knight, but I must cross
this bridge.
BLACK KNIGHT: Then you shall die.
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 ///

View File

@ -1,90 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.039
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.039
Problem: Crash when using skk.vim plugin.
Solution: Get length of expression evaluation result only after checking for
NULL. (Noriaki Yagi, Dominique Pelle)
Files: src/ex_getln.c
*** ../vim-7.3.038/src/ex_getln.c 2010-09-29 15:50:14.000000000 +0200
--- src/ex_getln.c 2010-10-27 12:42:00.000000000 +0200
***************
*** 688,711 ****
p = get_expr_line();
--textlock;
restore_cmdline(&save_ccline);
- len = (int)STRLEN(p);
! if (p != NULL && realloc_cmdbuff(len + 1) == OK)
{
! ccline.cmdlen = len;
! STRCPY(ccline.cmdbuff, p);
! vim_free(p);
!
! /* Restore the cursor or use the position set with
! * set_cmdline_pos(). */
! if (new_cmdpos > ccline.cmdlen)
! ccline.cmdpos = ccline.cmdlen;
! else
! ccline.cmdpos = new_cmdpos;
!
! KeyTyped = FALSE; /* Don't do p_wc completion. */
! redrawcmd();
! goto cmdline_changed;
}
}
beep_flush();
--- 688,714 ----
p = get_expr_line();
--textlock;
restore_cmdline(&save_ccline);
! if (p != NULL)
{
! len = (int)STRLEN(p);
! if (realloc_cmdbuff(len + 1) == OK)
! {
! ccline.cmdlen = len;
! STRCPY(ccline.cmdbuff, p);
! vim_free(p);
!
! /* Restore the cursor or use the position set with
! * set_cmdline_pos(). */
! if (new_cmdpos > ccline.cmdlen)
! ccline.cmdpos = ccline.cmdlen;
! else
! ccline.cmdpos = new_cmdpos;
!
! KeyTyped = FALSE; /* Don't do p_wc completion. */
! redrawcmd();
! goto cmdline_changed;
! }
}
}
beep_flush();
*** ../vim-7.3.038/src/version.c 2010-10-27 12:33:12.000000000 +0200
--- src/version.c 2010-10-27 12:43:40.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 39,
/**/
--
"Hegel was right when he said that we learn from history that man can
never learn anything from history." (George Bernard Shaw)
/// 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 ///

View File

@ -1,48 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.040
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.040
Problem: Comparing strings while ignoring case goes beyond end of the
string when there are illegal bytes. (Dominique Pelle)
Solution: Explicitly check for illegal bytes.
Files: src/mbyte.c
*** ../vim-7.3.039/src/mbyte.c 2010-10-23 14:02:48.000000000 +0200
--- src/mbyte.c 2010-10-27 13:34:16.000000000 +0200
***************
*** 3124,3129 ****
--- 3124,3132 ----
/* If one of the two characters is incomplete return -1. */
if (incomplete || i + utf_byte2len(s2[i]) > n)
return -1;
+ /* Don't case-fold illegal bytes or truncated characters. */
+ if (utf_ptr2len(s1 + i) < l || utf_ptr2len(s2 + i) < l)
+ return -1;
cdiff = utf_fold(utf_ptr2char(s1 + i))
- utf_fold(utf_ptr2char(s2 + i));
if (cdiff != 0)
*** ../vim-7.3.039/src/version.c 2010-10-27 12:58:19.000000000 +0200
--- src/version.c 2010-10-27 13:25:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 40,
/**/
--
With sufficient thrust, pigs fly just fine.
-- RFC 1925
/// 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 ///

View File

@ -1,57 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.041
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.041
Problem: Compiler warning for accessing mediumVersion. (Tony Mechelynck)
Solution: Use the pointer instead of the array itself. (Dominique Pelle)
Files: src/version.c
*** ../vim-7.3.040/src/version.c 2010-10-27 13:37:39.000000000 +0200
--- src/version.c 2010-10-27 15:58:26.000000000 +0200
***************
*** 1342,1350 ****
if (highest_patch())
{
/* Check for 9.9x or 9.9xx, alpha/beta version */
! if (isalpha((int)mediumVersion[3]))
{
! if (isalpha((int)mediumVersion[4]))
sprintf((char *)vers + 5, ".%d%s", highest_patch(),
mediumVersion + 5);
else
--- 1344,1352 ----
if (highest_patch())
{
/* Check for 9.9x or 9.9xx, alpha/beta version */
! if (isalpha((int)vers[3]))
{
! if (isalpha((int)vers[4]))
sprintf((char *)vers + 5, ".%d%s", highest_patch(),
mediumVersion + 5);
else
*** ../vim-7.3.040/src/version.c 2010-10-27 13:37:39.000000000 +0200
--- src/version.c 2010-10-27 15:58:26.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 41,
/**/
--
ARTHUR: I command you as King of the Britons to stand aside!
BLACK KNIGHT: I move for no man.
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 ///

View File

@ -1,65 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.042
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.042
Problem: No spell highlighting when re-using an empty buffer.
Solution: Clear the spell checking info only when clearing the options for a
buffer. (James Vega)
Files: src/buffer.c
*** ../vim-7.3.041/src/buffer.c 2010-09-21 16:56:29.000000000 +0200
--- src/buffer.c 2010-10-27 16:09:26.000000000 +0200
***************
*** 639,644 ****
--- 639,647 ----
{
clear_wininfo(buf); /* including window-local options */
free_buf_options(buf, TRUE);
+ #ifdef FEAT_SPELL
+ ga_clear(&buf->b_s.b_langp);
+ #endif
}
#ifdef FEAT_EVAL
vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
***************
*** 661,669 ****
vim_free(buf->b_start_fenc);
buf->b_start_fenc = NULL;
#endif
- #ifdef FEAT_SPELL
- ga_clear(&buf->b_s.b_langp);
- #endif
}
/*
--- 664,669 ----
*** ../vim-7.3.041/src/version.c 2010-10-27 16:01:17.000000000 +0200
--- src/version.c 2010-10-27 16:10:33.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 42,
/**/
--
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 ///

View File

@ -1,460 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.043
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.043
Problem: Can't load Ruby dynamically on Unix.
Solution: Adjust the configure script. (James Vega)
Files: src/Makefile, src/config.h.in, src/configure.in,
src/auto/configure, src/if_ruby.c
*** ../vim-7.3.042/src/Makefile 2010-08-16 21:59:00.000000000 +0200
--- src/Makefile 2010-10-27 16:46:41.000000000 +0200
***************
*** 414,425 ****
--- 414,429 ----
# However, this may still cause problems, such as "import termios" failing.
# Build two separate versions of Vim in that case.
#CONF_OPT_PYTHON = --enable-pythoninterp
+ #CONF_OPT_PYTHON = --enable-pythoninterp=dynamic
#CONF_OPT_PYTHON3 = --enable-python3interp
+ #CONF_OPT_PYTHON3 = --enable-python3interp=dynamic
# RUBY
# Uncomment this when you want to include the Ruby interface.
+ # First one for static linking, second one for loading when used.
# Note: you need the development package (e.g., ruby1.9.1-dev on Ubuntu).
#CONF_OPT_RUBY = --enable-rubyinterp
+ #CONF_OPT_RUBY = --enable-rubyinterp=dynamic
#CONF_OPT_RUBY = --enable-rubyinterp --with-ruby-command=ruby1.9.1
# TCL
***************
*** 1047,1054 ****
INSTALL_DATA = cp
INSTALL_DATA_R = cp -r
! ### Program to run on installed binary
#STRIP = strip
### Permissions for binaries {{{1
BINMOD = 755
--- 1051,1059 ----
INSTALL_DATA = cp
INSTALL_DATA_R = cp -r
! ### Program to run on installed binary. Use the second one to disable strip.
#STRIP = strip
+ #STRIP = /bin/true
### Permissions for binaries {{{1
BINMOD = 755
***************
*** 1321,1327 ****
.SUFFIXES: .c .o .pro
PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
! POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(RUBY_CFLAGS) $(EXTRA_DEFS)
ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
--- 1326,1332 ----
.SUFFIXES: .c .o .pro
PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
! POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
***************
*** 1329,1335 ****
# with "-E".
OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
--- 1334,1340 ----
# with "-E".
OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
***************
*** 2532,2538 ****
$(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
objects/if_ruby.o: if_ruby.c
! $(CCC) -o $@ if_ruby.c
objects/if_sniff.o: if_sniff.c
$(CCC) -o $@ if_sniff.c
--- 2537,2543 ----
$(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
objects/if_ruby.o: if_ruby.c
! $(CCC) $(RUBY_CFLAGS) -o $@ if_ruby.c
objects/if_sniff.o: if_sniff.c
$(CCC) -o $@ if_sniff.c
*** ../vim-7.3.042/src/config.h.in 2010-08-15 21:57:32.000000000 +0200
--- src/config.h.in 2010-10-27 16:21:24.000000000 +0200
***************
*** 349,354 ****
--- 349,357 ----
/* Define if you want to include the Ruby interpreter. */
#undef FEAT_RUBY
+ /* Define for linking via dlopen() or LoadLibrary() */
+ #undef DYNAMIC_RUBY
+
/* Define if you want to include the Tcl interpreter. */
#undef FEAT_TCL
*** ../vim-7.3.042/src/configure.in 2010-08-15 21:57:28.000000000 +0200
--- src/configure.in 2010-10-27 16:20:53.000000000 +0200
***************
*** 1299,1308 ****
AC_MSG_CHECKING(--enable-rubyinterp argument)
AC_ARG_ENABLE(rubyinterp,
! [ --enable-rubyinterp Include Ruby interpreter.], ,
[enable_rubyinterp="no"])
AC_MSG_RESULT($enable_rubyinterp)
! if test "$enable_rubyinterp" = "yes"; then
AC_MSG_CHECKING(--with-ruby-command argument)
AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
--- 1299,1308 ----
AC_MSG_CHECKING(--enable-rubyinterp argument)
AC_ARG_ENABLE(rubyinterp,
! [ --enable-rubyinterp[=OPTS] Include Ruby interpreter. [default=no] [OPTS=no/yes/dynamic]], ,
[enable_rubyinterp="no"])
AC_MSG_RESULT($enable_rubyinterp)
! if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
AC_MSG_CHECKING(--with-ruby-command argument)
AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
***************
*** 1360,1365 ****
--- 1360,1371 ----
RUBY_OBJ="objects/if_ruby.o"
RUBY_PRO="if_ruby.pro"
AC_DEFINE(FEAT_RUBY)
+ if test "$enable_rubyinterp" = "dynamic"; then
+ libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG[["RUBY_SO_NAME"]], Config::CONFIG[["DLEXT"]]'`
+ AC_DEFINE(DYNAMIC_RUBY)
+ RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
+ RUBY_LIBS=
+ fi
else
AC_MSG_RESULT(not found; disabling Ruby)
fi
*** ../vim-7.3.042/src/auto/configure 2010-08-15 21:57:27.000000000 +0200
--- src/auto/configure 2010-10-27 16:28:10.000000000 +0200
***************
*** 1427,1433 ****
--enable-pythoninterp=OPTS Include Python interpreter. default=no OPTS=no/yes/dynamic
--enable-python3interp=OPTS Include Python3 interpreter. default=no OPTS=no/yes/dynamic
--enable-tclinterp Include Tcl interpreter.
! --enable-rubyinterp Include Ruby interpreter.
--enable-cscope Include cscope interface.
--enable-workshop Include Sun Visual Workshop support.
--disable-netbeans Disable NetBeans integration support.
--- 1427,1433 ----
--enable-pythoninterp=OPTS Include Python interpreter. default=no OPTS=no/yes/dynamic
--enable-python3interp=OPTS Include Python3 interpreter. default=no OPTS=no/yes/dynamic
--enable-tclinterp Include Tcl interpreter.
! --enable-rubyinterp=OPTS Include Ruby interpreter. default=no OPTS=no/yes/dynamic
--enable-cscope Include cscope interface.
--enable-workshop Include Sun Visual Workshop support.
--disable-netbeans Disable NetBeans integration support.
***************
*** 6103,6109 ****
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
$as_echo "$enable_rubyinterp" >&6; }
! if test "$enable_rubyinterp" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
$as_echo_n "checking --with-ruby-command argument... " >&6; }
--- 6103,6109 ----
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
$as_echo "$enable_rubyinterp" >&6; }
! if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
$as_echo_n "checking --with-ruby-command argument... " >&6; }
***************
*** 6209,6214 ****
--- 6209,6221 ----
RUBY_PRO="if_ruby.pro"
$as_echo "#define FEAT_RUBY 1" >>confdefs.h
+ if test "$enable_rubyinterp" = "dynamic"; then
+ libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG["RUBY_SO_NAME"], Config::CONFIG["DLEXT"]'`
+ $as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
+
+ RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
+ RUBY_LIBS=
+ fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found; disabling Ruby" >&5
$as_echo "not found; disabling Ruby" >&6; }
*** ../vim-7.3.042/src/if_ruby.c 2010-10-23 14:02:48.000000000 +0200
--- src/if_ruby.c 2010-10-27 16:40:27.000000000 +0200
***************
*** 14,19 ****
--- 14,21 ----
#include <stdio.h>
#include <string.h>
+ #include "auto/config.h"
+
#ifdef _WIN32
# if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
# define NT
***************
*** 48,60 ****
# define RUBY_EXPORT
# endif
! #if !(defined(WIN32) || defined(_WIN64))
# include <dlfcn.h>
! # define HANDLE void*
# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
# define symbol_from_dll dlsym
# define close_dll dlclose
#else
# define load_dll vimLoadLib
# define symbol_from_dll GetProcAddress
# define close_dll FreeLibrary
--- 50,64 ----
# define RUBY_EXPORT
# endif
! #ifndef WIN3264
# include <dlfcn.h>
! # define HINSTANCE void*
! # define RUBY_PROC void*
# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
# define symbol_from_dll dlsym
# define close_dll dlclose
#else
+ # define RUBY_PROC FARPROC
# define load_dll vimLoadLib
# define symbol_from_dll GetProcAddress
# define close_dll FreeLibrary
***************
*** 174,180 ****
--- 178,186 ----
#define rb_lastline_get dll_rb_lastline_get
#define rb_lastline_set dll_rb_lastline_set
#define rb_load_protect dll_rb_load_protect
+ #ifndef RUBY19_OR_LATER
#define rb_num2long dll_rb_num2long
+ #endif
#define rb_num2ulong dll_rb_num2ulong
#define rb_obj_alloc dll_rb_obj_alloc
#define rb_obj_as_string dll_rb_obj_as_string
***************
*** 186,191 ****
--- 192,200 ----
#ifdef rb_str_new2
/* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */
# define need_rb_str_new_cstr 1
+ /* Ruby's headers #define rb_str_new_cstr to make use of GCC's
+ * __builtin_constant_p extension. */
+ # undef rb_str_new_cstr
# define rb_str_new_cstr dll_rb_str_new_cstr
#else
# define rb_str_new2 dll_rb_str_new2
***************
*** 206,214 ****
#endif
#define ruby_init dll_ruby_init
#define ruby_init_loadpath dll_ruby_init_loadpath
! #define NtInitialize dll_NtInitialize
! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
! # define rb_w32_snprintf dll_rb_w32_snprintf
#endif
#ifdef RUBY19_OR_LATER
--- 215,225 ----
#endif
#define ruby_init dll_ruby_init
#define ruby_init_loadpath dll_ruby_init_loadpath
! #ifdef WIN3264
! # define NtInitialize dll_NtInitialize
! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
! # define rb_w32_snprintf dll_rb_w32_snprintf
! # endif
#endif
#ifdef RUBY19_OR_LATER
***************
*** 283,289 ****
--- 294,305 ----
#endif
static void (*dll_ruby_init) (void);
static void (*dll_ruby_init_loadpath) (void);
+ #ifdef WIN3264
static void (*dll_NtInitialize) (int*, char***);
+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ # endif
+ #endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
static VALUE (*dll_rb_float_new) (double);
***************
*** 293,301 ****
#ifdef RUBY19_OR_LATER
static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
#endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
- #endif
#ifdef RUBY19_OR_LATER
static void (*dll_ruby_script) (const char*);
--- 309,314 ----
***************
*** 317,328 ****
}
#endif
! static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
/*
* Table of name to function pointer of ruby.
*/
- #define RUBY_PROC FARPROC
static struct
{
char *name;
--- 330,340 ----
}
#endif
! static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */
/*
* Table of name to function pointer of ruby.
*/
static struct
{
char *name;
***************
*** 387,401 ****
#endif
{"ruby_init", (RUBY_PROC*)&dll_ruby_init},
{"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
{
! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
"NtInitialize",
! #else
"ruby_sysinit",
! #endif
(RUBY_PROC*)&dll_NtInitialize},
! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
--- 399,415 ----
#endif
{"ruby_init", (RUBY_PROC*)&dll_ruby_init},
{"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
+ #ifdef WIN3264
{
! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
"NtInitialize",
! # else
"ruby_sysinit",
! # endif
(RUBY_PROC*)&dll_NtInitialize},
! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ # endif
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
***************
*** 424,430 ****
if (hinstRuby)
{
close_dll(hinstRuby);
! hinstRuby = 0;
}
}
--- 438,444 ----
if (hinstRuby)
{
close_dll(hinstRuby);
! hinstRuby = NULL;
}
}
***************
*** 454,460 ****
ruby_funcname_table[i].name)))
{
close_dll(hinstRuby);
! hinstRuby = 0;
if (verbose)
EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
return FAIL;
--- 468,474 ----
ruby_funcname_table[i].name)))
{
close_dll(hinstRuby);
! hinstRuby = NULL;
if (verbose)
EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
return FAIL;
***************
*** 936,944 ****
return line ? vim_str2rb_enc_str(line) : Qnil;
}
rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
- #ifndef __GNUC__
return Qnil; /* For stop warning */
- #endif
}
static VALUE buffer_aref(VALUE self, VALUE num)
--- 950,956 ----
*** ../vim-7.3.042/src/version.c 2010-10-27 16:17:56.000000000 +0200
--- src/version.c 2010-10-27 16:45:28.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 43,
/**/
--
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 ///

View File

@ -1,58 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.044
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.044
Problem: The preview window opened by the popup menu is larger than
specified with 'previewheight'. (Benjamin Haskell)
Solution: Use 'previewheight' if it's set and smaller.
Files: src/popupmnu.c
*** ../vim-7.3.043/src/popupmnu.c 2010-08-15 21:57:25.000000000 +0200
--- src/popupmnu.c 2010-10-27 17:04:31.000000000 +0200
***************
*** 558,565 ****
win_T *curwin_save = curwin;
int res = OK;
! /* Open a preview window. 3 lines by default. */
g_do_tagpreview = 3;
resized = prepare_tagpreview(FALSE);
g_do_tagpreview = 0;
--- 558,568 ----
win_T *curwin_save = curwin;
int res = OK;
! /* Open a preview window. 3 lines by default. Prefer
! * 'previewheight' if set and smaller. */
g_do_tagpreview = 3;
+ if (p_pvh > 0 && p_pvh < g_do_tagpreview)
+ g_do_tagpreview = p_pvh;
resized = prepare_tagpreview(FALSE);
g_do_tagpreview = 0;
*** ../vim-7.3.043/src/version.c 2010-10-27 16:49:41.000000000 +0200
--- src/version.c 2010-10-27 17:08:37.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 44,
/**/
--
"It's so simple to be wise. Just think of something stupid to say
and then don't say it." -- Sam Levenson
/// 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 ///

View File

@ -1,57 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.045
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.045
Problem: Compiler warning for uninitialized variable.
Solution: Initialize the variable always.
Files: src/getchar.c
*** ../vim-7.3.044/src/getchar.c 2010-10-27 12:17:54.000000000 +0200
--- src/getchar.c 2010-10-27 17:28:45.000000000 +0200
***************
*** 3290,3298 ****
*/
if (haskey)
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
if (hasarg)
{
- orig_rhs = rhs;
if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
rhs = (char_u *)"";
else
--- 3290,3298 ----
*/
if (haskey)
keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
+ orig_rhs = rhs;
if (hasarg)
{
if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
rhs = (char_u *)"";
else
*** ../vim-7.3.044/src/version.c 2010-10-27 17:11:11.000000000 +0200
--- src/version.c 2010-10-27 17:30:11.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 45,
/**/
--
MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes
for future use in casseroles and sauces.
MY WAY: What leftover wine?
/// 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 ///

View File

@ -1,76 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.046
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.046 (after 7.3.043)
Problem: Can't build Ruby on MS-Windows.
Solution: Add #ifdef, don't use WIN3264 before including vim.h.
Files: src/if_ruby.c
*** ../vim-7.3.045/src/if_ruby.c 2010-10-27 16:49:41.000000000 +0200
--- src/if_ruby.c 2010-10-27 17:37:05.000000000 +0200
***************
*** 14,20 ****
#include <stdio.h>
#include <string.h>
! #include "auto/config.h"
#ifdef _WIN32
# if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
--- 14,22 ----
#include <stdio.h>
#include <string.h>
! #ifdef HAVE_CONFIG_H
! # include "auto/config.h"
! #endif
#ifdef _WIN32
# if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
***************
*** 50,56 ****
# define RUBY_EXPORT
# endif
! #ifndef WIN3264
# include <dlfcn.h>
# define HINSTANCE void*
# define RUBY_PROC void*
--- 52,58 ----
# define RUBY_EXPORT
# endif
! #if !(defined(WIN32) || defined(_WIN64))
# include <dlfcn.h>
# define HINSTANCE void*
# define RUBY_PROC void*
*** ../vim-7.3.045/src/version.c 2010-10-27 17:39:00.000000000 +0200
--- src/version.c 2010-10-27 17:39:59.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 46,
/**/
--
BLACK KNIGHT: Come on you pansy!
[hah] [parry thrust]
[ARTHUR chops the BLACK KNIGHT's right arm off]
ARTHUR: Victory is mine! [kneeling]
We thank thee Lord, that in thy merc-
[Black Knight kicks Arthur in the head while he is praying]
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 ///

View File

@ -1,172 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.047
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.047 (after 7.3.032)
Problem: Missing makefile updates for test 75.
Solution: Update the makefiles.
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Makefile, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
*** ../vim-7.3.046/src/testdir/Make_amiga.mak 2010-10-20 17:44:01.000000000 +0200
--- src/testdir/Make_amiga.mak 2010-10-20 20:43:25.000000000 +0200
***************
*** 27,33 ****
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out
.SUFFIXES: .in .out
--- 27,33 ----
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out test75.out
.SUFFIXES: .in .out
***************
*** 121,123 ****
--- 121,124 ----
test72.out: test72.in
test73.out: test73.in
test74.out: test74.in
+ test75.out: test75.in
*** ../vim-7.3.046/src/testdir/Make_dos.mak 2010-10-20 17:44:01.000000000 +0200
--- src/testdir/Make_dos.mak 2010-10-20 20:43:48.000000000 +0200
***************
*** 28,34 ****
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out
SCRIPTS32 = test50.out test70.out
--- 28,34 ----
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out test75.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.046/src/testdir/Makefile 2010-10-20 17:44:01.000000000 +0200
--- src/testdir/Makefile 2010-10-20 20:44:10.000000000 +0200
***************
*** 25,31 ****
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
! test74.out
SCRIPTS_GUI = test16.out
--- 25,31 ----
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
! test74.out test75.out
SCRIPTS_GUI = test16.out
*** ../vim-7.3.046/src/testdir/Make_ming.mak 2010-10-20 17:44:01.000000000 +0200
--- src/testdir/Make_ming.mak 2010-10-20 20:43:53.000000000 +0200
***************
*** 48,54 ****
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out
SCRIPTS32 = test50.out test70.out
--- 48,54 ----
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out test75.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.046/src/testdir/Make_os2.mak 2010-10-20 17:44:01.000000000 +0200
--- src/testdir/Make_os2.mak 2010-10-20 20:44:00.000000000 +0200
***************
*** 27,33 ****
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out
.SUFFIXES: .in .out
--- 27,33 ----
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out test75.out
.SUFFIXES: .in .out
*** ../vim-7.3.046/src/testdir/Make_vms.mms 2010-10-20 17:44:01.000000000 +0200
--- src/testdir/Make_vms.mms 2010-10-20 20:44:05.000000000 +0200
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2010 Aug 04
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
--- 4,10 ----
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2010 Oct 20
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
***************
*** 74,80 ****
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
! test71.out test72.out test74.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 74,80 ----
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
! test71.out test72.out test74.out test75.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.3.046/src/version.c 2010-10-27 17:40:53.000000000 +0200
--- src/version.c 2010-10-27 18:34:20.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 47,
/**/
--
5 out of 4 people have trouble with fractions.
/// 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 ///

View File

@ -1,109 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.048
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.048
Problem: ":earlier 1f" doesn't work after loading undo file.
Solution: Set b_u_save_nr_cur when loading an undo file. (Christian
Brabandt)
Fix only showing time in ":undolist"
Files: src/undo.c
*** ../vim-7.3.047/src/undo.c 2010-08-15 21:57:28.000000000 +0200
--- src/undo.c 2010-11-03 19:26:38.000000000 +0100
***************
*** 1861,1866 ****
--- 1861,1867 ----
curbuf->b_u_seq_cur = seq_cur;
curbuf->b_u_time_cur = seq_time;
curbuf->b_u_save_nr_last = last_save_nr;
+ curbuf->b_u_save_nr_cur = last_save_nr;
curbuf->b_u_synced = TRUE;
vim_free(uhp_table);
***************
*** 2794,2800 ****
uhp->uh_time);
if (uhp->uh_save_nr > 0)
{
! while (STRLEN(IObuff) < 32)
STRCAT(IObuff, " ");
vim_snprintf_add((char *)IObuff, IOSIZE,
" %3ld", uhp->uh_save_nr);
--- 2795,2801 ----
uhp->uh_time);
if (uhp->uh_save_nr > 0)
{
! while (STRLEN(IObuff) < 33)
STRCAT(IObuff, " ");
vim_snprintf_add((char *)IObuff, IOSIZE,
" %3ld", uhp->uh_save_nr);
***************
*** 2849,2855 ****
sort_strings((char_u **)ga.ga_data, ga.ga_len);
msg_start();
! msg_puts_attr((char_u *)_("number changes time saved"),
hl_attr(HLF_T));
for (i = 0; i < ga.ga_len && !got_int; ++i)
{
--- 2850,2856 ----
sort_strings((char_u **)ga.ga_data, ga.ga_len);
msg_start();
! msg_puts_attr((char_u *)_("number changes when saved"),
hl_attr(HLF_T));
for (i = 0; i < ga.ga_len && !got_int; ++i)
{
***************
*** 2879,2885 ****
if (time(NULL) - tt >= 100)
{
curtime = localtime(&tt);
! (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
}
else
#endif
--- 2880,2894 ----
if (time(NULL) - tt >= 100)
{
curtime = localtime(&tt);
! if (time(NULL) - tt < (60L * 60L * 12L))
! /* within 12 hours */
! (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
! else if (time(NULL) - tt < (60L * 60L * 24L * 180L))
! /* within 6 months */
! (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime);
! else
! /* long ago */
! (void)strftime((char *)buf, buflen, "%y/%m/%d %H:%M:%S", curtime);
}
else
#endif
*** ../vim-7.3.047/src/version.c 2010-10-27 18:36:32.000000000 +0200
--- src/version.c 2010-11-03 19:27:07.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 48,
/**/
--
TIM: To the north there lies a cave, the cave of Caerbannog, wherein, carved
in mystic runes, upon the very living rock, the last words of Olfin
Bedwere of Rheged make plain the last resting place of the most Holy
Grail.
"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 ///

View File

@ -1,495 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.049
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.049
Problem: PLT has rebranded their Scheme to Racket.
Solution: Add support for Racket 5.x. (Sergey Khorev)
Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
src/auto/configure, src/configure.in, src/if_mzsch.c
*** ../vim-7.3.048/src/Make_cyg.mak 2010-08-15 21:57:27.000000000 +0200
--- src/Make_cyg.mak 2010-11-03 21:50:42.000000000 +0100
***************
*** 1,6 ****
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2010 Feb 24
#
# Also read INSTALLpc.txt!
#
--- 1,6 ----
#
# Makefile for VIM on Win32, using Cygnus gcc
! # Last updated by Dan Sharp. Last Change: 2010 Nov 03
#
# Also read INSTALLpc.txt!
#
***************
*** 27,32 ****
--- 27,33 ----
# MZSCHEME_VER define to version of MzScheme being used (209_000)
# DYNAMIC_MZSCHEME no or yes: use yes to load the MzScheme DLLs dynamically (yes)
# MZSCHEME_DLLS path to MzScheme DLLs (libmzgc and libmzsch), for "static" build.
+ # MZSCHEME_USE_RACKET define to use "racket" instead of "mzsch".
# LUA define to path to Lua dir to get Lua support (not defined)
# LUA_VER define to version of Lua being used (51)
# DYNAMIC_LUA no or yes: use yes to load the Lua DLL dynamically (yes)
***************
*** 254,269 ****
MZSCHEME_GENERATE_BASE=no
endif
ifeq (yes, $(DYNAMIC_MZSCHEME))
! DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
else
ifndef MZSCHEME_DLLS
MZSCHEME_DLLS = $(MZSCHEME)
endif
ifeq (yes,$(MZSCHEME_PRECISE_GC))
! MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
else
! MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
endif
EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
endif
--- 255,276 ----
MZSCHEME_GENERATE_BASE=no
endif
+ ifndef MZSCHEME_USE_RACKET
+ MZSCHEME_MAIN_LIB=mzsch
+ else
+ MZSCHEME_MAIN_LIB=racket
+ endif
+
ifeq (yes, $(DYNAMIC_MZSCHEME))
! DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
else
ifndef MZSCHEME_DLLS
MZSCHEME_DLLS = $(MZSCHEME)
endif
ifeq (yes,$(MZSCHEME_PRECISE_GC))
! MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
else
! MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
endif
EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
endif
*** ../vim-7.3.048/src/Make_ming.mak 2010-09-29 18:42:25.000000000 +0200
--- src/Make_ming.mak 2010-11-03 21:48:14.000000000 +0100
***************
*** 141,151 ****
MZSCHEME_GENERATE_BASE=no
endif
ifeq (no,$(DYNAMIC_MZSCHEME))
ifeq (yes,$(MZSCHEME_PRECISE_GC))
! MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
else
! MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
endif
# the modern MinGW can dynamically link to dlls directly.
# point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
--- 141,157 ----
MZSCHEME_GENERATE_BASE=no
endif
+ ifndef MZSCHEME_USE_RACKET
+ MZSCHEME_MAIN_LIB=mzsch
+ else
+ MZSCHEME_MAIN_LIB=racket
+ endif
+
ifeq (no,$(DYNAMIC_MZSCHEME))
ifeq (yes,$(MZSCHEME_PRECISE_GC))
! MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
else
! MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
endif
# the modern MinGW can dynamically link to dlls directly.
# point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
***************
*** 343,349 ****
ifdef MZSCHEME
CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
ifeq (yes, $(DYNAMIC_MZSCHEME))
! CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
endif
endif
--- 349,355 ----
ifdef MZSCHEME
CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
ifeq (yes, $(DYNAMIC_MZSCHEME))
! CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
endif
endif
*** ../vim-7.3.048/src/Make_mvc.mak 2010-08-15 21:57:27.000000000 +0200
--- src/Make_mvc.mak 2010-11-03 21:48:14.000000000 +0100
***************
*** 705,716 ****
MZSCHEME_VER = 205_000
!endif
CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
! !if EXIST("$(MZSCHEME)\collects\scheme\base.ss")
! # for MzScheme 4.x we need to include byte code for basic Scheme stuff
MZSCHEME_EXTRA_DEP = mzscheme_base.c
CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
!endif
! !if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib") \
&& !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
!message Building with Precise GC
MZSCHEME_PRECISE_GC = yes
--- 705,722 ----
MZSCHEME_VER = 205_000
!endif
CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
! !if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \
! || EXIST("$(MZSCHEME)\collects\scheme\base.rkt")
! # for MzScheme >= 4 we need to include byte code for basic Scheme stuff
MZSCHEME_EXTRA_DEP = mzscheme_base.c
CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
!endif
! !if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib")
! MZSCHEME_MAIN_LIB=mzsch
! !else
! MZSCHEME_MAIN_LIB=racket
! !endif
! !if EXIST("$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib") \
&& !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
!message Building with Precise GC
MZSCHEME_PRECISE_GC = yes
***************
*** 722,728 ****
!endif
!message MzScheme DLLs will be loaded dynamically
CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
! -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" \
-DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
!else
!if "$(MZSCHEME_DEBUG)" == "yes"
--- 728,734 ----
!endif
!message MzScheme DLLs will be loaded dynamically
CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
! -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
-DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
!else
!if "$(MZSCHEME_DEBUG)" == "yes"
***************
*** 730,739 ****
!endif
!if "$(MZSCHEME_PRECISE_GC)" == "yes"
# Precise GC does not use separate dll
! MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
!else
MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
! $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
!endif
!endif
MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
--- 736,745 ----
!endif
!if "$(MZSCHEME_PRECISE_GC)" == "yes"
# Precise GC does not use separate dll
! MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
!else
MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
! $(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
!endif
!endif
MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
*** ../vim-7.3.048/src/auto/configure 2010-10-27 16:49:41.000000000 +0200
--- src/auto/configure 2010-11-03 21:53:09.000000000 +0100
***************
*** 4862,4877 ****
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
! $as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
! if test -f /usr/include/plt/scheme.h; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
! SCHEME_INC=/usr/include/plt
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
! vi_cv_path_mzscheme_pfx=
fi
fi
fi
--- 4862,4897 ----
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket" >&5
! $as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket... " >&6; }
! if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
! $as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
! if test -f /usr/include/plt/scheme.h; then
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
! $as_echo "yes" >&6; }
! SCHEME_INC=/usr/include/plt
! else
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/racket/" >&5
! $as_echo_n "checking if scheme.h can be found in /usr/include/racket/... " >&6; }
! if test -f /usr/include/racket/scheme.h; then
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
! $as_echo "yes" >&6; }
! SCHEME_INC=/usr/include/racket
! else
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! vi_cv_path_mzscheme_pfx=
! fi
! fi
fi
fi
fi
***************
*** 4883,4894 ****
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
else
if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
else
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
fi
--- 4903,4924 ----
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
else
if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
+ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
else
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
fi
***************
*** 4901,4910 ****
fi
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
fi
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
! MZSCHEME_EXTRA="mzscheme_base.c"
! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
fi
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
--- 4931,4950 ----
fi
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
+ else
+ if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
+ SCHEME_COLLECTS=lib/racket/
+ fi
fi
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
! MZSCHEME_EXTRA="mzscheme_base.c"
! else
! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
! MZSCHEME_EXTRA="mzscheme_base.c"
! fi
! fi
! if test "X$MZSCHEME_EXTRA" != "X" ; then
! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
fi
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
*** ../vim-7.3.048/src/configure.in 2010-10-27 16:49:41.000000000 +0200
--- src/configure.in 2010-11-03 21:48:14.000000000 +0100
***************
*** 568,580 ****
SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
else
AC_MSG_RESULT(no)
! AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
! if test -f /usr/include/plt/scheme.h; then
AC_MSG_RESULT(yes)
! SCHEME_INC=/usr/include/plt
else
AC_MSG_RESULT(no)
! vi_cv_path_mzscheme_pfx=
fi
fi
fi
--- 568,594 ----
SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
else
AC_MSG_RESULT(no)
! AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket)
! if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
AC_MSG_RESULT(yes)
! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
else
AC_MSG_RESULT(no)
! AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
! if test -f /usr/include/plt/scheme.h; then
! AC_MSG_RESULT(yes)
! SCHEME_INC=/usr/include/plt
! else
! AC_MSG_RESULT(no)
! AC_MSG_CHECKING(if scheme.h can be found in /usr/include/racket/)
! if test -f /usr/include/racket/scheme.h; then
! AC_MSG_RESULT(yes)
! SCHEME_INC=/usr/include/racket
! else
! AC_MSG_RESULT(no)
! vi_cv_path_mzscheme_pfx=
! fi
! fi
fi
fi
fi
***************
*** 586,598 ****
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
else
dnl Using shared objects
if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
else
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
fi
--- 600,622 ----
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
else
dnl Using shared objects
if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
+ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
else
MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
fi
***************
*** 607,616 ****
fi
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
fi
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
- dnl need to generate bytecode for MzScheme base
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
fi
--- 631,650 ----
fi
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
+ else
+ if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
+ SCHEME_COLLECTS=lib/racket/
+ fi
fi
if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
+ else
+ if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
+ MZSCHEME_EXTRA="mzscheme_base.c"
+ fi
+ fi
+ if test "X$MZSCHEME_EXTRA" != "X" ; then
+ dnl need to generate bytecode for MzScheme base
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
fi
*** ../vim-7.3.048/src/if_mzsch.c 2010-10-23 14:02:48.000000000 +0200
--- src/if_mzsch.c 2010-11-03 21:48:14.000000000 +0100
***************
*** 794,802 ****
--- 794,809 ----
#endif
}
+ #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+ static __declspec(thread) void *tls_space;
+ #endif
+
void
mzscheme_main(void)
{
+ #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+ scheme_register_tls_space(&tls_space, 0);
+ #endif
#if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400
/* use trampoline for precise GC in MzScheme >= 4.x */
scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL);
*** ../vim-7.3.048/src/version.c 2010-11-03 19:32:36.000000000 +0100
--- src/version.c 2010-11-03 21:57:04.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 49,
/**/
--
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 ///

View File

@ -1,199 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.050
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.050
Problem: The link script is clumsy.
Solution: Use the --as-needed linker option if available. (Kirill A.
Shutemov)
Files: src/Makefile, src/auto/configure, src/config.mk.in,
src/configure.in, src/link.sh
*** ../vim-7.3.049/src/Makefile 2010-10-27 16:49:41.000000000 +0200
--- src/Makefile 2010-11-03 22:26:45.000000000 +0100
***************
*** 1700,1706 ****
$(CCC) version.c -o objects/version.o
@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
! MAKE="$(MAKE)" sh $(srcdir)/link.sh
xxd/xxd$(EXEEXT): xxd/xxd.c
cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
--- 1700,1707 ----
$(CCC) version.c -o objects/version.o
@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
! MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
! sh $(srcdir)/link.sh
xxd/xxd$(EXEEXT): xxd/xxd.c
cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
*** ../vim-7.3.049/src/auto/configure 2010-11-03 21:59:23.000000000 +0100
--- src/auto/configure 2010-11-03 22:28:03.000000000 +0100
***************
*** 593,598 ****
--- 593,599 ----
ac_subst_vars='LTLIBOBJS
LIBOBJS
+ LINK_AS_NEEDED
DEPEND_CFLAGS_FILTER
MAKEMO
MSGFMT
***************
*** 12404,12409 ****
--- 12405,12427 ----
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
+ $as_echo_n "checking linker --as-needed support... " >&6; }
+ LINK_AS_NEEDED=
+ # Check if linker supports --as-needed and --no-as-needed options
+ if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
+ LDFLAGS="$LDFLAGS -Wl,--as-needed"
+ LINK_AS_NEEDED=yes
+ fi
+ if test "$LINK_AS_NEEDED" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+
ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
cat >confcache <<\_ACEOF
*** ../vim-7.3.049/src/config.mk.in 2010-08-15 21:57:28.000000000 +0200
--- src/config.mk.in 2010-11-03 22:26:24.000000000 +0100
***************
*** 30,35 ****
--- 30,36 ----
CPP = @CPP@
CPP_MM = @CPP_MM@
DEPEND_CFLAGS_FILTER = @DEPEND_CFLAGS_FILTER@
+ LINK_AS_NEEDED = @LINK_AS_NEEDED@
X_CFLAGS = @X_CFLAGS@
X_LIBS_DIR = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
*** ../vim-7.3.049/src/configure.in 2010-11-03 21:59:23.000000000 +0100
--- src/configure.in 2010-11-03 22:26:16.000000000 +0100
***************
*** 3527,3532 ****
--- 3527,3549 ----
fi
AC_SUBST(DEPEND_CFLAGS_FILTER)
+ dnl link.sh tries to avoid overlinking in a hackish way.
+ dnl At least GNU ld supports --as-needed which provides the same functionality
+ dnl at linker level. Let's use it.
+ AC_MSG_CHECKING(linker --as-needed support)
+ LINK_AS_NEEDED=
+ # Check if linker supports --as-needed and --no-as-needed options
+ if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
+ LDFLAGS="$LDFLAGS -Wl,--as-needed"
+ LINK_AS_NEEDED=yes
+ fi
+ if test "$LINK_AS_NEEDED" = yes; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ AC_SUBST(LINK_AS_NEEDED)
+
dnl write output files
AC_OUTPUT(auto/config.mk:config.mk.in)
*** ../vim-7.3.049/src/link.sh 2010-08-15 21:57:25.000000000 +0200
--- src/link.sh 2010-11-03 22:26:08.000000000 +0100
***************
*** 5,11 ****
# libraries when they exist, but this doesn't mean they are needed for Vim.
#
# Author: Bram Moolenaar
! # Last change: 2006 Sep 26
# License: Public domain
#
# Warning: This fails miserably if the linker doesn't return an error code!
--- 5,11 ----
# libraries when they exist, but this doesn't mean they are needed for Vim.
#
# Author: Bram Moolenaar
! # Last change: 2010 Nov 03
# License: Public domain
#
# Warning: This fails miserably if the linker doesn't return an error code!
***************
*** 16,26 ****
echo "$LINK " >link.cmd
exit_value=0
#
# If auto/link.sed already exists, use it. We assume a previous run of
# link.sh has found the correct set of libraries.
#
- if test -f auto/link.sed; then
echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
echo "link.sh: If linking fails, try deleting the auto/link.sed file."
echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
--- 16,38 ----
echo "$LINK " >link.cmd
exit_value=0
+ if test "$LINK_AS_NEEDED" = yes; then
+ echo "link.sh: \$LINK_AS_NEEDED set to 'yes': invoking linker directly."
+ cat link.cmd
+ if sh link.cmd; then
+ exit_value=0
+ echo "link.sh: Linked fine"
+ else
+ exit_value=$?
+ echo "link.sh: Linking failed"
+ fi
+ else
+ if test -f auto/link.sed; then
+
#
# If auto/link.sed already exists, use it. We assume a previous run of
# link.sh has found the correct set of libraries.
#
echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
echo "link.sh: If linking fails, try deleting the auto/link.sed file."
echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
***************
*** 124,129 ****
--- 136,143 ----
fi
fi
+ fi
+
#
# cleanup
#
*** ../vim-7.3.049/src/version.c 2010-11-03 21:59:23.000000000 +0100
--- src/version.c 2010-11-03 22:30:17.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 50,
/**/
--
Save the plankton - eat a whale.
/// 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 ///

View File

@ -1,111 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.051
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.051
Problem: Crash when $PATH is empty.
Solution: Check for vim_getenv() returning NULL. (Yasuhiro Matsumoto)
Files: src/ex_getln.c, src/os_win32.c
*** ../vim-7.3.050/src/ex_getln.c 2010-10-27 12:58:19.000000000 +0200
--- src/ex_getln.c 2010-11-10 15:31:33.000000000 +0100
***************
*** 4747,4753 ****
--- 4747,4757 ----
|| (pat[1] == '.' && vim_ispathsep(pat[2])))))
path = (char_u *)".";
else
+ {
path = vim_getenv((char_u *)"PATH", &mustfree);
+ if (path == NULL)
+ path = (char_u *)"";
+ }
/*
* Go over all directories in $PATH. Expand matches in that directory and
*** ../vim-7.3.050/src/os_win32.c 2010-10-27 12:17:54.000000000 +0200
--- src/os_win32.c 2010-11-10 15:30:36.000000000 +0100
***************
*** 211,223 ****
static void
get_exe_name(void)
{
! char temp[MAXPATHL];
char_u *p;
if (exe_name == NULL)
{
/* store the name of the executable, may be used for $VIM */
! GetModuleFileName(NULL, temp, MAXPATHL - 1);
if (*temp != NUL)
exe_name = FullName_save((char_u *)temp, FALSE);
}
--- 211,226 ----
static void
get_exe_name(void)
{
! /* Maximum length of $PATH is more than MAXPATHL. 8191 is often mentioned
! * as the maximum length that works (plus a NUL byte). */
! #define MAX_ENV_PATH_LEN 8192
! char temp[MAX_ENV_PATH_LEN];
char_u *p;
if (exe_name == NULL)
{
/* store the name of the executable, may be used for $VIM */
! GetModuleFileName(NULL, temp, MAX_ENV_PATH_LEN - 1);
if (*temp != NUL)
exe_name = FullName_save((char_u *)temp, FALSE);
}
***************
*** 232,241 ****
* "!xxd" it's found in our starting directory. Needed because
* SearchPath() also looks there. */
p = mch_getenv("PATH");
! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL)
{
! STRCPY(temp, p);
! STRCAT(temp, ";");
STRCAT(temp, exe_path);
vim_setenv((char_u *)"PATH", temp);
}
--- 235,250 ----
* "!xxd" it's found in our starting directory. Needed because
* SearchPath() also looks there. */
p = mch_getenv("PATH");
! if (p == NULL
! || STRLEN(p) + STRLEN(exe_path) + 2 < MAX_ENV_PATH_LEN)
{
! if (p == NULL || *p == NUL)
! temp[0] = NUL;
! else
! {
! STRCPY(temp, p);
! STRCAT(temp, ";");
! }
STRCAT(temp, exe_path);
vim_setenv((char_u *)"PATH", temp);
}
*** ../vim-7.3.050/src/version.c 2010-11-03 22:32:18.000000000 +0100
--- src/version.c 2010-11-10 15:34:43.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 51,
/**/
--
SIGFUN -- signature too funny (core dumped)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,345 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.052
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.052
Problem: When 'completefunc' opens a new window all kinds of errors follow.
(Xavier Deguillard)
Solution: When 'completefunc' goes to another window or buffer and when it
deletes text abort completion. Add a test for 'completefunc'.
Files: src/edit.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/test76.in, src/testdir/test76.ok
*** ../vim-7.3.051/src/edit.c 2010-08-15 21:57:25.000000000 +0200
--- src/edit.c 2010-11-10 16:50:12.000000000 +0100
***************
*** 58,63 ****
--- 58,67 ----
};
static char e_hitend[] = N_("Hit end of paragraph");
+ #ifdef FEAT_COMPL_FUNC
+ static char e_complwin[] = N_("E839: Completion function changed window");
+ static char e_compldel[] = N_("E840: Completion function deleted text");
+ #endif
/*
* Structure used to store one match for insert completion.
***************
*** 3833,3838 ****
--- 3837,3844 ----
char_u *args[2];
char_u *funcname;
pos_T pos;
+ win_T *curwin_save;
+ buf_T *curbuf_save;
funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
if (*funcname == NUL)
***************
*** 3843,3855 ****
args[1] = base;
pos = curwin->w_cursor;
matchlist = call_func_retlist(funcname, 2, args, FALSE);
curwin->w_cursor = pos; /* restore the cursor position */
! if (matchlist == NULL)
! return;
! ins_compl_add_list(matchlist);
! list_unref(matchlist);
}
#endif /* FEAT_COMPL_FUNC */
--- 3849,3875 ----
args[1] = base;
pos = curwin->w_cursor;
+ curwin_save = curwin;
+ curbuf_save = curbuf;
matchlist = call_func_retlist(funcname, 2, args, FALSE);
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+ EMSG(_(e_complwin));
+ goto theend;
+ }
curwin->w_cursor = pos; /* restore the cursor position */
! check_cursor();
! if (!equalpos(curwin->w_cursor, pos))
! {
! EMSG(_(e_compldel));
! goto theend;
! }
! if (matchlist != NULL)
! ins_compl_add_list(matchlist);
! theend:
! if (matchlist != NULL)
! list_unref(matchlist);
}
#endif /* FEAT_COMPL_FUNC */
***************
*** 4994,4999 ****
--- 5014,5021 ----
int col;
char_u *funcname;
pos_T pos;
+ win_T *curwin_save;
+ buf_T *curbuf_save;
/* Call 'completefunc' or 'omnifunc' and get pattern length as a
* string */
***************
*** 5009,5016 ****
--- 5031,5051 ----
args[0] = (char_u *)"1";
args[1] = NULL;
pos = curwin->w_cursor;
+ curwin_save = curwin;
+ curbuf_save = curbuf;
col = call_func_retnr(funcname, 2, args, FALSE);
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+ EMSG(_(e_complwin));
+ return FAIL;
+ }
curwin->w_cursor = pos; /* restore the cursor position */
+ check_cursor();
+ if (!equalpos(curwin->w_cursor, pos))
+ {
+ EMSG(_(e_compldel));
+ return FAIL;
+ }
if (col < 0)
col = curs_col;
*** ../vim-7.3.051/src/testdir/Make_amiga.mak 2010-10-27 18:36:32.000000000 +0200
--- src/testdir/Make_amiga.mak 2010-11-10 15:48:30.000000000 +0100
***************
*** 27,33 ****
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out test75.out
.SUFFIXES: .in .out
--- 27,34 ----
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out test75.out \
! test76.out
.SUFFIXES: .in .out
***************
*** 122,124 ****
--- 123,126 ----
test73.out: test73.in
test74.out: test74.in
test75.out: test75.in
+ test76.out: test76.in
*** ../vim-7.3.051/src/testdir/Make_dos.mak 2010-10-27 18:36:32.000000000 +0200
--- src/testdir/Make_dos.mak 2010-11-10 15:48:38.000000000 +0100
***************
*** 28,34 ****
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out test75.out
SCRIPTS32 = test50.out test70.out
--- 28,34 ----
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out test75.out test76.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.051/src/testdir/Make_ming.mak 2010-10-27 18:36:32.000000000 +0200
--- src/testdir/Make_ming.mak 2010-11-10 15:48:53.000000000 +0100
***************
*** 48,54 ****
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out test75.out
SCRIPTS32 = test50.out test70.out
--- 48,54 ----
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
! test74.out test75.out test76.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.051/src/testdir/Make_os2.mak 2010-10-27 18:36:32.000000000 +0200
--- src/testdir/Make_os2.mak 2010-11-10 15:49:10.000000000 +0100
***************
*** 27,33 ****
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out test75.out
.SUFFIXES: .in .out
--- 27,34 ----
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
! test71.out test72.out test73.out test74.out test75.out \
! test76.out
.SUFFIXES: .in .out
*** ../vim-7.3.051/src/testdir/Make_vms.mms 2010-10-27 18:36:32.000000000 +0200
--- src/testdir/Make_vms.mms 2010-11-10 15:49:32.000000000 +0100
***************
*** 4,10 ****
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2010 Oct 20
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
--- 4,10 ----
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
! # Last change: 2010 Nov 10
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
***************
*** 74,80 ****
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
! test71.out test72.out test74.out test75.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 74,80 ----
test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
! test71.out test72.out test74.out test75.out test76.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.3.051/src/testdir/Makefile 2010-10-27 18:36:32.000000000 +0200
--- src/testdir/Makefile 2010-11-10 15:47:32.000000000 +0100
***************
*** 25,31 ****
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
! test74.out test75.out
SCRIPTS_GUI = test16.out
--- 25,31 ----
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
! test74.out test75.out test76.out
SCRIPTS_GUI = test16.out
*** ../vim-7.3.051/src/testdir/test76.in 2010-11-10 16:51:45.000000000 +0100
--- src/testdir/test76.in 2010-11-10 16:38:45.000000000 +0100
***************
*** 0 ****
--- 1,46 ----
+ Tests for completefunc/omnifunc. vim: set ft=vim :
+
+ STARTTEST
+ :"Test that nothing happens if the 'completefunc' opens
+ :"a new window (no completion, no crash)
+ :so small.vim
+ :function! DummyCompleteOne(findstart, base)
+ : if a:findstart
+ : return 0
+ : else
+ : wincmd n
+ : return ['onedef', 'oneDEF']
+ : endif
+ :endfunction
+ :setlocal completefunc=DummyCompleteOne
+ /^one
+ A:q!
+ :function! DummyCompleteTwo(findstart, base)
+ : if a:findstart
+ : wincmd n
+ : return 0
+ : else
+ : return ['twodef', 'twoDEF']
+ : endif
+ :endfunction
+ :setlocal completefunc=DummyCompleteTwo
+ /^two
+ A:q!
+ :"Test that 'completefunc' works when it's OK.
+ :function! DummyCompleteThree(findstart, base)
+ : if a:findstart
+ : return 0
+ : else
+ : return ['threedef', 'threeDEF']
+ : endif
+ :endfunction
+ :setlocal completefunc=DummyCompleteThree
+ /^three
+ A:/^+++/,/^three/w! test.out
+ :qa!
+ ENDTEST
+
+ +++
+ one
+ two
+ three
*** ../vim-7.3.051/src/testdir/test76.ok 2010-11-10 16:51:45.000000000 +0100
--- src/testdir/test76.ok 2010-11-10 16:38:58.000000000 +0100
***************
*** 0 ****
--- 1,4 ----
+ +++
+
+ two
+ threeDEF
*** ../vim-7.3.051/src/version.c 2010-11-10 15:37:00.000000000 +0100
--- src/version.c 2010-11-10 16:40:29.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 52,
/**/
--
BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow?
ARTHUR: What do you mean? An African or European swallow?
BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh!
BRIDGEKEEPER is cast into the gorge.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,89 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.053
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.053
Problem: complete() function doesn't reset complete direction. Can't use
an empty string in the list of matches.
Solution: Set compl_direction to FORWARD. Add "empty" key to allow empty
words. (Kikuchan)
Files: src/edit.c
*** ../vim-7.3.052/src/edit.c 2010-11-10 16:54:16.000000000 +0100
--- src/edit.c 2010-11-10 17:03:23.000000000 +0100
***************
*** 2662,2667 ****
--- 2662,2668 ----
if (stop_arrow() == FAIL)
return;
+ compl_direction = FORWARD;
if (startcol > curwin->w_cursor.col)
startcol = curwin->w_cursor.col;
compl_col = startcol;
***************
*** 3909,3914 ****
--- 3910,3916 ----
char_u *word;
int icase = FALSE;
int adup = FALSE;
+ int aempty = FALSE;
char_u *(cptext[CPT_COUNT]);
if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
***************
*** 3926,3938 ****
icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
}
else
{
word = get_tv_string_chk(tv);
vim_memset(cptext, 0, sizeof(cptext));
}
! if (word == NULL || *word == NUL)
return FAIL;
return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
}
--- 3928,3942 ----
icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
+ if (get_dict_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL)
+ aempty = get_dict_number(tv->vval.v_dict, (char_u *)"empty");
}
else
{
word = get_tv_string_chk(tv);
vim_memset(cptext, 0, sizeof(cptext));
}
! if (word == NULL || (!aempty && *word == NUL))
return FAIL;
return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
}
*** ../vim-7.3.052/src/version.c 2010-11-10 16:54:16.000000000 +0100
--- src/version.c 2010-11-10 17:10:39.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 53,
/**/
--
BEDEVERE: How do you know so much about swallows?
ARTHUR: Well you have to know these things when you're a king, you know.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,112 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.054
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.054
Problem: Can define a user command for :Print, but it doesn't work. (Aaron
Thoma)
Solution: Let user command :Print overrule the builtin command (Christian
Brabandt) Disallow :X and :Next as a user defined command.
Files: src/ex_docmd.c
*** ../vim-7.3.053/src/ex_docmd.c 2010-10-13 17:50:02.000000000 +0200
--- src/ex_docmd.c 2010-11-10 18:33:18.000000000 +0100
***************
*** 2871,2878 ****
}
#ifdef FEAT_USR_CMDS
! /* Look for a user defined command as a last resort */
! if (eap->cmdidx == CMD_SIZE && *eap->cmd >= 'A' && *eap->cmd <= 'Z')
{
/* User defined commands may contain digits. */
while (ASCII_ISALNUM(*p))
--- 2871,2880 ----
}
#ifdef FEAT_USR_CMDS
! /* Look for a user defined command as a last resort. Let ":Print" be
! * overruled by a user defined command. */
! if ((eap->cmdidx == CMD_SIZE || eap->cmdidx == CMD_Print)
! && *eap->cmd >= 'A' && *eap->cmd <= 'Z')
{
/* User defined commands may contain digits. */
while (ASCII_ISALNUM(*p))
***************
*** 5588,5593 ****
--- 5590,5596 ----
int compl = EXPAND_NOTHING;
char_u *compl_arg = NULL;
int has_attr = (eap->arg[0] == '-');
+ int name_len;
p = eap->arg;
***************
*** 5613,5618 ****
--- 5616,5622 ----
return;
}
end = p;
+ name_len = (int)(end - name);
/* If there is nothing after the name, and no attributes were specified,
* we are listing commands
***************
*** 5627,5632 ****
--- 5631,5643 ----
EMSG(_("E183: User defined commands must start with an uppercase letter"));
return;
}
+ else if ((name_len == 1 && *name == 'X')
+ || (name_len <= 4
+ && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
+ {
+ EMSG(_("E841: Reserved name, cannot be used for user defined command"));
+ return;
+ }
else
uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg,
eap->forceit);
***************
*** 9394,9400 ****
ex_ptag(eap)
exarg_T *eap;
{
! g_do_tagpreview = p_pvh;
ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
}
--- 9405,9411 ----
ex_ptag(eap)
exarg_T *eap;
{
! g_do_tagpreview = p_pvh; /* will be reset to 0 in ex_tag_cmd() */
ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
}
*** ../vim-7.3.053/src/version.c 2010-11-10 17:11:29.000000000 +0100
--- src/version.c 2010-11-10 18:58:28.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 54,
/**/
--
You can be stopped by the police for biking over 65 miles per hour.
You are not allowed to walk across a street on your hands.
[real standing laws in Connecticut, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,359 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.055
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.055
Problem: Recursively nested lists and dictionaries cause a near-endless
loop when comparing them with a copy. (ZyX)
Solution: Limit recursiveness in a way that non-recursive structures can
still be nested very deep.
Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
*** ../vim-7.3.054/src/eval.c 2010-10-20 21:22:17.000000000 +0200
--- src/eval.c 2010-11-10 20:02:57.000000000 +0100
***************
*** 434,442 ****
static void listitem_free __ARGS((listitem_T *item));
static void listitem_remove __ARGS((list_T *l, listitem_T *item));
static long list_len __ARGS((list_T *l));
! static int list_equal __ARGS((list_T *l1, list_T *l2, int ic));
! static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic));
! static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic));
static listitem_T *list_find __ARGS((list_T *l, long n));
static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
--- 434,442 ----
static void listitem_free __ARGS((listitem_T *item));
static void listitem_remove __ARGS((list_T *l, listitem_T *item));
static long list_len __ARGS((list_T *l));
! static int list_equal __ARGS((list_T *l1, list_T *l2, int ic, int recursive));
! static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic, int recursive));
! static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic, int recursive));
static listitem_T *list_find __ARGS((list_T *l, long n));
static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
***************
*** 4350,4356 ****
else
{
/* Compare two Lists for being equal or unequal. */
! n1 = list_equal(rettv->vval.v_list, var2.vval.v_list, ic);
if (type == TYPE_NEQUAL)
n1 = !n1;
}
--- 4350,4357 ----
else
{
/* Compare two Lists for being equal or unequal. */
! n1 = list_equal(rettv->vval.v_list, var2.vval.v_list,
! ic, FALSE);
if (type == TYPE_NEQUAL)
n1 = !n1;
}
***************
*** 4379,4385 ****
else
{
/* Compare two Dictionaries for being equal or unequal. */
! n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict, ic);
if (type == TYPE_NEQUAL)
n1 = !n1;
}
--- 4380,4387 ----
else
{
/* Compare two Dictionaries for being equal or unequal. */
! n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict,
! ic, FALSE);
if (type == TYPE_NEQUAL)
n1 = !n1;
}
***************
*** 5914,5923 ****
* Return TRUE when two lists have exactly the same values.
*/
static int
! list_equal(l1, l2, ic)
list_T *l1;
list_T *l2;
int ic; /* ignore case for strings */
{
listitem_T *item1, *item2;
--- 5916,5926 ----
* Return TRUE when two lists have exactly the same values.
*/
static int
! list_equal(l1, l2, ic, recursive)
list_T *l1;
list_T *l2;
int ic; /* ignore case for strings */
+ int recursive; /* TRUE when used recursively */
{
listitem_T *item1, *item2;
***************
*** 5931,5937 ****
for (item1 = l1->lv_first, item2 = l2->lv_first;
item1 != NULL && item2 != NULL;
item1 = item1->li_next, item2 = item2->li_next)
! if (!tv_equal(&item1->li_tv, &item2->li_tv, ic))
return FALSE;
return item1 == NULL && item2 == NULL;
}
--- 5934,5940 ----
for (item1 = l1->lv_first, item2 = l2->lv_first;
item1 != NULL && item2 != NULL;
item1 = item1->li_next, item2 = item2->li_next)
! if (!tv_equal(&item1->li_tv, &item2->li_tv, ic, recursive))
return FALSE;
return item1 == NULL && item2 == NULL;
}
***************
*** 5953,5962 ****
* Return TRUE when two dictionaries have exactly the same key/values.
*/
static int
! dict_equal(d1, d2, ic)
dict_T *d1;
dict_T *d2;
int ic; /* ignore case for strings */
{
hashitem_T *hi;
dictitem_T *item2;
--- 5956,5966 ----
* Return TRUE when two dictionaries have exactly the same key/values.
*/
static int
! dict_equal(d1, d2, ic, recursive)
dict_T *d1;
dict_T *d2;
int ic; /* ignore case for strings */
+ int recursive; /* TRUE when used recursively */
{
hashitem_T *hi;
dictitem_T *item2;
***************
*** 5977,5983 ****
item2 = dict_find(d2, hi->hi_key, -1);
if (item2 == NULL)
return FALSE;
! if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic))
return FALSE;
--todo;
}
--- 5981,5987 ----
item2 = dict_find(d2, hi->hi_key, -1);
if (item2 == NULL)
return FALSE;
! if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic, recursive))
return FALSE;
--todo;
}
***************
*** 5985,6025 ****
return TRUE;
}
/*
* Return TRUE if "tv1" and "tv2" have the same value.
* Compares the items just like "==" would compare them, but strings and
* numbers are different. Floats and numbers are also different.
*/
static int
! tv_equal(tv1, tv2, ic)
typval_T *tv1;
typval_T *tv2;
! int ic; /* ignore case */
{
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
char_u *s1, *s2;
! static int recursive = 0; /* cach recursive loops */
int r;
if (tv1->v_type != tv2->v_type)
return FALSE;
/* Catch lists and dicts that have an endless loop by limiting
! * recursiveness to 1000. We guess they are equal then. */
! if (recursive >= 1000)
return TRUE;
switch (tv1->v_type)
{
case VAR_LIST:
! ++recursive;
! r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic);
! --recursive;
return r;
case VAR_DICT:
! ++recursive;
! r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic);
! --recursive;
return r;
case VAR_FUNC:
--- 5989,6042 ----
return TRUE;
}
+ static int tv_equal_recurse_limit;
+
/*
* Return TRUE if "tv1" and "tv2" have the same value.
* Compares the items just like "==" would compare them, but strings and
* numbers are different. Floats and numbers are also different.
*/
static int
! tv_equal(tv1, tv2, ic, recursive)
typval_T *tv1;
typval_T *tv2;
! int ic; /* ignore case */
! int recursive; /* TRUE when used recursively */
{
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
char_u *s1, *s2;
! static int recursive_cnt = 0; /* catch recursive loops */
int r;
if (tv1->v_type != tv2->v_type)
return FALSE;
+
/* Catch lists and dicts that have an endless loop by limiting
! * recursiveness to a limit. We guess they are equal then.
! * A fixed limit has the problem of still taking an awful long time.
! * Reduce the limit every time running into it. That should work fine for
! * deeply linked structures that are not recursively linked and catch
! * recursiveness quickly. */
! if (!recursive)
! tv_equal_recurse_limit = 1000;
! if (recursive_cnt >= tv_equal_recurse_limit)
! {
! --tv_equal_recurse_limit;
return TRUE;
+ }
switch (tv1->v_type)
{
case VAR_LIST:
! ++recursive_cnt;
! r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic, TRUE);
! --recursive_cnt;
return r;
case VAR_DICT:
! ++recursive_cnt;
! r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic, TRUE);
! --recursive_cnt;
return r;
case VAR_FUNC:
***************
*** 9391,9397 ****
}
for ( ; li != NULL; li = li->li_next)
! if (tv_equal(&li->li_tv, &argvars[1], ic))
++n;
}
}
--- 9408,9414 ----
}
for ( ; li != NULL; li = li->li_next)
! if (tv_equal(&li->li_tv, &argvars[1], ic, FALSE))
++n;
}
}
***************
*** 9418,9424 ****
if (!HASHITEM_EMPTY(hi))
{
--todo;
! if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic))
++n;
}
}
--- 9435,9441 ----
if (!HASHITEM_EMPTY(hi))
{
--todo;
! if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic, FALSE))
++n;
}
}
***************
*** 12574,12580 ****
}
for ( ; item != NULL; item = item->li_next, ++idx)
! if (tv_equal(&item->li_tv, &argvars[1], ic))
{
rettv->vval.v_number = idx;
break;
--- 12591,12597 ----
}
for ( ; item != NULL; item = item->li_next, ++idx)
! if (tv_equal(&item->li_tv, &argvars[1], ic, FALSE))
{
rettv->vval.v_number = idx;
break;
*** ../vim-7.3.054/src/testdir/test55.in 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test55.in 2010-11-10 20:15:27.000000000 +0100
***************
*** 342,348 ****
--- 342,359 ----
:$put =(d == d)
:$put =(l != deepcopy(l))
:$put =(d != deepcopy(d))
+ :"
+ :" compare complex recursively linked list and dict
+ :let l = []
+ :call add(l, l)
+ :let dict4 = {"l": l}
+ :call add(dict4.l, dict4)
+ :let lcopy = deepcopy(l)
+ :let dict4copy = deepcopy(dict4)
+ :$put =(l == lcopy)
+ :$put =(dict4 == dict4copy)
:endfun
+ :"
:call Test(1, 2, [3, 4], {5: 6}) " This may take a while
:"
:delfunc Test
*** ../vim-7.3.054/src/testdir/test55.ok 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test55.ok 2010-11-10 20:16:37.000000000 +0100
***************
*** 109,111 ****
--- 109,113 ----
1
0
0
+ 1
+ 1
*** ../vim-7.3.054/src/version.c 2010-11-10 18:59:50.000000000 +0100
--- src/version.c 2010-11-10 20:10:51.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 55,
/**/
--
A special law prohibits unmarried women from parachuting on Sunday or she
shall risk arrest, fine, and/or jailing.
[real standing law in Florida, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,542 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.056
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.056
Problem: "getline" argument in do_cmdline() shadows global.
Solution: Rename the argument.
Files: src/ex_docmd.c
*** ../vim-7.3.055/src/ex_docmd.c 2010-11-10 18:59:50.000000000 +0100
--- src/ex_docmd.c 2010-11-16 11:24:40.000000000 +0100
***************
*** 733,739 ****
* do_cmdline(): execute one Ex command line
*
* 1. Execute "cmdline" when it is not NULL.
! * If "cmdline" is NULL, or more lines are needed, getline() is used.
* 2. Split up in parts separated with '|'.
*
* This function can be called recursively!
--- 733,739 ----
* do_cmdline(): execute one Ex command line
*
* 1. Execute "cmdline" when it is not NULL.
! * If "cmdline" is NULL, or more lines are needed, fgetline() is used.
* 2. Split up in parts separated with '|'.
*
* This function can be called recursively!
***************
*** 741,747 ****
* flags:
* DOCMD_VERBOSE - The command will be included in the error message.
* DOCMD_NOWAIT - Don't call wait_return() and friends.
! * DOCMD_REPEAT - Repeat execution until getline() returns NULL.
* DOCMD_KEYTYPED - Don't reset KeyTyped.
* DOCMD_EXCRESET - Reset the exception environment (used for debugging).
* DOCMD_KEEPLINE - Store first typed line (for repeating with ".").
--- 741,747 ----
* flags:
* DOCMD_VERBOSE - The command will be included in the error message.
* DOCMD_NOWAIT - Don't call wait_return() and friends.
! * DOCMD_REPEAT - Repeat execution until fgetline() returns NULL.
* DOCMD_KEYTYPED - Don't reset KeyTyped.
* DOCMD_EXCRESET - Reset the exception environment (used for debugging).
* DOCMD_KEEPLINE - Store first typed line (for repeating with ".").
***************
*** 749,763 ****
* return FAIL if cmdline could not be executed, OK otherwise
*/
int
! do_cmdline(cmdline, getline, cookie, flags)
char_u *cmdline;
! char_u *(*getline) __ARGS((int, void *, int));
! void *cookie; /* argument for getline() */
int flags;
{
char_u *next_cmdline; /* next cmd to execute */
char_u *cmdline_copy = NULL; /* copy of cmd line */
! int used_getline = FALSE; /* used "getline" to obtain command */
static int recursive = 0; /* recursive depth */
int msg_didout_before_start = 0;
int count = 0; /* line number count */
--- 749,763 ----
* return FAIL if cmdline could not be executed, OK otherwise
*/
int
! do_cmdline(cmdline, fgetline, cookie, flags)
char_u *cmdline;
! char_u *(*fgetline) __ARGS((int, void *, int));
! void *cookie; /* argument for fgetline() */
int flags;
{
char_u *next_cmdline; /* next cmd to execute */
char_u *cmdline_copy = NULL; /* copy of cmd line */
! int used_getline = FALSE; /* used "fgetline" to obtain command */
static int recursive = 0; /* recursive depth */
int msg_didout_before_start = 0;
int count = 0; /* line number count */
***************
*** 775,788 ****
struct msglist **saved_msg_list = NULL;
struct msglist *private_msg_list;
! /* "getline" and "cookie" passed to do_one_cmd() */
char_u *(*cmd_getline) __ARGS((int, void *, int));
void *cmd_cookie;
struct loop_cookie cmd_loop_cookie;
void *real_cookie;
int getline_is_func;
#else
! # define cmd_getline getline
# define cmd_cookie cookie
#endif
static int call_depth = 0; /* recursiveness */
--- 775,788 ----
struct msglist **saved_msg_list = NULL;
struct msglist *private_msg_list;
! /* "fgetline" and "cookie" passed to do_one_cmd() */
char_u *(*cmd_getline) __ARGS((int, void *, int));
void *cmd_cookie;
struct loop_cookie cmd_loop_cookie;
void *real_cookie;
int getline_is_func;
#else
! # define cmd_getline fgetline
# define cmd_cookie cookie
#endif
static int call_depth = 0; /* recursiveness */
***************
*** 822,831 ****
cstack.cs_lflags = 0;
ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
! real_cookie = getline_cookie(getline, cookie);
/* Inside a function use a higher nesting level. */
! getline_is_func = getline_equal(getline, cookie, get_func_line);
if (getline_is_func && ex_nesting_level == func_level(real_cookie))
++ex_nesting_level;
--- 822,831 ----
cstack.cs_lflags = 0;
ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
! real_cookie = getline_cookie(fgetline, cookie);
/* Inside a function use a higher nesting level. */
! getline_is_func = getline_equal(fgetline, cookie, get_func_line);
if (getline_is_func && ex_nesting_level == func_level(real_cookie))
++ex_nesting_level;
***************
*** 837,843 ****
breakpoint = func_breakpoint(real_cookie);
dbg_tick = func_dbg_tick(real_cookie);
}
! else if (getline_equal(getline, cookie, getsourceline))
{
fname = sourcing_name;
breakpoint = source_breakpoint(real_cookie);
--- 837,843 ----
breakpoint = func_breakpoint(real_cookie);
dbg_tick = func_dbg_tick(real_cookie);
}
! else if (getline_equal(fgetline, cookie, getsourceline))
{
fname = sourcing_name;
breakpoint = source_breakpoint(real_cookie);
***************
*** 881,887 ****
* KeyTyped is only set when calling vgetc(). Reset it here when not
* calling vgetc() (sourced command lines).
*/
! if (!(flags & DOCMD_KEYTYPED) && !getline_equal(getline, cookie, getexline))
KeyTyped = FALSE;
/*
--- 881,888 ----
* KeyTyped is only set when calling vgetc(). Reset it here when not
* calling vgetc() (sourced command lines).
*/
! if (!(flags & DOCMD_KEYTYPED)
! && !getline_equal(fgetline, cookie, getexline))
KeyTyped = FALSE;
/*
***************
*** 894,900 ****
do
{
#ifdef FEAT_EVAL
! getline_is_func = getline_equal(getline, cookie, get_func_line);
#endif
/* stop skipping cmds for an error msg after all endif/while/for */
--- 895,901 ----
do
{
#ifdef FEAT_EVAL
! getline_is_func = getline_equal(fgetline, cookie, get_func_line);
#endif
/* stop skipping cmds for an error msg after all endif/while/for */
***************
*** 909,915 ****
/*
* 1. If repeating a line in a loop, get a line from lines_ga.
! * 2. If no line given: Get an allocated line with getline().
* 3. If a line is given: Make a copy, so we can mess with it.
*/
--- 910,916 ----
/*
* 1. If repeating a line in a loop, get a line from lines_ga.
! * 2. If no line given: Get an allocated line with fgetline().
* 3. If a line is given: Make a copy, so we can mess with it.
*/
***************
*** 938,949 ****
}
#ifdef FEAT_PROFILE
else if (do_profiling == PROF_YES
! && getline_equal(getline, cookie, getsourceline))
script_line_end();
#endif
/* Check if a sourced file hit a ":finish" command. */
! if (source_finished(getline, cookie))
{
retval = FAIL;
break;
--- 939,950 ----
}
#ifdef FEAT_PROFILE
else if (do_profiling == PROF_YES
! && getline_equal(fgetline, cookie, getsourceline))
script_line_end();
#endif
/* Check if a sourced file hit a ":finish" command. */
! if (source_finished(fgetline, cookie))
{
retval = FAIL;
break;
***************
*** 954,960 ****
&& *dbg_tick != debug_tick)
{
*breakpoint = dbg_find_breakpoint(
! getline_equal(getline, cookie, getsourceline),
fname, sourcing_lnum);
*dbg_tick = debug_tick;
}
--- 955,961 ----
&& *dbg_tick != debug_tick)
{
*breakpoint = dbg_find_breakpoint(
! getline_equal(fgetline, cookie, getsourceline),
fname, sourcing_lnum);
*dbg_tick = debug_tick;
}
***************
*** 969,975 ****
dbg_breakpoint(fname, sourcing_lnum);
/* Find next breakpoint. */
*breakpoint = dbg_find_breakpoint(
! getline_equal(getline, cookie, getsourceline),
fname, sourcing_lnum);
*dbg_tick = debug_tick;
}
--- 970,976 ----
dbg_breakpoint(fname, sourcing_lnum);
/* Find next breakpoint. */
*breakpoint = dbg_find_breakpoint(
! getline_equal(fgetline, cookie, getsourceline),
fname, sourcing_lnum);
*dbg_tick = debug_tick;
}
***************
*** 978,984 ****
{
if (getline_is_func)
func_line_start(real_cookie);
! else if (getline_equal(getline, cookie, getsourceline))
script_line_start();
}
# endif
--- 979,985 ----
{
if (getline_is_func)
func_line_start(real_cookie);
! else if (getline_equal(fgetline, cookie, getsourceline))
script_line_start();
}
# endif
***************
*** 987,993 ****
if (cstack.cs_looplevel > 0)
{
/* Inside a while/for loop we need to store the lines and use them
! * again. Pass a different "getline" function to do_one_cmd()
* below, so that it stores lines in or reads them from
* "lines_ga". Makes it possible to define a function inside a
* while/for loop. */
--- 988,994 ----
if (cstack.cs_looplevel > 0)
{
/* Inside a while/for loop we need to store the lines and use them
! * again. Pass a different "fgetline" function to do_one_cmd()
* below, so that it stores lines in or reads them from
* "lines_ga". Makes it possible to define a function inside a
* while/for loop. */
***************
*** 995,1021 ****
cmd_cookie = (void *)&cmd_loop_cookie;
cmd_loop_cookie.lines_gap = &lines_ga;
cmd_loop_cookie.current_line = current_line;
! cmd_loop_cookie.getline = getline;
cmd_loop_cookie.cookie = cookie;
cmd_loop_cookie.repeating = (current_line < lines_ga.ga_len);
}
else
{
! cmd_getline = getline;
cmd_cookie = cookie;
}
#endif
! /* 2. If no line given, get an allocated line with getline(). */
if (next_cmdline == NULL)
{
/*
* Need to set msg_didout for the first line after an ":if",
* otherwise the ":if" will be overwritten.
*/
! if (count == 1 && getline_equal(getline, cookie, getexline))
msg_didout = TRUE;
! if (getline == NULL || (next_cmdline = getline(':', cookie,
#ifdef FEAT_EVAL
cstack.cs_idx < 0 ? 0 : (cstack.cs_idx + 1) * 2
#else
--- 996,1022 ----
cmd_cookie = (void *)&cmd_loop_cookie;
cmd_loop_cookie.lines_gap = &lines_ga;
cmd_loop_cookie.current_line = current_line;
! cmd_loop_cookie.getline = fgetline;
cmd_loop_cookie.cookie = cookie;
cmd_loop_cookie.repeating = (current_line < lines_ga.ga_len);
}
else
{
! cmd_getline = fgetline;
cmd_cookie = cookie;
}
#endif
! /* 2. If no line given, get an allocated line with fgetline(). */
if (next_cmdline == NULL)
{
/*
* Need to set msg_didout for the first line after an ":if",
* otherwise the ":if" will be overwritten.
*/
! if (count == 1 && getline_equal(fgetline, cookie, getexline))
msg_didout = TRUE;
! if (fgetline == NULL || (next_cmdline = fgetline(':', cookie,
#ifdef FEAT_EVAL
cstack.cs_idx < 0 ? 0 : (cstack.cs_idx + 1) * 2
#else
***************
*** 1142,1148 ****
* If the command was typed, remember it for the ':' register.
* Do this AFTER executing the command to make :@: work.
*/
! if (getline_equal(getline, cookie, getexline)
&& new_last_cmdline != NULL)
{
vim_free(last_cmdline);
--- 1143,1149 ----
* If the command was typed, remember it for the ':' register.
* Do this AFTER executing the command to make :@: work.
*/
! if (getline_equal(fgetline, cookie, getexline)
&& new_last_cmdline != NULL)
{
vim_free(last_cmdline);
***************
*** 1163,1169 ****
#ifdef FEAT_EVAL
/* reset did_emsg for a function that is not aborted by an error */
if (did_emsg && !force_abort
! && getline_equal(getline, cookie, get_func_line)
&& !func_has_abort(real_cookie))
did_emsg = FALSE;
--- 1164,1170 ----
#ifdef FEAT_EVAL
/* reset did_emsg for a function that is not aborted by an error */
if (did_emsg && !force_abort
! && getline_equal(fgetline, cookie, get_func_line)
&& !func_has_abort(real_cookie))
did_emsg = FALSE;
***************
*** 1202,1208 ****
if (breakpoint != NULL)
{
*breakpoint = dbg_find_breakpoint(
! getline_equal(getline, cookie, getsourceline),
fname,
((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
*dbg_tick = debug_tick;
--- 1203,1209 ----
if (breakpoint != NULL)
{
*breakpoint = dbg_find_breakpoint(
! getline_equal(fgetline, cookie, getsourceline),
fname,
((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
*dbg_tick = debug_tick;
***************
*** 1296,1303 ****
#endif
)
&& !(did_emsg && used_getline
! && (getline_equal(getline, cookie, getexmodeline)
! || getline_equal(getline, cookie, getexline)))
&& (next_cmdline != NULL
#ifdef FEAT_EVAL
|| cstack.cs_idx >= 0
--- 1297,1304 ----
#endif
)
&& !(did_emsg && used_getline
! && (getline_equal(fgetline, cookie, getexmodeline)
! || getline_equal(fgetline, cookie, getexline)))
&& (next_cmdline != NULL
#ifdef FEAT_EVAL
|| cstack.cs_idx >= 0
***************
*** 1316,1324 ****
* unclosed conditional.
*/
if (!got_int && !did_throw
! && ((getline_equal(getline, cookie, getsourceline)
! && !source_finished(getline, cookie))
! || (getline_equal(getline, cookie, get_func_line)
&& !func_has_ended(real_cookie))))
{
if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
--- 1317,1325 ----
* unclosed conditional.
*/
if (!got_int && !did_throw
! && ((getline_equal(fgetline, cookie, getsourceline)
! && !source_finished(fgetline, cookie))
! || (getline_equal(fgetline, cookie, get_func_line)
&& !func_has_ended(real_cookie))))
{
if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
***************
*** 1354,1360 ****
/* If a missing ":endtry", ":endwhile", ":endfor", or ":endif" or a memory
* lack was reported above and the error message is to be converted to an
* exception, do this now after rewinding the cstack. */
! do_errthrow(&cstack, getline_equal(getline, cookie, get_func_line)
? (char_u *)"endfunction" : (char_u *)NULL);
if (trylevel == 0)
--- 1355,1361 ----
/* If a missing ":endtry", ":endwhile", ":endfor", or ":endif" or a memory
* lack was reported above and the error message is to be converted to an
* exception, do this now after rewinding the cstack. */
! do_errthrow(&cstack, getline_equal(fgetline, cookie, get_func_line)
? (char_u *)"endfunction" : (char_u *)NULL);
if (trylevel == 0)
***************
*** 1449,1457 ****
*/
if (did_throw)
need_rethrow = TRUE;
! if ((getline_equal(getline, cookie, getsourceline)
&& ex_nesting_level > source_level(real_cookie))
! || (getline_equal(getline, cookie, get_func_line)
&& ex_nesting_level > func_level(real_cookie) + 1))
{
if (!did_throw)
--- 1450,1458 ----
*/
if (did_throw)
need_rethrow = TRUE;
! if ((getline_equal(fgetline, cookie, getsourceline)
&& ex_nesting_level > source_level(real_cookie))
! || (getline_equal(fgetline, cookie, get_func_line)
&& ex_nesting_level > func_level(real_cookie) + 1))
{
if (!did_throw)
***************
*** 1460,1475 ****
else
{
/* When leaving a function, reduce nesting level. */
! if (getline_equal(getline, cookie, get_func_line))
--ex_nesting_level;
/*
* Go to debug mode when returning from a function in which we are
* single-stepping.
*/
! if ((getline_equal(getline, cookie, getsourceline)
! || getline_equal(getline, cookie, get_func_line))
&& ex_nesting_level + 1 <= debug_break_level)
! do_debug(getline_equal(getline, cookie, getsourceline)
? (char_u *)_("End of sourced file")
: (char_u *)_("End of function"));
}
--- 1461,1476 ----
else
{
/* When leaving a function, reduce nesting level. */
! if (getline_equal(fgetline, cookie, get_func_line))
--ex_nesting_level;
/*
* Go to debug mode when returning from a function in which we are
* single-stepping.
*/
! if ((getline_equal(fgetline, cookie, getsourceline)
! || getline_equal(fgetline, cookie, get_func_line))
&& ex_nesting_level + 1 <= debug_break_level)
! do_debug(getline_equal(fgetline, cookie, getsourceline)
? (char_u *)_("End of sourced file")
: (char_u *)_("End of function"));
}
*** ../vim-7.3.055/src/version.c 2010-11-16 11:28:33.000000000 +0100
--- src/version.c 2010-11-16 11:27:09.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 56,
/**/
--
Lawmakers made it obligatory for everybody to take at least one bath
each week -- on Saturday night.
[real standing law in Vermont, United States of America]
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,62 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.057
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.057
Problem: Segfault with command line abbreviation. (Randy Morris)
Solution: Don't retrigger the abbreviation when abandoning the command line.
Continue editing the command line after the error.
Files: src/ex_getln.c
*** ../vim-7.3.056/src/ex_getln.c 2010-11-10 15:37:00.000000000 +0100
--- src/ex_getln.c 2010-11-16 14:03:09.000000000 +0100
***************
*** 712,718 ****
}
}
beep_flush();
! c = ESC;
}
#endif
else
--- 712,722 ----
}
}
beep_flush();
! got_int = FALSE; /* don't abandon the command line */
! did_emsg = FALSE;
! emsg_on_display = FALSE;
! redrawcmd();
! goto cmdline_not_changed;
}
#endif
else
*** ../vim-7.3.056/src/version.c 2010-11-16 11:29:30.000000000 +0100
--- src/version.c 2010-11-16 14:04:25.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 57,
/**/
--
FROG: How you English say: I one more time, mac, I unclog my nose towards
you, sons of a window-dresser, so, you think you could out-clever us
French fellows with your silly knees-bent creeping about advancing
behaviour. (blows a raspberry) I wave my private parts at your aunties,
you brightly-coloured, mealy-templed, cranberry-smelling, electric
donkey-bottom biters.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,158 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.058
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.058
Problem: Error "code converter not found" when loading Ruby script.
Solution: Load Gem module. (Yasuhiro Matsumoto)
Files: src/if_ruby.c
*** ../vim-7.3.057/src/if_ruby.c 2010-10-27 17:40:53.000000000 +0200
--- src/if_ruby.c 2010-11-16 14:37:48.000000000 +0100
***************
*** 229,234 ****
--- 229,237 ----
# define rb_enc_find_index dll_rb_enc_find_index
# define rb_enc_find dll_rb_enc_find
# define rb_enc_str_new dll_rb_enc_str_new
+ # define rb_intern2 dll_rb_intern2
+ # define rb_const_remove dll_rb_const_remove
+ # define Init_prelude dll_Init_prelude
# define rb_sprintf dll_rb_sprintf
# define ruby_init_stack dll_ruby_init_stack
#endif
***************
*** 317,322 ****
--- 320,328 ----
static int (*dll_rb_enc_find_index) (const char*);
static rb_encoding* (*dll_rb_enc_find) (const char*);
static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+ static ID (*dll_rb_intern2) (const char*, long);
+ static void (*dll_Init_prelude) (void);
+ static VALUE (*dll_rb_const_remove) (VALUE, ID);
static VALUE (*dll_rb_sprintf) (const char*, ...);
static void (*ruby_init_stack)(VALUE*);
#endif
***************
*** 425,430 ****
--- 431,439 ----
{"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
{"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
{"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+ {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2},
+ {"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove},
+ {"Init_prelude", (RUBY_PROC*)&dll_Init_prelude},
{"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
{"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
#endif
***************
*** 662,667 ****
--- 671,682 ----
ruby_io_init();
#ifdef RUBY19_OR_LATER
rb_enc_find_index("encdb");
+
+ /* This avoids the error "Encoding::ConverterNotFoundError: code
+ * converter not found (UTF-16LE to ASCII-8BIT)". */
+ rb_define_module("Gem");
+ Init_prelude();
+ rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15));
#endif
ruby_vim_init();
ruby_initialized = 1;
***************
*** 946,958 ****
static VALUE get_buffer_line(buf_T *buf, linenr_T n)
{
! if (n > 0 && n <= buf->b_ml.ml_line_count)
! {
! char *line = (char *)ml_get_buf(buf, n, FALSE);
! return line ? vim_str2rb_enc_str(line) : Qnil;
! }
! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
! return Qnil; /* For stop warning */
}
static VALUE buffer_aref(VALUE self, VALUE num)
--- 961,969 ----
static VALUE get_buffer_line(buf_T *buf, linenr_T n)
{
! if (n <= 0 || n > buf->b_ml.ml_line_count)
! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
! return vim_str2rb_enc_str((char *)ml_get_buf(buf, n, FALSE));
}
static VALUE buffer_aref(VALUE self, VALUE num)
***************
*** 991,999 ****
else
{
rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
- #ifndef __GNUC__
- return Qnil; /* For stop warning */
- #endif
}
return str;
}
--- 1002,1007 ----
***************
*** 1048,1054 ****
long n = NUM2LONG(num);
aco_save_T aco;
! if (line == NULL) {
rb_raise(rb_eIndexError, "NULL line");
}
else if (n >= 0 && n <= buf->b_ml.ml_line_count)
--- 1056,1063 ----
long n = NUM2LONG(num);
aco_save_T aco;
! if (line == NULL)
! {
rb_raise(rb_eIndexError, "NULL line");
}
else if (n >= 0 && n <= buf->b_ml.ml_line_count)
***************
*** 1072,1078 ****
update_curbuf(NOT_VALID);
}
! else {
rb_raise(rb_eIndexError, "line number %ld out of range", n);
}
return str;
--- 1081,1088 ----
update_curbuf(NOT_VALID);
}
! else
! {
rb_raise(rb_eIndexError, "line number %ld out of range", n);
}
return str;
*** ../vim-7.3.057/src/version.c 2010-11-16 14:05:48.000000000 +0100
--- src/version.c 2010-11-16 14:44:42.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 58,
/**/
--
SIGIRO -- irony detected (iron core dumped)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,116 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.059
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.059
Problem: Netbeans: Problem with recursively handling messages for Athena
and Motif.
Solution: Call netbeans_parse_messages() in the main loop, like it's done
for GTK. (Xavier de Gaye)
Files: src/gui_x11.c, src/netbeans.c
*** ../vim-7.3.058/src/gui_x11.c 2010-08-15 21:57:25.000000000 +0200
--- src/gui_x11.c 2010-11-16 14:53:18.000000000 +0100
***************
*** 2895,2900 ****
--- 2895,2905 ----
focus = gui.in_focus;
}
+ #if defined(FEAT_NETBEANS_INTG)
+ /* Process any queued netbeans messages. */
+ netbeans_parse_messages();
+ #endif
+
/*
* Don't use gui_mch_update() because then we will spin-lock until a
* char arrives, instead we use XtAppProcessEvent() to hang until an
*** ../vim-7.3.058/src/netbeans.c 2010-09-30 21:03:13.000000000 +0200
--- src/netbeans.c 2010-11-16 14:52:55.000000000 +0100
***************
*** 726,734 ****
static char_u *buf = NULL;
int len = 0;
int readlen = 0;
- #if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
- static int level = 0;
- #endif
#ifdef HAVE_SELECT
struct timeval tval;
fd_set rfds;
--- 726,731 ----
***************
*** 744,756 ****
return;
}
- #if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
- /* recursion guard; this will be called from the X event loop at unknown
- * moments */
- if (NB_HAS_GUI)
- ++level;
- #endif
-
/* Allocate a buffer to read into. */
if (buf == NULL)
{
--- 741,746 ----
***************
*** 803,823 ****
return; /* don't try to parse it */
}
! #if defined(NB_HAS_GUI) && !defined(FEAT_GUI_W32)
! /* Let the main loop handle messages. */
! if (NB_HAS_GUI)
! {
! # ifdef FEAT_GUI_GTK
! if (gtk_main_level() > 0)
! gtk_main_quit();
! # else
! /* Parse the messages now, but avoid recursion. */
! if (level == 1)
! netbeans_parse_messages();
!
! --level;
! # endif
! }
#endif
}
--- 793,801 ----
return; /* don't try to parse it */
}
! #if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
! if (NB_HAS_GUI && gtk_main_level() > 0)
! gtk_main_quit();
#endif
}
*** ../vim-7.3.058/src/version.c 2010-11-16 14:46:14.000000000 +0100
--- src/version.c 2010-11-16 14:50:57.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 59,
/**/
--
ARTHUR: If you do not open these doors, we will take this castle by force ...
[A bucket of slops land on ARTHUR. He tries to retain his dignity.]
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,227 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.060
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.060
Problem: Netbeans: crash when socket is disconnected unexpectedly.
Solution: Don't cleanup when a read fails, put a message in the queue and
disconnect later. (Xavier de Gaye)
Files: src/netbeans.c
*** ../vim-7.3.059/src/netbeans.c 2010-11-16 15:04:51.000000000 +0100
--- src/netbeans.c 2010-11-16 15:48:36.000000000 +0100
***************
*** 135,148 ****
static int needupdate = 0;
static int inAtomic = 0;
static void
! netbeans_close(void)
{
- if (!NETBEANS_OPEN)
- return;
-
- netbeans_send_disconnect();
-
#ifdef FEAT_GUI_X11
if (inputHandler != (XtInputId)NULL)
{
--- 135,146 ----
static int needupdate = 0;
static int inAtomic = 0;
+ /*
+ * Close the socket and remove the input handlers.
+ */
static void
! nb_close_socket(void)
{
#ifdef FEAT_GUI_X11
if (inputHandler != (XtInputId)NULL)
{
***************
*** 167,179 ****
# endif
#endif
#ifdef FEAT_BEVAL
bevalServers &= ~BEVAL_NETBEANS;
#endif
- sock_close(nbsock);
- nbsock = -1;
-
needupdate = 0;
inAtomic = 0;
nb_free();
--- 165,191 ----
# endif
#endif
+ sock_close(nbsock);
+ nbsock = -1;
+ }
+
+ /*
+ * Close the connection and cleanup.
+ * May be called when nb_close_socket() was called earlier.
+ */
+ static void
+ netbeans_close(void)
+ {
+ if (NETBEANS_OPEN)
+ {
+ netbeans_send_disconnect();
+ nb_close_socket();
+ }
+
#ifdef FEAT_BEVAL
bevalServers &= ~BEVAL_NETBEANS;
#endif
needupdate = 0;
inAtomic = 0;
nb_free();
***************
*** 632,640 ****
char_u *p;
queue_T *node;
- if (!NETBEANS_OPEN)
- return;
-
while (head.next != NULL && head.next != &head)
{
node = head.next;
--- 644,649 ----
***************
*** 720,725 ****
--- 729,736 ----
}
#endif
+ #define DETACH_MSG "DETACH\n"
+
void
netbeans_read()
{
***************
*** 780,801 ****
break; /* did read everything that's available */
}
if (readlen <= 0)
{
! /* read error or didn't read anything */
! netbeans_close();
! nbdebug(("messageFromNetbeans: Error in read() from socket\n"));
if (len < 0)
{
nbdebug(("read from Netbeans socket\n"));
PERROR(_("read from Netbeans socket"));
}
- return; /* don't try to parse it */
}
#if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
if (NB_HAS_GUI && gtk_main_level() > 0)
! gtk_main_quit();
#endif
}
--- 791,822 ----
break; /* did read everything that's available */
}
+ /* Reading a socket disconnection (readlen == 0), or a socket error. */
if (readlen <= 0)
{
! /* Queue a "DETACH" netbeans message in the command queue in order to
! * terminate the netbeans session later. Do not end the session here
! * directly as we may be running in the context of a call to
! * netbeans_parse_messages():
! * netbeans_parse_messages
! * -> autocmd triggered while processing the netbeans cmd
! * -> ui_breakcheck
! * -> gui event loop or select loop
! * -> netbeans_read()
! */
! save((char_u *)DETACH_MSG, strlen(DETACH_MSG));
! nb_close_socket();
!
if (len < 0)
{
nbdebug(("read from Netbeans socket\n"));
PERROR(_("read from Netbeans socket"));
}
}
#if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
if (NB_HAS_GUI && gtk_main_level() > 0)
! gtk_main_quit();
#endif
}
***************
*** 1164,1169 ****
--- 1185,1194 ----
nbdebug(("REP %d: <none>\n", cmdno));
+ /* Avoid printing an annoying error message. */
+ if (!NETBEANS_OPEN)
+ return;
+
sprintf(reply, "%d\n", cmdno);
nb_send(reply, "nb_reply_nil");
}
***************
*** 2753,2763 ****
{
#ifdef FEAT_GUI
# if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
! && !defined(FEAT_GUI_W32)
if (gui.in_use)
{
! EMSG(_("E838: netbeans is not supported with this GUI"));
! return;
}
# endif
#endif
--- 2778,2788 ----
{
#ifdef FEAT_GUI
# if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
! && !defined(FEAT_GUI_W32)
if (gui.in_use)
{
! EMSG(_("E838: netbeans is not supported with this GUI"));
! return;
}
# endif
#endif
*** ../vim-7.3.059/src/version.c 2010-11-16 15:04:51.000000000 +0100
--- src/version.c 2010-11-16 15:22:39.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 60,
/**/
--
Another bucket of what can only be described as human ordure hits ARTHUR.
ARTHUR: ... Right! (to the KNIGHTS) That settles it!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,89 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.061
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.061
Problem: Remote ":drop" does not respect 'autochdir'. (Peter Odding)
Solution: Don't restore the directory when 'autochdir' is set. (Benjamin
Fritz)
Files: src/main.c
*** ../vim-7.3.060/src/main.c 2010-09-29 17:26:57.000000000 +0200
--- src/main.c 2010-11-16 16:16:11.000000000 +0100
***************
*** 3817,3822 ****
--- 3817,3824 ----
/* Check if we have at least one argument. */
if (filec <= 0)
mainerr_arg_missing((char_u *)filev[-1]);
+
+ /* Temporarily cd to the current directory to handle relative file names. */
if (mch_dirname(cwd, MAXPATHL) != OK)
return NULL;
if ((p = vim_strsave_escaped_ext(cwd,
***************
*** 3858,3870 ****
ga_concat(&ga, p);
vim_free(p);
}
/* The :drop commands goes to Insert mode when 'insertmode' is set, use
* CTRL-\ CTRL-N again. */
! ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
! ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd -");
if (sendReply)
! ga_concat(&ga, (char_u *)"<CR>:call SetupRemoteReplies()");
! ga_concat(&ga, (char_u *)"<CR>:");
if (inicmd != NULL)
{
/* Can't use <CR> after "inicmd", because an "startinsert" would cause
--- 3860,3879 ----
ga_concat(&ga, p);
vim_free(p);
}
+ ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
+
/* The :drop commands goes to Insert mode when 'insertmode' is set, use
* CTRL-\ CTRL-N again. */
! ga_concat(&ga, (char_u *)"<C-\\><C-N>");
!
! /* Switch back to the correct current directory (prior to temporary path
! * switch) unless 'autochdir' is set, in which case it will already be
! * correct after the :drop command. */
! ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|cd -|endif<CR>");
!
if (sendReply)
! ga_concat(&ga, (char_u *)":call SetupRemoteReplies()<CR>");
! ga_concat(&ga, (char_u *)":");
if (inicmd != NULL)
{
/* Can't use <CR> after "inicmd", because an "startinsert" would cause
*** ../vim-7.3.060/src/version.c 2010-11-16 15:48:57.000000000 +0100
--- src/version.c 2010-11-16 16:19:58.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 61,
/**/
--
BEDEVERE: Stand by for attack!!
[CUT TO enormous army forming up. Trebuchets, rows of PIKEMEN, siege
towers, pennants flying, shouts of "Stand by for attack!" Traditional
army build-up shots. The shouts echo across the ranks of the army.
We see various groups reacting, and stirring themselves in readiness.]
ARTHUR: Who are they?
BEDEVERE: Oh, just some friends!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,609 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.062
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.062
Problem: Python doesn't work properly when installed in another directory
than expected.
Solution: Figure out home directory in configure and use Py_SetPythonHome()
at runtime. (Roland Puntaier)
Files: src/configure.in, src/auto/configure, src/if_python.c,
src/if_python3.c
*** ../vim-7.3.061/src/configure.in 2010-11-03 22:32:18.000000000 +0100
--- src/configure.in 2010-11-16 17:47:36.000000000 +0100
***************
*** 891,899 ****
PYTHON_LIBS="${vi_cv_path_python_plibs}"
if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
else
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
fi
PYTHON_SRC="if_python.c"
dnl For Mac OSX 10.2 config.o is included in the Python library.
--- 891,899 ----
PYTHON_LIBS="${vi_cv_path_python_plibs}"
if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
else
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
fi
PYTHON_SRC="if_python.c"
dnl For Mac OSX 10.2 config.o is included in the Python library.
***************
*** 905,911 ****
if test "${vi_cv_var_python_version}" = "1.4"; then
PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
fi
! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
dnl On FreeBSD linking with "-pthread" is required to use threads.
dnl _THREAD_SAFE must be used for compiling then.
--- 905,911 ----
if test "${vi_cv_var_python_version}" = "1.4"; then
PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
fi
! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
dnl On FreeBSD linking with "-pthread" is required to use threads.
dnl _THREAD_SAFE must be used for compiling then.
***************
*** 1063,1071 ****
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
else
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
fi
PYTHON3_SRC="if_python3.c"
dnl For Mac OSX 10.2 config.o is included in the Python library.
--- 1063,1071 ----
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
else
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
fi
PYTHON3_SRC="if_python3.c"
dnl For Mac OSX 10.2 config.o is included in the Python library.
***************
*** 1143,1151 ****
if test "$python_ok" = yes && test "$python3_ok" = yes; then
AC_DEFINE(DYNAMIC_PYTHON)
AC_DEFINE(DYNAMIC_PYTHON3)
! AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL)
cflags_save=$CFLAGS
! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
AC_RUN_IFELSE([
--- 1143,1151 ----
if test "$python_ok" = yes && test "$python3_ok" = yes; then
AC_DEFINE(DYNAMIC_PYTHON)
AC_DEFINE(DYNAMIC_PYTHON3)
! AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python)
cflags_save=$CFLAGS
! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
AC_RUN_IFELSE([
***************
*** 1156,1170 ****
* Only the first pyhton version used will be switched on.
*/
! int no_rtl_global_needed_for(char *python_instsoname)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
--- 1156,1172 ----
* Only the first pyhton version used will be switched on.
*/
! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
+ void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
+ (*pfx)(prefix);
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
***************
*** 1176,1188 ****
int main(int argc, char** argv)
{
int not_needed = 0;
! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
not_needed = 1;
return !not_needed;
}],
[AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
CFLAGS=$cflags_save
LDFLAGS=$ldflags_save
PYTHON_SRC="if_python.c"
PYTHON_OBJ="objects/if_python.o"
PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
--- 1178,1237 ----
int main(int argc, char** argv)
{
int not_needed = 0;
! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
not_needed = 1;
return !not_needed;
}],
[AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
+
CFLAGS=$cflags_save
LDFLAGS=$ldflags_save
+
+ AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3)
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+ ldflags_save=$LDFLAGS
+ LDFLAGS="$LDFLAGS -ldl"
+ AC_RUN_IFELSE([
+ #include <dlfcn.h>
+ #include <wchar.h>
+ /* If this program fails, then RTLD_GLOBAL is needed.
+ * RTLD_GLOBAL will be used and then it is not possible to
+ * have both python versions enabled in the same vim instance.
+ * Only the first pyhton version used will be switched on.
+ */
+
+ int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
+ {
+ int needed = 0;
+ void* pylib = dlopen(python_instsoname, RTLD_LAZY);
+ if (pylib != 0)
+ {
+ void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
+ void (*init)(void) = dlsym(pylib, "Py_Initialize");
+ int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
+ void (*final)(void) = dlsym(pylib, "Py_Finalize");
+ (*pfx)(prefix);
+ (*init)();
+ needed = (*simple)("import termios") == -1;
+ (*final)();
+ dlclose(pylib);
+ }
+ return !needed;
+ }
+
+ int main(int argc, char** argv)
+ {
+ int not_needed = 0;
+ if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
+ not_needed = 1;
+ return !not_needed;
+ }],
+ [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
+
+ CFLAGS=$cflags_save
+ LDFLAGS=$ldflags_save
+
PYTHON_SRC="if_python.c"
PYTHON_OBJ="objects/if_python.o"
PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
*** ../vim-7.3.061/src/auto/configure 2010-11-03 22:32:18.000000000 +0100
--- src/auto/configure 2010-11-16 17:47:42.000000000 +0100
***************
*** 5326,5334 ****
PYTHON_LIBS="${vi_cv_path_python_plibs}"
if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
else
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
fi
PYTHON_SRC="if_python.c"
if test "x$MACOSX" = "xyes"; then
--- 5326,5334 ----
PYTHON_LIBS="${vi_cv_path_python_plibs}"
if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
else
! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
fi
PYTHON_SRC="if_python.c"
if test "x$MACOSX" = "xyes"; then
***************
*** 5339,5345 ****
if test "${vi_cv_var_python_version}" = "1.4"; then
PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
fi
! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
$as_echo_n "checking if -pthread should be used... " >&6; }
--- 5339,5345 ----
if test "${vi_cv_var_python_version}" = "1.4"; then
PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
fi
! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
$as_echo_n "checking if -pthread should be used... " >&6; }
***************
*** 5601,5609 ****
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
else
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
fi
PYTHON3_SRC="if_python3.c"
if test "x$MACOSX" = "xyes"; then
--- 5601,5609 ----
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
else
! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
fi
PYTHON3_SRC="if_python3.c"
if test "x$MACOSX" = "xyes"; then
***************
*** 5708,5717 ****
$as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL" >&5
! $as_echo_n "checking whether we can do without RTLD_GLOBAL... " >&6; }
cflags_save=$CFLAGS
! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
if test "$cross_compiling" = yes; then :
--- 5708,5717 ----
$as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python" >&5
! $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; }
cflags_save=$CFLAGS
! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
ldflags_save=$LDFLAGS
LDFLAGS="$LDFLAGS -ldl"
if test "$cross_compiling" = yes; then :
***************
*** 5730,5744 ****
* Only the first pyhton version used will be switched on.
*/
! int no_rtl_global_needed_for(char *python_instsoname)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
--- 5730,5746 ----
* Only the first pyhton version used will be switched on.
*/
! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
if (pylib != 0)
{
+ void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
void (*init)(void) = dlsym(pylib, "Py_Initialize");
int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
void (*final)(void) = dlsym(pylib, "Py_Finalize");
+ (*pfx)(prefix);
(*init)();
needed = (*simple)("import termios") == -1;
(*final)();
***************
*** 5750,5756 ****
int main(int argc, char** argv)
{
int not_needed = 0;
! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
not_needed = 1;
return !not_needed;
}
--- 5752,5758 ----
int main(int argc, char** argv)
{
int not_needed = 0;
! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
not_needed = 1;
return !not_needed;
}
***************
*** 5767,5774 ****
--- 5769,5844 ----
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
CFLAGS=$cflags_save
LDFLAGS=$ldflags_save
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5
+ $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; }
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+ ldflags_save=$LDFLAGS
+ LDFLAGS="$LDFLAGS -ldl"
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ as_fn_error "cannot run test program while cross compiling
+ See \`config.log' for more details." "$LINENO" 5; }
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ #include <dlfcn.h>
+ #include <wchar.h>
+ /* If this program fails, then RTLD_GLOBAL is needed.
+ * RTLD_GLOBAL will be used and then it is not possible to
+ * have both python versions enabled in the same vim instance.
+ * Only the first pyhton version used will be switched on.
+ */
+
+ int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
+ {
+ int needed = 0;
+ void* pylib = dlopen(python_instsoname, RTLD_LAZY);
+ if (pylib != 0)
+ {
+ void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
+ void (*init)(void) = dlsym(pylib, "Py_Initialize");
+ int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
+ void (*final)(void) = dlsym(pylib, "Py_Finalize");
+ (*pfx)(prefix);
+ (*init)();
+ needed = (*simple)("import termios") == -1;
+ (*final)();
+ dlclose(pylib);
+ }
+ return !needed;
+ }
+
+ int main(int argc, char** argv)
+ {
+ int not_needed = 0;
+ if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
+ not_needed = 1;
+ return !not_needed;
+ }
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; };$as_echo "#define PY3_NO_RTLD_GLOBAL 1" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+ fi
+
+
+ CFLAGS=$cflags_save
+ LDFLAGS=$ldflags_save
+
PYTHON_SRC="if_python.c"
PYTHON_OBJ="objects/if_python.o"
PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
*** ../vim-7.3.061/src/if_python.c 2010-10-23 14:02:48.000000000 +0200
--- src/if_python.c 2010-11-16 17:07:00.000000000 +0100
***************
*** 102,108 ****
# include <dlfcn.h>
# define FARPROC void*
# define HINSTANCE void*
! # ifdef PY_NO_RTLD_GLOBAL
# define load_dll(n) dlopen((n), RTLD_LAZY)
# else
# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
--- 102,108 ----
# include <dlfcn.h>
# define FARPROC void*
# define HINSTANCE void*
! # if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
# define load_dll(n) dlopen((n), RTLD_LAZY)
# else
# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
***************
*** 168,173 ****
--- 168,174 ----
# define Py_BuildValue dll_Py_BuildValue
# define Py_FindMethod dll_Py_FindMethod
# define Py_InitModule4 dll_Py_InitModule4
+ # define Py_SetPythonHome dll_Py_SetPythonHome
# define Py_Initialize dll_Py_Initialize
# define Py_Finalize dll_Py_Finalize
# define Py_IsInitialized dll_Py_IsInitialized
***************
*** 226,231 ****
--- 227,233 ----
static PyObject*(*dll_Py_BuildValue)(char *, ...);
static PyObject*(*dll_Py_FindMethod)(struct PyMethodDef[], PyObject *, char *);
static PyObject*(*dll_Py_InitModule4)(char *, struct PyMethodDef *, char *, PyObject *, int);
+ static void(*dll_Py_SetPythonHome)(char *home);
static void(*dll_Py_Initialize)(void);
static void(*dll_Py_Finalize)(void);
static int(*dll_Py_IsInitialized)(void);
***************
*** 310,315 ****
--- 312,318 ----
# else
{"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
# endif
+ {"Py_SetPythonHome", (PYTHON_PROC*)&dll_Py_SetPythonHome},
{"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize},
{"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize},
{"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
***************
*** 349,355 ****
{
int i;
! #if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON3)
/* Can't have Python and Python3 loaded at the same time.
* It cause a crash, because RTLD_GLOBAL is needed for
* standard C extension libraries of one or both python versions. */
--- 352,358 ----
{
int i;
! #if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3)
/* Can't have Python and Python3 loaded at the same time.
* It cause a crash, because RTLD_GLOBAL is needed for
* standard C extension libraries of one or both python versions. */
***************
*** 543,548 ****
--- 546,555 ----
}
#endif
+ #ifdef PYTHON_HOME
+ Py_SetPythonHome(PYTHON_HOME);
+ #endif
+
init_structs();
#if !defined(MACOS) || defined(MACOS_X_UNIX)
*** ../vim-7.3.061/src/if_python3.c 2010-10-23 14:02:48.000000000 +0200
--- src/if_python3.c 2010-11-16 17:07:26.000000000 +0100
***************
*** 80,86 ****
# include <dlfcn.h>
# define FARPROC void*
# define HINSTANCE void*
! # ifdef PY_NO_RTLD_GLOBAL
# define load_dll(n) dlopen((n), RTLD_LAZY)
# else
# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
--- 80,86 ----
# include <dlfcn.h>
# define FARPROC void*
# define HINSTANCE void*
! # if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
# define load_dll(n) dlopen((n), RTLD_LAZY)
# else
# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
***************
*** 132,137 ****
--- 132,138 ----
# define PyType_Ready py3_PyType_Ready
#undef Py_BuildValue
# define Py_BuildValue py3_Py_BuildValue
+ # define Py_SetPythonHome py3_Py_SetPythonHome
# define Py_Initialize py3_Py_Initialize
# define Py_Finalize py3_Py_Finalize
# define Py_IsInitialized py3_Py_IsInitialized
***************
*** 170,175 ****
--- 171,177 ----
* Pointers for dynamic link
*/
static int (*py3_PySys_SetArgv)(int, wchar_t **);
+ static void (*py3_Py_SetPythonHome)(wchar_t *home);
static void (*py3_Py_Initialize)(void);
static PyObject* (*py3_PyList_New)(Py_ssize_t size);
static PyGILState_STATE (*py3_PyGILState_Ensure)(void);
***************
*** 254,259 ****
--- 256,262 ----
} py3_funcname_table[] =
{
{"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
+ {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
{"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
{"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
{"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
***************
*** 336,342 ****
int i;
void *ucs_from_string, *ucs_from_string_and_size;
! # if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON)
/* Can't have Python and Python3 loaded at the same time.
* It cause a crash, because RTLD_GLOBAL is needed for
* standard C extension libraries of one or both python versions. */
--- 339,345 ----
int i;
void *ucs_from_string, *ucs_from_string_and_size;
! # if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
/* Can't have Python and Python3 loaded at the same time.
* It cause a crash, because RTLD_GLOBAL is needed for
* standard C extension libraries of one or both python versions. */
***************
*** 539,544 ****
--- 542,552 ----
init_structs();
+
+ #ifdef PYTHON3_HOME
+ Py_SetPythonHome(PYTHON3_HOME);
+ #endif
+
/* initialise threads */
PyEval_InitThreads();
*** ../vim-7.3.061/src/version.c 2010-11-16 16:25:46.000000000 +0100
--- src/version.c 2010-11-16 17:12:40.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 62,
/**/
--
ARTHUR: CHARGE!
[The mighty ARMY charges. Thundering noise of feet. Clatter of coconuts.
Shouts etc. Suddenly there is a wail of a siren and a couple of police
cars roar round in front of the charging ARMY and the POLICE leap out and
stop them. TWO POLICEMAN and the HISTORIAN'S WIFE. Black Marias skid up
behind them.]
HISTORIAN'S WIFE: They're the ones, I'm sure.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,59 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.063
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.063
Problem: Win32: Running a filter command makes Vim lose focus.
Solution: Use SW_SHOWMINNOACTIVE instead of SW_SHOWMINIMIZED. (Hong Xu)
Files: src/os_win32.c
*** ../vim-7.3.062/src/os_win32.c 2010-11-10 15:37:00.000000000 +0100
--- src/os_win32.c 2010-11-24 12:31:46.000000000 +0100
***************
*** 3185,3193 ****
* It's nicer to run a filter command in a minimized window, but in
* Windows 95 this makes the command MUCH slower. We can't do it under
* Win32s either as it stops the synchronous spawn workaround working.
*/
if ((options & SHELL_DOOUT) && !mch_windows95() && !gui_is_win32s())
! si.wShowWindow = SW_SHOWMINIMIZED;
else
si.wShowWindow = SW_SHOWNORMAL;
si.cbReserved2 = 0;
--- 3185,3194 ----
* It's nicer to run a filter command in a minimized window, but in
* Windows 95 this makes the command MUCH slower. We can't do it under
* Win32s either as it stops the synchronous spawn workaround working.
+ * Don't activate the window to keep focus on Vim.
*/
if ((options & SHELL_DOOUT) && !mch_windows95() && !gui_is_win32s())
! si.wShowWindow = SW_SHOWMINNOACTIVE;
else
si.wShowWindow = SW_SHOWNORMAL;
si.cbReserved2 = 0;
*** ../vim-7.3.062/src/version.c 2010-11-16 19:25:56.000000000 +0100
--- src/version.c 2010-11-24 12:32:52.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 63,
/**/
--
SOLDIER: Where did you get the coconuts?
ARTHUR: Through ... We found them.
SOLDIER: Found them? In Mercea. The coconut's tropical!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,72 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.064
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.064
Problem: Win32: ":dis +" shows nothing, but "+p does insert text.
Solution: Display the * register, since that's what will be inserted.
(Christian Brabandt)
Files: src/globals.h, src/ops.c
*** ../vim-7.3.063/src/globals.h 2010-08-15 21:57:27.000000000 +0200
--- src/globals.h 2010-11-24 14:06:47.000000000 +0100
***************
*** 510,515 ****
--- 510,516 ----
EXTERN VimClipboard clip_plus; /* CLIPBOARD selection in X11 */
# else
# define clip_plus clip_star /* there is only one clipboard */
+ # define ONE_CLIPBOARD
# endif
EXTERN int clip_unnamed INIT(= FALSE);
EXTERN int clip_autoselect INIT(= FALSE);
*** ../vim-7.3.063/src/ops.c 2010-10-09 17:21:42.000000000 +0200
--- src/ops.c 2010-11-24 14:26:25.000000000 +0100
***************
*** 3979,3985 ****
for (i = -1; i < NUM_REGISTERS && !got_int; ++i)
{
name = get_register_name(i);
! if (arg != NULL && vim_strchr(arg, name) == NULL)
continue; /* did not ask for this register */
#ifdef FEAT_CLIPBOARD
--- 3979,3990 ----
for (i = -1; i < NUM_REGISTERS && !got_int; ++i)
{
name = get_register_name(i);
! if (arg != NULL && vim_strchr(arg, name) == NULL
! #ifdef ONE_CLIPBOARD
! /* Star register and plus register contain the same thing. */
! && (name != '*' || vim_strchr(arg, '+') == NULL)
! #endif
! )
continue; /* did not ask for this register */
#ifdef FEAT_CLIPBOARD
*** ../vim-7.3.063/src/version.c 2010-11-24 12:35:14.000000000 +0100
--- src/version.c 2010-11-24 14:24:03.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 64,
/**/
--
FIRST SOLDIER: So they wouldn't be able to bring a coconut back anyway.
SECOND SOLDIER: Wait a minute! Suppose two swallows carried it together?
FIRST SOLDIER: No, they'd have to have it on a line.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,120 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.065
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.065
Problem: Can't get current line number in a source file.
Solution: Add the <slnum> item, similar to <sfile>.
Files: src/ex_docmd.c
*** ../vim-7.3.064/src/ex_docmd.c 2010-11-16 11:29:30.000000000 +0100
--- src/ex_docmd.c 2010-11-24 15:41:51.000000000 +0100
***************
*** 9538,9554 ****
#define SPEC_CFILE 4
"<sfile>", /* ":so" file name */
#define SPEC_SFILE 5
#ifdef FEAT_AUTOCMD
"<afile>", /* autocommand file name */
! # define SPEC_AFILE 6
"<abuf>", /* autocommand buffer number */
! # define SPEC_ABUF 7
"<amatch>", /* autocommand match name */
! # define SPEC_AMATCH 8
#endif
#ifdef FEAT_CLIENTSERVER
"<client>"
! # define SPEC_CLIENT 9
#endif
};
--- 9538,9560 ----
#define SPEC_CFILE 4
"<sfile>", /* ":so" file name */
#define SPEC_SFILE 5
+ "<slnum>", /* ":so" file line number */
+ #define SPEC_SLNUM 6
#ifdef FEAT_AUTOCMD
"<afile>", /* autocommand file name */
! # define SPEC_AFILE 7
"<abuf>", /* autocommand buffer number */
! # define SPEC_ABUF 8
"<amatch>", /* autocommand match name */
! # define SPEC_AMATCH 9
#endif
#ifdef FEAT_CLIENTSERVER
"<client>"
! # ifdef FEAT_AUTOCMD
! # define SPEC_CLIENT 10
! # else
! # define SPEC_CLIENT 7
! # endif
#endif
};
***************
*** 9573,9578 ****
--- 9579,9585 ----
* '<cWORD>' to WORD under the cursor
* '<cfile>' to path name under the cursor
* '<sfile>' to sourced file name
+ * '<slnum>' to sourced file line number
* '<afile>' to file name for autocommand
* '<abuf>' to buffer number for autocommand
* '<amatch>' to matching name for autocommand
***************
*** 9604,9613 ****
#ifdef FEAT_MODIFY_FNAME
int skip_mod = FALSE;
#endif
-
- #if defined(FEAT_AUTOCMD) || defined(FEAT_CLIENTSERVER)
char_u strbuf[30];
- #endif
*errormsg = NULL;
if (escaped != NULL)
--- 9611,9617 ----
***************
*** 9796,9801 ****
--- 9800,9814 ----
return NULL;
}
break;
+ case SPEC_SLNUM: /* line in file for ":so" command */
+ if (sourcing_name == NULL || sourcing_lnum == 0)
+ {
+ *errormsg = (char_u *)_("E842: no line number to use for \"<slnum>\"");
+ return NULL;
+ }
+ sprintf((char *)strbuf, "%ld", (long)sourcing_lnum);
+ result = strbuf;
+ break;
#if defined(FEAT_CLIENTSERVER)
case SPEC_CLIENT: /* Source of last submitted input */
sprintf((char *)strbuf, PRINTF_HEX_LONG_U,
*** ../vim-7.3.064/src/version.c 2010-11-24 14:28:53.000000000 +0100
--- src/version.c 2010-11-24 15:49:57.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 65,
/**/
--
If you don't get everything you want, think of
everything you didn't get and don't want.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,90 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.066
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.066
Problem: Crash when changing to another window while in a :vimgrep command.
(Christian Brabandt)
Solution: When wiping out the dummy before, remove it from aucmd_win.
Files: src/quickfix.c
*** ../vim-7.3.065/src/quickfix.c 2010-09-21 16:56:29.000000000 +0200
--- src/quickfix.c 2010-11-24 16:27:40.000000000 +0100
***************
*** 3432,3437 ****
--- 3432,3438 ----
char_u *fname;
{
buf_T *newbuf;
+ buf_T *newbuf_to_wipe = NULL;
int failed = TRUE;
aco_save_T aco;
***************
*** 3468,3482 ****
failed = FALSE;
if (curbuf != newbuf)
{
! /* Bloody autocommands changed the buffer! */
! if (buf_valid(newbuf))
! wipe_buffer(newbuf, FALSE);
newbuf = curbuf;
}
}
/* restore curwin/curbuf and a few other things */
aucmd_restbuf(&aco);
}
if (!buf_valid(newbuf))
--- 3469,3487 ----
failed = FALSE;
if (curbuf != newbuf)
{
! /* Bloody autocommands changed the buffer! Can happen when
! * using netrw and editing a remote file. Use the current
! * buffer instead, delete the dummy one after restoring the
! * window stuff. */
! newbuf_to_wipe = newbuf;
newbuf = curbuf;
}
}
/* restore curwin/curbuf and a few other things */
aucmd_restbuf(&aco);
+ if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
+ wipe_buffer(newbuf_to_wipe, FALSE);
}
if (!buf_valid(newbuf))
*** ../vim-7.3.065/src/version.c 2010-11-24 15:50:54.000000000 +0100
--- src/version.c 2010-11-24 16:30:44.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 66,
/**/
--
CART DRIVER: Bring out your dead!
We follow the cart through a wretched, impoverished plague-ridden village.
A few starved mongrels run about in the mud scavenging. In the open
doorway of one house perhaps we jug glimpse a pair of legs dangling from
the ceiling. In another doorway an OLD WOMAN is beating a cat against a
wall rather like one does with a mat. The cart passes round a dead donkey
or cow in the mud. And a MAN tied to a cart is being hammered to death by
four NUNS with huge mallets.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,68 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.067
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.067 (after 7.3.058)
Problem: Ruby: Init_prelude is not always available.
Solution: Remove use of Init_prelude. (Yasuhiro Matsumoto)
Files: src/if_ruby.c
*** ../vim-7.3.066/src/if_ruby.c 2010-11-16 14:46:14.000000000 +0100
--- src/if_ruby.c 2010-11-24 16:53:06.000000000 +0100
***************
*** 231,237 ****
# define rb_enc_str_new dll_rb_enc_str_new
# define rb_intern2 dll_rb_intern2
# define rb_const_remove dll_rb_const_remove
- # define Init_prelude dll_Init_prelude
# define rb_sprintf dll_rb_sprintf
# define ruby_init_stack dll_ruby_init_stack
#endif
--- 231,236 ----
***************
*** 433,439 ****
{"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
{"rb_intern2", (RUBY_PROC*)&dll_rb_intern2},
{"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove},
- {"Init_prelude", (RUBY_PROC*)&dll_Init_prelude},
{"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
{"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
#endif
--- 432,437 ----
***************
*** 675,681 ****
/* This avoids the error "Encoding::ConverterNotFoundError: code
* converter not found (UTF-16LE to ASCII-8BIT)". */
rb_define_module("Gem");
- Init_prelude();
rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15));
#endif
ruby_vim_init();
--- 673,678 ----
*** ../vim-7.3.066/src/version.c 2010-11-24 16:31:55.000000000 +0100
--- src/version.c 2010-11-24 16:53:35.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 67,
/**/
--
CART DRIVER: Bring out your dead!
LARGE MAN: Here's one!
CART DRIVER: Ninepence.
BODY: I'm not dead!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,50 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.068
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.068
Problem: Using freed memory when doing ":saveas" and an autocommand sets
'autochdir'. (Kevin Klement)
Solution: Get the value of fname again after executing autocommands.
Files: src/ex_cmds.c
*** ../vim-7.3.067/src/ex_cmds.c 2010-10-15 20:20:00.000000000 +0200
--- src/ex_cmds.c 2010-11-24 17:53:07.000000000 +0100
***************
*** 2705,2710 ****
--- 2705,2714 ----
TRUE);
do_modelines(0);
}
+
+ /* Autocommands may have changed buffer names, esp. when
+ * 'autochdir' is set. */
+ fname = curbuf->b_sfname;
#endif
}
*** ../vim-7.3.067/src/version.c 2010-11-24 17:03:34.000000000 +0100
--- src/version.c 2010-11-24 17:55:11.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 68,
/**/
--
I used to wonder about the meaning of life. But I looked it
up in the dictionary under "L" and there it was - the meaning
of life. It was less than I expected. - Dogbert
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,49 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.069
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.069
Problem: GTK: pressing Enter in inputdialog() doesn't work like clicking OK
as documented.
Solution: call gtk_entry_set_activates_default(). (Britton Kerin)
Files: src/gui_gtk.c
*** ../vim-7.3.068/src/gui_gtk.c 2010-08-15 21:57:32.000000000 +0200
--- src/gui_gtk.c 2010-11-24 18:44:21.000000000 +0100
***************
*** 1287,1292 ****
--- 1287,1295 ----
entry = gtk_entry_new();
gtk_widget_show(entry);
+ /* Make Enter work like pressing OK. */
+ gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
+
text = CONVERT_TO_UTF8(textfield);
gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
CONVERT_TO_UTF8_FREE(text);
*** ../vim-7.3.068/src/version.c 2010-11-24 17:59:27.000000000 +0100
--- src/version.c 2010-11-24 18:46:39.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 69,
/**/
--
Why I like vim:
> I like VIM because, when I ask a question in this newsgroup, I get a
> one-line answer. With xemacs, I get a 1Kb lisp script with bugs in it ;-)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,53 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.070
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.070
Problem: Can set environment variables in the sandbox, could be abused.
Solution: Disallow it.
Files: src/eval.c
*** ../vim-7.3.069/src/eval.c 2010-11-10 20:31:24.000000000 +0100
--- src/eval.c 2010-12-02 14:42:31.000000000 +0100
***************
*** 2326,2332 ****
else if (endchars != NULL
&& vim_strchr(endchars, *skipwhite(arg)) == NULL)
EMSG(_(e_letunexp));
! else
{
c1 = name[len];
name[len] = NUL;
--- 2326,2332 ----
else if (endchars != NULL
&& vim_strchr(endchars, *skipwhite(arg)) == NULL)
EMSG(_(e_letunexp));
! else if (!check_secure())
{
c1 = name[len];
name[len] = NUL;
*** ../vim-7.3.069/src/version.c 2010-11-24 18:48:08.000000000 +0100
--- src/version.c 2010-12-02 14:46:44.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 70,
/**/
--
The only way the average employee can speak to an executive is by taking a
second job as a golf caddie.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,65 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.071
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.071
Problem: Editing a file in a window that's in diff mode resets 'diff'
but not cursor binding.
Solution: Reset cursor binding in two more places.
Files: src/quickfix.c, src/option.c
*** ../vim-7.3.070/src/quickfix.c 2010-11-24 16:31:55.000000000 +0100
--- src/quickfix.c 2010-12-02 15:02:00.000000000 +0100
***************
*** 2359,2364 ****
--- 2359,2365 ----
set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
OPT_LOCAL);
set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
+ RESET_BINDING(curwin);
#ifdef FEAT_DIFF
curwin->w_p_diff = FALSE;
#endif
*** ../vim-7.3.070/src/option.c 2010-10-13 14:05:29.000000000 +0200
--- src/option.c 2010-12-02 15:12:02.000000000 +0100
***************
*** 9756,9761 ****
--- 9759,9767 ----
#ifdef FEAT_SCROLLBIND
to->wo_scb = from->wo_scb;
#endif
+ #ifdef FEAT_CURSORBIND
+ to->wo_crb = from->wo_crb;
+ #endif
#ifdef FEAT_SPELL
to->wo_spell = from->wo_spell;
#endif
*** ../vim-7.3.070/src/version.c 2010-12-02 14:47:56.000000000 +0100
--- src/version.c 2010-12-02 15:31:12.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 71,
/**/
--
A salesperson says: Translation:
"backward compatible" Old technology
"Premium" Overpriced
"Can't keep it on the shelf" Unavailable
"Stands alone" Piece of shit
"Proprietary" Incompatible
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,295 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.072
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.072
Problem: Can't complete file names while ignoring case.
Solution: Add 'wildignorecase'.
Files: src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/option.c,
src/option.h, src/vim.h, runtime/doc/options.txt
*** ../vim-7.3.071/src/ex_docmd.c 2010-11-24 15:50:54.000000000 +0100
--- src/ex_docmd.c 2010-12-02 15:58:10.000000000 +0100
***************
*** 4524,4535 ****
else /* n == 2 */
{
expand_T xpc;
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
p = ExpandOne(&xpc, eap->arg, NULL,
! WILD_LIST_NOTFOUND|WILD_ADD_SLASH,
! WILD_EXPAND_FREE);
if (p == NULL)
return FAIL;
}
--- 4524,4537 ----
else /* n == 2 */
{
expand_T xpc;
+ int options = WILD_LIST_NOTFOUND|WILD_ADD_SLASH;
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
+ if (p_wic)
+ options += WILD_ICASE;
p = ExpandOne(&xpc, eap->arg, NULL,
! options, WILD_EXPAND_FREE);
if (p == NULL)
return FAIL;
}
*** ../vim-7.3.071/src/ex_getln.c 2010-11-16 14:05:48.000000000 +0100
--- src/ex_getln.c 2010-11-28 15:07:49.000000000 +0100
***************
*** 3339,3348 ****
p2 = NULL;
else
{
p2 = ExpandOne(xp, p1,
vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
! WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
! |options, type);
vim_free(p1);
/* longest match: make sure it is not shorter, happens with :help */
if (p2 != NULL && type == WILD_LONGEST)
--- 3339,3352 ----
p2 = NULL;
else
{
+ int use_options = options |
+ WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
+
+ if (p_wic)
+ use_options += WILD_ICASE;
p2 = ExpandOne(xp, p1,
vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
! use_options, type);
vim_free(p1);
/* longest match: make sure it is not shorter, happens with :help */
if (p2 != NULL && type == WILD_LONGEST)
***************
*** 3428,3433 ****
--- 3432,3438 ----
* options = WILD_KEEP_ALL: don't remove 'wildignore' entries
* options = WILD_SILENT: don't print warning messages
* options = WILD_ESCAPE: put backslash before special chars
+ * options = WILD_ICASE: ignore case for files
*
* The variables xp->xp_context and xp->xp_backslash must have been set!
*/
***************
*** 4361,4366 ****
--- 4366,4372 ----
char_u ***matches; /* return: array of pointers to matches */
{
char_u *file_str = NULL;
+ int options = WILD_ADD_SLASH|WILD_SILENT;
if (xp->xp_context == EXPAND_UNSUCCESSFUL)
{
***************
*** 4379,4387 ****
if (file_str == NULL)
return EXPAND_UNSUCCESSFUL;
/* find all files that match the description */
! if (ExpandFromContext(xp, file_str, matchcount, matches,
! WILD_ADD_SLASH|WILD_SILENT) == FAIL)
{
*matchcount = 0;
*matches = NULL;
--- 4385,4395 ----
if (file_str == NULL)
return EXPAND_UNSUCCESSFUL;
+ if (p_wic)
+ options += WILD_ICASE;
+
/* find all files that match the description */
! if (ExpandFromContext(xp, file_str, matchcount, matches, options) == FAIL)
{
*matchcount = 0;
*matches = NULL;
***************
*** 4433,4439 ****
char_u *pat;
int *num_file;
char_u ***file;
! int options;
{
#ifdef FEAT_CMDL_COMPL
regmatch_T regmatch;
--- 4441,4447 ----
char_u *pat;
int *num_file;
char_u ***file;
! int options; /* EW_ flags */
{
#ifdef FEAT_CMDL_COMPL
regmatch_T regmatch;
***************
*** 4487,4492 ****
--- 4495,4503 ----
flags |= (EW_FILE | EW_PATH);
else
flags = (flags | EW_DIR) & ~EW_FILE;
+ if (options & WILD_ICASE)
+ flags |= EW_ICASE;
+
/* Expand wildcards, supporting %:h and the like. */
ret = expand_wildcards_eval(&pat, num_file, file, flags);
if (free_pat)
*** ../vim-7.3.071/src/misc1.c 2010-08-16 21:46:12.000000000 +0200
--- src/misc1.c 2010-11-28 15:02:57.000000000 +0100
***************
*** 9161,9167 ****
#ifdef CASE_INSENSITIVE_FILENAME
regmatch.rm_ic = TRUE; /* Behave like Terminal.app */
#else
! regmatch.rm_ic = FALSE; /* Don't ever ignore case */
#endif
regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
vim_free(pat);
--- 9161,9170 ----
#ifdef CASE_INSENSITIVE_FILENAME
regmatch.rm_ic = TRUE; /* Behave like Terminal.app */
#else
! if (flags & EW_ICASE)
! regmatch.rm_ic = TRUE; /* 'wildignorecase' set */
! else
! regmatch.rm_ic = FALSE; /* Don't ignore case */
#endif
regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
vim_free(pat);
***************
*** 9643,9649 ****
if (paths == NULL)
return 0;
! files = globpath(paths, pattern, 0);
vim_free(paths);
if (files == NULL)
return 0;
--- 9646,9652 ----
if (paths == NULL)
return 0;
! files = globpath(paths, pattern, (flags & EW_ICASE) ? WILD_ICASE : 0);
vim_free(paths);
if (files == NULL)
return 0;
*** ../vim-7.3.071/src/option.c 2010-12-02 15:33:10.000000000 +0100
--- src/option.c 2010-12-02 15:12:02.000000000 +0100
***************
*** 2740,2746 ****
(char_u *)&p_wc, PV_NONE,
{(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
SCRIPTID_INIT},
! {"wildcharm", "wcm", P_NUM|P_VI_DEF,
(char_u *)&p_wcm, PV_NONE,
{(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
{"wildignore", "wig", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
--- 2740,2746 ----
(char_u *)&p_wc, PV_NONE,
{(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
SCRIPTID_INIT},
! {"wildcharm", "wcm", P_NUM|P_VI_DEF,
(char_u *)&p_wcm, PV_NONE,
{(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
{"wildignore", "wig", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
***************
*** 2750,2755 ****
--- 2750,2758 ----
(char_u *)NULL, PV_NONE,
#endif
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+ {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
+ (char_u *)&p_wic, PV_NONE,
+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"wildmenu", "wmnu", P_BOOL|P_VI_DEF,
#ifdef FEAT_WILDMENU
(char_u *)&p_wmnu, PV_NONE,
*** ../vim-7.3.071/src/option.h 2010-08-15 21:57:28.000000000 +0200
--- src/option.h 2010-11-28 14:29:18.000000000 +0100
***************
*** 872,877 ****
--- 872,878 ----
EXTERN char_u *p_ww; /* 'whichwrap' */
EXTERN long p_wc; /* 'wildchar' */
EXTERN long p_wcm; /* 'wildcharm' */
+ EXTERN long p_wic; /* 'wildignorecase' */
EXTERN char_u *p_wim; /* 'wildmode' */
#ifdef FEAT_WILDMENU
EXTERN int p_wmnu; /* 'wildmenu' */
*** ../vim-7.3.071/src/vim.h 2010-10-20 19:17:43.000000000 +0200
--- src/vim.h 2010-11-28 14:49:02.000000000 +0100
***************
*** 798,803 ****
--- 798,804 ----
#define WILD_KEEP_ALL 32
#define WILD_SILENT 64
#define WILD_ESCAPE 128
+ #define WILD_ICASE 256
/* Flags for expand_wildcards() */
#define EW_DIR 0x01 /* include directory names */
***************
*** 808,813 ****
--- 809,815 ----
#define EW_SILENT 0x20 /* don't print "1 returned" from shell */
#define EW_EXEC 0x40 /* executable files */
#define EW_PATH 0x80 /* search in 'path' too */
+ #define EW_ICASE 0x100 /* ignore case */
/* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
* is used when executing commands and EW_SILENT for interactive expanding. */
*** ../vim-7.3.071/runtime/doc/options.txt 2010-10-20 17:44:01.000000000 +0200
--- runtime/doc/options.txt 2010-12-02 11:15:01.000000000 +0100
***************
*** 7748,7753 ****
--- 7756,7772 ----
a pattern from the list. This avoids problems when a future version
uses another default.
+
+ *'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'*
+ 'wildignorecase' 'wic' boolean (default off)
+ global
+ {not in Vi}
+ When set case is ignored when completing file names and directories.
+ Has no effect on systems where file name case is generally ignored.
+ Does not apply when the shell is used to expand wildcards, which
+ happens when there are special characters.
+
+
*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
'wildmenu' 'wmnu' boolean (default off)
global
*** ../vim-7.3.071/src/version.c 2010-12-02 15:33:10.000000000 +0100
--- src/version.c 2010-12-02 15:57:14.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 72,
/**/
--
I recommend ordering large cargo containers of paper towels to make up
whatever budget underruns you have. Paper products are always useful and they
have the advantage of being completely flushable if you need to make room in
the storage area later.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,92 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.073
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.073
Problem: Double free memory when netbeans command follows DETACH.
Solution: Only free the node when owned. (Xavier de Gaye)
Files: src/netbeans.c
*** ../vim-7.3.072/src/netbeans.c 2010-11-16 15:48:57.000000000 +0100
--- src/netbeans.c 2010-12-02 16:59:11.000000000 +0100
***************
*** 643,648 ****
--- 643,649 ----
{
char_u *p;
queue_T *node;
+ int own_node;
while (head.next != NULL && head.next != &head)
{
***************
*** 681,700 ****
*p++ = NUL;
if (*p == NUL)
{
head.next = node->next;
node->next->prev = node->prev;
}
/* now, parse and execute the commands */
nb_parse_cmd(node->buffer);
! if (*p == NUL)
{
/* buffer finished, dispose of the node and buffer */
vim_free(node->buffer);
vim_free(node);
}
! else
{
/* more follows, move to the start */
STRMOVE(node->buffer, p);
--- 682,706 ----
*p++ = NUL;
if (*p == NUL)
{
+ own_node = TRUE;
head.next = node->next;
node->next->prev = node->prev;
}
+ else
+ own_node = FALSE;
/* now, parse and execute the commands */
nb_parse_cmd(node->buffer);
! if (own_node)
{
/* buffer finished, dispose of the node and buffer */
vim_free(node->buffer);
vim_free(node);
}
! /* Check that "head" wasn't changed under our fingers, e.g. when a
! * DETACH command was handled. */
! else if (head.next == node)
{
/* more follows, move to the start */
STRMOVE(node->buffer, p);
*** ../vim-7.3.072/src/version.c 2010-12-02 16:01:23.000000000 +0100
--- src/version.c 2010-12-02 17:00:29.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 73,
/**/
--
If the Universe is constantly expanding, why can't I ever find a parking space?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,235 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.074
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.074
Problem: Can't use the "+ register like "* for yank and put.
Solution: Add "unnamedplus" to the 'clipboard' option. (Ivan Krasilnikov)
Files: runtime/doc/options.txt, src/eval.c, src/globals.h, src/ops.c,
src/option.c
*** ../vim-7.3.073/runtime/doc/options.txt 2010-12-02 16:01:23.000000000 +0100
--- runtime/doc/options.txt 2010-12-02 21:22:48.000000000 +0100
***************
*** 1434,1439 ****
--- 1434,1448 ----
explicitly accessed using the "* notation. Also see
|gui-clipboard|.
+ unnamedplus A variant of "unnamed" flag which uses the clipboard
+ register '+' (|quoteplus|) instead of register '*' for
+ all operations except yank. Yank shall copy the text
+ into register '+' and also into '*' when "unnamed" is
+ included.
+ Only available with the |+x11| feature.
+ Availability can be checked with: >
+ if has('unnamedplus')
+ <
autoselect Works like the 'a' flag in 'guioptions': If present,
then whenever Visual mode is started, or the Visual
area extended, Vim tries to become the owner of the
*** ../vim-7.3.073/src/eval.c 2010-12-02 14:47:56.000000000 +0100
--- src/eval.c 2010-12-02 17:30:23.000000000 +0100
***************
*** 12135,12140 ****
--- 12139,12147 ----
#ifdef FEAT_TOOLBAR
"toolbar",
#endif
+ #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
+ "unnamedplus",
+ #endif
#ifdef FEAT_USR_CMDS
"user-commands", /* was accidentally included in 5.4 */
"user_commands",
*** ../vim-7.3.073/src/globals.h 2010-11-24 14:28:53.000000000 +0100
--- src/globals.h 2010-12-02 20:07:42.000000000 +0100
***************
*** 512,518 ****
# define clip_plus clip_star /* there is only one clipboard */
# define ONE_CLIPBOARD
# endif
! EXTERN int clip_unnamed INIT(= FALSE);
EXTERN int clip_autoselect INIT(= FALSE);
EXTERN int clip_autoselectml INIT(= FALSE);
EXTERN int clip_html INIT(= FALSE);
--- 512,522 ----
# define clip_plus clip_star /* there is only one clipboard */
# define ONE_CLIPBOARD
# endif
!
! #define CLIP_UNNAMED 1
! #define CLIP_UNNAMED_PLUS 2
! EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
!
EXTERN int clip_autoselect INIT(= FALSE);
EXTERN int clip_autoselectml INIT(= FALSE);
EXTERN int clip_html INIT(= FALSE);
*** ../vim-7.3.073/src/ops.c 2010-11-24 14:28:53.000000000 +0100
--- src/ops.c 2010-12-02 21:33:04.000000000 +0100
***************
*** 1584,1592 ****
adjust_clip_reg(rp)
int *rp;
{
! /* If no reg. specified, and "unnamed" is in 'clipboard', use '*' reg. */
! if (*rp == 0 && clip_unnamed)
! *rp = '*';
if (!clip_star.available && *rp == '*')
*rp = 0;
if (!clip_plus.available && *rp == '+')
--- 1584,1594 ----
adjust_clip_reg(rp)
int *rp;
{
! /* If no reg. specified, and "unnamed" or "unnamedplus" is in 'clipboard',
! * use '*' or '+' reg, respectively. "unnamedplus" prevails. */
! if (*rp == 0 && clip_unnamed != 0)
! *rp = ((clip_unnamed & CLIP_UNNAMED_PLUS) && clip_plus.available)
! ? '+' : '*';
if (!clip_star.available && *rp == '*')
*rp = 0;
if (!clip_plus.available && *rp == '+')
***************
*** 2842,2847 ****
--- 2844,2850 ----
char_u *p;
char_u *pnew;
struct block_def bd;
+ int did_star = FALSE;
/* check for read-only register */
if (oap->regname != 0 && !valid_yank_reg(oap->regname, TRUE))
***************
*** 3115,3121 ****
*/
if (clip_star.available
&& (curr == &(y_regs[STAR_REGISTER])
! || (!deleting && oap->regname == 0 && clip_unnamed)))
{
if (curr != &(y_regs[STAR_REGISTER]))
/* Copy the text from register 0 to the clipboard register. */
--- 3118,3125 ----
*/
if (clip_star.available
&& (curr == &(y_regs[STAR_REGISTER])
! || (!deleting && oap->regname == 0
! && (clip_unnamed & CLIP_UNNAMED))))
{
if (curr != &(y_regs[STAR_REGISTER]))
/* Copy the text from register 0 to the clipboard register. */
***************
*** 3123,3128 ****
--- 3127,3133 ----
clip_own_selection(&clip_star);
clip_gen_set_selection(&clip_star);
+ did_star = TRUE;
}
# ifdef FEAT_X11
***************
*** 3130,3141 ****
* If we were yanking to the '+' register, send result to selection.
* Also copy to the '*' register, in case auto-select is off.
*/
! else if (clip_plus.available && curr == &(y_regs[PLUS_REGISTER]))
{
/* No need to copy to * register upon 'unnamed' now - see below */
clip_own_selection(&clip_plus);
clip_gen_set_selection(&clip_plus);
! if (!clip_isautosel())
{
copy_yank_reg(&(y_regs[STAR_REGISTER]));
clip_own_selection(&clip_star);
--- 3135,3153 ----
* If we were yanking to the '+' register, send result to selection.
* Also copy to the '*' register, in case auto-select is off.
*/
! if (clip_plus.available
! && (curr == &(y_regs[PLUS_REGISTER])
! || (!deleting && oap->regname == 0
! && (clip_unnamed & CLIP_UNNAMED_PLUS))))
{
+ if (curr != &(y_regs[PLUS_REGISTER]))
+ /* Copy the text from register 0 to the clipboard register. */
+ copy_yank_reg(&(y_regs[PLUS_REGISTER]));
+
/* No need to copy to * register upon 'unnamed' now - see below */
clip_own_selection(&clip_plus);
clip_gen_set_selection(&clip_plus);
! if (!clip_isautosel() && !did_star)
{
copy_yank_reg(&(y_regs[STAR_REGISTER]));
clip_own_selection(&clip_star);
*** ../vim-7.3.073/src/option.c 2010-12-02 16:01:23.000000000 +0100
--- src/option.c 2010-12-02 21:41:32.000000000 +0100
***************
*** 7307,7313 ****
static char_u *
check_clipboard_option()
{
! int new_unnamed = FALSE;
int new_autoselect = FALSE;
int new_autoselectml = FALSE;
int new_html = FALSE;
--- 7307,7313 ----
static char_u *
check_clipboard_option()
{
! int new_unnamed = 0;
int new_autoselect = FALSE;
int new_autoselectml = FALSE;
int new_html = FALSE;
***************
*** 7319,7327 ****
{
if (STRNCMP(p, "unnamed", 7) == 0 && (p[7] == ',' || p[7] == NUL))
{
! new_unnamed = TRUE;
p += 7;
}
else if (STRNCMP(p, "autoselect", 10) == 0
&& (p[10] == ',' || p[10] == NUL))
{
--- 7319,7333 ----
{
if (STRNCMP(p, "unnamed", 7) == 0 && (p[7] == ',' || p[7] == NUL))
{
! new_unnamed |= CLIP_UNNAMED;
p += 7;
}
+ else if (STRNCMP(p, "unnamedplus", 11) == 0
+ && (p[11] == ',' || p[11] == NUL))
+ {
+ new_unnamed |= CLIP_UNNAMED_PLUS;
+ p += 11;
+ }
else if (STRNCMP(p, "autoselect", 10) == 0
&& (p[10] == ',' || p[10] == NUL))
{
*** ../vim-7.3.073/src/version.c 2010-12-02 17:09:48.000000000 +0100
--- src/version.c 2010-12-02 21:34:40.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 74,
/**/
--
The budget process was invented by an alien race of sadistic beings who
resemble large cats.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,132 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.075
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.075 (after 7.3.072)
Problem: Missing part of 'wildignorecase'
Solution: Also adjust expand()
Files: src/eval.c
*** ../vim-7.3.074/src/eval.c 2010-12-02 21:43:10.000000000 +0100
--- src/eval.c 2010-12-02 17:30:23.000000000 +0100
***************
*** 9876,9882 ****
char_u *s;
int len;
char_u *errormsg;
! int flags = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
expand_T xpc;
int error = FALSE;
--- 9876,9882 ----
char_u *s;
int len;
char_u *errormsg;
! int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
expand_T xpc;
int error = FALSE;
***************
*** 9894,9905 ****
* for 'wildignore' and don't put matches for 'suffixes' at the end. */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
! flags |= WILD_KEEP_ALL;
if (!error)
{
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
! rettv->vval.v_string = ExpandOne(&xpc, s, NULL, flags, WILD_ALL);
}
else
rettv->vval.v_string = NULL;
--- 9894,9907 ----
* for 'wildignore' and don't put matches for 'suffixes' at the end. */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
! options |= WILD_KEEP_ALL;
if (!error)
{
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
! if (p_wic)
! options += WILD_ICASE;
! rettv->vval.v_string = ExpandOne(&xpc, s, NULL, options, WILD_ALL);
}
else
rettv->vval.v_string = NULL;
***************
*** 11672,11678 ****
typval_T *argvars;
typval_T *rettv;
{
! int flags = WILD_SILENT|WILD_USE_NL;
expand_T xpc;
int error = FALSE;
--- 11674,11680 ----
typval_T *argvars;
typval_T *rettv;
{
! int options = WILD_SILENT|WILD_USE_NL;
expand_T xpc;
int error = FALSE;
***************
*** 11680,11693 ****
* for 'wildignore' and don't put matches for 'suffixes' at the end. */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
! flags |= WILD_KEEP_ALL;
rettv->v_type = VAR_STRING;
if (!error)
{
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
! NULL, flags, WILD_ALL);
}
else
rettv->vval.v_string = NULL;
--- 11682,11697 ----
* for 'wildignore' and don't put matches for 'suffixes' at the end. */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
! options |= WILD_KEEP_ALL;
rettv->v_type = VAR_STRING;
if (!error)
{
ExpandInit(&xpc);
xpc.xp_context = EXPAND_FILES;
+ if (p_wic)
+ options += WILD_ICASE;
rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
! NULL, options, WILD_ALL);
}
else
rettv->vval.v_string = NULL;
*** ../vim-7.3.074/src/version.c 2010-12-02 21:43:10.000000000 +0100
--- src/version.c 2010-12-02 21:43:59.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 75,
/**/
--
Engineers will go without food and hygiene for days to solve a problem.
(Other times just because they forgot.)
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,203 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.076
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.076
Problem: Clang warnings for dead code.
Solution: Remove it. (Carlo Teubner)
Files: src/gui_gtk.c, src/if_ruby.c, src/misc2.c, src/netbeans.c,
src/spell.c
*** ../vim-7.3.075/src/gui_gtk.c 2010-11-24 18:48:08.000000000 +0100
--- src/gui_gtk.c 2010-12-08 12:25:17.000000000 +0100
***************
*** 1798,1804 ****
char_u *repl_text;
gboolean direction_down;
SharedFindReplace *sfr;
- int rc;
flags = (int)(long)data; /* avoid a lint warning here */
--- 1798,1803 ----
***************
*** 1824,1830 ****
repl_text = CONVERT_FROM_UTF8(repl_text);
find_text = CONVERT_FROM_UTF8(find_text);
! rc = gui_do_findrepl(flags, find_text, repl_text, direction_down);
CONVERT_FROM_UTF8_FREE(repl_text);
CONVERT_FROM_UTF8_FREE(find_text);
}
--- 1823,1829 ----
repl_text = CONVERT_FROM_UTF8(repl_text);
find_text = CONVERT_FROM_UTF8(find_text);
! gui_do_findrepl(flags, find_text, repl_text, direction_down);
CONVERT_FROM_UTF8_FREE(repl_text);
CONVERT_FROM_UTF8_FREE(find_text);
}
*** ../vim-7.3.075/src/if_ruby.c 2010-11-24 17:03:34.000000000 +0100
--- src/if_ruby.c 2010-12-08 12:30:38.000000000 +0100
***************
*** 586,594 ****
if (u_save(eap->line1 - 1, eap->line2 + 1) != OK)
return;
for (i = eap->line1; i <= eap->line2; i++) {
! VALUE line, oldline;
! line = oldline = vim_str2rb_enc_str((char *)ml_get(i));
rb_lastline_set(line);
eval_enc_string_protect((char *) eap->arg, &state);
if (state) {
--- 586,594 ----
if (u_save(eap->line1 - 1, eap->line2 + 1) != OK)
return;
for (i = eap->line1; i <= eap->line2; i++) {
! VALUE line;
! line = vim_str2rb_enc_str((char *)ml_get(i));
rb_lastline_set(line);
eval_enc_string_protect((char *) eap->arg, &state);
if (state) {
*** ../vim-7.3.075/src/misc2.c 2010-08-15 21:57:32.000000000 +0200
--- src/misc2.c 2010-12-08 12:42:44.000000000 +0100
***************
*** 200,206 ****
}
#endif
- idx = -1;
ptr = line;
while (col <= wcol && *ptr != NUL)
{
--- 200,205 ----
***************
*** 1223,1229 ****
#endif
/*
! * copy a string into newly allocated memory
*/
char_u *
vim_strsave(string)
--- 1222,1228 ----
#endif
/*
! * Copy "string" into newly allocated memory.
*/
char_u *
vim_strsave(string)
***************
*** 1239,1244 ****
--- 1238,1249 ----
return p;
}
+ /*
+ * Copy up to "len" bytes of "string" into newly allocated memory and
+ * terminate with a NUL.
+ * The allocated memory always has size "len + 1", also when "string" is
+ * shorter.
+ */
char_u *
vim_strnsave(string, len)
char_u *string;
*** ../vim-7.3.075/src/netbeans.c 2010-12-02 17:09:48.000000000 +0100
--- src/netbeans.c 2010-12-08 12:43:57.000000000 +0100
***************
*** 960,966 ****
keyQ_T *key_node = keyHead.next;
queue_T *cmd_node = head.next;
nbbuf_T buf;
- buf_T *bufp;
int i;
/* free the netbeans buffer list */
--- 960,965 ----
***************
*** 969,975 ****
buf = buf_list[i];
vim_free(buf.displayname);
vim_free(buf.signmap);
! if ((bufp=buf.bufp) != NULL)
{
buf.bufp->b_netbeans_file = FALSE;
buf.bufp->b_was_netbeans_file = FALSE;
--- 968,974 ----
buf = buf_list[i];
vim_free(buf.displayname);
vim_free(buf.signmap);
! if (buf.bufp != NULL)
{
buf.bufp->b_netbeans_file = FALSE;
buf.bufp->b_was_netbeans_file = FALSE;
*** ../vim-7.3.075/src/spell.c 2010-09-29 18:32:47.000000000 +0200
--- src/spell.c 2010-12-08 12:47:13.000000000 +0100
***************
*** 9839,9848 ****
{
/* be quick for ASCII */
if (wp->w_s->b_spell_ismw[*p])
- {
s = p + 1; /* skip a mid-word character */
- l = MB_BYTE2LEN(*s);
- }
}
else
{
--- 9839,9845 ----
***************
*** 9850,9859 ****
if (c < 256 ? wp->w_s->b_spell_ismw[c]
: (wp->w_s->b_spell_ismw_mb != NULL
&& vim_strchr(wp->w_s->b_spell_ismw_mb, c) != NULL))
- {
s = p + l;
- l = MB_BYTE2LEN(*s);
- }
}
c = mb_ptr2char(s);
--- 9847,9853 ----
***************
*** 13813,13823 ****
su->su_sfmaxscore = cleanup_suggestions(gap,
su->su_sfmaxscore, SUG_CLEAN_COUNT(su));
else
- {
- i = su->su_maxscore;
su->su_maxscore = cleanup_suggestions(gap,
su->su_maxscore, SUG_CLEAN_COUNT(su));
- }
}
}
}
--- 13807,13814 ----
*** ../vim-7.3.075/src/version.c 2010-12-02 21:44:35.000000000 +0100
--- src/version.c 2010-12-08 13:10:00.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 76,
/**/
--
Never enter the boss's office unless it's absolutely necessary. Every boss
saves one corner of the desk for useless assignments that are doled out like
Halloween candy to each visitor.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,134 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.077
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.077
Problem: When updating crypt of swapfile fails there is no error message.
(Carlo Teubner)
Solution: Add the error message.
Files: src/memline.c
*** ../vim-7.3.076/src/memline.c 2010-08-15 21:57:31.000000000 +0200
--- src/memline.c 2010-12-08 12:39:10.000000000 +0100
***************
*** 582,587 ****
--- 582,590 ----
idx = ip->ip_index + 1; /* go to next index */
page_count = 1;
}
+
+ if (error > 0)
+ EMSG(_("E843: Error while updating swap file crypt"));
}
mfp->mf_old_key = NULL;
***************
*** 2384,2390 ****
* Make a copy of the line if necessary.
*/
/*
! * get a pointer to a (read-only copy of a) line
*
* On failure an error message is given and IObuff is returned (to avoid
* having to check for error everywhere).
--- 2387,2393 ----
* Make a copy of the line if necessary.
*/
/*
! * Return a pointer to a (read-only copy of a) line.
*
* On failure an error message is given and IObuff is returned (to avoid
* having to check for error everywhere).
***************
*** 2397,2403 ****
}
/*
! * ml_get_pos: get pointer to position 'pos'
*/
char_u *
ml_get_pos(pos)
--- 2400,2406 ----
}
/*
! * Return pointer to position "pos".
*/
char_u *
ml_get_pos(pos)
***************
*** 2407,2413 ****
}
/*
! * ml_get_curline: get pointer to cursor line.
*/
char_u *
ml_get_curline()
--- 2410,2416 ----
}
/*
! * Return pointer to cursor line.
*/
char_u *
ml_get_curline()
***************
*** 2416,2422 ****
}
/*
! * ml_get_cursor: get pointer to cursor position
*/
char_u *
ml_get_cursor()
--- 2419,2425 ----
}
/*
! * Return pointer to cursor position.
*/
char_u *
ml_get_cursor()
***************
*** 2426,2432 ****
}
/*
! * get a pointer to a line in a specific buffer
*
* "will_change": if TRUE mark the buffer dirty (chars in the line will be
* changed)
--- 2429,2435 ----
}
/*
! * Return a pointer to a line in a specific buffer
*
* "will_change": if TRUE mark the buffer dirty (chars in the line will be
* changed)
*** ../vim-7.3.076/src/version.c 2010-12-08 13:11:15.000000000 +0100
--- src/version.c 2010-12-08 13:15:44.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 77,
/**/
--
An operatingsystem is just a name you give to the rest of bloating
idiosyncratic machine-based-features you left out of your editor.
(author unknown)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,58 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.078
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.078
Problem: Warning for unused variable.
Solution: Adjuste #ifdefs.
Files: src/ops.c
*** ../vim-7.3.077/src/ops.c 2010-12-02 21:43:10.000000000 +0100
--- src/ops.c 2010-12-08 14:21:48.000000000 +0100
***************
*** 2844,2850 ****
--- 2844,2852 ----
char_u *p;
char_u *pnew;
struct block_def bd;
+ #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
int did_star = FALSE;
+ #endif
/* check for read-only register */
if (oap->regname != 0 && !valid_yank_reg(oap->regname, TRUE))
***************
*** 3127,3133 ****
--- 3129,3137 ----
clip_own_selection(&clip_star);
clip_gen_set_selection(&clip_star);
+ # ifdef FEAT_X11
did_star = TRUE;
+ # endif
}
# ifdef FEAT_X11
*** ../vim-7.3.077/src/version.c 2010-12-08 13:16:58.000000000 +0100
--- src/version.c 2010-12-08 14:22:42.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 78,
/**/
--
A)bort, R)etry, D)o it right this time
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,50 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.079
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.079
Problem: Duplicate lines in makefile.
Solution: Remove the lines. (Hong Xu)
Files: src/Make_mvc.mak
*** ../vim-7.3.078/src/Make_mvc.mak 2010-11-03 21:59:23.000000000 +0100
--- src/Make_mvc.mak 2010-12-08 14:53:16.000000000 +0100
***************
*** 380,388 ****
!if "$(_NMAKE_VER)" == "10.00.30319.01"
MSVCVER = 10.0
!endif
- !if "$(_NMAKE_VER)" == "9.00.30729.01"
- MSVCVER = 9.0
- !endif
!endif
# Abort bulding VIM if version of VC is unrecognised.
--- 380,385 ----
*** ../vim-7.3.078/src/version.c 2010-12-08 14:23:08.000000000 +0100
--- src/version.c 2010-12-08 14:54:02.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 79,
/**/
--
login: yes
password: I don't know, please tell me
password is incorrect
login: yes
password: incorrect
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,205 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.080
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.080
Problem: Spell doesn't work on VMS.
Solution: Use different file names. (Zoltan Bartos, Zoltan Arpadffy)
Files: src/spell.c
*** ../vim-7.3.079/src/spell.c 2010-12-08 13:11:15.000000000 +0100
--- src/spell.c 2010-12-08 17:01:13.000000000 +0100
***************
*** 327,332 ****
--- 327,342 ----
typedef long idx_T;
#endif
+ #ifdef VMS
+ # define SPL_FNAME_TMPL "%s_%s.spl"
+ # define SPL_FNAME_ADD "_add."
+ # define SPL_FNAME_ASCII "_ascii."
+ #else
+ # define SPL_FNAME_TMPL "%s.%s.spl"
+ # define SPL_FNAME_ADD ".add."
+ # define SPL_FNAME_ASCII ".ascii."
+ #endif
+
/* Flags used for a word. Only the lowest byte can be used, the region byte
* comes above it. */
#define WF_REGION 0x01 /* region byte follows */
***************
*** 2471,2484 ****
* Find the first spell file for "lang" in 'runtimepath' and load it.
*/
vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
! "spell/%s.%s.spl", lang, spell_enc());
r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
if (r == FAIL && *sl.sl_lang != NUL)
{
/* Try loading the ASCII version. */
vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
! "spell/%s.ascii.spl", lang);
r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
#ifdef FEAT_AUTOCMD
--- 2481,2504 ----
* Find the first spell file for "lang" in 'runtimepath' and load it.
*/
vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
! #ifdef VMS
! "spell/%s_%s.spl",
! #else
! "spell/%s.%s.spl",
! #endif
! lang, spell_enc());
r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
if (r == FAIL && *sl.sl_lang != NUL)
{
/* Try loading the ASCII version. */
vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
! #ifdef VMS
! "spell/%s_ascii.spl",
! #else
! "spell/%s.ascii.spl",
! #endif
! lang);
r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
#ifdef FEAT_AUTOCMD
***************
*** 2496,2502 ****
if (r == FAIL)
{
! smsg((char_u *)_("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
lang, spell_enc(), lang);
}
else if (sl.sl_slang != NULL)
--- 2516,2527 ----
if (r == FAIL)
{
! smsg((char_u *)
! #ifdef VMS
! _("Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""),
! #else
! _("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
! #endif
lang, spell_enc(), lang);
}
else if (sl.sl_slang != NULL)
***************
*** 2530,2536 ****
int_wordlist_spl(fname)
char_u *fname;
{
! vim_snprintf((char *)fname, MAXPATHL, "%s.%s.spl",
int_wordlist, spell_enc());
}
--- 2555,2561 ----
int_wordlist_spl(fname)
char_u *fname;
{
! vim_snprintf((char *)fname, MAXPATHL, SPL_FNAME_TMPL,
int_wordlist, spell_enc());
}
***************
*** 2785,2792 ****
if (lp->sl_fname == NULL)
goto endFAIL;
! /* Check for .add.spl. */
! lp->sl_add = strstr((char *)gettail(fname), ".add.") != NULL;
}
else
lp = old_lp;
--- 2810,2817 ----
if (lp->sl_fname == NULL)
goto endFAIL;
! /* Check for .add.spl (_add.spl for VMS). */
! lp->sl_add = strstr((char *)gettail(fname), SPL_FNAME_ADD) != NULL;
}
else
lp = old_lp;
***************
*** 9109,9116 ****
/* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
innames = &fnames[0];
incount = 1;
! vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
! spin.si_ascii ? (char_u *)"ascii" : spell_enc());
}
else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
{
--- 9134,9141 ----
/* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
innames = &fnames[0];
incount = 1;
! vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
! fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
}
else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
{
***************
*** 9119,9133 ****
}
else
/* Name should be language, make the file name from it. */
! vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
! spin.si_ascii ? (char_u *)"ascii" : spell_enc());
/* Check for .ascii.spl. */
! if (strstr((char *)gettail(wfname), ".ascii.") != NULL)
spin.si_ascii = TRUE;
/* Check for .add.spl. */
! if (strstr((char *)gettail(wfname), ".add.") != NULL)
spin.si_add = TRUE;
}
--- 9144,9158 ----
}
else
/* Name should be language, make the file name from it. */
! vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
! fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
/* Check for .ascii.spl. */
! if (strstr((char *)gettail(wfname), SPL_FNAME_ASCII) != NULL)
spin.si_ascii = TRUE;
/* Check for .add.spl. */
! if (strstr((char *)gettail(wfname), SPL_FNAME_ADD) != NULL)
spin.si_add = TRUE;
}
*** ../vim-7.3.079/src/version.c 2010-12-08 14:54:58.000000000 +0100
--- src/version.c 2010-12-08 16:58:03.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 80,
/**/
--
hundred-and-one symptoms of being an internet addict:
5. You find yourself brainstorming for new subjects to search.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,84 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.081
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.081
Problem: Non-printable characters in 'statusline' cause trouble. (ZyX)
Solution: Use transstr(). (partly by Caio Ariede)
Files: src/screen.c
*** ../vim-7.3.080/src/screen.c 2010-08-15 21:57:32.000000000 +0200
--- src/screen.c 2010-12-08 19:27:20.000000000 +0100
***************
*** 3405,3413 ****
# endif
)
{
! int_u text_sign;
# ifdef FEAT_SIGN_ICONS
! int_u icon_sign;
# endif
/* Draw two cells with the sign value or blank. */
--- 3405,3413 ----
# endif
)
{
! int text_sign;
# ifdef FEAT_SIGN_ICONS
! int icon_sign;
# endif
/* Draw two cells with the sign value or blank. */
***************
*** 6522,6529 ****
stl, use_sandbox,
fillchar, maxwidth, hltab, tabtab);
vim_free(stl);
- len = (int)STRLEN(buf);
while (width < maxwidth && len < (int)sizeof(buf) - 1)
{
#ifdef FEAT_MBYTE
--- 6522,6538 ----
stl, use_sandbox,
fillchar, maxwidth, hltab, tabtab);
vim_free(stl);
+ /* Make all characters printable. */
+ p = transstr(buf);
+ if (p != NULL)
+ {
+ vim_strncpy(buf, p, sizeof(buf) - 1);
+ vim_free(p);
+ }
+
+ /* fill up with "fillchar" */
+ len = (int)STRLEN(buf);
while (width < maxwidth && len < (int)sizeof(buf) - 1)
{
#ifdef FEAT_MBYTE
*** ../vim-7.3.080/src/version.c 2010-12-08 17:09:27.000000000 +0100
--- src/version.c 2010-12-08 19:31:40.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 81,
/**/
--
hundred-and-one symptoms of being an internet addict:
6. You refuse to go to a vacation spot with no electricity and no phone lines.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,51 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.082
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.082
Problem: Leaking file descriptor when hostname doesn't exist.
Solution: Remove old debugging lines.
Files: src/netbeans.c
*** ../vim-7.3.081/src/netbeans.c 2010-12-08 13:11:15.000000000 +0100
--- src/netbeans.c 2010-12-17 12:13:32.000000000 +0100
***************
*** 323,334 ****
server.sin_port = htons(port);
if ((host = gethostbyname(hostname)) == NULL)
{
- if (mch_access(hostname, R_OK) >= 0)
- {
- /* DEBUG: input file */
- sd = mch_open(hostname, O_RDONLY, 0);
- goto theend;
- }
nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
PERROR("gethostbyname() in netbeans_connect()");
goto theend;
--- 323,328 ----
*** ../vim-7.3.081/src/version.c 2010-12-08 19:56:52.000000000 +0100
--- src/version.c 2010-12-17 12:17:11.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 82,
/**/
--
How To Keep A Healthy Level Of Insanity:
1. At lunch time, sit in your parked car with sunglasses on and point
a hair dryer at passing cars. See if they slow down.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,362 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.083
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.083
Problem: When a read() or write() is interrupted by a signal it fails.
Solution: Add read_eintr() and write_eintr().
Files: src/fileio.c, src/proto/fileio.pro, src/memfile.c, src/memline.c,
src/os_unix.c, src/undo.c, src/vim.h
*** ../vim-7.3.082/src/fileio.c 2010-08-15 21:57:26.000000000 +0200
--- src/fileio.c 2010-12-17 16:04:30.000000000 +0100
***************
*** 918,924 ****
{
/* Read the first line (and a bit more). Immediately rewind to
* the start of the file. If the read() fails "len" is -1. */
! len = vim_read(fd, firstline, 80);
lseek(fd, (off_t)0L, SEEK_SET);
for (p = firstline; p < firstline + len; ++p)
if (*p >= 0x80)
--- 918,924 ----
{
/* Read the first line (and a bit more). Immediately rewind to
* the start of the file. If the read() fails "len" is -1. */
! len = read_eintr(fd, firstline, 80);
lseek(fd, (off_t)0L, SEEK_SET);
for (p = firstline; p < firstline + len; ++p)
if (*p >= 0x80)
***************
*** 1373,1379 ****
/*
* Read bytes from the file.
*/
! size = vim_read(fd, ptr, size);
}
if (size <= 0)
--- 1373,1379 ----
/*
* Read bytes from the file.
*/
! size = read_eintr(fd, ptr, size);
}
if (size <= 0)
***************
*** 4000,4006 ****
#ifdef HAS_BW_FLAGS
write_info.bw_flags = FIO_NOCONVERT;
#endif
! while ((write_info.bw_len = vim_read(fd, copybuf,
BUFSIZE)) > 0)
{
if (buf_write_bytes(&write_info) == FAIL)
--- 4000,4006 ----
#ifdef HAS_BW_FLAGS
write_info.bw_flags = FIO_NOCONVERT;
#endif
! while ((write_info.bw_len = read_eintr(fd, copybuf,
BUFSIZE)) > 0)
{
if (buf_write_bytes(&write_info) == FAIL)
***************
*** 4813,4819 ****
#ifdef HAS_BW_FLAGS
write_info.bw_flags = FIO_NOCONVERT;
#endif
! while ((write_info.bw_len = vim_read(fd, smallbuf,
SMBUFSIZE)) > 0)
if (buf_write_bytes(&write_info) == FAIL)
break;
--- 4813,4819 ----
#ifdef HAS_BW_FLAGS
write_info.bw_flags = FIO_NOCONVERT;
#endif
! while ((write_info.bw_len = read_eintr(fd, smallbuf,
SMBUFSIZE)) > 0)
if (buf_write_bytes(&write_info) == FAIL)
break;
***************
*** 5330,5336 ****
/*
* Call write() to write a number of bytes to the file.
! * Also handles encryption and 'encoding' conversion.
*
* Return FAIL for failure, OK otherwise.
*/
--- 5330,5336 ----
/*
* Call write() to write a number of bytes to the file.
! * Handles encryption and 'encoding' conversion.
*
* Return FAIL for failure, OK otherwise.
*/
***************
*** 5702,5717 ****
crypt_encode(buf, len, buf);
#endif
! /* Repeat the write(), it may be interrupted by a signal. */
! while (len > 0)
! {
! wlen = vim_write(ip->bw_fd, buf, len);
! if (wlen <= 0) /* error! */
! return FAIL;
! len -= wlen;
! buf += wlen;
! }
! return OK;
}
#ifdef FEAT_MBYTE
--- 5702,5709 ----
crypt_encode(buf, len, buf);
#endif
! wlen = write_eintr(ip->bw_fd, buf, len);
! return (wlen < len) ? FAIL : OK;
}
#ifdef FEAT_MBYTE
***************
*** 6662,6669 ****
return -1;
}
! while ((n = vim_read(fd_in, buffer, BUFSIZE)) > 0)
! if (vim_write(fd_out, buffer, n) != n)
{
errmsg = _("E208: Error writing to \"%s\"");
break;
--- 6654,6661 ----
return -1;
}
! while ((n = read_eintr(fd_in, buffer, BUFSIZE)) > 0)
! if (write_eintr(fd_out, buffer, n) != n)
{
errmsg = _("E208: Error writing to \"%s\"");
break;
***************
*** 10304,10306 ****
--- 10296,10350 ----
}
return reg_pat;
}
+
+ #if defined(EINTR) || defined(PROTO)
+ /*
+ * Version of read() that retries when interrupted by EINTR (possibly
+ * by a SIGWINCH).
+ */
+ long
+ read_eintr(fd, buf, bufsize)
+ int fd;
+ void *buf;
+ size_t bufsize;
+ {
+ long ret;
+
+ for (;;)
+ {
+ ret = vim_read(fd, buf, bufsize);
+ if (ret >= 0 || errno != EINTR)
+ break;
+ }
+ return ret;
+ }
+
+ /*
+ * Version of write() that retries when interrupted by EINTR (possibly
+ * by a SIGWINCH).
+ */
+ long
+ write_eintr(fd, buf, bufsize)
+ int fd;
+ void *buf;
+ size_t bufsize;
+ {
+ long ret = 0;
+ long wlen;
+
+ /* Repeat the write() so long it didn't fail, other than being interrupted
+ * by a signal. */
+ while (ret < (long)bufsize)
+ {
+ wlen = vim_write(fd, buf + ret, bufsize - ret);
+ if (wlen < 0)
+ {
+ if (errno != EINTR)
+ break;
+ }
+ else
+ ret += wlen;
+ }
+ return ret;
+ }
+ #endif
*** ../vim-7.3.082/src/proto/fileio.pro 2010-08-15 21:57:28.000000000 +0200
--- src/proto/fileio.pro 2010-12-17 15:01:26.000000000 +0100
***************
*** 54,57 ****
--- 54,59 ----
int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end, char *allow_dirs, int no_bslash));
+ long read_eintr __ARGS((int fd, void *buf, size_t bufsize));
+ long write_eintr __ARGS((int fd, void *buf, size_t bufsize));
/* vim: set ft=c : */
*** ../vim-7.3.082/src/memfile.c 2010-08-15 21:57:25.000000000 +0200
--- src/memfile.c 2010-12-17 16:02:54.000000000 +0100
***************
*** 1049,1055 ****
PERROR(_("E294: Seek error in swap file read"));
return FAIL;
}
! if ((unsigned)vim_read(mfp->mf_fd, hp->bh_data, size) != size)
{
PERROR(_("E295: Read error in swap file"));
return FAIL;
--- 1049,1055 ----
PERROR(_("E294: Seek error in swap file read"));
return FAIL;
}
! if ((unsigned)read_eintr(mfp->mf_fd, hp->bh_data, size) != size)
{
PERROR(_("E295: Read error in swap file"));
return FAIL;
***************
*** 1168,1174 ****
}
#endif
! if ((unsigned)vim_write(mfp->mf_fd, data, size) != size)
result = FAIL;
#ifdef FEAT_CRYPT
--- 1168,1174 ----
}
#endif
! if ((unsigned)write_eintr(mfp->mf_fd, data, size) != size)
result = FAIL;
#ifdef FEAT_CRYPT
*** ../vim-7.3.082/src/memline.c 2010-12-08 13:16:58.000000000 +0100
--- src/memline.c 2010-12-17 15:46:49.000000000 +0100
***************
*** 2062,2068 ****
fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
if (fd >= 0)
{
! if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
{
if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
{
--- 2062,2068 ----
fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
if (fd >= 0)
{
! if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
{
if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
{
***************
*** 4392,4398 ****
fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
if (fd >= 0)
{
! if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
{
/*
* If the swapfile has the same directory as the
--- 4392,4398 ----
fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
if (fd >= 0)
{
! if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
{
/*
* If the swapfile has the same directory as the
*** ../vim-7.3.082/src/os_unix.c 2010-10-20 19:17:43.000000000 +0200
--- src/os_unix.c 2010-12-17 16:17:43.000000000 +0100
***************
*** 4454,4460 ****
++noread_cnt;
while (RealWaitForChar(fromshell_fd, 10L, NULL))
{
! len = read(fromshell_fd, (char *)buffer
# ifdef FEAT_MBYTE
+ buffer_off, (size_t)(BUFLEN - buffer_off)
# else
--- 4454,4460 ----
++noread_cnt;
while (RealWaitForChar(fromshell_fd, 10L, NULL))
{
! len = read_eintr(fromshell_fd, buffer
# ifdef FEAT_MBYTE
+ buffer_off, (size_t)(BUFLEN - buffer_off)
# else
*** ../vim-7.3.082/src/undo.c 2010-11-03 19:32:36.000000000 +0100
--- src/undo.c 2010-12-17 15:39:24.000000000 +0100
***************
*** 1386,1392 ****
char_u mbuf[UF_START_MAGIC_LEN];
int len;
! len = vim_read(fd, mbuf, UF_START_MAGIC_LEN);
close(fd);
if (len < UF_START_MAGIC_LEN
|| memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
--- 1386,1392 ----
char_u mbuf[UF_START_MAGIC_LEN];
int len;
! len = read_eintr(fd, mbuf, UF_START_MAGIC_LEN);
close(fd);
if (len < UF_START_MAGIC_LEN
|| memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
*** ../vim-7.3.082/src/vim.h 2010-12-02 16:01:23.000000000 +0100
--- src/vim.h 2010-12-17 14:55:04.000000000 +0100
***************
*** 1642,1647 ****
--- 1642,1652 ----
# define USE_INPUT_BUF
#endif
+ #ifndef EINTR
+ # define read_eintr(fd, buf, count) vim_read((fd), (buf), (count))
+ # define write_eintr(fd, buf, count) vim_write((fd), (buf), (count))
+ #endif
+
#ifdef MSWIN
/* On MS-Windows the third argument isn't size_t. This matters for Win64,
* where sizeof(size_t)==8, not 4 */
*** ../vim-7.3.082/src/version.c 2010-12-17 12:19:14.000000000 +0100
--- src/version.c 2010-12-17 16:10:58.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 83,
/**/
--
How To Keep A Healthy Level Of Insanity:
9. As often as possible, skip rather than walk.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,123 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.084
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.084
Problem: When splitting the window, the new one scrolls with the cursor at
the top.
Solution: Compute w_fraction before setting the new height.
Files: src/window.c
*** ../vim-7.3.083/src/window.c 2010-09-21 16:56:29.000000000 +0200
--- src/window.c 2010-12-17 17:09:51.000000000 +0100
***************
*** 70,76 ****
#endif /* FEAT_WINDOWS */
static win_T *win_alloc __ARGS((win_T *after, int hidden));
! static void win_new_height __ARGS((win_T *, int));
#define URL_SLASH 1 /* path_is_url() has found "://" */
#define URL_BACKSLASH 2 /* path_is_url() has found ":\\" */
--- 70,77 ----
#endif /* FEAT_WINDOWS */
static win_T *win_alloc __ARGS((win_T *after, int hidden));
! static void set_fraction __ARGS((win_T *wp));
! static void win_new_height __ARGS((win_T *wp, int height));
#define URL_SLASH 1 /* path_is_url() has found "://" */
#define URL_BACKSLASH 2 /* path_is_url() has found ":\\" */
***************
*** 983,992 ****
--- 984,999 ----
else
frame_append(curfrp, frp);
+ /* Set w_fraction now so that the cursor keeps the same relative
+ * vertical position. */
+ set_fraction(oldwin);
+ wp->w_fraction = oldwin->w_fraction;
+
#ifdef FEAT_VERTSPLIT
if (flags & WSP_VERT)
{
wp->w_p_scr = curwin->w_p_scr;
+
if (need_status)
{
win_new_height(oldwin, oldwin->w_height - 1);
***************
*** 5453,5458 ****
--- 5460,5478 ----
#endif /* FEAT_WINDOWS */
+ #define FRACTION_MULT 16384L
+
+ /*
+ * Set wp->w_fraction for the current w_wrow and w_height.
+ */
+ static void
+ set_fraction(wp)
+ win_T *wp;
+ {
+ wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
+ + FRACTION_MULT / 2) / (long)wp->w_height;
+ }
+
/*
* Set the height of a window.
* This takes care of the things inside the window, not what happens to the
***************
*** 5465,5471 ****
{
linenr_T lnum;
int sline, line_size;
- #define FRACTION_MULT 16384L
/* Don't want a negative height. Happens when splitting a tiny window.
* Will equalize heights soon to fix it. */
--- 5485,5490 ----
***************
*** 5475,5482 ****
return; /* nothing to do */
if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
! wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
! + FRACTION_MULT / 2) / (long)wp->w_height;
wp->w_height = height;
wp->w_skipcol = 0;
--- 5494,5500 ----
return; /* nothing to do */
if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
! set_fraction(wp);
wp->w_height = height;
wp->w_skipcol = 0;
*** ../vim-7.3.083/src/version.c 2010-12-17 16:27:10.000000000 +0100
--- src/version.c 2010-12-17 17:14:19.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 84,
/**/
--
How To Keep A Healthy Level Of Insanity:
12. Sing along at the opera.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,313 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.085
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.085 (after 7.3.083)
Problem: Inconsistency with preproc symbols. void * computation.
Solution: Include vimio.h from vim.h. Add type cast.
Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/fileio.c,
src/if_cscope.c, src/if_sniff.c, src/main.c, src/memfile.c,
src/memline.c, src/netbeans.c, src/os_msdos.c, src/os_mswin.c,
src/os_win16.c, src/os_win32.c, src/spell.c, src/tag.c,
src/undo.c, src/vim.h
*** ../vim-7.3.084/src/eval.c 2010-12-02 21:44:35.000000000 +0100
--- src/eval.c 2010-12-17 17:45:37.000000000 +0100
***************
*** 10,18 ****
/*
* eval.c: Expression evaluation.
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for mch_open(), must be before vim.h */
- #endif
#include "vim.h"
--- 10,15 ----
*** ../vim-7.3.084/src/ex_cmds.c 2010-11-24 17:59:27.000000000 +0100
--- src/ex_cmds.c 2010-12-17 17:46:09.000000000 +0100
***************
*** 11,20 ****
* ex_cmds.c: some functions for command line commands
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for mch_open(), must be before vim.h */
- #endif
-
#include "vim.h"
#include "version.h"
--- 11,16 ----
*** ../vim-7.3.084/src/ex_cmds2.c 2010-09-21 16:56:29.000000000 +0200
--- src/ex_cmds2.c 2010-12-17 17:46:26.000000000 +0100
***************
*** 11,20 ****
* ex_cmds2.c: some more functions for command line commands
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for mch_open(), must be before vim.h */
- #endif
-
#include "vim.h"
#include "version.h"
--- 11,16 ----
*** ../vim-7.3.084/src/fileio.c 2010-12-17 16:27:09.000000000 +0100
--- src/fileio.c 2010-12-17 17:52:42.000000000 +0100
***************
*** 11,24 ****
* fileio.c: read from and write to a file
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for lseek(), must be before vim.h */
- #endif
-
- #if defined __EMX__
- # include "vimio.h" /* for mktemp(), CJW 1997-12-03 */
- #endif
-
#include "vim.h"
#if defined(__TANDEM) || defined(__MINT__)
--- 11,16 ----
***************
*** 10336,10342 ****
* by a signal. */
while (ret < (long)bufsize)
{
! wlen = vim_write(fd, buf + ret, bufsize - ret);
if (wlen < 0)
{
if (errno != EINTR)
--- 10328,10334 ----
* by a signal. */
while (ret < (long)bufsize)
{
! wlen = vim_write(fd, (char *)buf + ret, bufsize - ret);
if (wlen < 0)
{
if (errno != EINTR)
*** ../vim-7.3.084/src/if_cscope.c 2010-09-21 16:56:29.000000000 +0200
--- src/if_cscope.c 2010-12-17 17:47:02.000000000 +0100
***************
*** 20,28 ****
#include <sys/stat.h>
#if defined(UNIX)
# include <sys/wait.h>
- #else
- /* not UNIX, must be WIN32 */
- # include "vimio.h"
#endif
#include "if_cscope.h"
--- 20,25 ----
*** ../vim-7.3.084/src/if_sniff.c 2010-08-15 21:57:25.000000000 +0200
--- src/if_sniff.c 2010-12-17 17:47:20.000000000 +0100
***************
*** 9,15 ****
#ifdef WIN32
# include <stdio.h>
- # include "vimio.h"
# include <process.h>
# include <string.h>
# include <assert.h>
--- 9,14 ----
*** ../vim-7.3.084/src/main.c 2010-11-16 16:25:46.000000000 +0100
--- src/main.c 2010-12-17 17:47:41.000000000 +0100
***************
*** 7,16 ****
* See README.txt for an overview of the Vim source code.
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for close() and dup() */
- #endif
-
#define EXTERN
#include "vim.h"
--- 7,12 ----
*** ../vim-7.3.084/src/memfile.c 2010-12-17 16:27:10.000000000 +0100
--- src/memfile.c 2010-12-17 17:47:54.000000000 +0100
***************
*** 32,41 ****
* file is opened.
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for lseek(), must be before vim.h */
- #endif
-
#include "vim.h"
/*
--- 32,37 ----
*** ../vim-7.3.084/src/memline.c 2010-12-17 16:27:10.000000000 +0100
--- src/memline.c 2010-12-17 17:48:06.000000000 +0100
***************
*** 42,51 ****
* mf_get().
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for mch_open(), must be before vim.h */
- #endif
-
#include "vim.h"
#ifndef UNIX /* it's in os_unix.h for Unix */
--- 42,47 ----
*** ../vim-7.3.084/src/netbeans.c 2010-12-17 12:19:14.000000000 +0100
--- src/netbeans.c 2010-12-17 17:48:19.000000000 +0100
***************
*** 16,25 ****
* See ":help netbeans-protocol" for explanation.
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for mch_open(), must be before vim.h */
- #endif
-
#include "vim.h"
#if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
--- 16,21 ----
*** ../vim-7.3.084/src/os_msdos.c 2010-08-15 21:57:25.000000000 +0200
--- src/os_msdos.c 2010-12-17 17:48:40.000000000 +0100
***************
*** 21,27 ****
* Some functions are also used for Win16 (MS-Windows 3.1).
*/
- #include "vimio.h"
#include "vim.h"
#include <conio.h>
--- 21,26 ----
*** ../vim-7.3.084/src/os_mswin.c 2010-10-23 14:02:48.000000000 +0200
--- src/os_mswin.c 2010-12-17 17:48:51.000000000 +0100
***************
*** 22,28 ****
# endif
#endif
- #include "vimio.h"
#include "vim.h"
#ifdef WIN16
--- 22,27 ----
*** ../vim-7.3.084/src/os_win16.c 2010-08-15 21:57:32.000000000 +0200
--- src/os_win16.c 2010-12-17 17:49:02.000000000 +0100
***************
*** 20,26 ****
# pragma warn -obs
#endif
- #include "vimio.h"
#include "vim.h"
#include <dos.h>
--- 20,25 ----
*** ../vim-7.3.084/src/os_win32.c 2010-11-24 12:35:14.000000000 +0100
--- src/os_win32.c 2010-12-17 17:49:11.000000000 +0100
***************
*** 20,26 ****
* Roger Knobbe <rogerk@wonderware.com> did the initial port of Vim 3.0.
*/
- #include "vimio.h"
#include "vim.h"
#ifdef FEAT_MZSCHEME
--- 20,25 ----
*** ../vim-7.3.084/src/spell.c 2010-12-08 17:09:27.000000000 +0100
--- src/spell.c 2010-12-17 17:49:24.000000000 +0100
***************
*** 303,312 ****
* few bytes as possible, see offset2bytes())
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for lseek(), must be before vim.h */
- #endif
-
#include "vim.h"
#if defined(FEAT_SPELL) || defined(PROTO)
--- 303,308 ----
*** ../vim-7.3.084/src/tag.c 2010-09-21 16:56:29.000000000 +0200
--- src/tag.c 2010-12-17 17:49:35.000000000 +0100
***************
*** 11,20 ****
* Code to handle tags and the tag stack
*/
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for lseek(), must be before vim.h */
- #endif
-
#include "vim.h"
/*
--- 11,16 ----
*** ../vim-7.3.084/src/undo.c 2010-12-17 16:27:10.000000000 +0100
--- src/undo.c 2010-12-17 17:49:59.000000000 +0100
***************
*** 81,90 ****
#define UH_MAGIC 0x18dade /* value for uh_magic when in use */
#define UE_MAGIC 0xabc123 /* value for ue_magic when in use */
- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
- # include "vimio.h" /* for vim_read(), must be before vim.h */
- #endif
-
#include "vim.h"
static void u_unch_branch __ARGS((u_header_T *uhp));
--- 81,86 ----
*** ../vim-7.3.084/src/vim.h 2010-12-17 16:27:10.000000000 +0100
--- src/vim.h 2010-12-17 17:51:43.000000000 +0100
***************
*** 27,32 ****
--- 27,37 ----
# endif
#endif
+ #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64) \
+ || defined(__EMX__)
+ # include "vimio.h"
+ #endif
+
/* ============ the header file puzzle (ca. 50-100 pieces) ========= */
#ifdef HAVE_CONFIG_H /* GNU autoconf (or something else) was here */
*** ../vim-7.3.084/src/version.c 2010-12-17 17:35:05.000000000 +0100
--- src/version.c 2010-12-17 17:55:39.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 85,
/**/
--
How To Keep A Healthy Level Of Insanity:
14. Put mosquito netting around your work area. Play a tape of jungle
sounds all day.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,138 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.086
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.086
Problem: When using a mapping with an expression and there was no count,
v:count has the value of the previous command. (ZyX)
Solution: Also set v:count and v:count1 before getting the character that
could be a command or a count.
Files: src/normal.c
*** ../vim-7.3.085/src/normal.c 2010-10-13 18:06:42.000000000 +0200
--- src/normal.c 2010-12-17 18:46:56.000000000 +0100
***************
*** 25,30 ****
--- 25,33 ----
static int restart_VIsual_select = 0;
#endif
+ #ifdef FEAT_EVAL
+ static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
+ #endif
static int
# ifdef __BORLANDC__
_RTLENTRYF
***************
*** 648,653 ****
--- 651,664 ----
dont_scroll = FALSE; /* allow scrolling here */
#endif
+ #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
+ * when there is no count. */
+ if (toplevel && stuff_empty())
+ set_vcount_ca(&ca, &set_prevcount);
+ #endif
+
/*
* Get the command character from the user.
*/
***************
*** 725,739 ****
* command, so that v:count can be used in an expression mapping
* right after the count. */
if (toplevel && stuff_empty())
! {
! long count = ca.count0;
!
! /* multiply with ca.opcount the same way as below */
! if (ca.opcount != 0)
! count = ca.opcount * (count == 0 ? 1 : count);
! set_vcount(count, count == 0 ? 1 : count, set_prevcount);
! set_prevcount = FALSE; /* only set v:prevcount once */
! }
#endif
if (ctrl_w)
{
--- 736,742 ----
* command, so that v:count can be used in an expression mapping
* right after the count. */
if (toplevel && stuff_empty())
! set_vcount_ca(&ca, &set_prevcount);
#endif
if (ctrl_w)
{
***************
*** 1386,1391 ****
--- 1389,1414 ----
opcount = ca.opcount;
}
+ #ifdef FEAT_EVAL
+ /*
+ * Set v:count and v:count1 according to "cap".
+ * Set v:prevcount only when "set_prevcount" is TRUE.
+ */
+ static void
+ set_vcount_ca(cap, set_prevcount)
+ cmdarg_T *cap;
+ int *set_prevcount;
+ {
+ long count = cap->count0;
+
+ /* multiply with cap->opcount the same way as above */
+ if (cap->opcount != 0)
+ count = cap->opcount * (count == 0 ? 1 : count);
+ set_vcount(count, count == 0 ? 1 : count, *set_prevcount);
+ *set_prevcount = FALSE; /* only set v:prevcount once */
+ }
+ #endif
+
/*
* Handle an operator after visual mode or when the movement is finished
*/
***************
*** 8529,8535 ****
else
curwin->w_curswant = 0;
/* keep curswant at the column where we wanted to go, not where
! we ended; differs if line is too short */
curwin->w_set_curswant = FALSE;
}
--- 8552,8558 ----
else
curwin->w_curswant = 0;
/* keep curswant at the column where we wanted to go, not where
! * we ended; differs if line is too short */
curwin->w_set_curswant = FALSE;
}
*** ../vim-7.3.085/src/version.c 2010-12-17 18:06:00.000000000 +0100
--- src/version.c 2010-12-17 18:51:20.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 86,
/**/
--
How To Keep A Healthy Level Of Insanity:
15. Five days in advance, tell your friends you can't attend their
party because you're not in the mood.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,152 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.087
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.087
Problem: EINTR is not always defined.
Solution: Include errno.h in vim.h.
Files: src/if_cscope.c, src/if_tcl.c, src/integration.c, src/memline.c,
src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h,
src/workshop.c
*** ../vim-7.3.086/src/if_cscope.c 2010-12-17 18:06:00.000000000 +0100
--- src/if_cscope.c 2010-12-17 20:06:01.000000000 +0100
***************
*** 13,20 ****
#if defined(FEAT_CSCOPE) || defined(PROTO)
- #include <string.h>
- #include <errno.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
--- 13,18 ----
*** ../vim-7.3.086/src/if_tcl.c 2010-08-15 21:57:27.000000000 +0200
--- src/if_tcl.c 2010-12-17 20:06:56.000000000 +0100
***************
*** 74,80 ****
#endif
#include <tcl.h>
- #include <errno.h>
#include <string.h>
typedef struct
--- 74,79 ----
*** ../vim-7.3.086/src/integration.c 2010-08-15 21:57:29.000000000 +0200
--- src/integration.c 2010-12-17 20:07:12.000000000 +0100
***************
*** 33,39 ****
#include <sys/un.h>
#endif
- #include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/param.h>
--- 33,38 ----
*** ../vim-7.3.086/src/memline.c 2010-12-17 18:06:00.000000000 +0100
--- src/memline.c 2010-12-17 20:07:31.000000000 +0100
***************
*** 52,61 ****
# include <proto/dos.h> /* for Open() and Close() */
#endif
- #ifdef HAVE_ERRNO_H
- # include <errno.h>
- #endif
-
typedef struct block0 ZERO_BL; /* contents of the first block */
typedef struct pointer_block PTR_BL; /* contents of a pointer block */
typedef struct data_block DATA_BL; /* contents of a data block */
--- 52,57 ----
*** ../vim-7.3.086/src/os_mswin.c 2010-12-17 18:06:00.000000000 +0100
--- src/os_mswin.c 2010-12-17 20:08:14.000000000 +0100
***************
*** 30,36 ****
# include <string.h>
#endif
#include <sys/types.h>
- #include <errno.h>
#include <signal.h>
#include <limits.h>
#include <process.h>
--- 30,35 ----
*** ../vim-7.3.086/src/os_win16.c 2010-12-17 18:06:00.000000000 +0100
--- src/os_win16.c 2010-12-17 20:08:53.000000000 +0100
***************
*** 25,31 ****
#include <dos.h>
#include <string.h>
#include <sys/types.h>
- #include <errno.h>
#include <signal.h>
#include <limits.h>
#include <process.h>
--- 25,30 ----
*** ../vim-7.3.086/src/os_win32.c 2010-12-17 18:06:00.000000000 +0100
--- src/os_win32.c 2010-12-17 20:09:18.000000000 +0100
***************
*** 27,33 ****
#endif
#include <sys/types.h>
- #include <errno.h>
#include <signal.h>
#include <limits.h>
#include <process.h>
--- 27,32 ----
*** ../vim-7.3.086/src/vim.h 2010-12-17 18:06:00.000000000 +0100
--- src/vim.h 2010-12-17 20:09:56.000000000 +0100
***************
*** 480,485 ****
--- 480,490 ----
# include <sys/stat.h>
#endif
+ #if defined(HAVE_ERRNO_H) || defined(DJGPP) || defined(WIN16) \
+ || defined(WIN32) || defined(_WIN64) || defined(__EMX__)
+ # include <errno.h>
+ #endif
+
/*
* Allow other (non-unix) systems to configure themselves now
* These are also in os_unix.h, because osdef.sh needs them there.
*** ../vim-7.3.086/src/workshop.c 2010-08-15 21:57:26.000000000 +0200
--- src/workshop.c 2010-12-17 20:09:31.000000000 +0100
***************
*** 16,22 ****
#include <sys/types.h>
#include <netdb.h>
#include <netinet/in.h>
- #include <errno.h>
#include <sys/socket.h>
#ifdef HAVE_LIBGEN_H
# include <libgen.h>
--- 16,21 ----
*** ../vim-7.3.086/src/version.c 2010-12-17 18:52:56.000000000 +0100
--- src/version.c 2010-12-17 20:14:49.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 87,
/**/
--
How To Keep A Healthy Level Of Insanity:
17. When the money comes out the ATM, scream "I won!, I won! 3rd
time this week!!!!!"
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,152 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.088
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.088
Problem: Ruby can't load Gems sometimes, may cause a crash.
Solution: Undefine off_t. Use ruby_process_options(). (Yasuhiro Matsumoto)
Files: src/if_ruby.c
*** ../vim-7.3.087/src/if_ruby.c 2010-12-08 13:11:15.000000000 +0100
--- src/if_ruby.c 2010-12-24 12:18:31.000000000 +0100
***************
*** 90,95 ****
--- 90,96 ----
# include <ruby/encoding.h>
#endif
+ #undef off_t /* ruby defines off_t as _int64, Mingw uses long */
#undef EXTERN
#undef _
***************
*** 229,238 ****
# define rb_enc_find_index dll_rb_enc_find_index
# define rb_enc_find dll_rb_enc_find
# define rb_enc_str_new dll_rb_enc_str_new
- # define rb_intern2 dll_rb_intern2
- # define rb_const_remove dll_rb_const_remove
# define rb_sprintf dll_rb_sprintf
# define ruby_init_stack dll_ruby_init_stack
#endif
/*
--- 230,239 ----
# define rb_enc_find_index dll_rb_enc_find_index
# define rb_enc_find dll_rb_enc_find
# define rb_enc_str_new dll_rb_enc_str_new
# define rb_sprintf dll_rb_sprintf
+ # define rb_require dll_rb_require
# define ruby_init_stack dll_ruby_init_stack
+ # define ruby_process_options dll_ruby_process_options
#endif
/*
***************
*** 319,329 ****
static int (*dll_rb_enc_find_index) (const char*);
static rb_encoding* (*dll_rb_enc_find) (const char*);
static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
- static ID (*dll_rb_intern2) (const char*, long);
- static void (*dll_Init_prelude) (void);
- static VALUE (*dll_rb_const_remove) (VALUE, ID);
static VALUE (*dll_rb_sprintf) (const char*, ...);
static void (*ruby_init_stack)(VALUE*);
#endif
#ifdef RUBY19_OR_LATER
--- 320,329 ----
static int (*dll_rb_enc_find_index) (const char*);
static rb_encoding* (*dll_rb_enc_find) (const char*);
static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
static VALUE (*dll_rb_sprintf) (const char*, ...);
+ static VALUE (*dll_rb_require) (const char*);
static void (*ruby_init_stack)(VALUE*);
+ static void* (*ruby_process_options)(int, char**);
#endif
#ifdef RUBY19_OR_LATER
***************
*** 430,439 ****
{"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
{"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
{"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
- {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2},
- {"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove},
{"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
{"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
#endif
{"", NULL},
};
--- 430,439 ----
{"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
{"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
{"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
{"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
+ {"rb_require", (RUBY_PROC*)&dll_rb_require},
{"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
+ {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options},
#endif
{"", NULL},
};
***************
*** 663,680 ****
ruby_init();
}
#ifdef RUBY19_OR_LATER
ruby_script("vim-ruby");
! #endif
ruby_init_loadpath();
- ruby_io_init();
- #ifdef RUBY19_OR_LATER
- rb_enc_find_index("encdb");
-
- /* This avoids the error "Encoding::ConverterNotFoundError: code
- * converter not found (UTF-16LE to ASCII-8BIT)". */
- rb_define_module("Gem");
- rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15));
#endif
ruby_vim_init();
ruby_initialized = 1;
#ifdef DYNAMIC_RUBY
--- 663,678 ----
ruby_init();
}
#ifdef RUBY19_OR_LATER
+ {
+ int dummy_argc = 2;
+ char *dummy_argv[] = {"vim-ruby", "-e0"};
+ ruby_process_options(dummy_argc, dummy_argv);
+ }
ruby_script("vim-ruby");
! #else
ruby_init_loadpath();
#endif
+ ruby_io_init();
ruby_vim_init();
ruby_initialized = 1;
#ifdef DYNAMIC_RUBY
*** ../vim-7.3.087/src/version.c 2010-12-17 20:23:56.000000000 +0100
--- src/version.c 2010-12-24 13:38:51.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 88,
/**/
--
It is hard to understand how a cemetery raised its burial
cost and blamed it on the cost of living.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,52 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.089
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.089
Problem: Compiler warning on 64 bit MS-Windows.
Solution: Add type cast. (Mike Williams)
Files: src/netbeans.c
*** ../vim-7.3.088/src/netbeans.c 2010-12-17 18:06:00.000000000 +0100
--- src/netbeans.c 2010-12-17 20:21:05.000000000 +0100
***************
*** 800,806 ****
* -> gui event loop or select loop
* -> netbeans_read()
*/
! save((char_u *)DETACH_MSG, strlen(DETACH_MSG));
nb_close_socket();
if (len < 0)
--- 800,806 ----
* -> gui event loop or select loop
* -> netbeans_read()
*/
! save((char_u *)DETACH_MSG, (int)strlen(DETACH_MSG));
nb_close_socket();
if (len < 0)
*** ../vim-7.3.088/src/version.c 2010-12-24 13:39:29.000000000 +0100
--- src/version.c 2010-12-24 13:59:03.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 89,
/**/
--
The 50-50-90 rule: Anytime you have a 50-50 chance of getting
something right, there's a 90% probability you'll get it wrong.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,68 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.090
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.090
Problem: Wrong help text for Cscope.
Solution: Adjust the help text for "t". (Dominique Pelle)
Files: src/if_cscope.c
*** ../vim-7.3.089/src/if_cscope.c 2010-12-17 20:23:56.000000000 +0100
--- src/if_cscope.c 2010-12-30 11:35:37.000000000 +0100
***************
*** 1346,1352 ****
" g: Find this definition\n"
" i: Find files #including this file\n"
" s: Find this C symbol\n"
! " t: Find assignments to\n"));
cmdp++;
}
--- 1346,1352 ----
" g: Find this definition\n"
" i: Find files #including this file\n"
" s: Find this C symbol\n"
! " t: Find this text string\n"));
cmdp++;
}
***************
*** 1657,1663 ****
/*
* PRIVATE: cs_make_vim_style_matches
*
! * convert the cscope output into into a ctags style entry (as might be found
* in a ctags tags file). there's one catch though: cscope doesn't tell you
* the type of the tag you are looking for. for example, in Darren Hiebert's
* ctags (the one that comes with vim), #define's use a line number to find the
--- 1657,1663 ----
/*
* PRIVATE: cs_make_vim_style_matches
*
! * convert the cscope output into a ctags style entry (as might be found
* in a ctags tags file). there's one catch though: cscope doesn't tell you
* the type of the tag you are looking for. for example, in Darren Hiebert's
* ctags (the one that comes with vim), #define's use a line number to find the
*** ../vim-7.3.089/src/version.c 2010-12-24 14:00:09.000000000 +0100
--- src/version.c 2010-12-30 11:36:33.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 90,
/**/
--
ERROR 047: Keyboard not found. Press RETURN to continue.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,321 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.091
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.091
Problem: "vim -w foo" writes special key codes for removed escape
sequences. (Josh Triplett)
Solution: Don't write K_IGNORE codes.
Files: src/getchar.c, src/misc1.c, src/term.c, src/vim.h
*** ../vim-7.3.090/src/getchar.c 2010-10-27 17:39:00.000000000 +0200
--- src/getchar.c 2010-12-30 12:16:36.000000000 +0100
***************
*** 1506,1514 ****
}
}
- #define KL_PART_KEY -1 /* keylen value for incomplete key-code */
- #define KL_PART_MAP -2 /* keylen value for incomplete mapping */
-
/*
* Get the next input character.
* Can return a special key or a multi-byte character.
--- 1506,1511 ----
***************
*** 2171,2177 ****
if (!timedout)
{
/* break at a partly match */
! keylen = KL_PART_MAP;
break;
}
}
--- 2168,2174 ----
if (!timedout)
{
/* break at a partly match */
! keylen = KEYLEN_PART_MAP;
break;
}
}
***************
*** 2192,2198 ****
/* If no partly match found, use the longest full
* match. */
! if (keylen != KL_PART_MAP)
{
mp = mp_match;
keylen = mp_match_len;
--- 2189,2195 ----
/* If no partly match found, use the longest full
* match. */
! if (keylen != KEYLEN_PART_MAP)
{
mp = mp_match;
keylen = mp_match_len;
***************
*** 2230,2236 ****
}
/* Need more chars for partly match. */
if (mlen == typebuf.tb_len)
! keylen = KL_PART_KEY;
else if (max_mlen < mlen)
/* no match, may have to check for termcode at
* next character */
--- 2227,2233 ----
}
/* Need more chars for partly match. */
if (mlen == typebuf.tb_len)
! keylen = KEYLEN_PART_KEY;
else if (max_mlen < mlen)
/* no match, may have to check for termcode at
* next character */
***************
*** 2238,2244 ****
}
if ((mp == NULL || max_mlen >= mp_match_len)
! && keylen != KL_PART_MAP)
{
int save_keylen = keylen;
--- 2235,2241 ----
}
if ((mp == NULL || max_mlen >= mp_match_len)
! && keylen != KEYLEN_PART_MAP)
{
int save_keylen = keylen;
***************
*** 2264,2271 ****
/* If no termcode matched but 'pastetoggle'
* matched partially it's like an incomplete key
* sequence. */
! if (keylen == 0 && save_keylen == KL_PART_KEY)
! keylen = KL_PART_KEY;
/*
* When getting a partial match, but the last
--- 2261,2268 ----
/* If no termcode matched but 'pastetoggle'
* matched partially it's like an incomplete key
* sequence. */
! if (keylen == 0 && save_keylen == KEYLEN_PART_KEY)
! keylen = KEYLEN_PART_KEY;
/*
* When getting a partial match, but the last
***************
*** 2302,2308 ****
continue;
}
if (*s == NUL) /* need more characters */
! keylen = KL_PART_KEY;
}
if (keylen >= 0)
#endif
--- 2299,2305 ----
continue;
}
if (*s == NUL) /* need more characters */
! keylen = KEYLEN_PART_KEY;
}
if (keylen >= 0)
#endif
***************
*** 2339,2345 ****
if (keylen > 0) /* full matching terminal code */
{
#if defined(FEAT_GUI) && defined(FEAT_MENU)
! if (typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
&& typebuf.tb_buf[typebuf.tb_off + 1]
== KS_MENU)
{
--- 2336,2343 ----
if (keylen > 0) /* full matching terminal code */
{
#if defined(FEAT_GUI) && defined(FEAT_MENU)
! if (typebuf.tb_len >= 2
! && typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
&& typebuf.tb_buf[typebuf.tb_off + 1]
== KS_MENU)
{
***************
*** 2381,2387 ****
/* Partial match: get some more characters. When a
* matching mapping was found use that one. */
if (mp == NULL || keylen < 0)
! keylen = KL_PART_KEY;
else
keylen = mp_match_len;
}
--- 2379,2385 ----
/* Partial match: get some more characters. When a
* matching mapping was found use that one. */
if (mp == NULL || keylen < 0)
! keylen = KEYLEN_PART_KEY;
else
keylen = mp_match_len;
}
***************
*** 2553,2559 ****
#endif
&& typebuf.tb_maplen == 0
&& (State & INSERT)
! && (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
&& (c = inchar(typebuf.tb_buf + typebuf.tb_off
+ typebuf.tb_len, 3, 25L,
typebuf.tb_change_cnt)) == 0)
--- 2551,2558 ----
#endif
&& typebuf.tb_maplen == 0
&& (State & INSERT)
! && (p_timeout
! || (keylen == KEYLEN_PART_KEY && p_ttimeout))
&& (c = inchar(typebuf.tb_buf + typebuf.tb_off
+ typebuf.tb_len, 3, 25L,
typebuf.tb_change_cnt)) == 0)
***************
*** 2783,2791 ****
? 0
: ((typebuf.tb_len == 0
|| !(p_timeout || (p_ttimeout
! && keylen == KL_PART_KEY)))
? -1L
! : ((keylen == KL_PART_KEY && p_ttm >= 0)
? p_ttm
: p_tm)), typebuf.tb_change_cnt);
--- 2782,2790 ----
? 0
: ((typebuf.tb_len == 0
|| !(p_timeout || (p_ttimeout
! && keylen == KEYLEN_PART_KEY)))
? -1L
! : ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
? p_ttm
: p_tm)), typebuf.tb_change_cnt);
*** ../vim-7.3.090/src/misc1.c 2010-12-02 16:01:23.000000000 +0100
--- src/misc1.c 2010-12-30 12:28:59.000000000 +0100
***************
*** 3114,3123 ****
&& (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
continue;
! /* found a termcode: adjust length */
! if (n > 0)
len = n;
! if (len == 0) /* nothing typed yet */
continue;
/* Handle modifier and/or special key code. */
--- 3114,3124 ----
&& (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
continue;
! if (n == KEYLEN_REMOVED) /* key code removed */
! continue;
! if (n > 0) /* found a termcode: adjust length */
len = n;
! if (len == 0) /* nothing typed yet */
continue;
/* Handle modifier and/or special key code. */
*** ../vim-7.3.090/src/term.c 2010-08-15 21:57:32.000000000 +0200
--- src/term.c 2010-12-30 12:14:48.000000000 +0100
***************
*** 3828,3833 ****
--- 3831,3837 ----
* Check from typebuf.tb_buf[typebuf.tb_off] to typebuf.tb_buf[typebuf.tb_off
* + max_offset].
* Return 0 for no match, -1 for partial match, > 0 for full match.
+ * Return KEYLEN_REMOVED when a key code was deleted.
* With a match, the match is removed, the replacement code is inserted in
* typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
* returned.
***************
*** 3845,3850 ****
--- 3849,3855 ----
int slen = 0; /* init for GCC */
int modslen;
int len;
+ int retval = 0;
int offset;
char_u key_name[2];
int modifiers;
***************
*** 4940,4945 ****
--- 4945,4957 ----
#endif
string[new_slen++] = key_name[1];
}
+ else if (new_slen == 0 && key_name[0] == KS_EXTRA
+ && key_name[1] == KE_IGNORE)
+ {
+ /* Do not put K_IGNORE into the buffer, do return KEYLEN_REMOVED
+ * to indicate what happened. */
+ retval = KEYLEN_REMOVED;
+ }
else
{
string[new_slen++] = K_SPECIAL;
***************
*** 4976,4982 ****
(size_t)(buflen - offset));
mch_memmove(buf + offset, string, (size_t)new_slen);
}
! return (len + extra + offset);
}
return 0; /* no match found */
--- 4988,4994 ----
(size_t)(buflen - offset));
mch_memmove(buf + offset, string, (size_t)new_slen);
}
! return retval == 0 ? (len + extra + offset) : retval;
}
return 0; /* no match found */
*** ../vim-7.3.090/src/vim.h 2010-12-17 20:23:56.000000000 +0100
--- src/vim.h 2010-12-30 12:06:45.000000000 +0100
***************
*** 2211,2214 ****
--- 2211,2218 ----
#define MSCR_LEFT -1
#define MSCR_RIGHT -2
+ #define KEYLEN_PART_KEY -1 /* keylen value for incomplete key-code */
+ #define KEYLEN_PART_MAP -2 /* keylen value for incomplete mapping */
+ #define KEYLEN_REMOVED 9999 /* keylen value for removed sequence */
+
#endif /* VIM__H */
*** ../vim-7.3.090/src/version.c 2010-12-30 11:41:05.000000000 +0100
--- src/version.c 2010-12-30 12:24:56.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 91,
/**/
--
hundred-and-one symptoms of being an internet addict:
56. You leave the modem speaker on after connecting because you think it
sounds like the ocean wind...the perfect soundtrack for "surfing the net".
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,62 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.092
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.092
Problem: Resizing the window when exiting.
Solution: Don't resize when exiting.
Files: src/term.c
*** ../vim-7.3.091/src/term.c 2010-12-30 12:30:26.000000000 +0100
--- src/term.c 2010-12-30 12:14:48.000000000 +0100
***************
*** 3053,3062 ****
int old_Rows = Rows;
int old_Columns = Columns;
! (void)ui_get_shellsize();
! check_shellsize();
! if (old_Rows != Rows || old_Columns != Columns)
! shell_resized();
}
/*
--- 3053,3065 ----
int old_Rows = Rows;
int old_Columns = Columns;
! if (!exiting)
! {
! (void)ui_get_shellsize();
! check_shellsize();
! if (old_Rows != Rows || old_Columns != Columns)
! shell_resized();
! }
}
/*
*** ../vim-7.3.091/src/version.c 2010-12-30 12:30:26.000000000 +0100
--- src/version.c 2010-12-30 14:47:04.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 92,
/**/
--
hundred-and-one symptoms of being an internet addict:
57. You begin to wonder how on earth your service provider is allowed to call
200 hours per month "unlimited."
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,201 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.093
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.093
Problem: New DLL dependencies in MingW with gcc 4.5.0.
Solution: Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen)
Files: src/GvimExt/Make_ming.mak, src/Make_ming.mak
*** ../vim-7.3.092/src/GvimExt/Make_ming.mak 2010-09-29 18:42:25.000000000 +0200
--- src/GvimExt/Make_ming.mak 2010-12-30 14:42:51.000000000 +0100
***************
*** 17,22 ****
--- 17,33 ----
# check also the executables
MINGWOLD = no
+ # Link against the shared versions of libgcc/libstdc++ by default. Set
+ # STATIC_STDCPLUS to "yes" to link against static versions instead.
+ STATIC_STDCPLUS=no
+ #STATIC_STDCPLUS=yes
+
+ # Note: -static-libstdc++ is not available until gcc 4.5.x.
+ LDFLAGS += -shared
+ ifeq (yes, $(STATIC_STDCPLUS))
+ LDFLAGS += -static-libgcc -static-libstdc++
+ endif
+
ifeq ($(CROSS),yes)
DEL = rm
ifeq ($(MINGWOLD),yes)
***************
*** 33,39 ****
endif
endif
CXX := $(CROSS_COMPILE)g++
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -DRC_INVOKED
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
--- 44,52 ----
endif
endif
CXX := $(CROSS_COMPILE)g++
! WINDRES := $(CROSS_COMPILE)windres
! WINDRES_CXX = $(CXX)
! WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
***************
*** 46,52 ****
all: all-before $(DLL) all-after
$(DLL): $(OBJ) $(RES) $(DEFFILE)
! $(CXX) -shared $(CXXFLAGS) -s -o $@ \
-Wl,--enable-auto-image-base \
-Wl,--enable-auto-import \
-Wl,--whole-archive \
--- 59,65 ----
all: all-before $(DLL) all-after
$(DLL): $(OBJ) $(RES) $(DEFFILE)
! $(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
-Wl,--enable-auto-image-base \
-Wl,--enable-auto-import \
-Wl,--whole-archive \
***************
*** 58,64 ****
$(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
$(RES): gvimext_ming.rc
! $(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
clean: clean-custom
-$(DEL) $(OBJ) $(RES) $(DLL)
--- 71,77 ----
$(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
$(RES): gvimext_ming.rc
! $(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
clean: clean-custom
-$(DEL) $(OBJ) $(RES) $(DLL)
*** ../vim-7.3.092/src/Make_ming.mak 2010-11-03 21:59:23.000000000 +0100
--- src/Make_ming.mak 2010-12-30 14:42:51.000000000 +0100
***************
*** 56,61 ****
--- 56,67 ----
NETBEANS=$(GUI)
+ # Link against the shared version of libstdc++ by default. Set
+ # STATIC_STDCPLUS to "yes" to link against static version instead.
+ ifndef STATIC_STDCPLUS
+ STATIC_STDCPLUS=no
+ endif
+
# If the user doesn't want gettext, undefine it.
ifeq (no, $(GETTEXT))
GETTEXT=
***************
*** 309,320 ****
endif
endif
CC := $(CROSS_COMPILE)gcc
! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -DRC_INVOKED
#>>>>> end of choices
###########################################################################
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
ifdef GETTEXT
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
--- 315,328 ----
endif
endif
CC := $(CROSS_COMPILE)gcc
! WINDRES := $(CROSS_COMPILE)windres
! WINDRES_CC = $(CC)
#>>>>> end of choices
###########################################################################
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
+ WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
ifdef GETTEXT
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
***************
*** 577,584 ****
endif
ifeq (yes, $(OLE))
! LIB += -loleaut32 -lstdc++
OBJ += $(OUTDIR)/if_ole.o
endif
ifeq (yes, $(MBYTE))
--- 585,597 ----
endif
ifeq (yes, $(OLE))
! LIB += -loleaut32
OBJ += $(OUTDIR)/if_ole.o
+ ifeq (yes, $(STATIC_STDCPLUS))
+ LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
+ else
+ LIB += -lstdc++
+ endif
endif
ifeq (yes, $(MBYTE))
***************
*** 656,665 ****
$(CC) -c $(CFLAGS) $< -o $@
$(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
! $(WINDRES) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
$(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
! $(WINDRES) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
$(OUTDIR):
$(MKDIR) $(OUTDIR)
--- 669,678 ----
$(CC) -c $(CFLAGS) $< -o $@
$(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
! $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
$(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
! $(WINDRES) $(WINDRES_FLAGS) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
$(OUTDIR):
$(MKDIR) $(OUTDIR)
*** ../vim-7.3.092/src/version.c 2010-12-30 14:47:32.000000000 +0100
--- src/version.c 2010-12-30 14:48:34.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 93,
/**/
--
Creating the world with Emacs: M-x let-there-be-light
Creating the world with Vim: :make world
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,70 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.094
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.094
Problem: Using abs() requires type cast to int.
Solution: Use labs() so that the value remains long. (Hong Xu)
Files: src/screen.c
*** ../vim-7.3.093/src/screen.c 2010-12-08 19:56:52.000000000 +0100
--- src/screen.c 2010-12-30 14:54:08.000000000 +0100
***************
*** 2317,2323 ****
num = (long)lnum;
else
/* 'relativenumber', don't use negative numbers */
! num = (long)abs((int)get_cursor_rel_lnum(wp, lnum));
sprintf((char *)buf, "%*ld ", w, num);
#ifdef FEAT_RIGHTLEFT
--- 2317,2323 ----
num = (long)lnum;
else
/* 'relativenumber', don't use negative numbers */
! num = labs((long)get_cursor_rel_lnum(wp, lnum));
sprintf((char *)buf, "%*ld ", w, num);
#ifdef FEAT_RIGHTLEFT
***************
*** 3475,3482 ****
num = (long)lnum;
else
/* 'relativenumber', don't use negative numbers */
! num = (long)abs((int)get_cursor_rel_lnum(wp,
! lnum));
sprintf((char *)extra, "%*ld ",
number_width(wp), num);
--- 3475,3481 ----
num = (long)lnum;
else
/* 'relativenumber', don't use negative numbers */
! num = labs((long)get_cursor_rel_lnum(wp, lnum));
sprintf((char *)extra, "%*ld ",
number_width(wp), num);
*** ../vim-7.3.093/src/version.c 2010-12-30 14:50:46.000000000 +0100
--- src/version.c 2010-12-30 14:56:32.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 94,
/**/
--
hundred-and-one symptoms of being an internet addict:
58. You turn on your computer and turn off your wife.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,70 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.095
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.095
Problem: Win32: In Chinese tear-off menu doesn't work. (Weasley)
Solution: Use menu_name_equal(). (Alex Jakushev)
Files: src/menu.c
*** ../vim-7.3.094/src/menu.c 2010-08-15 21:57:25.000000000 +0200
--- src/menu.c 2011-01-04 17:41:38.000000000 +0100
***************
*** 1512,1519 ****
{
#ifdef FEAT_MULTI_LANG
if (menu->en_name != NULL
! && (menu_namecmp(name,menu->en_name)
! || menu_namecmp(name,menu->en_dname)))
return TRUE;
#endif
return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
--- 1512,1519 ----
{
#ifdef FEAT_MULTI_LANG
if (menu->en_name != NULL
! && (menu_namecmp(name, menu->en_name)
! || menu_namecmp(name, menu->en_dname)))
return TRUE;
#endif
return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
***************
*** 2342,2348 ****
while (menu != NULL)
{
! if (STRCMP(name, menu->name) == 0 || STRCMP(name, menu->dname) == 0)
{
if (menu->children == NULL)
{
--- 2342,2348 ----
while (menu != NULL)
{
! if (menu_name_equal(name, menu))
{
if (menu->children == NULL)
{
*** ../vim-7.3.094/src/version.c 2010-12-30 14:57:03.000000000 +0100
--- src/version.c 2011-01-04 17:43:41.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 95,
/**/
--
If your nose runs, and your feet smell, you might be upside down.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,97 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.096
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.096
Problem: "gvim -nb" is not interruptable. Leaking file descriptor on
netbeans connection error.
Solution: Check for CTRL-C typed. Free file descriptor. (Xavier de Gaye)
Files: src/netbeans.c
*** ../vim-7.3.095/src/netbeans.c 2010-12-24 14:00:09.000000000 +0100
--- src/netbeans.c 2011-01-04 18:00:35.000000000 +0100
***************
*** 321,326 ****
--- 321,327 ----
{
nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
PERROR("gethostbyname() in netbeans_connect()");
+ sock_close(sd);
goto theend;
}
memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
***************
*** 370,384 ****
|| (errno == EINTR)))
{
nbdebug(("retrying...\n"));
! sleep(5);
! if (!doabort)
{
! ui_breakcheck();
! if (got_int)
! {
! errno = EINTR;
! break;
! }
}
if (connect(sd, (struct sockaddr *)&server,
sizeof(server)) == 0)
--- 371,382 ----
|| (errno == EINTR)))
{
nbdebug(("retrying...\n"));
! mch_delay(3000L, TRUE);
! ui_breakcheck();
! if (got_int)
{
! errno = EINTR;
! break;
}
if (connect(sd, (struct sockaddr *)&server,
sizeof(server)) == 0)
***************
*** 393,398 ****
--- 391,397 ----
/* Get here when the server can't be found. */
nbdebug(("Cannot connect to Netbeans #2\n"));
PERROR(_("Cannot connect to Netbeans #2"));
+ sock_close(sd);
if (doabort)
getout(1);
goto theend;
***************
*** 403,408 ****
--- 402,408 ----
{
nbdebug(("Cannot connect to Netbeans\n"));
PERROR(_("Cannot connect to Netbeans"));
+ sock_close(sd);
if (doabort)
getout(1);
goto theend;
*** ../vim-7.3.095/src/version.c 2011-01-04 17:49:25.000000000 +0100
--- src/version.c 2011-01-04 18:09:46.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 96,
/**/
--
hundred-and-one symptoms of being an internet addict:
85. Choice between paying Compuserve bill and paying for kids education
is a no brainer -- although a bit painful for your kids.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,54 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.097
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.097
Problem: Using ":call" inside "if 0" does not see that a function returns a
Dict and gives error for "." as string concatenation.
Solution: Use eval0() to skip over the expression. (Yasuhiro Matsumoto)
Files: src/eval.c
*** ../vim-7.3.096/src/eval.c 2010-12-17 18:06:00.000000000 +0100
--- src/eval.c 2011-01-04 18:54:27.000000000 +0100
***************
*** 3335,3340 ****
--- 3335,3349 ----
int failed = FALSE;
funcdict_T fudi;
+ if (eap->skip)
+ {
+ /* trans_function_name() doesn't work well when skipping, use eval0()
+ * instead to skip to any following command, e.g. for:
+ * :if 0 | call dict.foo().bar() | endif */
+ eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
+ return;
+ }
+
tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
if (fudi.fd_newkey != NULL)
{
*** ../vim-7.3.096/src/version.c 2011-01-04 18:11:39.000000000 +0100
--- src/version.c 2011-01-04 19:00:21.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 97,
/**/
--
hundred-and-one symptoms of being an internet addict:
86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,61 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.098
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.098
Problem: Function that ignores error still causes called_emsg to be set.
E.g. when expand() fails the status line is disabled.
Solution: Move check for emsg_not_now() up. (James Vega)
Files: src/message.c
*** ../vim-7.3.097/src/message.c 2010-10-20 21:22:17.000000000 +0200
--- src/message.c 2011-01-04 19:19:04.000000000 +0100
***************
*** 569,574 ****
--- 569,578 ----
int severe;
#endif
+ /* Skip this if not giving error messages at the moment. */
+ if (emsg_not_now())
+ return TRUE;
+
called_emsg = TRUE;
ex_exitval = 1;
***************
*** 581,590 ****
emsg_severe = FALSE;
#endif
- /* Skip this if not giving error messages at the moment. */
- if (emsg_not_now())
- return TRUE;
-
if (!emsg_off || vim_strchr(p_debug, 't') != NULL)
{
#ifdef FEAT_EVAL
--- 585,590 ----
*** ../vim-7.3.097/src/version.c 2011-01-04 19:03:22.000000000 +0100
--- src/version.c 2011-01-04 19:24:30.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 98,
/**/
--
Ed's Radiator Shop: The Best Place in Town to Take a Leak.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -1,54 +0,0 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.3.099
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.099
Problem: Crash when splitting a window with zero height. (Yukihiro
Nakadaira)
Solution: Don't set the fraction in a window with zero height.
Files: src/window.c
*** ../vim-7.3.098/src/window.c 2010-12-17 17:35:05.000000000 +0100
--- src/window.c 2011-01-08 14:41:32.000000000 +0100
***************
*** 986,992 ****
/* Set w_fraction now so that the cursor keeps the same relative
* vertical position. */
! set_fraction(oldwin);
wp->w_fraction = oldwin->w_fraction;
#ifdef FEAT_VERTSPLIT
--- 986,993 ----
/* Set w_fraction now so that the cursor keeps the same relative
* vertical position. */
! if (oldwin->w_height > 0)
! set_fraction(oldwin);
wp->w_fraction = oldwin->w_fraction;
#ifdef FEAT_VERTSPLIT
*** ../vim-7.3.098/src/version.c 2011-01-04 19:25:46.000000000 +0100
--- src/version.c 2011-01-08 14:44:02.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 99,
/**/
--
From "know your smileys":
8-O "Omigod!!" (done "rm -rf *" ?)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

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